How to read App Store Connect financial reports: a developer's guide to earnings reconciliation
A practical walkthrough of App Store Connect's Payments & Financial Reports section — what every column means, how Apple handles tax withholding and foreign exchange, and how to reconcile your monthly earnings accurately.
You've built the app, set your prices, and watched the downloads roll in. Then your first App Store Connect payment lands — and the number doesn't match what you expected. Proceeds look off, a withholding line appeared, and you're not sure which report to trust.
This guide walks through every layer of App Store Connect's financial reporting: what each report contains, how Apple applies foreign exchange and tax withholding, and how to reconcile your monthly earnings so there are no surprises come tax time.
Quick orientation: App Store Connect has two distinct reporting areas. Sales and Trends tracks units and downloads. Payments & Financial Reports tracks money. This guide covers the latter — the reports that ultimately match (or don't match) your bank account.
Payments & Financial Reports: what you're actually looking at
Navigate to App Store Connect → Payments & Financial Reports. You'll find two sub-sections: Payments (a summary of each bank transfer Apple has sent you) and Financial Reports (downloadable TSV files with full line-item detail). The Payments view gives a high-level overview of dates, amounts, and settlement currencies. The Financial Reports are the canonical source of truth.
Apple posts one TSV file per fiscal month, per payment region. Countries are grouped into regional clusters — Americas, Europe, Rest of World — each settling in its own currency. This means a developer with global reach may need to download and merge several files to reconstruct their total monthly earnings.
Apple's fiscal calendar does not align with the Gregorian calendar. Apple's fiscal year ends in late September, and fiscal months can begin on a Saturday. Earnings from a given calendar month may therefore fall across two fiscal periods. If you're comparing App Store proceeds to revenue figures from your own database or a third-party analytics tool, you must align to Apple's fiscal periods — not calendar months — or your reconciliation will never close.
Anatomy of a financial report line
Each row in a Financial Report TSV represents one product × one country-of-sale × one billing period. The columns most relevant to iOS developers are:
| Column | What it means | Common gotcha |
|---|---|---|
| Vendor Identifier | Your SKU — the bundle ID for the app, or the product ID for an IAP or subscription | Multiple SKUs per app means multiple rows; always filter before summing |
| Product Type Identifier | Numeric code: 1 = paid app, 7 = IAP, F1 = auto-renew subscription, IA1 = free app download | Returns use the same codes — distinguish sales from refunds via the Sale or Return column |
| Quantity | Number of units in this row | Refunds appear as negative quantities; summing without filtering inflates your numbers |
| Partner Share | Your per-unit proceeds before FX conversion, in the Partner Share Currency | Already net of Apple's commission (15% or 30%) and any taxes Apple collected as merchant of record |
| Extended Partner Share | Partner Share × Quantity — the total proceeds for this row | Summing this column across an entire file gives gross proceeds in potentially mixed currencies |
| Partner Share Currency | Currency of the Extended Partner Share figure | May differ from the country-of-sale currency; Apple handles the first conversion internally |
| Country of Sale | Two-letter ISO code for the storefront where the transaction occurred | This is the customer's billing country, not their device locale or IP location |
| Sale or Return | "S" for a completed sale, "R" for a refund or return | Include both to get net revenue; include only S to see gross before refunds |
Subscription-specific rows carry additional columns: introductory offer type, promotional offer identifier, renewal status, and subscriber/non-subscriber flags. These become important when reconciling against RevenueCat or your own backend — persistent divergence from a third-party analytics platform usually traces back to these subscription-detail columns being misread or ignored.
Tax withholding and VAT: the two amounts Apple keeps
Two entirely separate deductions can reduce what hits your bank versus what a customer paid. Confusing them is among the most common reconciliation mistakes developers make.
Sales tax / VAT / GST — Apple's obligation, not yours. In most markets, Apple operates as the merchant of record. Apple collects, reports, and remits consumption taxes directly to local tax authorities. You never see this money, and it never appears in your financial report as a positive figure. Your Partner Share column is already computed on net-of-tax proceeds — Apple's commission comes out of the consumer price, then the applicable tax is removed. The practical implication: you do not owe VAT or GST on App Store revenue in most jurisdictions where Apple is the merchant of record, but you also cannot generally reclaim input tax on that revenue.
Income tax withholding — potentially your obligation. Separately, some countries require Apple to withhold a portion of your income and remit it to their tax authority on your behalf. This appears as a distinct line in your Payments summary labelled "Withholding Tax." Unlike VAT, this withholding is creditable: it is a pre-payment against your personal or corporate income tax liability in that jurisdiction, and depending on your country of tax residence and applicable tax treaty, you may be able to claim it as a foreign tax credit.
The withholding rate depends on your country of tax residency and whether a tax treaty is in force between your country and the relevant source country. US developers should ensure a Form W-9 is on file with Apple. Non-US developers should file a W-8BEN (individuals) or W-8BEN-E (entities) to claim applicable treaty rates. Without a valid form on file, Apple applies the statutory US backup withholding rate of 30% to US-sourced payments — a significant drag on US App Store earnings for international developers who haven't completed the paperwork. Apple documents required tax forms in App Store Connect Help under "Contracts, Tax, and Banking."
Tax forms in App Store Connect are not a one-time task. Apple may require re-certification periodically, and changes in your business structure (sole trader → company, changing countries of residence) require updated forms. A lapsed W-8 is a common reason proceeds suddenly drop — check your Agreements, Tax, and Banking status if a payment looks short.
Foreign exchange: how Apple converts and what you can verify
The App Store operates across more than 175 storefronts, each priced in local currency. Apple converts each transaction into the settlement currency for its payment region before aggregating your report. The rate Apple uses is determined at the time of the billing event, not the payout date, and Apple applies their own spread — the rate in your financial report will not match a mid-market or central-bank reference rate.
You cannot negotiate this rate, but you can verify it. Each Financial Report file documents the FX rate applied for the reporting period. Sum the Extended Partner Share values by currency, apply those rates, subtract withholding, and the result should tie to your bank transfer within a rounding margin. If it doesn't, you are almost certainly missing a regional TSV file.
A few storefronts warrant particular attention from a currency-risk perspective:
- Turkey (TR): Persistent high inflation means TRY/USD volatility can be extreme within a single fiscal month. Proceeds in Turkish lira can diverge sharply from the USD-equivalent you'd expect based on your listed price. Apple's globally equivalent pricing system helps, but there is often a lag between macroeconomic shifts and price updates — see the post on Apple's globally equivalent pricing for the mechanics.
- Japan (JP): App Store Japan settles in JPY, and yen volatility has been material in recent years. A stable unit-sales count can mask significant revenue swings in your functional currency when the yen moves.
- Brazil (BR): Apple remits BRL proceeds but Brazilian regulatory rules add complexity around cross-border remittances, including IOF (Imposto sobre Operações Financeiras). Developers operating primarily in Brazil should consult a local tax adviser on the implications.
For a deeper look at how currency conversion systematically affects global pricing strategy, the post on how currency conversion fails for global iOS pricing covers Apple's conversion mechanics and where silent revenue loss occurs.
A practical month-end reconciliation workflow
Once Apple posts the financial report — typically around 45 days after the fiscal month closes — run through this sequence:
- Download all region files. Apple posts separate TSV files per payment region. Download every region where your app has had sales. Even small regions accumulate material amounts over time and must be included for the reconciliation to close.
- Filter and sum Extended Partner Share. Keep both S and R rows for net revenue; keep only S rows for gross. Sum the Extended Partner Share column, grouping by Partner Share Currency. You now have your gross proceeds in each settlement currency.
- Apply withholding. Subtract the withholding tax figure from the Payments summary. Record this separately for your tax accountant — it is a creditable foreign tax payment, not a cost of goods.
- Convert to your functional currency. Apply the FX rates documented in the report. The resulting sum should match the wire transfer amount within a small rounding tolerance.
- Tie to your bank statement. Apple's transfers typically appear under "Apple Inc." or "iTunes S.à r.l." (Apple's Luxembourg entity for European payments). Match the amount and date.
If you use RevenueCat or a similar subscription analytics platform, expect a timing difference: their MRR figures are computed in real time from StoreKit events, while Financial Reports reflect settled Apple billing data. Short-term gaps are normal and typically resolve within the same fiscal period. Persistent multi-month divergence usually points to missing server notification handling or a product ID mismatch. The post on iOS subscription analytics: MRR, churn rate, and LTV covers the distinction between recognised and settled revenue in more detail.
Automating report ingestion with the App Store Connect API
Manual TSV downloads scale poorly once you have multiple apps or operate across many payment regions. Apple's App Store Connect API exposes the same financial reports programmatically via the GET /v1/financeReports endpoint. The endpoint accepts a regionCode, a reportDate in Apple's fiscal-period format (YYYY + period number), and reportType=FINANCIAL. Reports are returned as gzip-compressed TSV files.
Authentication follows the same JWT flow used across the entire App Store Connect API — one API key covers all report types and all apps in your account. If you haven't configured API access yet, the 5-minute guide to App Store Connect API key setup covers key generation and the token construction steps. Once authentication is working, report ingestion can run as a nightly or weekly cron job, feeding data into a spreadsheet, a BI tool, or your own database.
A minimal implementation in Python using the requests library and the PyJWT package can download, decompress, and parse each region's report in under 60 lines of code. Filter to the Vendor Identifiers for your products, run the reconciliation arithmetic above, and write each period's result to a database row keyed on fiscal year and period. Over time this produces a clean audit trail — the kind that makes year-end tax preparation substantially less painful.
For a more complete worked example — including rate limiting, retry logic, and handling multi-region downloads — the post on building a price-update workflow with the App Store Connect API shows the full pattern for authenticated API calls and error handling, which transfers directly to financial report ingestion.
Sources and further reading
- Apple Developer: App Store Connect API documentation
- Apple Developer: App Store Connect Help — Payments and Financial Reports
- Apple Developer: Auto-Renewable Subscriptions overview
- RevenueCat Blog — subscription analytics and App Store revenue data
- Phiture Mobile Growth Stack — App Store revenue and localization analysis
Share this post
Ready to put this into practice?
AppsOps is the first App Store ops dashboard — PPP-fair pricing for 175 App Store territories, AI metadata localization in 39 languages, AI screenshot localization for 14 Apple device classes, and one-click App Store Connect API push — all from one dashboard, all for $19/month.
Try AppsOps free — no card →