How it works
Where each number comes from — the extension for KDP royalties, the Amazon Ads API for spend, and one continuous calculation on top.
Two sources, one number
| Source | What it brings | How it is read |
|---|---|---|
| Amazon KDP | Royalties, units, KENP pages read | Browser extension, with your KDP session |
| Amazon Ads | Ad spend, ad-attributed sales, KU royalties from ads | Official Amazon Ads API, on our servers |
Everything is stored in your account, so the history stays even when you are offline, and the dashboard never has to re-download it.
Why the extension is needed for KDP
KDP has no public API. Its reports are protected by your Amazon session.
Replaying that session from a server would mean copying your cookies to a datacenter far from where you signed in — the exact pattern Amazon's account-protection systems treat as a takeover attempt, on the one account your whole business depends on.
So the fetch runs where the session already lives: your browser. Amazon sees a normal request from your own machine, and no Amazon credential ever reaches us.
Why Amazon Ads needs no extension
Amazon Ads does have an official API. You authorize read access once, and the sync runs server-side on a schedule — nothing to keep open.
The calculation
For every day, every book and every marketplace:
- Royalties are collected in the currency Amazon paid them in.
- Ad spend is collected per campaign, then attributed to the book it promotes.
- Both are converted to your reporting currency at the rate of their own date.
- Your tax rates are applied — VAT on ad spend, withholding on royalties.
- What is left is net profit.
Because every step is stored per day, any filter you apply — a marketplace, a book, a date range, a format — recomputes from the same base data.
How fresh the data is
TrueRoyalties syncs automatically, but it can only be as fresh as Amazon's own reports:
- KDP royalties — the estimator TrueRoyalties reads refreshes roughly every 24 to 48 hours.
- Amazon Ads — updated daily, and figures can still be revised for a few days.
So a sale you make this morning is normally visible tomorrow, not in ten minutes. See Sync and data freshness.