Verified
A number from a source that knows the truth: your distributor statement, a CMO payout (PRS, GEMA, ASCAP, APRA, TONO, Gramo), a connected Spotify for Artists account, or a directly-read contract clause.
Methodology
Recoup is a contract reader and an earnings projector. This page says, in plain English, exactly how we know what we know — and where the gaps are. The confidence chips throughout the app link here.
Recoup focuses on what your record contract actually says, and what your music is reasonably earning right now from streaming and radio.
In scope
Out of scope
Every number in Recoup carries one of three labels. The label tells you how directly we measured it.
A number from a source that knows the truth: your distributor statement, a CMO payout (PRS, GEMA, ASCAP, APRA, TONO, Gramo), a connected Spotify for Artists account, or a directly-read contract clause.
A number sourced from a reliable third-party tracker (Songstats Enterprise, public broadcaster APIs, scraped public charts) and multiplied by published country rates. Within a few percent of what statements will show, but not directly verified.
An estimate built from country averages — used when no direct or third-party data exists for that market or income stream. Useful for a ballpark, not for a tax return.
Internally we track seven provenance tiers. Each tier maps to one of the three user-facing labels above.
| Tier | What it is | User label |
|---|---|---|
| oauth | Connected to your account — Spotify for Artists, Apple for Artists, distributor login | verified |
| native | Read from a first-party broadcaster API (NRK PSAPI, SR open data, BBC RMS, ABC AU) | verified |
| statement | Parsed from a CMO or distributor statement you uploaded (TONO, Gramo, DistroKid) | verified |
| wrapi | Third-party tracker API (Songstats Enterprise — covers all major DSPs and 200+ countries) | tracked |
| scraped | Public charts and discovery feeds parsed without an official API | tracked |
| derived | Calculated from another tracked input plus a published rate (radio plays × country radio rate) | tracked |
| modeled | Country average applied where no per-song signal exists yet | modeled |
The rollup rule for any aggregated number is “worst label wins” — if one ingredient is modeled, the total reads as modeled.
What we can actually measure today, for each market we've tuned country rates for.
| Market | Streaming | Radio |
|---|---|---|
| NONorway | tracked | modeled |
| SESweden | tracked | modeled |
| DKDenmark | tracked | modeled |
| FIFinland | tracked | modeled |
| ISIceland | tracked | modeled |
| GBUnited Kingdom | tracked | modeled |
| DEGermany | tracked | modeled |
| AUAustralia | tracked | modeled |
Radio is modeled across every market at V1. Native radio connectors (NRK, SR, BBC, ABC) land in a follow-up — see the roadmap.
Streaming royalties are not a single number times a single rate. Each country pays a different per-stream rate, so we sum the contribution from every country separately. The formula below covers streaming master income — mechanical, publishing, and radio lines layer on top with their own per-country rates.
Formula
streaming master income = Σ over countries(streams_in_country × rate_in_country) × artist_share
Worked example
A song with 10,000 streams last month, split 70/30 between the US and Norway, on a 50% artist share contract. Rates shown are illustrative country averages (~$0.003 US, ~$0.005 NO) so the math reads cleanly:
US contribution = 7,000 × $0.003 = $21.00 NO contribution = 3,000 × $0.005 = $15.00 Total streaming income = $36.00 Artist share (50%) = $18.00 / month
The naive shortcut of multiplying total streams by a global average ($0.005) would give $50.00 — overestimating by about 39% because the global average assumes every stream paid like Norway, when most of these plays are in the lower-paying US market. Geo-aware math reflects the actual mix.
Informational — these are the publicly-documented APIs and datasets the projection sits on top of. No keys are printed here.