Perpendis Royalty tools
Array tools Sign in

Convert Your DistroKid Royalty Statement (Bank TSV) to Excel — Free & Private

DistroKid's bank export is a raw line dump — one row per store, country, month and track, often tens of thousands of rows, with earnings quoted to twelve decimal places. This page documents exactly what is in that file, and the free converter turns it into a clean, reconciled Excel workbook without your statement ever leaving your browser.

Drop your DistroKid export straight into the converter

CSV, TSV or the zip DistroKid emails for large reports — format detection is automatic, and parsing runs locally in your tab. No account needed to see your results.

Convert your statement now — free

Where to find the file in DistroKid

Go to distrokid.com/bank and click "SEE EXCRUCIATING DETAIL", then Download. If your report has fewer than 50,000 records, the file downloads immediately as a CSV. At 50,000 records or more, DistroKid generates the report in the background and emails you a link (also available at distrokid.com/bank/priority); the generated report is delivered as a .zip containing a .csv and stays available for seven days. You can drop the zip into the converter as-is — it is unpacked locally.

The current layout: 15 columns (post-July 2025)

Since roughly July 2025 the export is a comma-delimited CSV with every field double-quoted. The header carries these 15 columns, in this order:

#ColumnWhat it contains
1Date InsertedDate the row was added to your bank, YYYY-MM-DD.
2Reporting DateDate DistroKid received or posted the store's report, YYYY-MM-DD.
3Sale MonthMonth the activity actually happened, YYYY-MM.
4StoreThe DSP, e.g. "Spotify", "Apple Music", "YouTube (Ads)".
5ArtistArtist name; may contain several comma-separated names inside the quotes.
6TitleTrack or album title.
7ISRCTrack identifier; may be blank on album rows.
8UPCRelease identifier, 12–13 digits.
9QuantityUnits (streams/downloads); an integer that can be negative on adjustments.
10Team Percentage0–100 — your split's share of this row.
11Source Type"Song" or "Album".
12Country of SaleTwo-letter ISO country code.
13Songwriter Royalties Withheld (USD)Decimal, usually 0.00000.
14Earnings (USD)High-precision decimal, e.g. 0.002642885330 — nine to twelve decimal places.
15Recoup (USD)Usually empty; recoupments when present.

One caveat worth knowing: rows are inclusive of your share receivable, so on split releases the Team Percentage must be applied to reach your payable share — the converter surfaces the column so nothing is hidden.

The older "bank details" TSV

Before the July 2025 cut-over the same download produced the famous tab-separated .tsv in latin-1 encoding, with unquoted fields — essentially the same layout minus Date Inserted and Recoup (USD), and with a Song/Album column where Source Type now sits. The converter detects each file by header fingerprint, so old and new exports can go into the same session and come out as one normalised dataset.

What the converter does with it

Every row is normalised into a common earnings schema — period, store, territory, track, units, amount — and summed in exact decimal arithmetic, never floating point, so twelve decimal places of Spotify micro-earnings do not drift. The output is a six-sheet Excel earnings tape: Summary, Tie-Out, By Period, By DSP, Top Tracks and the full line items, plus a normalised CSV if you prefer to run your own analysis.

Your file never leaves this page. Parsing runs in WebAssembly inside your browser tab — nothing is uploaded, and you can disconnect from the internet after the page loads.

About the tie-out: statements with printed totals must have their extracted rows sum back to those totals to the cent, or the discrepancy is shown. DistroKid bank exports are raw line dumps with no printed totals, so they report as SELF-CONSISTENT — internal checks passed, but there was no stated total to reconcile against. That is normal for this format, not a defect.

Frequently asked questions

Is my statement uploaded anywhere?

No. The parser is compiled to WebAssembly and runs entirely client-side, in this tab. Your file is read in memory, converted in memory, and the results are handed back to you. Saved history (if you opt in) stores summary numbers only — never the file.

Does it handle the old TSV layout?

Yes. Format detection is per file, by header fingerprint — the legacy tab-separated, latin-1 "bank details" TSV and the current quoted CSV are both recognised and mapped to the same normalised schema.

Why doesn't the total match what I withdrew?

DistroKid's bank works on an accrual basis: rows are grouped by reporting date, while withdrawals happen whenever you request them, so a withdrawal will rarely equal the sum of any one report window. The By Period sheet makes the accrual picture explicit.

Why does Excel mangle the file when I open it directly?

Excel parses Earnings (USD) as floating point and rounds the display, turns long UPCs into scientific notation, and (on legacy TSVs) can garble latin-1 characters in artist names. Converting to a proper workbook first sidesteps all three.

Related pages

Statements from another distributor, or several at once? The same engine handles them all in one session:

New to statement anatomy? Start with how to read a royalty statement.

Ready when you are

Drop your DistroKid export — and any other distributor statements — into the free converter. Everything is parsed locally; nothing is uploaded.

Convert your statement now — free