Skip to content
Support

Exporting royalty statements to CSV

Download your royalty statements as CSV files to analyze earnings in a spreadsheet, prepare for tax season, or keep detailed financial records.

  • You must have at least one paid royalty statement (statements appear after your first payout is processed)
  • A spreadsheet application like Excel, Google Sheets, or Numbers to open the CSV file

  1. Go to Royalties from the main menu
  2. Navigate to the Statements tab
  3. Find the statement period you want to download
  4. Click the download button (arrow icon) next to the statement

The system will generate your CSV file. For smaller statements, the download starts immediately. For larger statements, you will see a progress indicator while the file is being prepared.


For most statements, the CSV is ready instantly. A dialog appears with a Download button to save the file.

For statements with many line items, the system processes the export in the background:

  1. A “Preparing Export” dialog appears
  2. The system generates the file (this may take a few moments)
  3. Once ready, a Download button appears
  4. Click Download to save the file

The download is a ZIP archive containing:

  • the CSV file (or several CSV files, if the export was large enough to be split)
  • COLUMNS.txt, a plain-text reference describing every column in the file

Each generated export is kept for 24 hours. Requesting the same account, date range and grouping again within that window returns the file that was already built rather than rebuilding it.


Each row in the CSV represents a single line item from your royalty statement. Here is what each column means.

ColumnDescriptionExample
pay_periodPayment period in YYYYMM format202601
labelYour label nameMidnight Records
retailerPlatform nameSpotify
territoryCountry or region codeUS, GB, DE
typeTransaction typeStream, Download, UGC
catCatalog numberMR-2026-001
upcRelease UPC barcode840123456789
releaseRelease titleNeon Skyline
isrcTrack ISRC code (a unique identifier for each track)USRC12400001
track_artistArtist nameLuna Rivera
track_titleTrack titleGolden Hour
track_versionVersion or remix information (blank if none)Acoustic Version
track_countNumber of tracks1
purchase_qtyNumber of streams or sales4523
dsp_transaction_dateTransaction date from the platform2026-01-15
dsp_statement_idStatement reference IDSP-2026-0001

The examples below show a standard streaming line and a UGC line.

ColumnDescriptionStreaming lineUGC line
gross_usdGross revenue in USD for that line, before LabelGrid’s fees18.090000004.63000000
ColumnDescriptionStreaming lineUGC line
platform_fee_rateYour plan’s platform fee rate0.05000000 (5%)0.00000000
platform_fee_usdPlatform fee amount (shown as a negative value)-0.904500000.00000000
ugc_fee_rateYour plan’s UGC / Content ID fee rate0.000000000.20000000 (20%)
ugc_fee_usdUGC / Content ID fee amount (shown as a negative value)0.00000000-0.92600000
total_labelgrid_feeThe two fees added together (negative value)-0.90450000-0.92600000
net_revenue_usdYour final earnings after all LabelGrid fees17.185500003.70400000

If you are integrating this CSV into accounting software or a finance backend, here are the exact format details.

PropertyValue
EncodingUTF-8
DelimiterComma (,)
Quote characterDouble quote (")
Escape characterBackslash (\)
Line endingLF (\n)
Header rowAlways present as the first row
Total columns23 (fixed order, see column reference above)
DeliveryZIP archive containing the CSV plus a COLUMNS.txt reference file
Column groupTypePrecision
pay_periodStringYYYYMM (6 characters)
dsp_transaction_dateStringYYYY-MM-DD (10 characters)
purchase_qtyIntegerWhole number
gross_usd, *_fee_usd, net_revenue_usdDecimalUp to 8 decimal places
platform_fee_rate, ugc_fee_rateDecimalUp to 8 decimal places (e.g., 0.05000000 = 5%)
All other columnsStringVariable length
total_labelgrid_fee = platform_fee_usd + ugc_fee_usd
net_revenue_usd = gross_usd + total_labelgrid_fee
  • Empty fields: track_version and cat may be empty (two consecutive commas)
  • Text quoting: Fields containing commas or quotes are enclosed in double quotes. Double quotes within field values are removed during export.
  • Large exports: Exports over 150 MB are split into multiple CSV files (each with its own header row) and delivered as a ZIP archive
  • Sorting: Rows are ordered by pay_period descending, then by dsp_transaction_date descending

net_revenue_usd = gross_usd + total_labelgrid_fee

Since fees are negative values, they reduce your gross amount. Here is a full streaming line from the sample file, at a 5% platform fee rate:

Amount
Gross revenue (gross_usd)$18.09000000
Platform fee (5%)-$0.90450000
UGC / Content ID fee$0.00000000
Net revenue$17.18550000

Platform fee and UGC fee are separate categories that do not compound

Section titled “Platform fee and UGC fee are separate categories that do not compound”

This is the part most worth getting right if you are building a ledger against this export.

  • Both rates are charged on the same amount.
  • Neither fee is charged on the result of the other. The UGC fee is not applied to what remains after the platform fee, and the platform fee is not applied to what remains after the UGC fee.
  • The two amounts are added: total_labelgrid_fee = platform_fee_usd + ugc_fee_usd.

A worked example for a line where a statement carries both fee types, at a 5% platform rate and a 20% UGC rate on the same $100.00000000:

CalculationCorrect (additive)Incorrect (compounded)
Platform fee-$5.00000000-$5.00000000
UGC / Content ID fee-$20.00000000 (20% of $100.00)-$19.00000000 (20% of $95.00)
Total LabelGrid fee-$25.00000000-$24.00000000

The left column is the one that reconciles. A 5% platform rate and a 20% UGC rate come to a 25% deduction on that amount, not the 24% you get by applying one rate to the remainder of the other.

The UGC / Content ID fee applies to User-Generated Content earnings from platforms such as YouTube, TikTok, and SoundCloud. On lines from standard streaming platforms such as Spotify or Apple Music, ugc_fee_rate and ugc_fee_usd show 0.00.

Because rates are resolved per statement, most lines show one rate populated and the other at zero — a statement usually carries one kind of earning. If a statement does carry both kinds, both rates appear on every line of that statement, and the additive rule above is what applies. Do not assume exactly one of the two rate columns is non-zero; read whichever ones are populated and add them.

Fees are included in CSV exports starting from the October 2024 statement period. Earlier statements show revenue data without the fee breakdown columns.

If you read statements through the public API rather than the CSV export, the statement endpoints return the same split as three additional fields:

FieldDescription
platform_fee_usdStandard distribution fee charged on the statement
ugc_fee_usdUGC / Content ID fee charged on the statement
labelgrid_ugc_rateUGC / Content ID fee rate in effect when the statement was generated

Both amounts are negative and add up to labelgrid_fee. Fees are charged on the full amount settled on the statement, which includes any balance carried forward from earlier periods, so a rate multiplied by that period’s earnings alone will not always match the amount — read the amounts as authoritative.

All three fields are null on statements generated before the breakdown was recorded. Treat null as “not broken down” rather than as zero, and keep using labelgrid_fee as the fee total in every case.


Want to see what the export looks like before downloading your own? Download our sample file:

Download sample CSV

The sample contains placeholder data showing typical line items across multiple platforms and territories, in the 23-column layout described above. Every row in it satisfies the formulas in this article, so you can use it as a fixture when you build a parser.


  1. Go to Google Sheets
  2. Click File → Import
  3. Upload your CSV file
  4. Select “Comma” as the separator
  5. Click Import data
  1. Open Excel
  2. Click File → Open and select the CSV file
  3. Excel will automatically detect the comma-separated format
  • Filter by retailer to see earnings per platform
  • Pivot table by territory to find your strongest markets
  • Sum net_revenue_usd to verify your total statement amount
  • Sort by purchase_qty to find your most-streamed tracks
  • Group by release to compare album performance

Large statements with many line items may take longer to generate. The system polls for up to 5 minutes. If the export times out:

  1. Close the dialog
  2. Wait a few minutes
  3. Try downloading again

Only one export can process at a time. Wait for any current export to finish, then try again.

Make sure your spreadsheet application is set to UTF-8 encoding when importing. This ensures artist names and track titles with special characters display correctly.

Fee columns (platform_fee_rate, platform_fee_usd, etc.) are only available for statement periods from October 2024 onward. Earlier periods show revenue data without the fee breakdown.



Need help with your export? Contact our support team.

Not using LabelGrid yet?

Everything you just read about is available on our platform.

See what LabelGrid can do →