How to Parse a Streaming Royalty CSV for Total Earnings (DistroKid, TuneCore & Symphonic)
Your distributor CSV is full of individual stream rows — but what you actually need is a total earnings from streams figure you can trust. Here's how CSV parsers work, what to sum, and how to get accurate totals without a spreadsheet marathon.
If you've ever searched for a streaming royalty CSV parser, you're probably trying to answer one question: how much did my streams actually earn? Distributor exports don't make that obvious. A single song might appear on hundreds of rows — one for Spotify in the US, one for Apple Music in Germany, one for Amazon in Canada — and each row only shows a fraction of a cent.
Parsing that CSV correctly means reading the right columns, grouping rows by song (or payout period), and summing the earnings. Get any step wrong and your total is off — which is a problem when you're splitting money with collaborators.
Why distributor CSVs are hard to read manually
Streaming platforms don't pay artists directly. Your distributor — DistroKid, TuneCore, Symphonic Distribution, or another — receives aggregated payments and gives you a detailed export. That export is designed for accounting, not for quick answers.
- One row ≠ one song total. Most formats report per-store, per-territory, or per-transaction rows.
- Column names differ by distributor. DistroKid uses
Earnings (USD). Symphonic usesRoyalty ($US). TuneCore uses a transaction ledger withCreditandDescriptionfields. - Legacy formats exist. Older DistroKid exports use tab-separated values (TSV) instead of comma-separated CSV.
- Negative rows happen. Voids, adjustments, and chargebacks appear as negative values that must be included in totals.
A proper CSV parser for streaming earnings handles all of this automatically — detecting the format, finding the earnings column, and returning clean totals.
What “total earnings from streams” actually means
Before you parse anything, decide what total you need:
- Per-song total — how much one track earned across all platforms and territories in the export period.
- Per-period total — how much your entire catalogue earned in a given month or payout cycle.
- Per-platform total — how much Spotify vs Apple Music contributed (requires filtering before summing).
Most independent artists searching for a royalty CSV parser want the first two: per-song totals for splits, and an overall period total to sanity-check against their distributor dashboard.
How to parse each distributor format
DistroKid CSV parser — per-song totals from streams
DistroKid's Bank CSV is the most common format artists need to parse. Each row includes a Title (song name) and Earnings (USD) (the dollar amount for that row's streams).
To get total earnings from streams for a song manually, you would filter all rows where Title matches, then sum Earnings (USD). A CSV parser does this in seconds. DistroKid also has a legacy TSV format with the same column names but tab delimiters — a good parser detects this automatically.
For a deeper column-by-column explanation, see our DistroKid CSV breakdown guide.
Symphonic Distribution CSV parser — per-track totals
Symphonic earnings reports use Track Title and Royalty ($US). Like DistroKid, one track spans many rows across DSPs and territories. Sum Royalty ($US) grouped by Track Title to get each song's total streaming earnings.
Include negative values — they represent voids or adjustments and belong in your total.
TuneCore CSV parser — period totals, not per-song
TuneCore's transaction CSV works differently. It's a ledger of credits and debits, not a per-stream breakdown. Rows with Description = “Sales Posted” and a Credit value represent payout batches.
A TuneCore CSV parser sums those Sales Posted credits to give you a total earnings figure for the export period — but not a per-song breakdown, because the file doesn't include song titles on those rows. For TuneCore artists with multiple tracks, this is an important limitation to understand before splitting royalties.
Read more in our TuneCore earnings report guide.
Manual parsing vs an automated CSV parser
| Approach | Pros | Cons |
|---|---|---|
| Spreadsheet (Excel / Google Sheets) | Full control, familiar tools | Error-prone pivot tables, format detection is manual, repeats every payout cycle |
| Paid royalty software | Feature-rich, multi-catalogue | $30–$100+/month, often overkill for indie artists with one or two releases |
| Browser-based CSV parser | Free, instant, auto-detects format, no upload to servers | Limited to supported distributors (DistroKid, TuneCore, Symphonic today) |
For most independent artists, a free browser-based parser is the fastest path from raw CSV to total earnings from streams — especially when you need numbers before a collaborator conversation, not before tax season.
Step-by-step: parse your CSV and get total earnings
- Export your earnings CSV from your distributor for the period you want. DistroKid: Bank page → Download CSV. TuneCore: Reporting → transaction export. Symphonic: Earnings report download.
- Upload the file to the Song Royalty Calculator. The parser auto-detects whether it's DistroKid, TuneCore, Symphonic, or legacy DistroKid TSV — no format selection needed.
- Review per-song totals (DistroKid and Symphonic) or your period total (TuneCore). Each song tab shows aggregated earnings from all stream rows in the file.
- Add collaborator splits and calculate what each person is owed. Export the breakdown as CSV to share.
No account, no subscription, and no data leaves your device. The parser runs entirely in your browser — the same privacy model described in our privacy policy.
Common CSV parsing mistakes to avoid
- Summing the wrong column. Always use the earnings or royalty column — not stream counts, not balance columns unless you know exactly what they represent.
- Ignoring negative rows. Adjustments reduce your total. Skipping them inflates earnings.
- Double-counting across exports. If you merge two monthly CSVs, make sure date ranges don't overlap.
- Expecting per-song data from TuneCore. The transaction ledger gives period totals, not track-level breakdowns.
- Confusing gross with net. Your CSV total is what the distributor reports — before collaborator splits, not necessarily what lands in your bank after fees elsewhere in the chain.
Don't have a CSV yet? Forecast total earnings from streams
If your release hasn't dropped yet, you won't have a distributor export to parse. Use the streaming earnings forecast tool instead — enter anticipated streams across Spotify, Apple Music, YouTube Music, TikTok, and eight other platforms to estimate total earnings before you release.
Read the full walkthrough in our forecast streaming earnings guide.
Frequently asked questions
How do I parse a streaming royalty CSV to get total earnings?
Export your earnings CSV from your distributor, identify the earnings column for your format, and sum rows by song title — or upload to Song Royalty Calculator, which auto-detects the distributor and aggregates totals in your browser.
Which column has total earnings from streams in a DistroKid CSV?
The Earnings (USD) column. Sum all rows with the same Title to get per-song totals.
Can TuneCore CSV files show total earnings per song?
Not from the standard transaction export. TuneCore CSVs are ledgers — a parser returns one period total from Sales Posted credit rows, not per-track breakdowns.
What is a streaming royalty CSV parser?
A tool that reads your distributor export, detects the file format, and aggregates individual stream rows into usable earnings totals — per song or per payout period.
Is it safe to parse my royalty CSV online?
With Song Royalty Calculator, yes. All parsing happens locally in your browser. Your file is never uploaded to any server.
Parse your CSV and get total earnings now
Upload your DistroKid, TuneCore, or Symphonic export — or try a sample file — and see per-song totals in seconds.
Open the CSV Parser