CD Baby's downloadable sales report is a tab-delimited .txt file with doubled line endings, timestamped dates and quantities carried to twelve decimal places — a combination that genuinely trips up a straight Excel import. This page documents the layout column by column, and the free converter turns the file into a clean, reconciled workbook without it ever leaving your browser.
No re-saving, no find-and-replace on line endings — the parser handles the format's quirks natively, locally in your tab. No account needed to see your results.
Drop your CD Baby DDSales file here — freeThe report is one row per transaction line, with this observed header:
| # | Column | What it contains |
|---|---|---|
| 1 | Report Date | Date the row was reported into your CD Baby account, as "MM/DD/YYYY 12:00:00 AM". |
| 2 | Sales Date | Date (or period date) the sale or stream actually occurred at the partner, same timestamped format. |
| 3 | Quantity | Units for the row — exported with twelve decimal places (a single stream appears as 1.000000000000). |
| 4 | Price | Per-unit price or rate applied to the row. |
| 5 | Subtotal | Amount earned for the row (quantity × price, before your payout balance). |
| 6 | Isrc | Track ISRC, written "Isrc" in the header exactly as CD Baby exports it. |
| 7 | Barcode | Release UPC/EAN. |
| 8 | CDBabySku | CD Baby's internal SKU for the release or track. |
| 9 | Album Name | Release title. |
| 10 | Artist Name | Artist on the release. |
| 11 | Track Name | Track title; may be blank on album-level rows. |
| 12 | Partner Name | The store or DSP reporting the activity (Spotify, Apple Music, physical partners, …). |
| 13 | Transaction Type | Kind of transaction — stream, download, physical sale, sync and so on. |
| 14 | Delivery Country | Country where the sale or stream was delivered. |
Source: an open-source CD Baby DDSales parser with a real 92,737-row export — transcribed and checked against the engine's parser on 2026-08-16. CD Baby publishes no official column documentation for this export, so the header above is taken from a real file rather than a vendor spec.
If you have landed here after a mangled import, the file is not corrupt — it is just hostile to spreadsheet defaults in three specific ways:
Each record ends with a carriage return, then another carriage return and line feed. Naive importers read the stray \r as an extra line break, so you get a blank row after every real row — or worse, cells shunted into the wrong columns. The converter normalises the endings before splitting rows, so every record lands intact.
A quantity of one stream arrives as 1.000000000000. Excel parses it as floating point, displays it unpredictably, and any SUM over thousands of such values invites rounding drift. The converter reads quantities and amounts as exact decimals and sums them in decimal arithmetic.
Dates arrive as "MM/DD/YYYY 12:00:00 AM" — a US-format text timestamp Excel may parse inconsistently depending on your locale — and 12–13-digit barcodes get flattened into scientific notation (1.93483E+12), destroying the UPC. The converter parses dates explicitly and keeps identifiers as text.
Every row is normalised into a common earnings schema — period, partner, territory, track, units, amount — alongside any other distributor statements you drop in the same session. The output is a six-sheet Excel earnings tape (Summary, Tie-Out, By Period, By DSP, Top Tracks, full line items) plus a normalised CSV, with identifiers preserved as text and totals computed in exact decimal.
Tested on a real 17.8 MB DDSales export: 92,737 rows parsed with zero unreadable amounts. The file uses \r\r\n line endings, 'MM/DD/YYYY 12:00:00 AM' dates and 12-decimal quantities — all three confuse a plain Excel import, which is why people search for this page.
Parsing runs in your browser — files are never uploaded. What the tie-out does and does not prove.
No — drop the .txt exactly as downloaded. The \r\r\n endings are recognised and normalised automatically; re-saving the file through a text editor first can actually change its encoding and is best avoided.
CD Baby’s .txt is the most Excel-hostile of the four distributor layouts the engine reads natively. The other three are documented here:
Background reading: how to read a royalty statement — or go straight to the converter, which takes the file exactly as CD Baby exported it.
Drop your CD Baby report — and any other distributor statements — into the free converter. Everything is parsed locally; nothing is uploaded.
Convert your statement now — free