How it works
Where each number comes from: a session captured once and read by our servers for each store, the Amazon Ads API for spend, and the calculations on top.
Where each number comes from
| Source | What it brings | How it is read |
|---|---|---|
| Amazon KDP | Royalties, units, KENP pages read | A session captured once, then read from our own servers |
| Kobo Writing Life | Kobo sales, Kobo Plus reading, free downloads | Same: captured once, then read from our own servers |
| Draft2Digital | Royalties from every shop it distributes to | Browser extension, from your own session, once a day — the one platform still mid-move to the model above |
| Apple Books, Shopify, WooCommerce, Squarespace, ThriveCart, Fourthwall | Your sales on each store, title by title | An API key or the store's own authorization, then read from our own servers |
| Amazon storefronts | Ratings and written reviews | The browser extension, from your own browser |
| Amazon Ads | Ad spend, ad-attributed sales, KU royalties from ads | Official Amazon Ads API, on our servers |
| Meta Ads | Facebook and Instagram ad spend | Official Meta API, on our servers |
| TikTok Ads | TikTok ad spend | Official TikTok Ads API, on our servers |
| Your smart links | Clicks, countries, devices | Our own redirect — Amazon is not involved |
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 every store is read from a captured session, not a live browser
None of the platforms we connect this way — Amazon KDP, Kobo Writing Life, and every retailer after them — publish a public API. Their reports sit behind a session, and replaying one borrowed from your everyday browsing would mean copying cookies you never meant to hand over — the exact pattern an account-protection system is built to flag as a takeover attempt, on the one account your whole business depends on. So this is the standing architecture for every store platform we support, not a KDP-or-Kobo-specific design: a session of our own, captured once, then replayed from our servers on its own schedule — never a browser that has to stay open.
Connecting asks for that session of our own instead of borrowing yours: a window opens their sign-in page, you type your password there — never into the extension — and that fresh sign-in is what we capture. Your everyday browser session is left untouched. From then on, our servers replay that captured session on their own schedule, one account at a time, never as a fleet-wide burst. Reconnect any time in Platforms if a session ever expires.
Twelve more retailers already work this way, ahead of reading them. Barnes & Noble Press, ACX, Google Play Books and the rest capture and hold a session the moment you connect — see Platforms you can connect early — so the day we start reading each one, it is this same server-side model from day one, with nothing for you to reconnect or redo.
Draft2Digital is the one platform still catching up. Its session has not moved to this model yet, so the extension keeps reading its reports once a day, as long as Chrome is running and you stay signed in to draft2digital.com — the same way KDP and Kobo used to work before they moved.
Why your ad platforms need no extension
Amazon Ads, Meta Ads and TikTok Ads do have an official API. You authorize read access once, and our servers read your spend through it. No extension is involved: your figures refresh when you open TrueRoyalties, and once a day on their own.
The net-profit calculation
This is the one calculation that needs both sides. Pages read, reviews and clicks are read and stored as they are; net profit is the number nothing hands you ready-made.
For every day, every book and every marketplace:
- Royalties are collected in the currency each platform 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.
The exception is smart link clicks: those go through our own redirect, so they appear immediately. It is the one number on your dashboard that is live.