Drop statements from DistroKid, TuneCore, CD Baby, Symphonic, ASCAP, the MLC or a publisher export — as many files as you like, zip archives welcome. The engine detects each format, normalizes every line into one dataset, and checks that the rows it extracted sum to each statement's own totals to the cent. Parsing runs in this tab: nothing is uploaded, and no account is needed to see your results.
No statements handy? — the samples are synthetic, generated to each vendor's documented layout; they are not anyone's real earnings.
The Excel earnings tape (Summary, Tie-Out, By Period, By DSP, Top Tracks, full line items) and the normalized CSV. Viewing results on screen is never limited. Downloads and saved history use your free monthly allowance: 120 pages a month, where one page is 500 normalized rows (minimum one page per statement). The free tier covers a typical indie catalog's quarterly statements; bigger jobs are what our custom service is for.
Summaries only — file names, counts and totals. The statements themselves were parsed in your tab and were never uploaded, so they cannot be stored here.
Loading…
It proves the extraction, not the source. A statement is TIED when the rows this engine extracted sum to the totals printed on the statement itself, within $0.01. That verifies nothing was lost or double-counted in parsing. It cannot prove the distributor or society reported your royalties correctly in the first place.
Most machine exports carry no printed totals — DistroKid TSVs and TuneCore CSVs, for example, are raw line dumps. Those statements show as SELF-CONSISTENT: internal checks passed, but there was no stated total to reconcile against. That is normal, not a defect.
Unknown formats get a best-guess mapping. If no known layout matches, the engine maps columns by header vocabulary and labels the result generic — check the mapping note it reports before trusting the numbers. Unreadable amounts are skipped and counted as warnings, never silently written as zero.
Your files never leave this page. Parsing, aggregation and workbook generation all run in WebAssembly inside this tab. You can disconnect from the internet after the page loads and everything still works. Saved history stores summary numbers only.
Built to each vendor's own published layout, with the column dictionaries documented on every format page:
Anything else falls back to the generic mapper. Reading matter: how to read a royalty statement · the earnings-tape format · preparing data for a catalog sale.
Statements or zips from any mix of sources and periods. Format detection is per file, by header fingerprint.
Every statement is tied out: extracted rows must sum to its printed totals to the cent, or the discrepancy is shown.
One normalized dataset and a six-sheet Excel earnings tape — yours, not locked in an account.
If you are preparing a catalog for sale, running diligence on one, or drowning in a back-office statement backlog, that is exactly the custom work we do — messy label PDFs, foreign-society files and legacy formats included, delivered under NDA with a tie-out report on every statement.
Talk to us about custom work