Netice app revenue data infrastructure
App Store Connect financeReports to BigQuery
Netice structures App Store Connect financeReports into a customer-owned BigQuery table through Finance Unified. This is the monthly platform-finance workflow, separate from daily App Store Connect Sales and Trends reporting. The default BigQuery table is finance_unified, with Apple fiscal-period context, source-report labels, native and report-currency fields, FX context where configured, and null-not-zero handling.
What Apple financeReports to BigQuery means in Netice
In Netice, App Store Connect financeReports to BigQuery means writing Apple monthly platform-finance rows into a customer-owned BigQuery table through the Finance Unified workflow. The technical source key is finance_unified, the source kind is FINANCE, and the default BigQuery table is finance_unified.
This is not the daily App Store Connect reports-to-BigQuery workflow. Daily Apple app-sales analytics uses App Store Connect Sales and Trends style /salesReports data and lands in a daily analytics table such as app_sales_daily. Apple financeReports use the App Store Connect /financeReports report family and belong to the monthly finance output.
The practical reason is simple: daily app-sales reporting and monthly finance reporting answer different questions. Daily reporting is useful for trend visibility, product analytics and operational monitoring. Apple financeReports are platform finance source data with fiscal-period, report-type, source, native-currency and finance-finality context.
| Question | Daily App Store Connect analytics | Apple financeReports to BigQuery |
|---|---|---|
| Netice workflow | Daily App Sales | Finance Unified |
| Technical source key | google_apple_app_sales |
finance_unified |
| Apple API/report family | /salesReports |
/financeReports |
| Source kind | SALES |
FINANCE |
| Default BigQuery table | app_sales_daily |
finance_unified |
| Main date concept | revenue_date |
fiscal_period, apple_fiscal_label, period/date fields |
When to use this workflow
Use App Store Connect financeReports to BigQuery when your team needs Apple monthly platform-finance reporting in a queryable warehouse table. This is useful for finance review, monthly reporting support, platform-reported proceeds analysis, and comparing Apple finance-period data against daily app-sales analytics without mixing the two report families.
The workflow is especially relevant when finance, analytics and data teams need a shared warehouse representation of Apple financeReports while keeping daily operational analytics separate from monthly platform-finance semantics.
What this BigQuery workflow is not
finance_unified is not the daily app_sales_daily table. Apple financeReports are not Apple Summary Sales. Finance Unified is not raw report archival. It is also not a full accounting system, audit report, tax product, bank-reconciliation product, GAAP output, IFRS output, ASC 606 revenue-recognition product, or final payout truth.
Finance Unified provides structured platform-reported finance input where configured. The customer still owns final accounting treatment, booked revenue logic, bank reconciliation and audit conclusions.
Apple financeReports source behavior
Apple financeReports use the App Store Connect /financeReports report family, not Sales and Trends /salesReports. In Finance Unified, Apple finance rows are normalized separately from daily sales rows so finance reporting keeps its own period, report type, source, currency and finality context.
Netice models Apple finance report-family details such as Finance Detail and Financial report rows inside the Finance Unified workflow. For readers, the important point is that Apple financeReports are monthly platform-finance inputs, while daily App Store sales reports are operational analytics inputs.
| Apple finance concept | Netice modeling | Reader interpretation |
|---|---|---|
| Workflow | finance_unified |
Monthly platform finance workflow. |
| Source kind | FINANCE |
Finance rows, not daily sales rows. |
| Apple endpoint family | /financeReports |
Separate from Sales and Trends /salesReports. |
| Report types | FINANCE_DETAIL, FINANCIAL |
Apple finance report types, not daily Summary Sales. |
| Source-report labels | APPLE_FINANCE_DETAIL, APPLE_FINANCIAL |
Finance Unified labels for Apple finance rows. |
| Detailed finance scope | Z1 where the detailed all-countries Apple finance scope applies |
Finance scope is modeled as source context, not as daily sales geography. |
Vendor access and report-family coverage
Apple financeReports require App Store Connect access that can read Payments and Financial Reports. Access that works for daily Sales and Trends reports does not automatically prove financeReports coverage.
A team may already be able to fetch daily App Store sales reports and still not have the correct Apple financeReports access. Conversely, configuring Apple financeReports source access does not grant BigQuery destination write permissions. Source access and destination access are separate.
| Access area | What it controls | What it does not control |
|---|---|---|
| Apple financeReports source access | Reading selected App Store Connect financeReports. | Writing to BigQuery. |
| Sales and Trends access | Daily sales-style reporting. | Proof of financeReports coverage. |
| Payments and Financial Reports coverage | Finance-report source coverage. | Destination warehouse permissions. |
| BigQuery destination access | Writing finance_unified to a customer-owned dataset/table. |
Reading App Store Connect reports. |
Examples in this guide are synthetic and do not contain customer identifiers, credentials, source files, logs, production destination names or real App Store Connect account details.
The finance_unified BigQuery table
The default BigQuery table for Finance Unified is finance_unified. Public examples use synthetic fully qualified identifiers such as example_project.example_dataset.finance_unified.
Finance Unified is event-grain. Each row represents a platform finance event after normalization. For Apple financeReports, rows can represent sale and refund events. Netice does not fabricate separate Apple platform fee or Apple tax rows where the source does not disclose those as separate finance facts.
| Field group | Representative fields | Why it matters |
|---|---|---|
| Source identity | platform, source, source_kind, source_report |
Identifies Apple finance rows and keeps them separate from daily Apple sales rows. |
| Source lineage | source report context, source row reference, ingestion timestamp, safe lineage metadata | Helps customers trace warehouse rows back to source-report context without exposing credentials or provider secrets. |
| Apple finance scope | apple_finance_region_code, apple_finance_report_type, apple_buyer_subdivision |
Preserves Apple finance report scope and source report type. |
| Period and date semantics | fiscal_period, apple_fiscal_label, calendar_period, period_start, period_end, transaction_date, settlement_date, effective_revenue_date |
Keeps Apple fiscal-period logic separate from daily revenue dates. |
| Event semantics | event_type, event_category, refund_type, commission_disclosed, quantity |
Shows whether the finance row is a sale, refund, or other supported event. |
| Amounts and currency | native_currency, native_net_proceeds, native_customer_charge, report_currency, report_net_proceeds, report_customer_charge, fx_rate |
Keeps source-native amounts separate from report-currency presentation fields. |
| Finality and ingestion | is_final, ingested_at, source_available_at, safe metadata |
Supports pipeline finality and safe metadata, but not accounting-close proof. |
Apple fiscal periods and date semantics
Apple financeReports preserve fiscal/report-period semantics. Finance Unified keeps fields such as fiscal_period, apple_fiscal_label, calendar_period, period_start, period_end and period_calendar_type so downstream users can understand the Apple period basis instead of treating finance reports as ordinary daily sales data.
Finance rows can also contain transaction, settlement and effective-revenue-date fields. The important modeling point is that these fields do not turn financeReports into daily Sales and Trends. They preserve finance semantics inside a monthly finance table.
| Date/period field | Purpose | Boundary |
|---|---|---|
fiscal_period |
Platform-native finance period start. | Not the same thing as daily revenue_date. |
apple_fiscal_label |
Apple fiscal-period label. | Do not assume it is a plain calendar month label. |
calendar_period |
Calendar-aligned reporting period where derived. | Separate from Apple fiscal label and source period. |
transaction_date |
Transaction date when present. | Can be nullable depending on source row/report type. |
settlement_date |
Settlement/date context from finance source where available. | Not a bank reconciliation guarantee. |
effective_revenue_date |
Normalized date attribution field with basis context. | Not GAAP/IFRS/ASC 606 proof. |
Apple proceeds, fee/tax boundaries and null-not-zero
Apple Finance Unified rows preserve Apple finance source values without inventing unsupported rows. Apple finance rows can create SALE and REFUND economic events, but Netice does not fabricate separate Apple platform fee or tax rows where the supported Apple finance source does not disclose those as separate finance facts.
This matters because a finance table should not make unknown or undisclosed source details look like known facts. If Apple does not disclose a separate platform fee or tax row in the supported finance path, Netice should not generate synthetic PLATFORM_FEE or TAX rows. Unknown finance values stay null. Real zero stays zero.
| Situation | Correct Finance Unified behavior | Unsafe shortcut |
|---|---|---|
| Apple finance source row is a sale. | Represent as SALE where source semantics support it. |
Split it into invented fee/tax rows. |
| Apple finance source row is a refund. | Represent as REFUND where source semantics support it. |
Hide it inside a daily sales adjustment. |
| Apple commission is not separately disclosed. | Do not claim itemized Apple commission if the supported source path does not disclose it separately. | Claim Apple itemized commission. |
| Fee or tax component is unsupported/unknown. | Keep unsupported values null or absent. | Fill missing finance values with zero. |
| Cross-currency FX is missing. | Keep report-currency fields null or surface quality issues. | Use fx_rate=1 for cross-currency rows. |
Native currency, report currency and FX
Finance Unified keeps source-native finance values separate from report-currency presentation fields. Native fields such as native_currency, native_net_proceeds and native_customer_charge represent source/native finance context. Report-currency fields such as report_currency, report_net_proceeds, report_customer_charge and fx_rate provide a normalized reporting layer where valid conversion is available.
Same-currency conversion can use fx_rate = 1. Missing cross-currency FX should remain null rather than being silently converted. This preserves the difference between a known zero, an unknown value, a not-applicable field and an unresolved conversion.
BigQuery write and refresh behavior
Netice writes Finance Unified rows to BigQuery as a managed customer-owned output. Refresh behavior is scoped to finance source context and fiscal_period, not to the daily revenue_date windows used by Daily App Sales.
BigQuery may use internal staging during the write process, but the customer-facing output is the durable finance_unified table, scoped refresh behavior and verification result. The important boundary is that finance refreshes replace finance-period context, not daily sales windows.
| BigQuery behavior | Finance Unified meaning | Customer-facing boundary |
|---|---|---|
| Default table | finance_unified |
Not app_sales_daily. |
| Refresh scope | Finance source context and fiscal_period. |
Not daily app-sales date-window replacement. |
| Managed output | Customer-owned BigQuery table. | Netice updates the configured table; customers keep ownership of the destination. |
| Verification | Destination writes are checked before a run is treated as successful. | No accounting, audit, tax, bank-reconciliation or final-payout guarantee. |
| Period status | Supports derived finality and stability context. | Not provider-guaranteed accounting close. |
Setup and access boundaries
Apple financeReports source access and BigQuery destination access are separate. Apple source access lets Netice read App Store Connect financeReports. BigQuery destination access lets Netice write the managed finance_unified table into a customer-owned BigQuery dataset.
Finance-capable App Store Connect access does not automatically grant warehouse access, and BigQuery destination permissions do not grant Apple source access. This separation helps teams reason about source coverage, destination write permissions and credential responsibilities clearly.
| Setup side | Controls | Does not control |
|---|---|---|
| Apple financeReports source access | Reading selected App Store Connect financeReports. | BigQuery destination writes. |
| BigQuery destination access | Writing finance_unified to a customer-owned project/dataset/table. |
Apple source access. |
| Report currency | Finance presentation fields where valid FX exists. | Replacing native platform amounts or accounting policy. |
| Safe run summaries | Statuses, windows, reason codes, row counts and high-level source/destination categories. | Raw source rows, credentials, source files, logs or customer identifiers. |
Safe synthetic examples
The examples below are synthetic and simplified. They show table and query shape only. They are not actual Netice API responses, not Apple source rows and not customer output.
Safe BigQuery target example
Workflow: Finance Unified
Selected provider: Apple financeReports
Destination: BigQuery
Project: example_project
Dataset: example_dataset
Default table: finance_unified
Fully qualified table: example_project.example_dataset.finance_unified
Report currency: EUR
Apple finance scope: Z1, FINANCE_DETAIL
Safe Apple finance row sketch
{
"platform": "IOS",
"source": "APPLE_APP_STORE",
"source_kind": "FINANCE",
"source_report": "APPLE_FINANCE_DETAIL",
"is_final": false,
"report_grain": "APPLE_FINANCE_DETAIL",
"fiscal_period": "2026-02-01",
"apple_fiscal_label": "FY26-M02",
"calendar_period": "2026-02-01",
"period_calendar_type": "APPLE_FISCAL_MONTH",
"transaction_date": "2026-02-10",
"settlement_date": "2026-02-28",
"effective_revenue_date": "2026-02-10",
"effective_revenue_date_basis": "TRANSACTION_DATE",
"app_id": "com.app.example",
"sku": "premium_monthly",
"product_type": "SUBSCRIPTION",
"country": "US",
"apple_finance_region_code": "Z1",
"apple_finance_report_type": "FINANCE_DETAIL",
"event_type": "SALE",
"event_category": "REVENUE",
"commission_disclosed": false,
"quantity": 1,
"native_currency": "USD",
"native_net_proceeds": "6.990000",
"native_customer_charge": "9.990000",
"report_currency": "EUR",
"report_net_proceeds": "6.290000",
"report_customer_charge": "8.990000",
"fx_rate": "0.900000"
}
Safe BigQuery finance query
SELECT
fiscal_period,
apple_fiscal_label,
source_report,
event_type,
native_currency,
report_currency,
SUM(native_net_proceeds) AS native_net_proceeds,
SUM(report_net_proceeds) AS report_net_proceeds
FROM `example_project.example_dataset.finance_unified`
WHERE source = 'APPLE_APP_STORE'
AND source_kind = 'FINANCE'
AND source_report IN ('APPLE_FINANCE_DETAIL', 'APPLE_FINANCIAL')
AND fiscal_period BETWEEN DATE '2026-02-01' AND DATE '2026-04-01'
GROUP BY
fiscal_period,
apple_fiscal_label,
source_report,
event_type,
native_currency,
report_currency
ORDER BY fiscal_period, source_report, event_type;
These examples use fake dates, fake amounts and a synthetic app identifier. They do not show real vendor numbers, source files, customer amounts, credentials, production tables, run IDs, logs or source paths.
FAQ
What are Apple financeReports in Netice?
Apple financeReports are App Store Connect monthly finance-report source data used by Finance Unified, not Daily App Sales.
Is App Store Connect financeReports to BigQuery the same as App Store Connect Summary Sales to BigQuery?
No. Summary Sales uses Sales and Trends style /salesReports and belongs to Daily App Sales. Apple financeReports use /financeReports and belong to Finance Unified.
What BigQuery table does Netice use for Apple financeReports?
The default Finance Unified BigQuery table is finance_unified.
Which Apple finance report types feed Finance Unified?
Netice models Apple finance report rows such as Finance Detail and Financial rows under normalized Finance Unified source-report labels.
What does APPLE_FINANCE_DETAIL mean?
APPLE_FINANCE_DETAIL is the Finance Unified source-report label for Apple Finance Detail rows.
Why does Apple finance use fiscal periods?
Apple financeReports use Apple finance/fiscal-period semantics. Finance Unified preserves fields such as fiscal_period and apple_fiscal_label so those periods are not confused with daily revenue dates.
Does Finance Unified estimate Apple commission or tax?
No. Netice does not fabricate separate Apple platform fee or tax rows where the supported Apple finance source does not disclose those as separate finance facts. Unsupported or undisclosed values remain null or absent rather than fake zero.
What does report currency mean for Apple financeReports?
Report currency is a presentation layer. Native Apple finance amounts remain separate from report-currency fields, and missing cross-currency FX should remain null rather than being invented.
What does is_final mean in Finance Unified?
is_final is derived from Finance Unified period-status behavior. It is not provider-guaranteed audit truth, accounting close, GAAP, IFRS, ASC 606, tax advice or bank reconciliation.
Can I reconcile Apple financeReports row-by-row to daily app sales?
Do not assume row-level reconciliation between Apple daily Summary Sales and Apple financeReports. They are different report families with different period and source semantics.
Related guides
Keep Apple financeReports separate from daily App Store analytics
Netice Finance Unified helps teams structure App Store Connect financeReports in BigQuery while preserving source report, fiscal period, native/report currency, finality and null-not-zero boundaries.