App Store Connect sales to dashboard
Your App Store sales report, decoded.
Download a sales report from App Store Connect, drop the file here, and it is read as the tab separated file it actually is rather than the comma separated file its name implies. Product Type Identifier is decoded so downloads, updates and in-app purchases stop being counted together, Developer Proceeds is treated as a per-unit figure and multiplied by Units, and the country and device splits are built automatically.
Prefer the full explorer? Open the app, or start from the generic dashboard builder.
The file is not a CSV, and the numbers are not what they look like
The first surprise is the delimiter. Apple hands you a file that people universally call the sales CSV, and it is separated by tabs. Open it in a spreadsheet that assumes commas and you get one very wide column with everything crammed into it. Rename it to .tsv, or point a reader at it that checks the first line before guessing, and the whole thing snaps into shape. That is a five second fix once you know, and half an hour of confusion the first time.
The second surprise takes longer to notice. Every row carries a Product Type Identifier, a short code like 1F or IA1, and that code is what decides whether the row is a fresh download of a free app, an app update, or somebody buying coins inside it. Sum Units without splitting on it and you have added installs to updates to purchases, which is three different questions given one answer. Then there is Developer Proceeds, which is per unit, so a row with 40 units and 2.09 proceeds is 83.60, not 2.09.
How to export from App Store Connect
- Sign in to App Store Connect Go to appstoreconnect.apple.com and open Sales and Trends from the main grid. You need the Finance or Sales role on the team; a plain Developer account will see the section but find most of it empty.
- Pick a report granularity Daily, Weekly, Monthly and Yearly are separate report families with separate retention. Daily is the most detailed and the most perishable, so if you want day-level data for last quarter, pull it before the window closes.
- Set the date and use the download arrow The download control sits at the top right of the Sales and Trends view. Each daily report is one file for one day, so a month of daily detail is a month of files and you will want to stitch them.
- Unzip if needed Apple often serves the report gzipped, with a name like S_D_yourvendorid_20260403.txt.gz. Unzip it first. The file inside is plain text with a header row and tab separators.
- Drop the file on this page The delimiter is detected on load, the type codes are decoded into readable categories, and Country Code lands straight on the map without a lookup table.
If you automate this with the Reporting API or the older iTunes Connect reporter tool, the columns are the same and so is the tab separation, so files from either route land on the same panels here.
Try with sample App Store Connect data (the same columns, 100 rows, no upload needed).
What the dashboard shows
Every panel below is built from a column that is actually in the export, named the way App Store Connect names it.
- Units by day. Begin Date becomes the axis and Units the value, split by product type so installs and updates are separate series rather than one inflated line.
- Proceeds against customer price. Units times Developer Proceeds next to Units times Customer Price, which makes the platform commission visible as a gap rather than an assumption.
- In-app purchase mix. The IA1 and IA9 families ranked by SKU, so you can see which tier or consumable is carrying the revenue.
- Country spread. Country Code is two letters and maps directly, with Provider Country kept separate because it describes the storefront entity, not the buyer.
- Device split. iPhone, iPad, Apple TV and desktop as a share, which is the fastest way to justify or kill support for a form factor.
- Version adoption. The Version column ranked by units, so you can watch an update roll out and see how long the tail of old builds really is.
Begin Date,Provider Country,SKU,Title,Product Type Identifier,Units,Developer Proceeds,Customer Price,Customer Currency,Country Code,Device,Version
Six things about an Apple sales report that will bite you
- It is tab separated. Everyone calls it a CSV and it is not one. A comma-assuming reader gives you a single column of concatenated junk with no error message to explain it.
- Product Type Identifier decides everything. 1F is a first-time download of a free app. The IA1 and IA9 families cover in-app purchases. 7 is an update. Ignore the code and installs, updates and purchases pile into the same total.
- Developer Proceeds is per unit. Not the row total. It is roughly 70 percent of Customer Price for a standard commission, and the actual revenue for a row is Units times Proceeds.
- Customer Currency is not your payout currency. A Japanese sale is priced in yen and reported in yen. Your payout arrives converted at Apple's rate on a different day, so the report will never tie exactly to your bank.
- Begin Date is in Apple's reporting time zone. Not yours, and not UTC. A day boundary in the report is not midnight where you live, which matters when a launch day total looks slightly wrong.
- Daily reports expire. Apple keeps daily reports for a limited window. Miss it and only the weekly and monthly rollups survive, at which point day-level analysis of that period is gone for good.
Fix the delimiter, split on the type code, multiply proceeds by units. Those three moves turn a file people quietly give up on into the clearest view an indie developer has of what the App Store is actually paying them.
Frequently asked questions
Why does my App Store sales report open as one column?
Because it is tab separated, not comma separated, despite everyone calling it a CSV. A spreadsheet that assumes commas finds none, so it treats each line as a single value and gives you one very wide column. Rename the file with a .tsv extension, or use an import step where you can pick the tab delimiter. This page checks the first line and picks the separator itself, so neither workaround is needed.
What do the product type codes mean?
They tell you what kind of event the row is. 1F is a first-time download of a free app, 7 marks an update rather than a new install, and the IA1 and IA9 families cover in-app purchases of different kinds. Without splitting on that column you end up adding updates to installs to purchases and calling the result downloads, which overstates acquisition badly for any app with a regular release cadence.
Is Developer Proceeds the total for the row?
No, it is the amount per unit. A row showing 40 units and proceeds of 2.09 represents 83.60 of revenue, not 2.09. This is the single most common miscount in this file, and it always understates. The figure is also net of Apple's commission already, so it sits at roughly 70 percent of Customer Price for a standard developer, and higher on the reduced rate.
Why does the report not match my payout?
Several reasons at once. Customer Price and Developer Proceeds are in the buyer's currency, while your payout is converted at Apple's rate on the settlement date. Payouts also lag sales by weeks and are grouped by region rather than by day. Taxes are handled by Apple in most storefronts and never appear as your money. Treat the sales report as the operational view and the financial reports as the banking view.
Can I load several daily reports at once?
Yes, but stitch them first. Each daily report is one file for one day, so a quarter is around ninety of them. Merge them into a single file with the CSV merger, keeping one header, and drop the result here. The Begin Date column then gives you a real time axis instead of ninety separate one-day snapshots.
Does this page need my App Store Connect login?
No, and it could not use one. There is no server behind this page and no API integration. You download the report yourself with whatever access you already have, then the file is parsed by JavaScript in your browser tab. Nothing about your team, your vendor number or your revenue leaves the machine you are sitting at.
Related tools
Load a sales report and watch the type codes separate
100 rows shaped like a real Apple report: tab separated, mixed product type codes, per-unit proceeds, several storefront currencies and a version rollout in progress.
Open the sample App Store Connect dashboard