NETICE DOCUMENTATION
Daily App Sales schema: all 38 fields
Reviewed
Netice Daily App Sales uses app_sales_daily_v4: a 38-field output for Apple App Store and Google Play operational sales analysis. The default tables are app_sales_daily in BigQuery and APP_SALES_DAILY in Snowflake. Google Cloud Storage and AWS S3 receive CSV output.
For a daily trend, begin with revenue_date, source, report_currency and estimated_net. Keep the method fields with the amounts: daily values can include calculated fees, residual tax and explicitly labelled zero assumptions. This output is separate from the monthly Platform Finance schema.
Read the amount, currency and method together
A row is not necessarily one purchase. Source reports can aggregate units, and subscription event rows have different meanings. In particular, Apple customer currency and proceeds currency can differ. A null net_local can therefore coexist with a nonzero apple_proceeds_native; the fields prevent an amount being labelled with the wrong currency.
The types below describe the logical output. CSV serializes these values as text; warehouse destinations supply typed columns. Amounts, optional dimensions and lineage details have report-specific availability. Do not replace every empty value with zero or infer completeness from the age label.
View daily-sales example rows and warehouse SQL alongside this dictionary to see how amounts and method fields are used together.
Identity and reporting date
| Field | Type | Meaning |
|---|---|---|
revenue_date |
Date | Daily source reporting date. Keep its source date meaning when grouping trends; it is not an ingestion timestamp. |
platform |
Text | Platform code, such as IOS or ANDROID. |
app_id |
Text | App identifier from the source. Apple identifiers and Google package names need not use the same format. |
source_kind |
Text | SALES for this output. |
source |
Text | Provider code, such as APPLE_APP_STORE or GOOGLE_PLAY. |
country |
Text | Buyer or storefront country code where available. |
report_currency |
Text | Configured currency of the four estimated_* amount columns. |
Amounts and currency conversion
| Field | Type | Meaning |
|---|---|---|
estimated_gross |
Number | Gross analytical amount in report currency. It can be sourced, derived or supplied through an estimation fallback. |
estimated_net |
Number | Estimated developer-side net proceeds in report currency. Read net_method alongside it. |
estimated_tax |
Number | Tax analytical amount in report currency. tax_method distinguishes source tax, residual estimates and assumptions. |
estimated_fee |
Number | Estimated platform fee in report currency, with its basis in fee_method. |
native_currency |
Text | Shared currency label for the *_local columns. It prioritizes the gross component currency, then net, tax and fee currency; report currency is the final fallback. |
gross_local |
Number | Gross component in native_currency, when available or estimated. |
net_local |
Number | Net component in native_currency. Null when its component currency differs; Apple proceeds may still be present in their separate fields. |
tax_local |
Number | Tax component in native_currency, when available or estimated; null when the component uses another currency. |
fee_local |
Number | Fee component in native_currency, when available or estimated; null when the component uses another currency. |
apple_proceeds_currency |
Text | Currency of the Apple proceeds component. Empty or null for Google rows. |
apple_proceeds_native |
Number | Apple proceeds component at row level in apple_proceeds_currency. Summary Sales per-unit proceeds are multiplied by signed units before this output; analytical fallback can apply if source amounts are unavailable. |
gross_fx |
Number | Conversion factor used for the gross component to report currency, where resolved. |
net_fx |
Number | Conversion factor used for the net component to report currency. Its source currency can differ from native_currency on Apple rows. |
tax_fx |
Number | Conversion factor used for the tax component to report currency, where resolved. |
fee_fx |
Number | Conversion factor used for the fee component to report currency, where resolved. |
Methods, report family and events
| Field | Type | Meaning |
|---|---|---|
net_method |
Text | Calculation or source basis for net proceeds. Labels containing ESTIMATED or ASSUMED_ZERO describe analytical assumptions. |
fee_method |
Text | Fee calculation basis, including whether the estimate uses proceeds, gross or a Google fee rule. |
tax_method |
Text | Tax basis. Examples include GOOGLE_TAXES_COLLECTED, an Apple residual estimate, and unavailable-tax zero assumptions. |
data_completeness |
Text | Age-based daily status: LIVE, T_PLUS_2_STABILIZED or MATURE. It does not certify settlement, exact FX or absence of future corrections. |
source_report |
Text | Report family, such as ASC_SUMMARY_SALES or GP_ESTIMATED_SALES; subscription reports have separate labels. |
event_has_revenue |
Boolean | Revenue/lifecycle indicator. It helps distinguish state-change-only events, but does not certify a nonzero or source-verified amount. |
subscription_period |
Text | Normalized subscription duration, such as P1M or P1Y, when available. |
units |
Number | Signed source units where disclosed. Do not infer the number of individual purchases from a row count. |
item_id |
Text | Product or SKU identifier supplied by the source. |
item_name |
Text | Product name or title, where available. |
transaction_type |
Text | Normalized transaction or lifecycle label, including purchase, new sale, renewal, refund and supported subscription events. |
Lineage and materialization
| Field | Type | Meaning |
|---|---|---|
source_file_uri |
Text | Source artifact or report request reference. A reference is not necessarily a publicly downloadable URL. |
source_row_number |
Integer | One-based source row position where available. It may be absent for aggregated sources. |
source_row_hash |
Text | Fingerprint of the source row for traceability across reads. Combine with report and source context; do not assume it is a purchase ID. |
ingested_at |
Timestamp | UTC time when the row was materialized. It is separate from revenue_date. |
meta_json |
JSON text | Additional source context and derivation details. Gross calculation basis appears as gross_method here, not as a separate column in the 38-field contract. FX details can include effective date and fallback information. |
Start with a daily trend and an assumption count
This BigQuery example uses a fictional table path. Replace it with your managed table. The extra count makes net zero assumptions visible beside the analytical total.
SELECT
revenue_date,
source,
report_currency,
SUM(estimated_net) AS estimated_net_total,
COUNTIF(net_method LIKE '%ASSUMED_ZERO%') AS net_zero_assumption_rows
FROM `example-project.analytics.app_sales_daily`
WHERE revenue_date >= DATE '2026-08-01'
AND revenue_date < DATE '2026-09-01'
AND event_has_revenue = TRUE
GROUP BY revenue_date, source, report_currency
ORDER BY revenue_date, source;
This remains an estimated daily total, including rows with method-labelled assumptions. It is not a monthly settlement figure. A zero assumption count is also not a complete quality test: estimates, degraded FX and late source reports require their own interpretation.
Choose the next reference
Read currency and FX semantics for Apple mixed-currency rows, or nulls, zeros and estimates before building aggregate measures. For delivery, use BigQuery setup or Snowflake setup.