# TrueRoyalties — full content TrueRoyalties is the all-in-one dashboard for Amazon KDP authors and publishers: it combines KDP royalties, Amazon Ads spend, Kindle Unlimited pages read, series read-through, Best Sellers Rank, customer reviews and reader links across every marketplace, and computes the real net profit that neither KDP nor Amazon Ads shows. Base URL: https://trueroyalties.com Map of this site: https://trueroyalties.com/llms.txt # TrueRoyalties Documentation Track royalties, ad spend, Kindle Unlimited, series, ranks and reviews for every KDP book — and see the real profit KDP and Amazon Ads never show. Base URL: https://trueroyalties.com ## Documentation Index - [What is TrueRoyalties?](https://trueroyalties.com/docs/what-is-trueroyalties) - One dashboard for your whole KDP business — royalties, ad spend, Kindle Unlimited, series, ranks, reviews and links — and the real profit underneath all of it. - [Chrome extension](https://trueroyalties.com/docs/connect/extension) - The TrueRoyalties Connector reads your KDP reports from your own browser. What it installs, what it can see, and what it cannot. - [Net profit](https://trueroyalties.com/docs/metrics/net-profit) - The one number TrueRoyalties exists for — what goes into it, what stays out, and why royalties are shown before tax but profit after. - [Dashboard](https://trueroyalties.com/docs/app/dashboard) - Your headline numbers, the profit chart, and the books making or losing you the most money. - [ISBN barcode for your cover](https://trueroyalties.com/docs/tools/isbn-barcode) - When you need your own barcode on a KDP cover, where it goes, what the five-digit price block means, and how to make one. - [Plans and pricing](https://trueroyalties.com/docs/account/plans) - You never pick a plan. Your price follows your measured KDP royalties, and every feature is included at every level. - [Why my numbers differ from Amazon](https://trueroyalties.com/docs/help/numbers-dont-match) - The seven reasons a TrueRoyalties figure does not match KDP or the Amazon Ads console — almost always a definition, not a bug. - [Quick start](https://trueroyalties.com/docs/quick-start) - Create your account, connect KDP and Amazon Ads, and get your catalogue, your sales and your first real net-profit number in about five minutes. - [KDP royalties](https://trueroyalties.com/docs/connect/kdp) - What TrueRoyalties imports from KDP, how the first full-history import works, and why one KDP account maps to one TrueRoyalties account. - [Organic vs ad-generated](https://trueroyalties.com/docs/metrics/organic-vs-ad-generated) - How TrueRoyalties splits your sales between the ones your ads brought in and the ones that came for free. - [Build your own dashboard](https://trueroyalties.com/docs/app/widgets) - Pin any chart from Comparison — the world map included — or the Marketplaces table, to the bottom of your dashboard, and arrange them the way you work. - [Billing and trial](https://trueroyalties.com/docs/account/billing) - How the free trial works, where to add a card, how invoices and cancellation work. - [Troubleshooting](https://trueroyalties.com/docs/help/troubleshooting) - The common symptoms — extension not detected, import stuck, no ad spend, missing reviews — and the fix for each. - [How it works](https://trueroyalties.com/docs/how-it-works) - Where each number comes from — the extension for KDP royalties, ranks and reviews, the Amazon Ads API for spend, and the calculations on top. - [Amazon Ads](https://trueroyalties.com/docs/connect/amazon-ads) - Connect your Amazon Ads account to turn royalties into profit — what is imported, how spend is attributed to books, and what the first backfill looks like. - [True ACOS](https://trueroyalties.com/docs/metrics/true-acos) - Ad spend divided by the royalties your ads actually earned. Break-even is 100 %, and that is the point. - [Orders](https://trueroyalties.com/docs/app/orders) - Units sold, split between what your ads brought in and what sold on its own — by format, marketplace and title, and how the two sources are lined up. - [Settings](https://trueroyalties.com/docs/account/settings) - A map of every settings tab — preferences, connections, taxes, notifications, security and account. - [Privacy and security](https://trueroyalties.com/docs/help/privacy) - What TrueRoyalties reads, what it never sees, what a smart link records about the people who click it, and what happens to your data if you leave. - [Sync and data freshness](https://trueroyalties.com/docs/connect/syncing) - When TrueRoyalties refreshes your data, how fresh Amazon's own reports are, and how to force a sync. - [Taxes and currencies](https://trueroyalties.com/docs/metrics/taxes-and-currencies) - Set VAT on ad spend and KDP withholding once, pick your reporting currency, and every figure in the app becomes the one you actually bank. - [KENP](https://trueroyalties.com/docs/app/kenp) - Kindle Unlimited pages read — how many, which books, from which marketplaces, how many your ads paid for, and the rate a page actually earned you. - [Kindle Unlimited page rates](https://trueroyalties.com/docs/metrics/kindle-unlimited-page-rates) - What Kindle Unlimited pays, what a "page read" really means, where the rate comes from, and how to read our free rate page. - [Books](https://trueroyalties.com/docs/app/books) - Every title, with its royalties, ad spend, average CPC, net profit and True ACOS — the page that tells you which books to keep advertising. - [Series and read-through](https://trueroyalties.com/docs/app/series) - Group your books into a series to see read-through, royalties per reader, and the most you can pay to acquire a reader who enters the series. - [Marketplaces](https://trueroyalties.com/docs/app/marketplaces) - Profit country by country — where your catalog earns, where your ads leak, all converted into one currency. - [Comparison](https://trueroyalties.com/docs/app/comparison) - Slice any metric by book, marketplace, format, publication year or period — the free-form view for questions the other pages do not answer. - [BSR](https://trueroyalties.com/docs/app/bsr) - Your Amazon Best Sellers Rank for every book, on every storefront you sell in — read from your own browser. - [Reviews](https://trueroyalties.com/docs/app/reviews) - Every Amazon review of your books, from every storefront, in one place — with an alert when a new one lands. - [Smart links](https://trueroyalties.com/docs/app/smart-links) - One link. Every reader lands in their own Amazon store — one that actually sells your book — and you can re-point it later without reprinting anything. - [Your verified page](https://trueroyalties.com/docs/app/verified) - Publish a public page of your KDP royalties that other people can actually trust — and choose exactly how much of it to show. ## Full Documentation --- # What is TrueRoyalties? One dashboard for your whole KDP business — royalties, ad spend, Kindle Unlimited, series, ranks, reviews and links — and the real profit underneath all of it. URL: https://trueroyalties.com/docs/what-is-trueroyalties ## The problem Running a KDP business means reading a different screen for every question you have. KDP shows your royalties. Amazon Ads shows your spend. Neither shows your **profit** — so you can sell more every month and still lose money, because the two numbers live in two dashboards, in different currencies, before tax. And profit is only the first question. Are people finishing the book? Does book 1 carry readers into book 2? Where does each title rank today, in each country? What did that new review say? Every one of those lives somewhere else again, and none of them is on the same page as the money. ## What TrueRoyalties does TrueRoyalties is the all-in-one dashboard for Amazon KDP authors and publishers: it combines KDP royalties, Amazon Ads spend, Kindle Unlimited pages read, series read-through, Best Sellers Rank, customer reviews and reader links across every marketplace, and computes the real net profit that neither KDP nor Amazon Ads shows. That last part is the one no other dashboard does: ``` Net profit = Royalties − Ad spend ``` Per book, per marketplace, per day — across every KDP store you sell in. ![TrueRoyalties dashboard showing net profit, royalties, ad spend, True ACOS and units sold for an Amazon KDP catalog](/images/docs/dashboard.png) ## What's inside Four questions, four parts of the app. Every one of them reads the same imported data, so nothing has to be connected twice — the [features page](/features) walks through all four in order. | | Answers | Where | | --- | --- | --- | | **Profit** | Am I making money? | [Dashboard](/docs/app/dashboard), [Books](/docs/app/books), [Marketplaces](/docs/app/marketplaces), [Orders](/docs/app/orders), [Comparison](/docs/app/comparison) | | **Readers** | Is anyone reading, and how far? | [Kindle Unlimited](/docs/app/kenp), [Series & read-through](/docs/app/series) | | **Visibility** | Where do I rank, and what are they saying? | [Best Sellers Rank](/docs/app/bsr), [Reviews](/docs/app/reviews) | | **Sell & prove** | How do I sell more, and prove it? | [Smart links](/docs/app/smart-links), [Verified page](/docs/app/verified) | Two of those are worth a sentence on their own, because they are not reports — they do something with the numbers. A **[smart link](/docs/app/smart-links)** is one short link that sends every reader to *their own* Amazon store, with a QR code for your back matter and a click count that lands next to your royalties. Your **[verified page](/docs/app/verified)** is a public page of your real KDP figures that nobody can edit, including you — for proving an income claim without a screenshot anyone could have faked. ## What it handles for you The parts of the arithmetic that are tedious, easy to get wrong, and applied everywhere without you asking: | | | | --- | --- | | **Multi-marketplace** | US, UK, DE, FR, ES, IT, JP, CA, AU and the rest, in one view | | **Currencies** | Every amount converted at the rate of its own transaction date | | **Taxes** | KDP withholding tax and VAT on ad spend, applied automatically | | **Kindle Unlimited** | KENP pages read and KU royalties counted as real income | | **Ad attribution** | Which sales your ads actually generated, and what they cost | ## Free tools, no account needed Some of the arithmetic is useful before you are a customer, so it is public and free: the [KDP royalty calculator](/amazon-kdp-royalty-calculator), the [KENP calculator](/kenp-calculator), the [Kindle Unlimited page-rate history](/kindle-unlimited-page-rates), the [book sales calculator](/amazon-book-sales-calculator), the [ISBN barcode generator](/isbn-barcode-generator) and the [QR code generator](/qr-code-generator). They run entirely in your browser. ## What it never does TrueRoyalties is **read-only** on Amazon. It never changes your books, your prices, your campaigns or your bids. It reads your reports and does the maths. ## Try it before signing up The [live demo](https://trueroyalties.com/demo) opens the real app on a read-only sample account — no signup, no card. --- # Chrome extension The TrueRoyalties Connector reads your KDP reports from your own browser. What it installs, what it can see, and what it cannot. URL: https://trueroyalties.com/docs/connect/extension ## What it is **TrueRoyalties Connector** is the small browser extension that fetches your KDP reports. It is required: KDP has no public API, so there is no other way to read your royalties. Install it from the [Chrome Web Store](https://chromewebstore.google.com/detail/mafehnimnbbodfmifjfneljbcialmhcd). It works on **Chrome, Brave and Arc**. Other browsers are not supported yet. ## What it does - Reads your KDP royalty, order and KENP reports, using the KDP session already open in your browser. - Sends them to your TrueRoyalties account. - Copies your book covers so the app can display them. - Reads your Amazon customer reviews (see [Reviews](/docs/app/reviews)). - Shows a browser notification on a new sale, if you turn that on. - Checks a page **you named** for your verification token, when our servers cannot read it (see [Your verified page](/docs/app/verified)). ## What it cannot do - It **never sees your Amazon password**. It uses a session you opened yourself. - It **never writes** anything to Amazon — no price change, no campaign edit. By default it runs only on `kdpreports.amazon.com`, Amazon storefronts and TrueRoyalties. Its permission list is deliberately short: storage, alarms, notifications, and the request headers it needs to talk to KDP. **One optional extra.** Verifying a link on a site built with JavaScript (Wix, Squarespace, X, Instagram, TikTok) means opening that page in your browser, which needs a broader "read pages you visit" permission. It is **asked once, only when you add such a link**, and you press Allow yourself. Decline it and everything else works exactly the same. See [Privacy](/docs/help/privacy). ## Checking it is connected Click the extension icon. The popup shows whether it is connected to your account and when it last synced. Inside the app, **Settings → Connections** shows the same status, plus a **Sync now** button. ## Keeping it working | Symptom | Fix | | --- | --- | | "Extension not detected" on a page that was already open | Reload the tab — Chrome does not inject the extension into tabs opened before install | | Import stops after a while | Sign back in to [KDP](https://kdp.amazon.com/bookshelf); the session expired | | Nothing syncs at all | Check the extension is enabled in `chrome://extensions` | More in [Troubleshooting](/docs/help/troubleshooting). ## Updates Chrome updates the extension on its own. You never need to reinstall it. --- # Net profit The one number TrueRoyalties exists for — what goes into it, what stays out, and why royalties are shown before tax but profit after. URL: https://trueroyalties.com/docs/metrics/net-profit ## The formula ``` Net profit = Royalties kept − Ad spend (tax included) ``` "Royalties kept" is your royalties **after KDP withholding tax**. Ad spend is what your ads really cost, **VAT included**. ![Dashboard KPI cards: net profit, royalties, ad spend, True ACOS, units sold](/images/docs/dashboard-kpis.png) ## What counts as royalties Everything KDP pays you, in one figure: - Paid sales — ebook, paperback, hardcover - Kindle Unlimited pages read - Expanded Distribution The **Royalties** card shows the **gross** amount, before withholding tax. That is deliberate: it is the figure you can compare, line for line, with your KDP dashboard. ## What counts as ad spend All your Amazon Ads spend, including the part that cannot be tied to a specific book (Sponsored Brands, ads on ASINs outside your catalog). It is real money, so it belongs in the total. Spend is counted **with VAT or GST**, at the rate you set per marketplace — see [taxes and currencies](/docs/metrics/taxes-and-currencies). ## Where withholding tax appears Only in net profit. So the two cards read differently on purpose: | Card | Tax treatment | | --- | --- | | Royalties | Gross — matches KDP | | Net profit | After withholding — matches your bank | ## Per book, per marketplace, per day The same calculation runs at every level — per title on [Books](/docs/app/books), per storefront on [Marketplaces](/docs/app/marketplaces), and any other way you slice it on [Comparison](/docs/app/comparison). A book's net profit is its royalties minus the ad spend attributed to it; your total is the sum of everything, including unattributable spend. That is why the sum of your books' net profit can be **higher** than your global net profit: brand campaigns count against the total, but belong to no single book. ## Filters change the number Every filter — date range, marketplace, book, format, distribution — recomputes net profit from the underlying daily data. Nothing is estimated from a total. One exception worth knowing: selecting a distribution that has no ads (Expanded Distribution only) removes ad spend from the view, so ad-based metrics are hidden rather than shown as zero. --- # Dashboard Your headline numbers, the profit chart, and the books making or losing you the most money. URL: https://trueroyalties.com/docs/app/dashboard The dashboard answers one question: **am I making money right now?** ![TrueRoyalties dashboard with KPI cards, a daily profit chart and a top earners carousel](/images/docs/dashboard.png) ## The cards ![Dashboard KPI cards: net profit, royalties, ad spend, True ACOS, units sold and smart link clicks](/images/docs/dashboard-kpis.png) | Card | What it means | | --- | --- | | **Net profit** | Royalties kept minus ad spend. The number that matters | | **Royalties** | Gross royalties, matching KDP, with the share your ads generated | | **Ad spend** | Total Amazon Ads spend, VAT included | | **True ACOS** | Ad spend ÷ ad-generated royalties. Under 100 % is profitable | | **Units sold** | Copies sold, with the share your ads generated | | **Smart link clicks** | How many people opened your [smart links](/docs/app/smart-links). Appears once you have one | Click a card to change what the chart below plots. Selecting **Smart link clicks** draws them over your royalties and ad spend, on their own axis — what your marketing did, next to what it earned. That card follows your marketplace filter, but it **disappears when you filter by distribution**: a click happens before the reader has chosen a channel, so it belongs to none of them. ## The chart Daily performance over the selected range, as bars, lines or an area. It follows the cards you select, so you can put royalties and ad spend side by side and see the gap. Your preferred chart style is remembered in **Settings → Preferences**. ## Top earners and top spenders ![Top earners carousel showing the five books with the highest royalties, with net profit and spend](/images/docs/dashboard-top-books.png) Two ranked views of the same catalog: the books earning the most, and the books spending the most. Switching between them is the fastest way to spot a title that sells well and still loses money. ## Filters ![Dashboard filter bar with marketplace, distribution, date range and currency selectors](/images/docs/dashboard-filters.png) Everything on the page reacts to: - **Marketplace** — one store, or all of them - **Distribution** — Amazon retail, Kindle Unlimited, Expanded Distribution - **Date range** — presets or a custom range - **Currency** — a display currency, without changing your reporting currency Filters stay in the URL, so a filtered view can be bookmarked or shared. ## Make it yours Below the fixed cards, you can pin any chart from [Comparison](/docs/app/comparison) — or the [Marketplaces](/docs/app/marketplaces) table — and arrange them however you like. They follow the same filters as the rest of the page. See [Build your own dashboard](/docs/app/widgets). ## If a number looks wrong Start with [Why my numbers differ from KDP](/docs/help/numbers-dont-match) — most gaps are a date range, a currency, or a tax rate that has not been set. --- # ISBN barcode for your cover When you need your own barcode on a KDP cover, where it goes, what the five-digit price block means, and how to make one. URL: https://trueroyalties.com/docs/tools/isbn-barcode The barcode on the back of a printed book is just your ISBN, drawn so a till can read it. You can make one here: [ISBN Barcode Generator](/isbn-barcode-generator). It is free and needs no account. ## First: you probably do not need one If you publish a paperback or hardcover through KDP and do nothing, **Amazon puts a barcode on your back cover for you, at no cost** — and its own barcode is guaranteed to pass its manufacturing checks. You only need to supply your own if: - you want the **price encoded** in it, - you are printing the same cover **somewhere other than KDP**, or - your designer wants the cover finished in **one file**. If none of those applies, leave the area blank and let Amazon do it. What you must **not** do is put artwork or text in that area — Amazon prints over it, and a cover with something underneath is rejected. ## Where it goes Lower right corner of the back cover, in a white box: | | | |---|---| | Suggested size | 2 × 1.2 in (50.8 × 30.5 mm) | | Minimum size | 1.4 × 0.8 in (35.56 × 20.3 mm) | | Clear of the spine and the trim edge | at least 0.25 in (6.3 mm) | | Colour | 100% black on a solid white background | | File | vector if possible, otherwise 300 PPI | Reserve that space in the first draft of the design rather than clearing it later. The generator measures every barcode against these numbers and tells you whether it fits before you download it. ## Making one ![The ISBN barcode generator: an ISBN box reading 9781234567897, a price block set to US dollar 12.99, and the resulting barcode with its 51299 price add-on, sized 50.8 by 26.8 mm and passing KDP's box, minimum size and 100% black checks](/images/docs/isbn-barcode-generator.png) 1. **Type your ISBN.** Thirteen digits, or the older ten-digit form, which is converted for you. Hyphens and spaces are fine — type them the way they appear on your ISBN certificate and they are printed the same way. 2. **Choose a price block**, or none. See below. 3. **Download the PDF** and give it to whoever assembles your cover. If the number is not a valid ISBN the page says so in red and draws nothing. It will not offer to "correct" it for you: a check digit proves that one of the digits is wrong without saying which, so a suggested fix would produce a perfectly valid ISBN belonging to a different book. ## The five-digit price block The small separate barcode to the right of the main one is the price. Its first digit is the currency, the other four the amount, so `51299` means US$12.99. **It is optional, and leaving it out is usually right.** The barcode is printed into the cover, so a price you change later means uploading a new cover — and Amazon discounts at its own discretion whatever your barcode says. KDP's rule is simply that the code must match your list price if you include one, which is a rejection you avoid entirely by not encoding a price. If you are still choosing that price, the [royalty calculator](/amazon-kdp-royalty-calculator) shows what each one actually pays you. When you want the block but not a price, use **90000**. It is the code the book industry designates for "no price encoded", and KDP's own example barcode carries it. | You are pricing in | What to do | |---|---| | US dollars | Encode it, up to $250 — KDP's maximum list price | | Canadian dollars or pounds | Encode it, or use 90000 | | Euros, rupees, yen, anything else | Use **90000** and print the price as text | There is no code for the euro. The scheme was designed in the 1980s around a handful of English-speaking markets and never gained one. **Ignore any tool offering Australian or New Zealand dollars.** Those codes were withdrawn and reused: since 2004 the same digits mean US dollars over $100, so a block encoding A$12.99 is read by a United States till as **US$399.99**. ## Which file to use | Format | Use it for | |---|---| | **PDF** | Your printer or cover designer. Vector, and its black is a true single-ink black. | | **SVG** | Design software that prefers it. Opens at its true physical size. | | **PNG** | Only when nothing else is accepted, at 300 PPI or more. | Whichever you choose, place it as its own object in the cover file rather than flattening it into the artwork. ## What this tool does not do It does not issue ISBNs — nobody can generate one, it has to be assigned to you. KDP gives a free ISBN for paperbacks and hardcovers, usable only on KDP and showing the imprint "Independently published". Buying your own from your national agency lets you use the same ISBN with any printer and put your own imprint on it. Ebooks and low-content books need no ISBN at all on KDP. Nothing you type is sent anywhere: the barcode is drawn in your browser, so an unannounced title stays unannounced. --- # Plans and pricing You never pick a plan. Your price follows your measured KDP royalties, and every feature is included at every level. URL: https://trueroyalties.com/docs/account/plans ## One product, five price steps There is no feature ladder. Every account gets the whole product: profit, Kindle Unlimited and series read-through, Best Sellers Rank and reviews, smart links and a verified page — with unlimited books, full history and every marketplace. The [features page](/features) lists all of it. Only the price moves, and it follows what you earn: | Your monthly KDP royalties | Price | | --- | --- | | Up to $300 | $2.99 / month | | $300 – $1,000 | $9.99 / month | | $1,000 – $5,000 | $19.99 / month | | $5,000 – $10,000 | $24.99 / month | | Above $10,000 | $29.99 / month | ![TrueRoyalties pricing page with the royalty slider and the included features](/images/docs/pricing.png) ## You never self-report TrueRoyalties already reads your royalties — through the [extension](/docs/connect/extension), from your own KDP reports — so the right step is applied automatically. Nothing to declare, nothing to upgrade, and every page of the app is included at every step. Each month, your price is set from **last month's** royalties. Earn less and it drops on the next cycle. Earn more and it moves up a step — and you always get an email before any increase. ## Annual billing Pay yearly and you get **two months free** — the annual price is ten times the monthly one. ## Free trial **14 days, full access, no credit card.** At the end of the trial you add a payment method to keep syncing. Nothing is deleted if you do not. ## No commission TrueRoyalties never takes a percentage of your royalties. The subscription is the only thing you ever pay. ## Cancelling Anytime, from **Settings → Billing**. You keep access until the end of the period you have paid for. --- # Why my numbers differ from Amazon The seven reasons a TrueRoyalties figure does not match KDP or the Amazon Ads console — almost always a definition, not a bug. URL: https://trueroyalties.com/docs/help/numbers-dont-match Check these in order. In practice one of the first three explains it. ## 1. The date range KDP and the Ads console default to their own periods, in their own time zone. Compare the **same range** on both sides before concluding anything. ## 2. The currency KDP's multi-currency total uses a coarse approximation. TrueRoyalties converts each transaction at the rate of **its own date**, which is more precise — so a gap of around **1 %** on a multi-country catalog is normal and expected. To match KDP to the cent, view your dashboard in the currency KDP pays you in. ## 3. Gross versus net royalties The **Royalties** card is gross, like KDP. Withholding tax is applied only to **net profit**. If you compare net profit to KDP's royalties, they will never agree — by design, and [net profit](/docs/metrics/net-profit) explains exactly where each tax lands. ## 4. Units versus purchases (ads) This is the classic one. The Amazon Ads console's headline **Purchases** tile counts **orders**; TrueRoyalties counts **units** — copies. One order can contain several copies, so our number is normally 1 to 3 % higher. The comparable console column is **Units sold**, not Purchases. Units is the deliberate choice: computing organic sales requires units on both sides of the subtraction. ## 5. VAT on ad spend The Ads console shows spend **before** tax. TrueRoyalties shows what you are invoiced, VAT included, using the rates in **Settings → Taxes**. Different by design. ## 6. Freshness KDP's estimator refreshes every 24 to 48 hours, and Amazon revises the last few days of ad data. Comparing two dashboards that refreshed at different moments will always show small gaps. ## 7. Print orders ship later Amazon records a paperback or hardcover sale when it **ships**, not when it is ordered. At the edge of a date range, ad-attributed print units can appear on one side and not the other. ## Still off? If the gap survives all seven — same range, same currency, gross versus gross — [contact us](https://trueroyalties.com/contact) with the page, the range and the two figures. Amazon itself only treats a gap above 5 % as worth investigating. --- # Quick start Create your account, connect KDP and Amazon Ads, and get your catalogue, your sales and your first real net-profit number in about five minutes. URL: https://trueroyalties.com/docs/quick-start Five steps, about five minutes. Steps 2 and 3 bring in your whole catalogue — its sales, its Kindle Unlimited pages read, and then its [ranks](/docs/app/bsr) and [reviews](/docs/app/reviews). Step 4 adds Amazon Ads, which is what turns royalties into **profit**. ## 1. Create your account Sign up with any email — it does **not** have to be your Amazon email. You get a **14-day free trial**, no credit card. After you verify your email, the setup wizard opens automatically. ## 2. Install the browser extension KDP has no public API, so royalties are read by the **TrueRoyalties Connector** extension, in your own browser, with your own KDP session. ![Onboarding step asking which browser to install the TrueRoyalties extension on: Brave, Arc, Google Chrome or others](/images/docs/onboarding-install.png) Pick your browser and install it. Chrome, Brave and Arc are supported. Come back to the tab — it continues on its own. ## 3. Sign in to KDP The import needs an active KDP session, so sign in on [kdp.amazon.com](https://kdp.amazon.com/bookshelf) if you are signed out. ![Onboarding panel with a Sign in to KDP button and an I have signed in button](/images/docs/onboarding-kdp.png) The first import then starts by itself and pulls **your full history**, not just today. Big catalogs take a few minutes — you can leave the tab running. ![Import progress bar reading Importing your KDP data at 42 percent, 12 titles found](/images/docs/onboarding-progress.png) > **Important.** One KDP account can be linked to one TrueRoyalties account, > permanently. Make sure you are signed in to the right Amazon account before > importing. ## 4. Connect Amazon Ads This step is optional in the wizard, but without it TrueRoyalties only knows your income — not your costs. ![Onboarding step offering to connect an Amazon Ads account or skip for now](/images/docs/onboarding-ads.png) You are sent to Amazon to authorize read access, then back to the app. Ad history is backfilled automatically. See [Amazon Ads](/docs/connect/amazon-ads). ## 5. Read your dashboard You land on the dashboard with five numbers: net profit, royalties, ad spend, True ACOS and units sold. ![Dashboard KPI cards showing net profit, royalties, ad spend, True ACOS and units sold](/images/docs/dashboard-kpis.png) Before trusting the figures to the cent, set your rates once in **Settings → Taxes** — see [Taxes and currencies](/docs/metrics/taxes-and-currencies). ## 6. Then, when you want more than numbers Neither is needed to see your profit, and both take a minute: - **[Smart links](/docs/app/smart-links)** — one link that sends every reader to their own Amazon store, with a QR code for the back matter of your paperback. - **[Your verified page](/docs/app/verified)** — a public page of your real figures, for proving what you earn without a screenshot. --- # KDP royalties What TrueRoyalties imports from KDP, how the first full-history import works, and why one KDP account maps to one TrueRoyalties account. URL: https://trueroyalties.com/docs/connect/kdp ## What is imported From your KDP reports, three families of data: - **Royalties** — the money, per book, per marketplace, per day, in the currency Amazon paid it in. - **Orders** — units ordered, by format (ebook, paperback, hardcover). - **KENP** — Kindle Unlimited pages read. Together they cover paid sales, Kindle Unlimited and Expanded Distribution. ## The first import The first sync pulls **your entire history**, back to the creation of your KDP account — not just the current month. On a large catalog it can take several minutes, and it continues even if you switch tabs. Every later sync only re-reads the **last 60 days**, which is the window Amazon can still revise. Older data is already stored and never re-downloaded. ## You must be signed in to KDP The extension borrows the session in your browser. If you are signed out of [KDP](https://kdp.amazon.com/bookshelf), the import cannot run and the app tells you so. Sign in, and it resumes on its own. ## One KDP account, one TrueRoyalties account A KDP account can be linked to a single TrueRoyalties account, and the link is **permanent**. It protects your royalty data and keeps trials honest. If you connect a KDP account that is already linked elsewhere, setup stops and explains which case you hit: | Message | Meaning | | --- | --- | | Account locked | This TrueRoyalties account is already tied to a different KDP account | | Account taken | This KDP account already belongs to another live TrueRoyalties account | | Trial already used | This KDP account has already used its free trial | | Account unverified | The Amazon account signed in is not a KDP account, or its setup is incomplete | Contact [support](https://trueroyalties.com/contact) if you believe a block is wrong. ## Changing the reporting currency KDP returns amounts converted to the currency you ask for. When you change your reporting currency, TrueRoyalties re-imports the full history in that currency so past and present agree. See [Taxes and currencies](/docs/metrics/taxes-and-currencies). --- # Organic vs ad-generated How TrueRoyalties splits your sales between the ones your ads brought in and the ones that came for free. URL: https://trueroyalties.com/docs/metrics/organic-vs-ad-generated ## The split ``` Total units = Ad-generated + Organic ``` **Ad-generated** is what Amazon attributes to your ads: someone clicked an ad and bought within Amazon's attribution window (14 days for books). **Organic** is everything else — what your catalog sold without you paying for the click. ![Daily units on the Orders page as a stacked bar chart, each day split into organic units in blue and ad-generated units in orange](/images/docs/orders-organic-split.png) ## Why it matters Organic sales are the honest measure of whether your book has traction. A title that is 100 % ad-generated stops selling the day you stop paying. A title with a healthy organic share has built its own momentum. The same split is available for Kindle Unlimited pages, on the [KENP page](/docs/app/kenp). ## Where the numbers come from - **Total** comes from KDP — it is the ground truth of what sold. - **Ad-generated** comes from Amazon Ads. - **Organic** is the subtraction, never a separate report. ## Two honest limitations **Attribution is Amazon's model, not a fact.** Amazon decides what counts as ad-driven. A reader who clicks an ad, thinks it over for three weeks and then buys is counted as organic. **Ads also lift organic sales.** Advertising improves rank, and better rank sells copies that are recorded as organic. So the ad-generated share is a floor of what your ads did, not a ceiling. ## Timing Amazon reports a print sale when it **ships**, not when it is ordered. So ad-attributed print orders can appear a day or two after the click. The Orders page tells you how many are still pending shipping. --- # Build your own dashboard Pin any chart from Comparison — the world map included — or the Marketplaces table, to the bottom of your dashboard, and arrange them the way you work. URL: https://trueroyalties.com/docs/app/widgets The top of your dashboard is fixed on purpose: it answers "am I making money". Underneath it, **you decide what else you want to see every day.** ![The My widgets section at the bottom of the dashboard, showing a pinned royalties-by-marketplace donut](/images/docs/dashboard-widgets.png) ## Pin a view Go to [Comparison](/docs/app/comparison) or [Marketplaces](/docs/app/marketplaces), set the view up exactly as you want it, then click **Add to Dashboard**. ![The Comparison view switcher next to an Add to Dashboard button](/images/docs/comparison-add-to-dashboard.png) What gets saved is the view itself — the metric, the breakdown, the toggles, and the column a table is sorted by. Set a timeline to _All time_ and _Cumulative_ before pinning it, and that is how it comes back. Once a view is pinned, the same button reads **Remove from Dashboard**. Clicking it unpins the view. There is no confirmation, because the same button puts it straight back. You can pin up to **12 widgets**. ## Your widgets follow the dashboard's filters A widget is part of the page, not a snapshot of the day you created it. Change the date range, the currency, the marketplace or the distribution channel at the top of the dashboard, and every widget moves with it — so a widget can never disagree with the cards above it. Two things are worth knowing: - Some views are **all time** by nature — a year-over-year timeline, the leverage curve, or a breakdown by publication year. Those carry an **All time** badge, so you know the date range is not being ignored by accident. - Book and format filters are **saved with the widget**, because the dashboard has no such filter. That is what lets you pin "Royalties by marketplace, for this one book". - A widget that **cannot** answer under your current filter says so instead of showing zeros. Net profit, Ad spend and True ACOS all need Amazon ad spend, and a distribution set to Kindle Unlimited or Expanded Distribution alone has none — include **Retail** to bring those widgets back. ## Arrange, rename, remove ![Arrange mode showing a widget's header bar with a grip, its name, move up and down arrows, rename and remove buttons](/images/docs/dashboard-widgets-arrange.png) Click **Arrange** and every widget gets a header bar. **Grab it anywhere** — the grip is just the hint, not the only spot — and drag the widget where you want it. It follows your cursor in both directions while you move it, and drops into the nearest slot when you let go. The buttons on that bar keep their own job: | Control | What it does | | ------- | ----------------------------------- | | **↑ ↓** | Move it one place, without dragging | | **✎** | Give it your own name | | **🗑** | Remove it from the dashboard | Click **Done** when you are finished. Your data is never touched — removing a widget only removes the card. ## Changes are saved as you make them Changing a widget's metric, its breakdown, its toggles or a table's sort column is saved immediately. When you come back, you find your dashboard the way you left it. The one exception is the year checkboxes under a year-over-year chart: those hide a line while you read, and are not remembered. --- # Billing and trial How the free trial works, where to add a card, how invoices and cancellation work. URL: https://trueroyalties.com/docs/account/billing Everything lives in **Settings → Billing**, split into **Plan** and **Payment**. ## The free trial Your trial starts automatically when you create your account: **14 days, full access, no credit card**. Nothing is charged during the trial, and nothing is charged when it ends — the sync simply pauses until you add a payment method. ## Adding a payment method **Settings → Billing → Payment**. Payments are handled by Stripe; card details never touch our servers. ## Your invoices The billing page opens the Stripe customer portal, where you can download every invoice, update your card, or change your billing address and VAT number. ## When your price changes Your price step is recomputed each month from the previous month's royalties. A decrease applies on its own. An **increase is always announced by email first**. See [Plans and pricing](/docs/account/plans). ## Switching to annual From **Settings → Billing → Plan**. Annual costs ten months for twelve. ## Cancelling **Settings → Billing → Plan → Cancel**. You keep access until the end of the period you have already paid for. Nothing is deleted when it lapses — your data is still there if you come back. ## Deleting your account That is a different action, on **Settings → Account**. It is permanent: your data is erased and the link to your KDP account is released. --- # Troubleshooting The common symptoms — extension not detected, import stuck, no ad spend, missing reviews — and the fix for each. URL: https://trueroyalties.com/docs/help/troubleshooting ## "Extension not detected" Chrome does not inject a freshly installed extension into tabs that were already open. 1. Reload the TrueRoyalties tab. 2. Check the extension is enabled in `chrome://extensions`. 3. Click the extension icon — the popup should say it is connected. ## The import never finishes Almost always an expired KDP session. 1. Open [KDP](https://kdp.amazon.com/bookshelf) and sign in. 2. Come back to TrueRoyalties — the import resumes on its own. The first import covers your whole history, so on a large catalog several minutes is normal. Leave the tab open. ## Ad spend is zero or too low - **Amazon Ads not connected** — connect it in **Settings → Connections**. - **First import still running** — the ad backfill walks backwards through your history and can take hours. Older periods fill in progressively. - **Filtered view** — a distribution filter without Amazon retail has no ad spend by definition. ## "Amazon Ads spend may be out of date" Leave the tab open. Ad spend refreshes on its own once the last successful sync is more than 2 hours old, and Amazon takes a few minutes to build the report — there is nothing to press. The one exception is a message saying Amazon needs you to reconnect: that authorization expired or was revoked on Amazon's side, and only you can renew it, in **Settings → Connections**. ## Nothing has updated since yesterday That is often correct: KDP's estimator only refreshes every 24 to 48 hours. See [Sync and data freshness](/docs/connect/syncing). To force a check: **Settings → Connections → Sync now**. ## "Partial data" notice The range you asked for holds more rows than can be read at once, so the figures shown are incomplete. Narrow the date range. If it keeps appearing on ordinary ranges, tell us — it should not. ## Setup is blocked with a message about my KDP account One KDP account maps to one TrueRoyalties account, permanently. The four possible messages, and what they mean, are listed in [KDP royalties](/docs/connect/kdp). ## Reviews are missing for a country Amazon requires a session to show review pages, so a storefront you are not signed in on cannot be read. Sign in on that Amazon store, and TrueRoyalties picks it up automatically. ## A book is missing Check the date range first — a title with no sales in the range does not appear. If it has sales and is still missing, run a manual sync, then contact us. ## My smart link shows fewer clicks than I expected Three normal explanations before it is a bug: - **Bot previews are filtered out.** Facebook, Slack and WhatsApp open your link themselves to build the preview card. Those are counted separately, under *Bots filtered*, on purpose. - **Clicks and unique visitors are different numbers.** A visitor is counted once per day; three visits in an afternoon are three clicks and one visitor. - **A VPN moves the reader.** Someone browsing through a US VPN looks American to every website, so they are sent to amazon.com. Clicks themselves appear immediately — there is no aggregation delay to wait for. ## My verified link will not verify If the page is built with JavaScript — Wix, Squarespace, Webflow, Notion, X, Instagram, TikTok — our servers receive an empty shell, so your token can be on screen and invisible to us. Install the extension and press **Allow** when it asks to read pages; it then opens the page in your own browser and reports what it saw. For a website, a DNS TXT record is the sturdiest option and needs no extension at all. See [Your verified page](/docs/app/verified). ## The world map shows land, but no countries or colours The map draws its terrain and then stops: no borders, no country names, none of your storefronts coloured in. This is almost always a **browser extension**. The map builds its detail in a background worker, and an extension that touches how a page starts one — some privacy, ad-blocking and password extensions do — stops it without any error message. Open the page in a **private window**, where extensions are off by default: - The map works → an extension is the cause. Turn yours off one at a time on this site to find it. - The map is still bare → tell us, with a screenshot of the browser Console (right-click → Inspect → Console). That is the one place the real error shows. ## I cannot sign in The sign-in page opens on the **password** form. If you never set a password — accounts created with a one-time code do not have one — choose **Sign in with OTP code** and we email you a fresh code. ## Still stuck [Contact support](https://trueroyalties.com/contact) with the page, the date range and what you expected to see. --- # How it works Where each number comes from — the extension for KDP royalties, ranks and reviews, the Amazon Ads API for spend, and the calculations on top. URL: https://trueroyalties.com/docs/how-it-works ## Where each number comes from | Source | What it brings | How it is read | | --- | --- | --- | | **Amazon KDP** | Royalties, units, KENP pages read | Browser extension, with your KDP session | | **Amazon storefronts** | Best Sellers Rank and category ranks, ratings and written reviews | The same extension, from your own browser | | **Amazon Ads** | Ad spend, ad-attributed sales, KU royalties from ads | Official Amazon 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 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 net-profit calculation This is the one calculation that needs both sides. Pages read, ranks, 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: 1. **Royalties** are collected in the currency Amazon paid them in. 2. **Ad spend** is collected per campaign, then attributed to the book it promotes. 3. Both are converted to your reporting currency **at the rate of their own date**. 4. Your **tax rates** are applied — VAT on ad spend, withholding on royalties. 5. 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](/docs/connect/syncing). 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. --- # Amazon Ads Connect your Amazon Ads account to turn royalties into profit — what is imported, how spend is attributed to books, and what the first backfill looks like. URL: https://trueroyalties.com/docs/connect/amazon-ads ## Why connect it Without Amazon Ads, TrueRoyalties shows what you **earn**. With it, it shows what you **keep**. Ad spend is the other half of the subtraction. ## Connecting Go to **Settings → Connections → Amazon Ads** and authorize access. You are sent to Amazon, you approve, and you come back **to the page you left**. Access is **read-only** — campaigns, bids and budgets are never touched. Your ad accounts are detected automatically, across every marketplace you advertise in. ## Reconnecting If TrueRoyalties says Amazon wants you to reconnect, your authorization expired or was revoked on Amazon's side. Connect again from the same place. Connecting is not a sync — it restores the permission to read your spend. A sync starts straight after, on its own, and the card tells you it is running. Your spend is up to date when that finishes, not when the connection succeeds. ## The first import The first sync backfills your ad history. On long histories it runs in segments and can take a while — sometimes hours. While it runs, ad spend on the dashboard may look **low or missing** for older periods. That is the backfill still walking backwards, not lost data. It settles by itself. ## How spend is attributed Ad spend is grouped into three buckets, which the dashboard shows separately: | Bucket | What it is | | --- | --- | | **Your ASINs** | Sponsored Products on books in your KDP catalog — matched to the book | | **ASINs outside your KDP catalog** | Sponsored Products on ASINs we cannot match to your catalog | | **Sponsored Brands** | Brand campaigns, which Amazon does not report per ASIN | Only the first bucket can be attributed to a specific book. The other two still count against your **total** net profit — they are real money — but cannot appear in a per-book line. ## What is imported - Ad spend, per day, per marketplace - Ad-attributed units and sales - Kindle Unlimited pages read and KU royalties generated by ads - **Impressions and clicks** — how many times Amazon showed your ads, and how many times readers clicked. Together they give your average cost per click. See [Comparison](/docs/app/comparison). ## VAT on ad spend Amazon invoices ads with VAT or GST in many countries, and its reports show amounts **before** tax. Set your rate per marketplace in **Settings → Taxes** so spend is counted at what it really costs you. See [Taxes and currencies](/docs/metrics/taxes-and-currencies). ## Disconnecting **Settings → Connections** lets you disconnect Amazon Ads, and delete the imported ad data if you want. Your KDP royalties are unaffected. --- # True ACOS Ad spend divided by the royalties your ads actually earned. Break-even is 100 %, and that is the point. URL: https://trueroyalties.com/docs/metrics/true-acos ## What it measures ``` True ACOS = Ad spend ÷ Ad-generated royalties ``` In plain words: **for every $1 of royalty my ads earned me, how much did I spend to get it?** - Under **100 %** — the ads pay for themselves. - Over **100 %** — every ad-driven royalty costs more than it returns. ## Why not plain ACOS Amazon's ACOS divides ad spend by ad-attributed **sales value** — the price the customer paid. But you do not keep the customer's price, you keep a royalty. On a $4.99 ebook at 70 %, roughly $3.44 reaches you, and on a paperback far less. ACOS therefore looks flattering on books where your royalty share is small. True ACOS uses the royalty, so break-even is exactly 100 % on every book, every format, every marketplace. Some tools use "TACOS" for ad spend ÷ **total** sales. That measures how ad-dependent you are, not whether the ads are profitable. Both are useful; they answer different questions. ## How ad-generated royalties are built Two parts: | Part | Source | | --- | --- | | **Paid sales** | Ad-attributed units × the book's real royalty per sale, taken from your KDP data | | **Kindle Unlimited** | The KU royalties Amazon reports directly against your ads | The paid part is an **estimate**, because Amazon never reports the author's royalty on a sale — only the retail value. TrueRoyalties uses the royalty per sale that book actually realised, rather than a generic 70 % rule. ## Reading it well - A high True ACOS on a **book 1** can be fine if the series pays it back. Check [Series and read-through](/docs/app/series) before cutting the campaign. - True ACOS ignores the organic lift your ads create, so it is a **conservative** measure. - It needs Amazon Ads connected. Without it, the card is empty. ## Where to find it On the dashboard as a KPI card, per book on [Books](/docs/app/books), and per marketplace on [Marketplaces](/docs/app/marketplaces). --- # Orders Units sold, split between what your ads brought in and what sold on its own — by format, marketplace and title, and how the two sources are lined up. URL: https://trueroyalties.com/docs/app/orders Orders is about **volume**, not money. It answers: how many copies moved, and who brought the reader — your ads or your catalog? Everything on this page is a plain unit count: no currency conversion, no tax. ![Orders page with total, organic and ad-generated unit cards, a stacked chart and a units-by-marketplace table](/images/docs/orders.png) ## The cards | Card | Meaning | | --- | --- | | **Total units** | Every copy ordered in the range | | **Organic** | Units that came without an attributed ad click, with their share and royalties | | **Ad-generated** | Units Amazon attributes to your ads, same detail | | **Books ordered** | How many distinct titles sold | | **Marketplaces** | How many stores you sold in | Read the split rather than the totals: a rising ad-generated share with flat total units means you are paying for sales you used to get for free. ## Where the numbers come from Two sources, and they do not count the same event at the same moment. - **KDP** gives your **total** sales, organic and ad-driven together. For **paperback and hardcover** KDP only records a sale once the book **ships** — usually about 2 days after the order. eBooks are instant. - **Amazon Ads** gives the sales your ads generated, counted **at order time**. From those, three numbers: | Number | What it is | | --- | --- | | **Total** | Every unit KDP reports as sold | | **Ad-generated** | Units Amazon Ads attributed to your campaigns | | **Organic** | Everything else — `Organic = Total − Ad-generated` | Ad-generated only counts ads tied to a book **in your catalogue**. Ads for other products do generate sales, but those never appear in your KDP report, so counting them would break the subtraction. ## Why organic is never negative Amazon Ads counts a print sale at *order* time; KDP counts it at *shipment* time, about 2 days later. So on any given day the ad number can land **before** KDP's total, and subtracting them as they come would push organic below zero. They are lined up first: 1. Ad-generated **print** units are shifted **forward ~2 days**, onto KDP's shipment date. eBooks need no shift. 2. Each day, ad-generated is **capped at that day's KDP total** — it can never exceed what KDP actually reported. 3. Any surplus that doesn't fit **rolls to the next day**, then the next: if the sale still isn't on KDP by day 2, we look at day 3, day 4, day 5… Ads report a paperback sale on **Monday** → it is matched against KDP's **Wednesday** total, once it has shipped. If Wednesday's total is smaller than the ads claim, the leftover waits for Thursday, Friday… until KDP's totals can account for it. The guarantee: ad-generated is always ≤ total, so `Organic = Total − Ad-generated` is always **zero or positive** — every day, every format. A note at the top of the page tells you when some ad-generated orders are still pending shipping. Nothing is lost; those units land a day or two later. ## Why ad-generated won't exactly match the Amazon Ads console Both numbers are right — they don't measure the same thing. Four differences, all expected: - **Copies vs orders.** We count **units** (Amazon's *Units sold*) so the figure can be subtracted from your KDP units. The console's headline **Purchases** column counts **orders** — a reader buying 2 copies is 2 units but 1 purchase, so Purchases always reads a little lower. - **Console filters.** The console's campaign list ships with a state filter (*All but archived*) and a date range. We count **every** campaign, archived included — the money was spent either way. - **Marketplaces and currency.** We add up every marketplace and convert at each day's real exchange rate; the console uses its own. Expect a fraction of a percent of drift on the spend. - **Ads with no book.** Sponsored Brands and Store ads aren't tied to a single title, so their sales can't be matched to a KDP book and stay out of ad-generated. Their **spend still counts** in your net profit. ## The chart Stacked by **sales type** (organic vs ad-generated) or by **format** (ebook, paperback, hardcover). Bar, area or line. The format view and the tables use the raw KDP totals. On long date ranges the chart switches to a monthly view, where the 2-day shift no longer matters — and the KPI cards apply the same cap across the whole window rather than day by day, since the shift cancels out over a period. ## Units by marketplace A table of where the orders came from, broken down by format. Sortable by any column. ## Filters Marketplace, book, author, distribution and date range. The author filter is useful if you publish under several pen names. ## Related - [Organic vs ad-generated](/docs/metrics/organic-vs-ad-generated) — what the split means, and its two honest limitations - [KENP](/docs/app/kenp) — the same idea for Kindle Unlimited pages --- # Settings A map of every settings tab — preferences, connections, taxes, notifications, security and account. URL: https://trueroyalties.com/docs/account/settings Settings is one page with tabs across the top. ## Preferences How the app looks and counts: - **Reporting currency** — the currency your history is stored and reported in. - **Number format** and **calendar start day**. - **Graph design** — bar, line or area, and the colour of each series. - **KENP section** and **Series section** — always visible, hidden, or automatic. ## Connections Your two data sources, with their status and last sync: - **KDP** — extension state, KDP session, and the **Sync now** button. - **Amazon Ads** — connect, disconnect, or delete the imported ad data. This is the page to open when something looks stale. See [Sync and data freshness](/docs/connect/syncing). ## Taxes Ad-spend VAT per marketplace, and KDP withholding. Setting these once is what makes net profit true. See [Taxes and currencies](/docs/metrics/taxes-and-currencies). ## Notifications Choose whether you get a browser notification for **new sales** and **new reviews**. Both need the extension running. Turning on new-sale alerts also makes the extension check for data every 15 minutes in the background, even with the app closed. ## Billing Plan, payment method and invoices. See [Billing and trial](/docs/account/billing). ## Security Your sign-in email and your password. ## Account Delete your account. Deletion is permanent: it erases your data and releases the link to your KDP account. --- # Privacy and security What TrueRoyalties reads, what it never sees, what a smart link records about the people who click it, and what happens to your data if you leave. URL: https://trueroyalties.com/docs/help/privacy ## What we read - Your **KDP reports**: royalties, units, KENP pages, book titles, ASINs, covers. - Your **Amazon Ads data**: spend, clicks, impressions, attributed sales. - Your **Amazon reviews** of your own books. - If you create smart links, **the clicks on them** — see below. That is all. Nothing else is collected from Amazon. ## What we never see - **Your Amazon password.** The extension uses a session you opened yourself; it never asks for, stores or transmits a credential. - **Your bank details.** Amazon does not expose them, and payments to us are handled by Stripe. - **Who your readers are.** Amazon discloses no customer identity, so we have none: no name, no email address, no Amazon account, and nothing they bought. The one exception is the technical, non-identifying record of a smart-link click, described next. ## What a smart link records This is the only place where TrueRoyalties handles data about *your readers* rather than about you — and only if you create a [smart link](/docs/app/smart-links). For each click we keep: the date and time, a **country code**, a **device category** (mobile, tablet or desktop), the **domain** the visitor came from (never the full page address), which **Amazon storefront** we sent them to, and whether the request came from an automated client such as a social network building a link preview. What we do **not** do: - We do not store the visitor's **IP address**. To tell a repeat visit from a new one on the same day we keep a one-way hash that changes every day and cannot be turned back into an address. - Following a smart link sets **no cookie**. Those links are served from a separate domain that carries none of our session cookies. - Individual click records are **deleted after 90 days**. The daily totals behind your charts stay. ## Read-only, always TrueRoyalties never writes to Amazon. It cannot change a price, edit a campaign, adjust a bid, publish, unpublish or delete anything. There is no code path that does. ## What the extension can access By default it works on the pages the job needs: your KDP reports domain, Amazon storefronts (for reviews and covers) and TrueRoyalties itself. It has no access to your other tabs, your browsing history or your bookmarks. **One optional exception.** If you add a verified link to your [verified page](/docs/app/verified) and the page is built with JavaScript — Wix, Squarespace, X, Instagram, TikTok — our servers receive an empty shell and cannot see your token. The extension can open that page for you instead, which requires a broader "read pages you visit" permission. That permission is **optional and asked once**, with a button you press yourself. Decline it and everything else keeps working; only the verification of JavaScript-built pages stops. The extension opens the page **you named**, reads the text it rendered, and sends back only what is needed to confirm the token. ## Where your data lives Your imported data is stored in your TrueRoyalties account on our infrastructure, encrypted in transit. Amazon Ads credentials are stored encrypted. ## Your public pages are opt-in Nothing about you is public unless you make it so. Your [verified page](/docs/app/verified) stays private until you publish it, you decide which figures appear and how precisely, and listing yourself in the public directory is a separate switch. ## Deleting everything **Settings → Account → Delete account** erases your data permanently and releases the link to your KDP account. There is no soft-delete and no hidden copy. Simply cancelling your subscription does **not** delete anything — your history stays available if you come back. ## Full policy The complete legal text is in our [Privacy Policy](https://trueroyalties.com/privacy) and [Terms of Service](https://trueroyalties.com/terms). --- # Sync and data freshness When TrueRoyalties refreshes your data, how fresh Amazon's own reports are, and how to force a sync. URL: https://trueroyalties.com/docs/connect/syncing ## When syncs happen You never have to trigger a sync. Your KDP royalties and your Amazon Ads spend come from two different places, so they refresh on their own schedules. **KDP royalties** — read by the extension: | Trigger | When | | --- | --- | | **App open** | While a TrueRoyalties tab is visible, and at most once every 15 minutes | | **Background alarm** | Every 15 minutes, even with the app closed — only if **New sale alerts** is on | | **Sync now** | Whenever you click it, in **Settings → Connections** | **Amazon Ads spend** — read from Amazon's API, no extension involved: | Trigger | When | | --- | --- | | **App open** | Any TrueRoyalties tab, open or in the background, once the last successful sync is over 2 hours old | | **Reconnecting** | Straight away, without waiting for the 2 hours — you reconnect because something was wrong | | **Automatic repair** | Every 15 minutes we resume any sync that stopped halfway | Amazon generates the ad report on its own time, so a refresh usually takes a few minutes to land. Nothing to press while you wait. A sync only runs if one is actually due, so opening the app ten times in a row does not hit Amazon ten times. ## When ad spend looks out of date The dashboard says so, in amber, above your figures. In almost every case it fixes itself — keep the tab open and it refreshes. **One case needs you:** if it says Amazon wants you to reconnect, your authorization expired or was revoked on Amazon's side. Go to **Settings → Connections** and connect Amazon Ads again — a sync starts as soon as you come back. Nothing else on this list requires a click. ## How fresh Amazon's data is This is the part most people are surprised by. TrueRoyalties can never be fresher than the report it reads: - **KDP royalties** — the estimator refreshes roughly every **24 to 48 hours**. - **KDP orders** — usually within 24 hours. - **Kindle Unlimited** — pages read appear quickly, but the KU royalty *rate* for a month is only set by Amazon in the middle of the following month. - **Amazon Ads** — daily, and Amazon keeps revising the last few days. So today's sales are normally visible tomorrow. A "Sync now" will not make Amazon publish a number it has not published yet. ## Why the last 60 days are re-read Amazon revises recent figures — returns, refunds, corrected attributions. Every sync re-reads the **last 60 days** so your history reflects those corrections. Older data is already final and is left untouched. ## Ad orders "pending shipping" On the Orders page you may see a note about orders generated by ads that are pending shipping. Amazon reports a print sale when it **ships**, not when it is ordered, so ad-attributed print orders show up a day or two later. Nothing is lost. ## Forcing a sync **Settings → Connections → Sync now**. It bypasses the 15-minute interval. Requirements: the extension enabled, and an active KDP session. If the button does nothing, see [Troubleshooting](/docs/help/troubleshooting). --- # Taxes and currencies Set VAT on ad spend and KDP withholding once, pick your reporting currency, and every figure in the app becomes the one you actually bank. URL: https://trueroyalties.com/docs/metrics/taxes-and-currencies ## VAT on ad spend Amazon reports ad spend **before** tax, but invoices you **with** VAT or GST in most countries. Ignoring it understates your costs. In **Settings → Taxes → Ad-spend VAT by country**, set your rate per marketplace. Spend is then counted tax-inclusive everywhere in the app. Enter the rate you cannot reclaim. If you recover VAT through your business, set it to 0. ## KDP withholding tax Amazon may hold back part of your royalties for tax before paying you. Your rate comes from your KDP tax interview, and TrueRoyalties **detects it automatically** on the first sync. In **Settings → Taxes**, the switch *Count withholding on royalties* decides whether it is subtracted: - **Off** — royalties and net profit both show pre-withholding amounts. - **On** — net profit is computed on what you actually receive. The **Royalties** card always stays gross, so it keeps matching KDP. See [Net profit](/docs/metrics/net-profit). ## Reporting currency Your reporting currency is set in **Settings → Preferences → Reporting currency**. It is the currency your history is stored and reported in. Changing it re-imports your full KDP history in the new currency, so past and present always agree. That takes a moment — the dashboard shows a loading state until it lands. The dashboard and the KENP page also have a **display currency** picker, for a quick look in another currency without changing your reporting currency. ## How conversion works Every amount is converted at the exchange rate of **its own transaction date** — a sale from March 2023 uses March 2023's rate, not today's. This is more accurate than a single flat rate, and it explains a small difference you may notice: KDP's own multi-currency total uses a coarse approximation, so figures can differ by around 1 %. TrueRoyalties is the more precise of the two. To match KDP exactly, view your dashboard in the currency KDP pays you in. ## Where to check your rates **Settings → Taxes** shows both cards side by side, with the rate currently applied. If your numbers look too good, this is the first page to open. --- # KENP Kindle Unlimited pages read — how many, which books, from which marketplaces, how many your ads paid for, and the rate a page actually earned you. URL: https://trueroyalties.com/docs/app/kenp KENP is **Kindle Edition Normalized Pages** — the pages Kindle Unlimited readers actually read. KU pays on pages, not copies, so for a KU-heavy author this page is where most of the income is born. ![KENP page showing pages read, Kindle Unlimited royalty with its share of all royalties, the rate earned per page and books read, above the ad-attributed cards with Organic pages and Ad-generated pages highlighted as the charted metrics, and a chart stacking those two over time](/images/docs/kenp.png) ## What KENP is KU pays on **pages read**, not on borrows — a book read cover to cover earns far more than one abandoned on page 3. Two things follow: - **KENP is eBook-only.** Paperback and hardcover have no KENP at all. - **"Normalized" is literal.** Amazon normalizes page counts across devices, so a page means the same thing on a phone as on a Paperwhite. That is also why a book's KENPC (its normalized length) is not its printed page count. ## The cards | Card | Meaning | | --- | --- | | **Pages read** | Total KENP in the range | | **KU royalty** | What those pages earned, before withholding tax — and what share of ALL your royalties that is | | **Per page read** | The rate you actually got: KU royalty ÷ pages read | | **Books read** | Titles with at least one page read | These Kindle Unlimited amounts — here, per store, and per title — are figures **KDP reported**, converted to your display currency. None of them is `pages × a rate`: that estimate would look identical on screen and be nobody's actual royalty. (The ad-attributed section further down is different, and says so: those are Amazon's estimates.) The two money cards step aside while a **book or author filter** is active, and say so. Kindle Unlimited is paid per store, not per title, so a filtered figure there would divide one book's pages by every book's royalties. The per-title column further down keeps working — that one really is per book. ### How much of you is Kindle Unlimited The share under the KU royalty card is the one number worth watching over time. KDP Select asks for **exclusivity** — your ebook cannot be sold anywhere else — and this is what you are getting for it. An author at 15% is paying that price for a small part of their income; one at 70% has built their business on a rate Amazon sets alone, and changes monthly. It compares the same period and the same storefronts on both sides, so switching a filter moves both halves together. ### Your rate per page Amazon never publishes a rate. It announces the size of the KDP Select fund once a month and nothing else, so every KENP rate you have ever seen quoted is worked out by dividing royalties by pages — including the ones on our free [Kindle Unlimited page rates](/kindle-unlimited-page-rates) page. This card does that division on **your** account. Three things to know: - Over a range covering several months or stores, it is a **blend** of their rates, not one of them. The per-store figure in the marketplace table is the one to compare against a published rate. - It follows the **currency** you pick at the top of the page. Each store pays in its own currency, so compare like with like. - A rate per *title* would tell you nothing: Kindle Unlimited pays every book in a store the same rate, so it would only restate where and when that book was read. ## Click a card to chart it The chart below the cards plots whichever cards are highlighted — and a highlighted card is always a line on the chart, in that card's own colour. It opens on **Organic** and **Ad-generated**, the split of your reading that matters most. Click **Pages read**, **Series read-through**, **KU borrows** or **Kindle page views** to chart those instead. Your choice is remembered, so the page reopens where you left it. Read in order, those six are the whole Kindle Unlimited funnel: page views → borrows → pages read, split into organic and ad-driven, plus the pages one ad pulled onto your *other* books. ### Several at once Click a second card and both are charted together — that is usually the point. Ad-generated against Series read-through tells you how far one ad reaches into a series; Pages read against Ad-generated tells you how much of your reading your advertising is buying. Two rules keep those comparisons honest, and they are why some clicks behave differently than you might expect: - **Only measures of the same size share the chart.** Pages and borrows differ by around 400× on a real account, so on one axis the borrows would be a flat line along the bottom — true, and useless. Clicking a borrow or page-view card therefore *starts a new selection* rather than joining the pages one. The two ad-funnel counts still pair up with each other. - **Only Organic and Ad-generated stack** — and they stay on one bar even when you add a third metric, because together they are exactly your total. Anything else you select gets its own bar beside them: ad-generated pages are already inside pages read, so piling those up would show a total you never earned. The last highlighted card cannot be switched off; there is always something on the chart. The money cards are deliberately not clickable, and it is worth knowing why: - **Amounts and rates** (KU royalty, per page read, KENP-ACOS…) are totals for the period you selected, not a value per day. We could draw a line by multiplying pages by a rate, and it would look perfectly convincing — but it would be a number nobody was ever paid. - **Counts of distinct things** (books read, marketplaces, days with reads) do not add up over time at all. Five titles this month is not the sum of the daily counts, so a chart of it would be a different metric wearing the same name. ## Where the numbers come from Straight from KDP's own **KENP Read** report, synced by the browser extension using your KDP session — the same pipeline that imports your royalties. Pages are recorded per **day**, per **marketplace** and per **title**, which is what lets every filter and breakdown on this page work. ## Pages read by title Every title with reads, biggest first, with each one's share of the total and **what it earned in Kindle Unlimited**. With Amazon Ads connected it splits organic and ad-generated per title, so you can see which book your campaigns are actually feeding. Seven titles a page; sort on any column. ![Pages read by title table listing books with their covers, author, format and ASIN, organic and ad-generated pages, total pages read, share of the total and Kindle Unlimited royalty](/images/docs/kenp-top-titles.png) The royalty column adds up to the KU royalty card above it, and so does the one in the marketplace table — the same money, counted per title and per store. A title appears here only if it was read in the period. For the rest of your catalogue, and for print, go to [Books](/docs/app/books). ## Ad-generated pages With Amazon Ads connected, the page splits your total in two, using Amazon's 14-day attribution window on Sponsored Products ebook campaigns: ``` Organic = Total pages − Ad-generated ``` **Ad-generated** is what Amazon attributed to your campaigns; **organic** is everything else, capped so it can never go negative. It is the same idea as the organic/paid split on [Orders](/docs/app/orders), applied to pages instead of units. That split is the only honest way to judge ads on a KU title: a campaign can look terrible on sales and be excellent once pages read are counted. Two caveats worth holding on to: the ad figures are Amazon's **estimates**, and they are a **subset** of your total pages read — never a separate pile to add on top. ## KU ad economics When ads are connected you also get the money view for the ad-driven slice: | Figure | What it is | | --- | --- | | **KU borrows (ads)** | Borrows your ads generated that read enough to earn a royalty | | **KU royalty (ads)** | What the ad-driven pages earned — Amazon's estimate | | **KENP-ACOS** | Ad spend ÷ ad-generated KU royalty | | **Cost per 1,000 pages** | What it costs you to buy a thousand pages read | Displayed in the currency you pick at the top of the page. Note the "(ads)": this is the slice Amazon attributed to your campaigns and an **estimate**, unlike the KU royalty card at the top, which is the whole amount KDP reported. Comparing the two tells you how much of your Kindle Unlimited income your advertising is responsible for. **Series read-through** sits alongside them: of the ad-generated pages, those read on *other* books — the rest of a series pulled along by one ad. Amazon measures this itself and we read it with the rest of your ad data, so there is nothing to enable. It stays at zero when your campaigns generate no Kindle Unlimited reading at all (print-only advertising, or books not enrolled in KU) — in that case every KU figure on this page is zero too, which is the honest answer rather than a failure. The series-level view of the same idea lives on [Series](/docs/app/series). ## Pages by marketplace Where your reads came from, what each store paid you, and what it paid for a page in the range. ![Pages read by marketplace table with flags, organic and ad-generated pages, total pages read, Kindle Unlimited royalty and the rate paid per page for each store](/images/docs/kenp-by-marketplace.png) That per-store rate is the figure worth checking: Amazon sets one rate per store per month, so a single store over a single month should land on the number our [published rates](/kindle-unlimited-page-rates) page shows for it. A gap usually means the range spans several months, or that Amazon has not settled the most recent one yet. ## Where the money is The KU royalty shown here is not a separate income stream — it is the Kindle Unlimited share of the royalties you already see on the dashboard, Books and Marketplaces. Filtering those pages to the "Kindle Unlimited" distribution channel gives you the same figure. ## Timing Two different delays, often confused: - **The pages** can still move for a recent period: KDP finalizes them as Amazon confirms the reads. - **The rate** — how much a page is worth — is only fixed by Amazon around the middle of the *following* month. So recent KU income, and the "per page read" figure that comes out of it, are estimates until then. On long date ranges the chart switches to a monthly view, like the other reports. ## Showing or hiding the page **Settings → Preferences → KENP section** controls whether it appears in the sidebar: always, never, or automatically when you have KU data. The page stays reachable by link either way. --- # Kindle Unlimited page rates What Kindle Unlimited pays, what a "page read" really means, where the rate comes from, and how to read our free rate page. URL: https://trueroyalties.com/docs/metrics/kindle-unlimited-page-rates Kindle Unlimited does not pay you per copy. It pays you per **page read** — and the amount changes every month. We publish the full history on a free page: [Kindle Unlimited page rates](/kindle-unlimited-page-rates). ## Start here: what Kindle Unlimited is Kindle Unlimited is Amazon's reading subscription. Readers pay a monthly fee and borrow as many enrolled books as they like, at no extra cost per book. Because the reader pays nothing for your book specifically, there is no sale and no royalty percentage. Instead: 1. Every month Amazon sets aside a pot of money — the **KDP Select Global Fund**. 2. Everyone's pages read that month are added up. 3. The pot is divided by the pages. That gives the **rate per page**. 4. You get that rate × your own pages read. You are enrolled in this only if your ebook is in **KDP Select** (exclusive to Amazon). Paperbacks and hardcovers are never part of it. ## What a "page read" actually means Not a page of your paperback, and not a screen on somebody's phone. Amazon converts every book to a standard measure called **KENP** — Kindle Edition Normalized Pages — so that a large-print book cannot earn more than a normal one for the same text. Two things surprise most authors: - **You are paid for pages read, not for borrows.** A reader who borrows your book and stops on page 3 earns you three pages. - **Each page counts once.** Re-reading the same page does not pay twice. Your book's KENP count is on your KDP Bookshelf. It is usually somewhat higher than your paperback page count. ## Why the rate changes every month The fund is shared out among everyone's pages. So the rate goes **down** when readers read more than the fund grew, and **up** when the fund grows faster than reading does. Neither is something you can influence, and neither says anything about the quality of your books. A month where your KU income fell while your pages read stayed flat is usually just the rate. In practice the US rate has moved between roughly **$0.0040 and $0.0050** per page for several years — about 25% between a good month and a bad one. ## What Amazon publishes, and what it does not Once a month, Amazon announces **one** figure: the total size of the fund, worldwide. It posts it on the KDP Community forum, around the 15th of the following month — you can read every announcement yourself: [KDP Select Global Fund announcements](https://www.kdpcommunity.com/s/all-announcements?language=en_US&forum=KDP%20Forum) That is all. Amazon has never published: - the rate per page, - how the fund is split between stores, - any figure for a single marketplace. So every KENP rate you have ever seen quoted — anywhere, including here — is **worked out**, not published. ## How it is worked out It is a division you can do yourself, on your own KDP dashboard: ``` rate = Kindle Unlimited royalties ÷ KENP pages read ``` Do it for one marketplace, for one month, and you have that marketplace's rate. The larger the account you do it on, the more precise the answer, because KDP rounds royalties to the cent. If you have a TrueRoyalties account you do not have to: your [KENP page](/docs/app/kenp) runs the same division on your own numbers, per store, so you can hold your rate against the published one directly. ## Each store pays in its own currency Amazon pays a page read on amazon.de in euros, and one on amazon.co.jp in yen. A rate only means something next to its currency. | Store | Pays in | | --- | --- | | Amazon.com | USD | | Amazon.co.uk | GBP | | Amazon.de · .fr · .es · .it · .nl | EUR | | Amazon.co.jp | JPY | | Amazon.ca | CAD | | Amazon.com.au | AUD | | Amazon.in | INR | | Amazon.com.br | BRL | | Amazon.com.mx | MXN | The rate page also lets you read the figure **per 1,000 or 10,000 pages** instead of per single page. Nothing changes but the scale: a rate of $0.00470 is $4.70 per 1,000 pages read, which is usually easier to plan against. On the rate page you can switch the display currency. We always store the figure in the store's own currency and convert only for display, at the exchange rate from the **end of the month shown** — so the same month always converts to the same number, however long after the fact you look. The Global Fund is the exception to "each store its own currency": Amazon announces one worldwide amount, in dollars. The page shows it in whichever currency you pick, converted the same way, and says so when it is not USD. ## When a month becomes final Amazon announces the fund for a month around the **15th of the following month** — "around", not on a fixed date, so it sometimes lands a few days either side. Before that, nobody knows the rate: every figure published anywhere is an estimate. The rate page picks a new month up on its own, within a week of it appearing. Nobody types these numbers in, and there is no month where the page waits for someone to update it. On the rate page, those months are marked **EST** in the column header, so you can tell them apart at a glance. ## Where our figures come from Today they come from the public record kept by author-run trackers, cross-checked against a second, independent series wherever one exists. We are replacing them with the same calculation run across TrueRoyalties accounts. A marketplace only switches over once enough accounts contribute to it that no single author's royalties could be worked back out of the published figure. Every figure on the page says which of the two it is. ## What this means for your own numbers Your KENP royalties in TrueRoyalties are **not** estimated from these rates — they are the actual amounts KDP reported for your account. The rate page is a reference for context and planning, not an input to your dashboard. It does explain one thing you will notice: your most recent month can move slightly after you first see it. KDP reports Kindle Unlimited royalties as an estimate until the rate is settled, then finalizes them, and TrueRoyalties re-reads those months for you. --- # Books Every title, with its royalties, ad spend, average CPC, net profit and True ACOS — the page that tells you which books to keep advertising. URL: https://trueroyalties.com/docs/app/books One row per title, sorted by net profit. This is where you find the book that sells beautifully and still loses money. ![Books table with cover, author, sold units, royalties, royalties per sale, ad spend, average CPC, net profit and True ACOS](/images/docs/books-table.png) ## The columns | Column | Meaning | | --- | --- | | **Sold units** | Copies sold in the range | | **Royalties** | Gross royalties, all channels including Kindle Unlimited | | **Royalties / sale** | What one copy really earns you, after Amazon's cut | | **Ad spend** | Spend attributed to this title, VAT included | | **Average CPC** | What one click on this book's ads cost you, on average | | **Net profit** | Royalties kept minus that spend — red when negative | | **True ACOS** | Ad spend ÷ ad-generated royalties. Over 100 % is a loss on the ad-driven part | Click any header to sort. Click a row to expand it for the detail behind the numbers — including each marketplace's own Average CPC. ## Reading the table - **Negative net profit** — the ads cost more than the book returns. Check whether it is book 1 of a series before pausing anything, in [Series](/docs/app/series). - **True ACOS above 100 % with positive net profit** — organic sales are covering the ad losses. Fragile, but not fatal. - **Low royalties per sale** — often a paperback where print costs eat the margin. - **High Average CPC next to a low True ACOS** — you are paying a lot per click but those clicks convert, so the price is buying something. The reverse — cheap clicks, bad ACOS — usually means the wrong readers are clicking. ### Average CPC is a weighted average It is the book's **total ad spend ÷ total clicks**, never the average of the marketplaces inside it. Expand a row and you will often see every country above the book's own figure: the cheapest storefront is usually the one taking the most clicks, so it pulls the book's number toward itself. That is correct — it is what you actually paid per click. Two things to expect: - It **includes the VAT** Amazon charges on ads, so it reads slightly higher than the CPC in your Amazon Ads console. - It is **blank (—)** when we do not have the clicks for the whole period. Clicks are only imported since 5 August 2026, and dividing all of a period's spend by part of its clicks would print a number several times too high. The page says so when that is why a column is empty. ## What is not in a book row Ad spend Amazon cannot tie to an ASIN — Sponsored Brands, and ads on ASINs outside your KDP catalog — belongs to no single title. It is counted in your global net profit but not in any row here, so the rows can add up to more than your total. ## Filters Author, format and date range. The author filter is there for pen names. ## Covers and reviews Covers come from your KDP catalog and appear automatically. The review count under each title comes from Amazon — see [Reviews](/docs/app/reviews). --- # Series and read-through Group your books into a series to see read-through, royalties per reader, and the most you can pay to acquire a reader who enters the series. URL: https://trueroyalties.com/docs/app/series ## Why per-book profit lies for a series A series is a funnel: a reader who buys book 1 often goes on to books 2, 3 and 4 with no further ad spend. That downstream income belongs to book 1's campaign, but no per-book view can show it. Some authors deliberately run book 1 at a loss — permafree or $0.99 — to buy that reader. Others price it normally and it earns on its own. Either way, judged alone on [Books](/docs/app/books) book 1 is credited with none of what it started, so it reads worse than it is. This page fixes that. ## Your series at a glance The page opens on your series as covers — the first book in front, the next two behind it — with the two numbers that matter under each one: what a reader is worth, and how many readers get from book 1 to book 2. ![Three series shown as fanned book covers, each with its royalties per reader, its book 1 to book 2 read-through and its number of books](/images/docs/series-top.png) They are ranked by **royalties per reader**, not by money earned. The table below already ranks by money; this row answers the other question — which funnel is worth feeding. Click any one to open its detail. ## Creating a series KDP has series — name, reading order, the "Book 2 of 5" line on Amazon — but it never sends any of it in the reports we read. So the grouping lives here. To save you the typing, we read your titles first: something like *The Dragon Heir (Ember Saga Book 2)* is recognised, and **Manage series** proposes the whole group. One click to accept, and you only correct what is wrong. You can also build one by hand: name it, add titles, and move them up or down into reading order. A book belongs to at most one series, and your grouping is yours — no sync ever touches it. ## The series table One row per series. The first three columns are the series ones: | Column | Meaning | | --- | --- | | **Readers** | People who started the series over your date range | | **Read-through** | Share of them who reached book 2 | | **Per reader** | Royalties one reader generates across the whole series | Then the money that decides something: royalties, ad spend and net profit. Same calculation as everywhere else in the app, so a series total is exactly the sum of its books on [Books](/docs/app/books) — KDP withholding tax, advertising VAT and per-day currency conversion already applied. ![Series table showing readers, read-through, royalties per reader, royalties, ad spend and net profit for three series](/images/docs/series.png) **Columns** adds the rest: units, expenses, margin and average daily net. They start hidden so the table fits your screen without scrolling sideways — nothing is removed, and your choice sticks while you are on the page. *Average daily net* needs a date range to divide by, so it only appears when your range has a start and an end. Opening a series closes the one you had open: one deep dive at a time, so the next row is always the next line and not a scroll away. The donut at the bottom splits **net profit** between your series. Series losing money over the range are named under it rather than drawn as a slice — a negative share of a total means nothing. ## Comparing every funnel at once Under the table, one grid puts all your series side by side. The darker the cell, the more readers got that far — so the pale one tells you where a series loses people before you read a single number. ![Grid of three series with a shaded percentage for each book, showing where readers drop off](/images/docs/series-matrix.png) Two ways to read it, and they answer different questions: - **From book 1** — how many of your first-book readers reached this book. The number you quote: *"31% make it to book 4"*. - **Book to book** — how many of the *previous* book's readers reached this one. This is where a drop-off shows: a series can look healthy overall and still lose half its readers at one specific handover. **Show readers** swaps the percentages for the counts they came from. Worth a click on a small series: 100% of four readers is not the same news as 100% of four hundred. ## The detail of one series Expand any row. ![Expanded series showing what was counted, royalties per reader, what you can pay, the read-through ladder, Amazon's measurement and the per-book table](/images/docs/series-panel.png) **Counted** says exactly what went into the figures — how many paid copies, how many Kindle Unlimited borrows. If you switch on *Exclude mid-series starters*, it also tells you what percentage that removed. The ladder repeats the read-through for this series, with the same two ways of reading it. Then the per-book table: | Column | Meaning | | --- | --- | | **Paid units** | Copies sold | | **KU borrows** | Whole Kindle Unlimited reads, estimated from pages | | **Readers** | Paid units + KU borrows | | **Reach** | Share of entry-book readers who got this far | | **Royalties** | What the book earned over the range | | **Per reader** | Royalties ÷ readers of that book | | **RPR contribution** | What this book adds to the series' royalties per reader | A book with no estimated readers is marked **Excluded**: its royalties are real, but there is no reader count to attribute them to. Under it, **Where the value sits** turns that last column into one bar. It answers a question the table makes you do in your head: is this series carried by book 1, or by its tail? The first tells you to keep advertising; the second tells you to write the next book. ## Compare by marketplace, format of sale, or year One read-through figure for a whole series hides the decision. A funnel that holds in the United States and collapses in Germany is two different businesses — and it is almost certainly being advertised with the same bid in both. **Compare by** recalculates the whole funnel for each value on its own: ![Series funnel recalculated per marketplace, showing readers, read-through and royalties per reader for each storefront](/images/docs/series-compare.png) | Compare by | Answers | | --- | --- | | **Marketplace** | Where your series actually keeps readers, and what one is worth there | | **Sales vs Kindle Unlimited** | Whether your read-through is a paid story or a KU one — they usually differ | | **Year** | Whether the funnel is improving or decaying as the series ages | Every row is a **separate calculation**, using only the units, page reads and royalties from that value. So the rows do not add up to the **All** line — they are alternatives to it, not slices of it. Rows built on very few readers are hidden: under 25 readers a single borrow moves the percentage several points, which is arithmetic rather than a measurement. The count is always shown, and one click reveals them. *By format* is deliberately not offered. We would only know a title's main format, not the format of each individual sale, so a "by format" table would put a book's hardcover sales under paperback and look perfectly convincing. ## Royalties per reader, and what you can pay **Royalties per reader (RPR)** is the total one reader entering the series generates across every later book. It is the number you bid with. Beside it sits the decision: **what you can pay up to** — the same figure after KDP withholding tax, which is the most you can spend to acquire one entry reader and still break even — against **what you currently pay** (ad spend ÷ entry readers). Green means every reader you buy makes money. ## Two ways to model it **Calculate from** — model a reader entering at book 3 instead of book 1, for example when book 1 is retired or permafree. **Exclude mid-series starters** — a later book can legitimately show *more* readers than the one before it (its own ads, a promo, readers starting mid-series), which flatters RPR. Turn this on and each book is capped at the previous one, its royalties scaled down to match; adjusted books are badged **Adjusted N%**, and the *Counted* line tells you what share of readers left the calculation. Neither one touches the read-through ladder. That is an observation of what happened; these two change how it is *modelled* into a per-reader value, and a model must never quietly rewrite the measurement it started from. A step above 100% is real — it is exactly what the second option is for. ## What counts as a reader ``` Readers = paid units + floor(KENP pages read ÷ KENPC) ``` A Kindle Unlimited borrow earns pages, never a unit — so it has to be converted. **KENPC** is the normalized page count of your book; KDP shows it on your Bookshelf but never in a report, so you enter it once per title in **Manage series**. Partial reads are rounded down: half a book is not a reader. Without KENPC we count paid units only, and say so — the series is marked **understated** rather than quietly wrong. If you are KU-first, fill it in. ## What Amazon itself measured Everything above is a model built from totals. Amazon publishes one figure that is a genuine **measurement**: of the Kindle Unlimited pages your ads generated, how many were read on a book *other* than the one advertised. That is series read-through, observed rather than inferred, and it appears in the panel whenever Amazon reports any. Treat it as a **floor**. It only covers KU reading that an ad drove — not paid sales, not organic reading — so the real read-through is always larger. Its value is as a second opinion: it comes from a different source than the ladder above, so when the two agree you can trust the picture. Nothing to enable, and it costs no extra sync. ## Honest limitations Amazon never reveals who your readers are. Read-through here is a **ratio of totals over a window**, not a tracked cohort: nobody — no tool on this market — can prove the same person moved from book 1 to book 2. A reader who starts book 1 in January and finishes book 4 in June is spread across both. It is still the right signal for a decision — just do not read it as if each reader were followed individually. ## Showing or hiding the page **Settings → Preferences → Series section**: *Always show*, *Always hide*, or *Hidden until you create a series*. The page stays reachable by link either way. --- # Marketplaces Profit country by country — where your catalog earns, where your ads leak, all converted into one currency. URL: https://trueroyalties.com/docs/app/marketplaces One row per Amazon store, so you can see that the US pays for the campaigns that Germany is quietly losing. ![Marketplaces table with royalties, ad spend, organic and ad-generated units, net profit, True ACOS and margin per country](/images/docs/marketplaces.png) ## The columns | Column | Meaning | | --- | --- | | **Royalties** | Gross royalties from that store | | **Ad spend** | Spend on that marketplace, with its own VAT rate | | **Organic** / **Ad-generated** | Units, split by origin | | **Net profit** | Royalties kept minus spend, for that store | | **True ACOS** | Ad spend ÷ ad-generated royalties, per store | | **Margin** | Net profit ÷ royalties | ## Everything in one currency Each marketplace pays in its own currency. Every amount here is converted at the rate of its own transaction date, into the currency shown at the top of the page. That is why the total can differ slightly from KDP's own multi-currency approximation — see [Taxes and currencies](/docs/metrics/taxes-and-currencies). ## VAT is per country Ad VAT differs by marketplace, so set each rate in **Settings → Taxes**. A marketplace left at 0 % will look more profitable than it is. ## Filter by distribution channel ![The Marketplaces header with an Add to Dashboard button, a distribution-channel selector, a date range and a currency selector](/images/docs/marketplaces-filters.png) Narrow the table to **Amazon retail**, **Kindle Unlimited** or **Expanded Distribution**. Royalties are recalculated for the channels you pick. Amazon ads only drive sales on the Amazon storefront, so a selection without retail has no ad cost — the ad columns (Ad spend, Ad-generated, Net profit, True ACOS, Margin) are hidden rather than shown as zeros. ## Keep this table on your dashboard Click **Add to Dashboard** to pin the table, sorted the way you left it, to the bottom of your dashboard — see [Build your own dashboard](/docs/app/widgets). ## Typical uses - Find stores where True ACOS is far above 100 % and pause those campaigns first. - Spot a marketplace with strong organic sales and no ads — a cheap place to grow. - Check whether a translated edition is actually earning in its home store. --- # Comparison Slice any metric by book, marketplace, format, publication year or period — the free-form view for questions the other pages do not answer. URL: https://trueroyalties.com/docs/app/comparison Every other page answers a fixed question. Comparison lets you build your own: pick a **metric**, pick a **dimension**, and see the split. ![Comparison page showing royalties broken down by book, as a donut with a ranked legend](/images/docs/comparison.png) ## Metrics | Metric | What it counts | | --- | --- | | **Net profit** | What you kept: royalties minus ad spend and expenses | | **Royalties** | What Amazon paid you, before ad costs | | **Units** | Copies sold | | **Ad spend** | What your Amazon Ads cost, VAT included | | **Impressions** | How many times Amazon showed your ads | | **Average CPC** | What you paid, on average, for one click — on Over time and Catalog leverage only | ![The metric menu on the Comparison page, open on the five options: Net profit, Royalties, Units, Ad spend and Impressions](/images/docs/comparison-metrics.png) Impressions are the top of the funnel — reach you paid for, before anyone clicked or bought. Compared against royalties or units, they answer *"are my ads being seen and ignored, or not being seen at all?"*. A book with many impressions and few sales has a cover, blurb or price problem; a book with few impressions has a bidding or keyword problem. **Impressions start on 5 August 2026**, when we began importing them from Amazon Ads. Earlier dates show zero until your ad history is re-imported, and the page says so whenever the period you are looking at is affected — so a flat start is never mistaken for "I ran no ads then". Average CPC starts the same day, and leaves earlier dates blank rather than showing them as free. ## Average CPC is always a weighted average Whatever you are looking at — one book, one marketplace, one month, or everything — Average CPC is that scope's **total ad spend divided by its total clicks**. It is never the average of the numbers below it. That distinction is not academic. If one book takes 1,000 clicks at $0.10 and another takes 10 clicks at $1.00, your real cost per click is **$0.11**, not the $0.55 you would get by averaging the two figures. The busy book is what you are actually paying for, so it counts more. Two consequences you will see: - **Average CPC is not offered on the Donut.** A donut shows each slice's share of a whole, and costs per click have no whole — they do not add up. To compare CPC across books or marketplaces, use the [Books](/docs/app/books) page, where every row has its own Average CPC column. - **No Quarterly or Cumulative on the timeline.** Those add months together, and adding CPCs gives a meaningless number. Our figure includes the VAT Amazon charges on ads, so it reads slightly higher than the CPC in your Amazon Ads console. That is what the click really cost you — see [Taxes and currencies](/docs/metrics/taxes-and-currencies). ## Dimensions | Dimension | Answers | | --- | --- | | **Book** | Which titles carry the catalog | | **Marketplace** | Which countries pay | | **Format** | Ebook, paperback or hardcover | | **Publication year** | Does the backlist still earn? | | **Month** / **Date** | How the split moves over time | ## Four views - **Donut** — a ranked legend and each slice's share of the total. - **Over time** — the same metric month by month, with a year-over-year option. - **Catalog leverage** — how much of one thing produces how much of another, for example how many titles produce most of the ad spend. - **World map** — the same figures on a map, always by marketplace. ## The world map Pick the globe icon and the breakdown becomes geography: every Amazon storefront you sell on, shaded by how much it brought in. The numbers are the same ones the donut shows for the same filters — it is another way to look at them, not another calculation. ![The Comparison page's world map, with each Amazon storefront shaded by its royalties and a ranked list of countries below](/images/docs/comparison-world-map.png) A button in the corner of the card switches between the flat map and a **globe that turns on its own**. It stops while you point at a country, and starts again a few seconds after you let go. ![The same royalties-by-marketplace view drawn on a slowly rotating 3D globe against a dark sky](/images/docs/comparison-globe.png) Reading it: - **The darker the country, the more it brought in.** The scale under the map runs from zero to your best storefront. - **Net profit is the one metric that can go red.** A country in red lost money there — ads cost more than the royalties they earned. (This is the only view that can show that: a donut splits a positive total, so it has to refuse.) - **Grey means two different things.** A storefront that sold nothing in the period is a shade darker than a country where Amazon has no store at all — point at it and the map says which. - **Only the countries you can sell in are named**, so the map answers "where do I earn?" rather than naming every country on Earth. - **Hover any country** for its figure and its share; hovering a row in the list highlights it on the map. A group we cannot place on a country — an unknown storefront, or sales recorded before Amazon told us where they happened — is still listed and still counted in the total. It is never dropped silently. ## Format is per sale, not per title A title sold in both paperback and hardcover is one book, but its sales are split by the format actually bought. So the format breakdown reflects what readers chose, not how you catalog the title. ## Filters Marketplace, format and date range, on top of the dimension you pick. The selection lives in the URL, so a view you like can be bookmarked. The world map hides the marketplace filter — the map already *is* the split by marketplace. ## Keep a view on your dashboard Found a view you want every day? Click **Add to Dashboard** and it is pinned to the bottom of your dashboard, toggles and all — see [Build your own dashboard](/docs/app/widgets). --- # BSR Your Amazon Best Sellers Rank for every book, on every storefront you sell in — read from your own browser. URL: https://trueroyalties.com/docs/app/bsr ![Best Sellers Rank page showing the best rank across storefronts, how many listings are ranked, an Amazon Author Central connected notice, and a searchable book list with each title's best rank and its country flag](/images/docs/bsr.png) ## What a Best Sellers Rank is Your BSR is your book's **position** on one Amazon storefront, compared with every other book there. `#1` is the best. Two things follow from that, and both matter: - **It is not a sales figure.** Amazon's own words: *"your Sales Rank can change even if your book's sales and borrows stay the same"*. Your rank moves when other books sell, too. - **Each format and each storefront is its own rank.** Your paperback on amazon.com and your paperback on amazon.de are two different positions in two different lists. They are never added up or averaged here. Amazon also confirms that **Kindle Unlimited borrows count**: a book has no rank until it has been *"sold or borrowed at least once"*. ## What the page shows | Column | Meaning | | --- | --- | | **Best rank** | The best position this book currently holds across the storefronts we track | | **Flag** | Which storefront that best rank is on | | **No rank yet** | Amazon shows no rank for it — it needs a sale or a borrow first | | **Reading…** | We have not read this listing yet (see below) | Click any book to open it. You then see its rank on **each storefront separately**, plus its **category ranks** — the "#2 in German Literary Criticism" lines Amazon shows under Product details. Amazon lists at most three. ![An opened book showing its rank history as one coloured line per storefront on an inverted logarithmic axis, above a clickable list of countries carrying the same colour dot, the current rank in each, and the localized category ranks](/images/docs/bsr-book-detail.png) Each country keeps the same colour everywhere, and the dot beside it in the list is that country's line on the chart. Category names are shown in the store's own language, exactly as Amazon prints them. **Click a country to show it on its own.** Click a second one to compare the two, click a selected one again to drop it, and **Show all** brings every line back. The vertical axis rescales to whatever is left, so isolating a country you sell less in still shows its movement instead of a flat line at the bottom. ## Where the numbers come from Amazon publishes no API for this, so the rank is read from **your own browser**, by the TrueRoyalties extension, from pages you are allowed to see anyway. Three ways, and the first two cost nothing: 1. **Amazon Author Central**, if you have an account with your titles claimed. This is by far the best source: it returns your whole catalogue at once and carries **years of daily history**, so your chart is full from the start rather than being built up day by day. It covers six storefronts — amazon.com, .co.uk, .de, .fr, .co.jp and .com.br — and does not include category ranks. Nothing to set up: if the account exists, we use it. 2. **When you open one of your own book pages on Amazon**, the extension reads the rank off the page you were looking at. No extra request, and it updates instantly. At most once an hour per book and storefront — a rank cannot change faster than that, so reading it more often would tell you nothing. 3. **Otherwise a slow background pass** reads the pages nothing else refreshed. This is what covers the other eleven storefronts and the category ranks. The extension only ever looks at **your own ASINs**. A page for somebody else's book is ignored before anything is sent, and only the numbers travel — never the page itself. ## The extension has to be running All three sources go through it, so with the extension removed, disabled, or too old, **no rank can arrive** — this is the one page in TrueRoyalties that cannot fall back to anything else. The page says so at the top rather than showing progress that will never move: - **Extension not detected** — it is not installed, or it is switched off. Install or re-enable it, then reload the page. - **Extension update needed** — it is installed but predates this feature. Update it and reload; your ranks start arriving on the next pass. Your existing ranks stay on the page either way. They simply stop being refreshed until the extension can run again. ## How to tell whether Author Central is connected The page says so, at the top, as soon as we have been able to look. Only the extension can check it — `author.amazon.com` requires you to be signed in, so nothing on our side can see it for you. - **Connected** — your six main storefronts arrive complete, with their history. - **No account detected** — your ranks still work, read from your book pages. But Author Central is the only way to get your **past** ranks. It is free: claim your titles there and we pick it up automatically, with nothing to configure. - **Nothing shown** — we have not managed to check yet (the extension has not run since you connected). We would rather say nothing than claim you have no account when we simply have not looked. ## Every book is listed, ranked or not The list is your whole catalogue, exactly like the Reviews page — a book without a rank is shown with its state rather than hidden: | State | What it means | | --- | --- | | **Never made a sale** | Your KDP reports show no sale and no borrow for this book, ever — so Amazon gives it no rank. We know that without asking Amazon, so we never read its page. | | **Not tracked yet** | We track a book on the storefronts it has actually sold on. It appears after its first sale, or after the next KDP sync. | | **Reading…** | Queued, and being read now. | | **Not read yet** | Queued, but nothing is reading it — see [the extension](#the-extension-has-to-be-running). | | **No rank yet** | We read it, and Amazon shows no rank — a book has none until it has been sold or borrowed at least once. | A book that has never sold gets its rank here the day it makes its first sale. Nothing to do: the sale arrives in your KDP report, and the book joins the list. ## Ranks wait for your KDP history Nothing is read until your **first KDP import has finished**. Two reasons, and both are for you: while it runs, the extension and your connection are busy importing your royalties — and until they have landed, we cannot yet tell which books have actually sold, which is what decides which pages are worth reading at all. The page says so while it waits. ## Why the first read takes a few hours We read one page at a time, spaced out, best-selling titles first — so your most important books are ranked within minutes and the long tail follows. A progress bar shows how far along it is, in books. You do not need to keep anything open — it continues in the background, and opening one of your Amazon pages fills that book in immediately. A catalogue of a few hundred books is usually covered within a few hours of normal browsing. Books that sell in several countries are read once per country, because a rank only exists per storefront — and books that have never sold are not read at all, because Amazon has no rank to give them. **With Author Central, most of this does not apply**: your six main storefronts arrive complete, with their history, on the first pass. ## The history chart Open any book to see its rank over time, one line per storefront. The vertical axis is **upside down on purpose** — #1 is the best, so it sits at the top and every improvement reads as a climb. It is also **logarithmic**, because a rank moves multiplicatively: without it, a book drifting from #900,000 to #1,800,000 would flatten everything else on the chart into a single line. A break in a line is a day with no reading — including a KDP Select free run, which Amazon leaves out of the report entirely. We draw the gap rather than a straight line across it. ## How often it refreshes Amazon recalculates ranks hourly, but only publishes a daily history, and a book ranked past #100,000 genuinely moves about once a day. So we re-read: - **daily** for a book ranked inside the first million, - **every three days** past that, where the rank barely moves, - **weekly** for a book with no rank at all. Opening the book's Amazon page always refreshes it on the spot. ## Reading it honestly A rank below #10,000 is a book selling steadily; around #100,000 it sells roughly daily; past #1,000,000 it has not sold in a while. Those are bands, not conversions — the same rank means different sales in different categories, and the only figures that are truly yours are the royalties on your [dashboard](/docs/app/dashboard). --- # Reviews Every Amazon review of your books, from every storefront, in one place — with an alert when a new one lands. URL: https://trueroyalties.com/docs/app/reviews Amazon shows reviews one book and one storefront at a time. This page shows all of them together. ![Reviews page with average rating, star distribution, reviews by country and a searchable book list](/images/docs/reviews.png) ## The summary ![Reviews summary card: 4.1 average, 535 ratings, 238 written reviews across 15 books, with a per-country breakdown](/images/docs/reviews-summary.png) Your average rating, total ratings, written reviews, and where those reviews come from. Below it, a searchable list of your books — click one to read its reviews, storefront by storefront. ## How reviews are collected Amazon review pages are **not public**: signed out, Amazon redirects to its sign-in form. So reviews are read the same way royalties are — by the [extension](/docs/connect/extension), using the session you already have. This has one practical consequence: **you only get reviews from the storefronts you are signed in on**. The page tells you which ones are covered, and refreshes a marketplace on its own once you visit it while signed in. ## Only local reviews count An Amazon storefront with few local reviews pads its page with reviews from other countries. Those are ignored on purpose, so a US review is never counted as a French one. Your per-country breakdown stays true. ## New review alerts **Settings → Notifications** can pop a browser notification when a new review appears. It requires the extension to be running. ## Refresh rate Reviews are refreshed in the background, gently, to stay well within what Amazon tolerates. Expect new reviews within a day, not within minutes. ## Asking for more of them This page shows the reviews you have. Getting more is a different job, and the hard part is never the writing — it is the reader finding the right page on the right Amazon store. A [smart link](/docs/app/smart-links) set to **Leave a review** opens the review form in the reader's *own* store. Put its QR code on the last page of your paperback and the link itself in the ebook's back matter. --- # Smart links One link. Every reader lands in their own Amazon store — one that actually sells your book — and you can re-point it later without reprinting anything. URL: https://trueroyalties.com/docs/app/smart-links ## Followed a bkto.link link and ended up here? **bkto.link** is the link shortener TrueRoyalties gives to book authors. A link like `bkto.link/x7k2` is created by an author and opens their book on **your** local Amazon store. If you landed here instead of on a book, the link was probably mistyped — they are short, so one wrong character is enough. Ask the author for it again. ## What a smart link is A short link you create once and share everywhere: a Facebook ad, a newsletter, your Instagram bio, the back matter of your paperback. When someone opens it, we look at which country they are in and send them to **their own** Amazon storefront — amazon.de for a reader in Germany, amazon.ca for one in Canada. ## Why not just paste your Amazon link Because an `amazon.com` link only works for readers in the United States. Everyone else lands on a page where they cannot buy, and most of them leave. A smart link also checks that your book is **actually sold** in the store it is about to send someone to. An ebook has no Kindle store in Poland or Sweden, and a hardcover is not sold in Japan — so a reader there is sent to a store that does have your book, instead of a dead page. ## Create one 1. Open **Smart Links** in the menu, then **Create smart link**. 2. Choose where it should send readers: | Destination | What the reader gets | | --- | --- | | Buy the book | Your book's page, in their own Amazon store | | Leave a review | Amazon's review form, straight to the stars | | See the reviews | Your book's review page — Amazon's own "Write a customer review" button is on it | | Any other URL | Whatever you paste — newsletter, retailer, landing page | | A different URL per country | One URL per country you choose, plus a default for everyone else | 3. Pick the book. Give the link a name — only you ever see it. 4. Optionally add a custom ending, so the link reads `bkto.link/dragon-book-1` instead of `bkto.link/x7k2`. You need a connected KDP account and an active subscription to create links. ## Collecting reviews Reviews are the thing a smart link is best at, because the hard part has never been writing the review — it is the reader finding the right page on the right Amazon store. The setup that works: 1. Create a **Leave a review** link, and pick **every book** — there is a *Select all* button. You get one link per title, each with its own address. 2. Put its **QR code** on the last page of the paperback, right after the end of the story. That is the moment a reader is most willing. 3. Put the link itself in the ebook's back matter, where a QR code is useless — nobody scans the screen they are reading on. Which of the two review destinations? **Leave a review** is the shortest path — the form opens directly. **See the reviews** is better when the reviews you already have are themselves the argument: the reader reads a few, then uses Amazon's own button on that page. Either way, the reader lands on **their own** Amazon store. A German reader asked to review on amazon.com simply cannot. ### Several books at once Pick more than one book and you get **one link per book**, created together. This is how you give forty titles a "leave a review" link without doing it forty times. The name you type becomes their shared prefix; each link still has its own address and its own statistics. ### A book you have not published yet Choose **Not published yet?** and type the ASIN by hand. Use it for a pre-order, or for a title that is not in your catalogue. Once KDP has synced the book, edit the link and pick the real book — **the address does not change**, so anything already printed keeps working. ## Auto-localise a URL you pasted When you choose *Any other URL* or *A different URL per country*, leave **Auto-localise store links** on. If the URL points at Amazon or Apple Books, we open it in the reader's own store instead of the one you happened to copy. Any other URL — your blog, your newsletter — is left exactly as you typed it. ## Amazon Associates tags Click **Associates tags** above the list and enter the tag Amazon gave you for each store: they are different everywhere (`yourname-20` on .com, `yourname-21` on .co.uk, and so on). Then switch on **Add my Amazon Associates tag** on any link. The link then carries the right tag for whichever store the reader lands on. A store you leave blank simply gets a clean link — never someone else's tag. **Amazon does not allow affiliate links in printed material, ebooks or email.** Your QR code and the *Copy for back matter / email* button drop the tag automatically, so a tagged link stays safe to print. Amazon also asks that you not hide where a link leads. Say it where you post it — "Buy on Amazon: bkto.link/…" — rather than letting the short address stand alone. ## QR codes ![A single smart link's page: clicks, unique visitors, all-time total and bots filtered, a daily chart, the link with a copy-for-back-matter button, and its QR code](/images/docs/smart-link-detail.png) Every link has one, on its own page. Download it as **PNG** or **SVG** — print the SVG when your designer accepts it, because a vector cannot blur. Click the **i** next to the QR code for a list of places to put it: the last page of your paperback, a bookmark, a table sign at a fair, an Instagram story, the end screen of a video. It also says where *not* to: inside an ebook, where nobody can scan the screen they are reading. Scans are counted separately — they show up as **QR code scan** in *Came from*, so you can tell them from social traffic. ### Make it look like yours **Customise** opens the design panel: the colours, the shape of the modules and of the three corner squares, your book's cover in the middle, a round outline, and a caption underneath. A caption is the setting worth using — "Scan to leave a review" earns far more scans than a bare code, because it says what the reader gets, and it sits outside the code so it costs no readable data. Two checks run on every change, and they answer different questions: | Check | What it proves | | --- | --- | | **Reads back** | We shrink the finished code to the size a phone camera sees, then decode it again. This is what catches a logo that has eaten too much of the data. | | **Contrast** | The dark-to-light ratio, against the 4.5:1 print standard. Decoders read pale codes that a phone in a dim room will not. | A code can pass the first and fail the second, and that is the trap worth knowing: pink on lavender decodes perfectly on your screen and dies on paper. Your design is saved with the link, so every later download matches it. **Reset to plain** always returns black on white — the most scannable code there is. For anything that is not a smart link, the same designer is free and needs no account: [QR code generator](/qr-code-generator). ## What you can see ![Smart Links page with a clicks-per-day chart and the list of links, each with its address, destination and 30-day clicks](/images/docs/smart-links.png) | Where | What it shows | | --- | --- | | Top of the page | **Clicks per day across every link**, over 7, 30 or 90 days | | **More details** | Clicks, unique visitors, all-time total, bots filtered — then countries, storefront served, devices and where the clicks came from, for the whole account | | Each row | That link's clicks over the same window, with a small daily graph | | A link's page | The same figures and breakdowns, for that one link | The headline is always the sum of the list underneath it — same data, same window. Clicks appear **immediately** — no waiting, and an open page updates on its own. Link previews do not count. When you paste a link into Facebook, Slack or WhatsApp, those services open it themselves to build the preview card — we recognise them and leave them out, so your numbers stay about real readers. ## On your dashboard Once you have a link, **Smart link clicks** appears as a card on your [dashboard](/docs/app/dashboard). Click it and the clicks are drawn over your royalties and ad spend, on their own axis — which is the point: it puts what your marketing did next to what it earned. Two honest limits. The card follows your marketplace filter, but it disappears when you filter by distribution (Kindle Unlimited, Retail…): a click happens before the reader has chosen anything, so it belongs to no channel and we would rather remove the number than show one that ignores your filter. ## Organise them - **Tags** — comma-separated when you create or edit a link. The list shows them as chips you can click to filter. - **Description** — a line of your own to tell two similar links apart. - **Search** — matches the link's name, its tags, its description, its address, and the book's title, ASIN or author. ## Changing, archiving, deleting You can change a link's destination at any time. **Its address never changes** — that is the whole point. A link printed inside a paperback keeps working years later, even if you move the book to a new edition. | Action | What happens | | --- | --- | | Edit | New destination, same address. Takes effect immediately, everywhere. | | Archive | The link stops resolving, but its address stays reserved so nobody else can take it. Reversible. | | Delete | Gone for good. The address is freed and anything already printed stops working — and someone else could later take it. | Every author's links share one domain, so we can also disable a link ourselves if it is reported for abuse. That is rare and it is not a judgement on your writing: one flagged link would otherwise get the whole domain blocklisted, taking down everyone's printed links at once. A disabled link shows a page saying so, and you can write to us about it. ## What we record about people who click So you can answer if a reader asks: for each click we keep the date, a country, a device category (mobile, tablet or desktop), the domain the visitor came from, and which Amazon store we sent them to. We do **not** store their IP address. To tell a repeat visit from a new one on the same day we keep a one-way hash of it that changes daily and cannot be turned back into an address. Following a link sets no cookie, and individual click records are deleted after 90 days — the daily totals behind your charts stay. Full detail in the [privacy policy](/privacy). ## What smart links will not do - **They cannot beat a VPN.** A French reader browsing through a US VPN looks American to every website, ours included. - **Clicks are not sales.** Amazon tells nobody which click led to which purchase. A click count tells you your link is working, not what it earned. --- # Your verified page Publish a public page of your KDP royalties that other people can actually trust — and choose exactly how much of it to show. URL: https://trueroyalties.com/docs/app/verified ## What it is A page at **trueroyalties.com/verified/your-name** showing your KDP figures, computed by TrueRoyalties from your own KDP reports and Amazon Ads account. You choose what appears on it. You cannot change what it says — and that is the whole point. A screenshot can be edited in a browser in ten seconds, so nobody trusts one. This is checkable by the person reading it. Common uses: backing an income claim in a course or a YouTube video, selling a pen name, applying for a sponsorship, or showing a partner a real track record. ## Setting it up ![The verified page editor: publish switch, page address with availability check, headline, genres and the switch that shows the author's name and photo](/images/docs/verified-editor.png) 1. Open **Verified page** in the sidebar. 2. Pick your page address — the part after `/verified/`. The field tells you as you type whether it is free. 3. Choose your metrics, your time periods and which blocks to include. 4. Choose how much of each amount to show (see below). 5. Turn on **publish**. The preview at the bottom of the page is the real page, updating as you click. You need a connected KDP account with at least one completed sync. Until then there is nothing to verify. ## What you can put on it Your page is built from the same blocks as your dashboard. Everything except the figures themselves is optional. ![Live preview of a verified page: royalties and units cards, marketplace and period filters, the trend chart and a top books shelf](/images/docs/verified-public.png) | Block | What a visitor gets | | --- | --- | | Metric cards | Royalties, net profit, ad spend, units, True ACOS — whichever you pick. Click one to plot it. Royalties and units also show how much of the period your ads brought in. | | Trend chart | The same chart as your dashboard, over the selected period. | | Period filter | Always there. It drives the cards and the chart together. Every period is selected to start with. | | Marketplace filter | Lets a reader narrow the page to one or more storefronts. | | Distribution filter | Retail, Expanded Distribution, Kindle Unlimited. | | Top books | Your five best titles for the period, ranked by royalties or by ad spend. Needs "Show my book titles and covers". | | Units by marketplace | Copies sold per storefront and format. | A reader who narrows by marketplace or distribution sees the cards and the chart follow. Two details worth knowing: - **Top books is ranked over the whole period**, across every storefront — the card says so when a filter is on. - **Units by marketplace counts copies**, so the distribution filter does not apply to it: Kindle Unlimited is measured in pages read, not copies. - **Top books disappears when you hide your books or your amounts** — every line of that card is a title with money next to it, so there is nothing left to show. ## Your page address You can claim up to **5 addresses in total**, and **one is live at a time**. An address is yours for good — it can never be released, and you cannot delete it. That sounds strict and it is what protects you: **change your address and the old one keeps working**, forwarding to the new page. A link you put in a book's back matter will not die because you renamed yourself two years later. Switching back to an address you already own costs nothing. Only a brand-new one uses up one of the five, and the editor shows you how many are left, with the full list of yours. Some addresses are refused: our own name and Amazon's (a page pretending to speak for either is the one lie worth telling here), the words a scam page needs, and obscenities. If yours is refused and you think it should not be, tell us. ## How much to show The **amount display** setting applies to money only: | Setting | A visitor sees | | --- | --- | | Exact amounts | $12,480 | | Rounded amounts | $12.5K | | Ranges only | $10K – $25K | | Hide amounts | No figure at all — only growth and the trend | Whatever you choose is applied before the page is sent. A rounded or hidden amount is not on the page in any form, so nobody can dig the real number out of it. **Counts are always exact.** Units sold, titles published and marketplaces are shown as they are — a rounded count would be misleading ("10 titles" when you have 7). If you would rather not share one, leave that metric out. **Ranges and hidden amounts remove the Top books card entirely.** Every line of that card is a per-book amount, so there is nothing left to show — covers, titles and figures are all left out of the page, not merely hidden from view. **Growth still shows when amounts are hidden.** A percentage compares two hidden numbers, so it gives neither away. **If you mask amounts, a filtered view shows no money.** With ranges or hidden amounts there is no honest figure to state for one storefront on its own, so the money cards read "Not shown" while units and the shape of the trend keep working. ## Showing who you are Two switches, side by side, and nothing else decides this: | Switch | What becomes public | | --- | --- | | **Show my name and photo** | Your name and your picture. Off → the page is signed "Verified KDP author". | | **Show my book titles and covers** | Your catalogue. Off → the page shows figures with no titles. | They are **separate on purpose**. If the pen name you publish under on Amazon is not the name you use anywhere else, you can show yourself here without handing over the catalogue that would link the two. Each switch is **all-or-nothing inside itself**: a photo with no name is still a face, and a cover with no title is still a book anyone can search for. Both are **off by default**. Publishing your books asks you to confirm — a catalogue identifies its author on Amazon on its own, and once someone has seen the page you cannot take that back. If your name is already on the page, the confirmation says so plainly: the two are then tied together for good. **The figures are verified either way.** That is the point — you can prove a number without attaching your pen name to it. ## Proving the page is yours Optional, and separate from the figures. Your numbers prove *an account* earns money; a verified link proves *the account is yours*. Add your website, X, YouTube channel, newsletter or Amazon author page. We give you a one-time token, you place it on that page or profile, and we read it back. Only links we could actually verify appear publicly — a pending or failed one is visible to you alone. For a website you can also add the token as a DNS TXT record, which is the sturdiest option: it survives a redesign or a change of theme. **If we cannot read your page, the extension checks it for you.** A lot of sites — Wix, Squarespace, Webflow, Notion, and X, Instagram and TikTok — build their content with JavaScript. Our servers receive an empty shell, so your token can be plainly on the screen and completely absent from what we can see. When that happens, the TrueRoyalties extension opens the page in a background tab in your own browser, where it renders normally, and sends back what it saw for us to check. The first time, your browser asks permission to read pages — open the extension and press **Allow**. It is asked once and covers every site from then on. **Without that permission, a page we cannot read cannot be verified.** There is no other way for anyone to confirm a token that only exists after JavaScript runs. If you decline, the claim stays waiting and you can allow it at any time from the extension. You will also need the extension installed. We re-check every verified link once a week. If the token disappears, the check mark does too — that is what stops "verified" from meaning "was verified once". When the weekly check cannot find your token but the page loaded fine, your badge **stays** while the extension takes a second look — we do not take a page down because a site is JavaScript-rendered. If nothing confirms it within two weeks, the link is un-verified. ## Sharing it Four ways, all in the **Share your page** card: - **Link** — for a bio, an email, a video description. - **Embed** — an iframe for your own site or a sales page. - **Badge** — a small image that links back to your page. - **Markdown** — for a GitHub profile or a newsletter post. The embed is an iframe rather than a script, so it cannot read anything from the page it sits on. That makes it much easier to get onto someone else's site. ## The public directory Separate, optional switch. Turning it on lists you on **trueroyalties.com/verified** alongside other verified authors. Leaving it off keeps your page fully working as a private link. ## How fresh the figures are Recalculated every day, and again whenever you change your settings, from the same figures your [dashboard](/docs/app/dashboard) reads — so the page can never say something your own account does not. It always states the date it was last verified, so a reader can see for themselves. There is a **Refresh now** button if you need it sooner. If your subscription lapses, your page stays online but stops refreshing — the "last verified" date on it tells the truth from then on. # TrueRoyalties Blog ## Blog Index - [Break-Even ACOS: The One Number That Decides If Your KDP Ads Make Money](https://trueroyalties.com/blog/break-even-acos-amazon-kdp-ads) - Break-even ACOS is the exact point where an Amazon ad stops costing you money. Here is the formula, worked examples for ebooks and paperbacks, and why comparing ACOS to your list price is the mistake quietly draining your budget. - [Your ACOS Is Lying: How Kindle Unlimited (KENP) Hides Your Real Ad Profit](https://trueroyalties.com/blog/kindle-unlimited-kenp-hidden-ad-profit) - When a Kindle Unlimited reader clicks your ad and borrows your book, Amazon records the spend but zero revenue — so your ACOS looks awful even when you made money. Here is how KENP page-read royalties change the math, and how TACOS folds them into the royalties your ads actually generated. - [ACOS vs TACOS: Which One Actually Tells You If Your Book Business Is Profitable](https://trueroyalties.com/blog/acos-vs-tacos-kdp) - ACOS divides your ad spend by the retail sale price Amazon credits to your ads — money you never keep. TACOS divides it by the royalties your ads actually generated. Here is the difference, a worked example, how to read TACOS (100% is break-even), and why it is the only ad metric denominated in money you keep. - [Net Profit Per Book: How to Know Which Titles Actually Make You Money](https://trueroyalties.com/blog/net-profit-per-book-kdp) - An account-level ACOS hides the losing titles your winners are subsidising. Here is how to calculate net profit per book, the costs authors forget, and a simple framework for deciding what to scale, fix, or pause. - [Stop Burning Money: Finding Wasted Ad Spend in Your Amazon Book Campaigns](https://trueroyalties.com/blog/find-wasted-ad-spend-amazon-book-ads) - Unmanaged Amazon book campaigns waste 30–50% of their budget on clicks that never convert. Here is how to read your search-term report, concrete rules for negative keywords, and why waste should be measured against net profit. - [One Book, Seven Currencies: Tracking KDP Profit Across US, UK, DE, FR, ES, IT & JP](https://trueroyalties.com/blog/kdp-profit-across-marketplaces-currency-tax) - The same book can be profitable in the US and lose money in Germany once ad VAT, withholding tax, and currency conversion are counted. Here is why you can't just add up numbers from different dashboards — and what a consolidated, tax-aware P&L should look like. ## Full Articles --- # Break-Even ACOS: The One Number That Decides If Your KDP Ads Make Money Break-even ACOS is the exact point where an Amazon ad stops costing you money. Here is the formula, worked examples for ebooks and paperbacks, and why comparing ACOS to your list price is the mistake quietly draining your budget. URL: https://trueroyalties.com/blog/break-even-acos-amazon-kdp-ads Published: 2026-07-08 Tags: Amazon Ads, Profitability Most KDP authors watch a single number in their Amazon Ads console: ACOS. And most of them are reading it against the wrong benchmark. If you compare your ACOS to your book's list price, you will keep campaigns running that lose money on every sale. The number you actually need is your **break-even ACOS** — the exact ACOS at which an ad neither makes nor loses you money. ## What ACOS really measures ACOS (Advertising Cost of Sale) is simple: ``` ACOS = Ad Spend ÷ Ad Revenue × 100 ``` If you spent $10 on ads and those ads drove $40 of book sales, your ACOS is 25%. So far so good. The trap is the word "revenue." Amazon reports revenue at your book's **list price**, but you never keep the list price. You keep the **royalty**. A 25% ACOS looks healthy — until you realise Amazon took its cut, printing ate another slice, and the royalty you actually banked was far less than 25% away from your ad spend. ## The formula that matters Your break-even ACOS is the share of the sale price that comes back to you as royalty: ``` Break-Even ACOS = (Royalty per unit ÷ List price) × 100 ``` Below this ACOS you profit. Above it you lose money on every advertised copy. The entire game is keeping your real ACOS comfortably under this line. ## Worked example: a 70% ebook Take a $9.99 ebook enrolled in the 70% royalty tier. Amazon subtracts a delivery cost (roughly $0.15 per MB in the US) before paying you. For a typical 2 MB file that is about $0.30. ``` Royalty = 0.70 × ($9.99 − $0.30) = 0.70 × $9.69 = $6.78 Break-Even ACOS = $6.78 ÷ $9.99 = 67.9% ``` So this ebook can run at an ACOS up to roughly **68%** before it starts losing money. That is far more headroom than most authors assume — many pause perfectly profitable ebook campaigns at 40% because they think 40% is "high." ## Worked example: a paperback Paperbacks are a different animal because printing cost is subtracted from a lower royalty rate (60% on most Amazon marketplaces). Take a 300-page black-and-white paperback listed at $14.99. US print cost is a fixed fee plus a per-page charge: ``` Print cost = $0.85 + (300 × $0.012) = $0.85 + $3.60 = $4.45 Royalty = (0.60 × $14.99) − $4.45 = $8.99 − $4.45 = $4.54 Break-Even ACOS = $4.54 ÷ $14.99 = 30.3% ``` The same author, advertising both formats of the same book, has two completely different break-even points: | Format | List price | Royalty | Break-even ACOS | | --- | --- | --- | --- | | Ebook (70%) | $9.99 | $6.78 | 68% | | Paperback (60%) | $14.99 | $4.54 | 30% | Run both books to the same "40% ACOS is my limit" rule and you throttle the ebook that could scale while bleeding money on the paperback. ## From break-even to a target ACOS Break-even is the line where profit is exactly zero. You do not want to advertise at zero profit — you want margin. A common rule is to target roughly **70% of your break-even ACOS**, which locks in about a third of your royalty as profit: - Ebook: target ACOS ≈ 0.70 × 68% ≈ **48%** - Paperback: target ACOS ≈ 0.70 × 30% ≈ **21%** Anything between your target and your break-even is still profitable — it just leaves thinner margin, which is fine while you are gathering data or defending a launch. ## The mistake that quietly costs you money The single most common error in KDP advertising is judging campaigns against list price instead of royalty per unit. Your break-even ACOS depends on royalty, and royalty depends on format, price tier, page count, delivery cost, and the marketplace you are selling in. A number that is winning in the US paperback market can be losing in the German ebook market on the very same title. There is one more layer the ACOS number ignores entirely: if a Kindle Unlimited reader clicks your ad and *borrows* instead of buying, Amazon records the ad spend but zero revenue — so your ACOS looks terrible even when the page reads made you money. We break that down in [How Kindle Unlimited (KENP) hides your real ad profit](/blog/kindle-unlimited-kenp-hidden-ad-profit). ## Where TrueRoyalties fits Break-even ACOS is not one number — it is a different number for every book, format, and marketplace you sell in, and it moves whenever print costs, delivery fees, taxes, or exchange rates change. TrueRoyalties computes your true royalty per unit automatically and shows you the real break-even line for each title, so you can stop guessing whether a 45% ACOS is a win or a slow leak. Because at the end of the day the only number that matters is the one Amazon never shows you: **Net Profit = Royalties − Ad Spend.** --- # Your ACOS Is Lying: How Kindle Unlimited (KENP) Hides Your Real Ad Profit When a Kindle Unlimited reader clicks your ad and borrows your book, Amazon records the spend but zero revenue — so your ACOS looks awful even when you made money. Here is how KENP page-read royalties change the math, and how TACOS folds them into the royalties your ads actually generated. URL: https://trueroyalties.com/blog/kindle-unlimited-kenp-hidden-ad-profit Published: 2026-07-07 Tags: Kindle Unlimited, Profitability Here is a scenario that pauses profitable campaigns every single day. A reader searches Amazon, clicks your Sponsored Product ad, and adds your book to their Kindle Unlimited library. They read all 400 pages over the weekend. You earned real money from those page reads — but in your Amazon Ads console, that click shows **ad spend and zero revenue.** Your ACOS on that campaign looks catastrophic, so you turn it off. You just killed a winner. ## Why the console can't see your KU income Amazon's advertising reports only count **purchases** as revenue. Kindle Unlimited borrows are not purchases — the reader pays a flat subscription, and you get paid later out of the KDP Global Fund based on **pages actually read**, measured in KENP (Kindle Edition Normalized Page Count). Those page-read royalties land in your KDP dashboard, in a completely separate system, days or weeks after the click that caused them. The ad console never reconciles the two. So for every KU-driven borrow, the ad platform sees the cost but never the income. For many fiction authors, **50% to 70% of total income is KU page reads.** If your ACOS ignores that income, your ACOS is ignoring most of your business. ## What a page read is actually worth KDP pays roughly **$0.0045 per page read**, though the exact rate floats every month with the size of the Global Fund (recent months have hovered between about $0.0040 and $0.0050). A full read-through of a normalized 400-page book is therefore worth: ``` 400 pages × $0.0045 = $1.80 per full read-through ``` That is real royalty — often comparable to the royalty on a $2.99 ebook sale. Now watch what it does to a campaign the console calls a failure. ## Worked example: the campaign you almost killed Say a 30-day campaign on a KU-enrolled novel looks like this in the ad console: | Metric (ad console) | Value | | --- | --- | | Ad spend | $60 | | Attributed sales | 6 ebooks × $3.28 royalty = $19.68 | | Reported ACOS | 305% | A 305% ACOS screams "turn it off." But the ad console can't see that those same clicks also drove **40 borrows**, and readers collectively burned through 9,000 KENP pages: ``` KENP royalty = 9,000 pages × $0.0045 = $40.50 ``` Now fold the page reads back in: ``` Ad-generated royalties = $19.68 (sales) + $40.50 (KENP) = $60.18 TACOS = $60 ÷ $60.18 = 99.7% ``` The campaign went from "305% ACOS, obviously losing money" to "essentially break-even, and about to compound as those readers finish the series." Same clicks. Same spend. Completely different decision. ## The TACOS formula The fix is to stop measuring ad spend against sales alone, and divide it by the royalties your ads actually generated: ``` TACOS = Ad Spend ÷ (Sales royalties + attributable KENP royalties) ``` That is exactly what [TACOS measures](/blog/acos-vs-tacos-kdp) — ad spend ÷ ad-generated royalties, with 100% as the break-even line. Compare it to your break-even ACOS — see [Break-Even ACOS: the one number that decides if your KDP ads make money](/blog/break-even-acos-amazon-kdp-ads) — and you finally know whether a campaign is winning. ## Why this is so hard to do by hand Two obstacles make manual tracking painful: - **Attribution.** KDP reports total KENP for a book, not "KENP caused by this campaign." You have to estimate the ad-driven share, usually by watching how borrows and page reads move when you turn spend up or down. - **Timing.** Page reads trickle in for days or weeks after the click, and the monthly per-page rate is not final until KDP publishes the Global Fund. Your TACOS is a moving target that only settles after the fact. This is exactly why a spreadsheet updated once a month gives you a number that is already stale — and why so many authors never attempt the calculation at all. ## Where TrueRoyalties fits TrueRoyalties reunites the two halves Amazon keeps apart: the ad spend from your Amazon Ads account and the royalties — **including KENP page reads** — from your KDP account. It continuously estimates the KENP royalties attributable to your advertising and folds them into a true, page-read-aware view of profit per book. Because the campaign that looks like a disaster in the ad console might be the one quietly funding your next release, and the only way to know is to measure **Net Profit = Royalties − Ad Spend** with the page reads included. --- # ACOS vs TACOS: Which One Actually Tells You If Your Book Business Is Profitable ACOS divides your ad spend by the retail sale price Amazon credits to your ads — money you never keep. TACOS divides it by the royalties your ads actually generated. Here is the difference, a worked example, how to read TACOS (100% is break-even), and why it is the only ad metric denominated in money you keep. URL: https://trueroyalties.com/blog/acos-vs-tacos-kdp Published: 2026-07-06 Tags: Amazon Ads, Metrics ACOS is the number Amazon puts in front of you, and for a KDP author it is quietly misleading. It divides your ad spend by the *retail sale value* Amazon credits to your ads — the price the customer paid, not the money you keep. You never earn the sale price; you earn a royalty, a fraction of it. TACOS fixes that: it divides ad spend by the royalties your ads actually generated. That is the number that tells you whether a campaign makes you money. ## The two formulas side by side ``` ACOS = Ad Spend ÷ Ad-attributed Sales (retail price) × 100 TACOS = Ad Spend ÷ Ad-generated Royalties (what you keep) × 100 ``` Same ad spend on top. The difference is the denominator: ACOS uses the customer's purchase price; TACOS uses **your royalty** on those purchases — plus the Kindle Unlimited pages your ads drove. > **A note on the name.** You will also see TACOS (Total ACOS) defined as ad spend ÷ your *total* sales, organic included. That version answers "how ad-dependent is my whole business?" — useful, but it still divides by the sale price, not your royalty. We use TACOS for the number that actually decides a campaign: ad spend ÷ the royalties your ads *generated*. Same instinct (look past a single campaign's ACOS), sharper denominator (money you keep, not the customer's price). ## Why ACOS flatters every KDP campaign On a $4.99 ebook at 70% you keep about $3.44. On a $12.99 paperback, after printing costs, you might keep $2. Amazon's ACOS is calculated against the $4.99 or the $12.99 — money that never reaches your bank account. So a "healthy-looking" 40% ACOS can hide a campaign that loses money the moment you count only your royalty. Authors who optimise to ACOS are optimising to a number that was never theirs. ## Worked example: the campaign ACOS says to keep One month, one title: | Metric | Value | | --- | --- | | Ad spend | $500 | | Ad-attributed sales (retail price) | $1,000 | | Your royalty on those sales | $380 | | Ad-driven KU royalties | $40 | | **Ad-generated royalties** | **$420** | Judged on ACOS: ``` ACOS = $500 ÷ $1,000 = 50% → "efficient, keep spending" ``` Judged on TACOS: ``` TACOS = $500 ÷ $420 = 119% → "you paid $1.19 for every $1 of royalty" ``` ACOS calls the campaign efficient. TACOS shows you spent $500 to earn $420 of actual royalty — a loss. Only TACOS is denominated in money you keep. ## Reading TACOS: 100% is the line - **Under 100%** — the ads more than pay for themselves on the royalties they directly generated. You have room to scale. - **Around 100%** — break-even on direct royalties. Can still be worth it if the ads lift your sales rank and drive organic sales you did not pay for (the halo effect). - **Over 100%** — each ad-driven royalty costs more than it returns. Justified during a launch, or while organic halo is clearly picking up the slack — a warning sign if it persists for months. The trend matters more than any single reading. **A TACOS that falls month over month** means each advertising dollar is converting into more of your real royalty. ## Don't forget Kindle Unlimited For KU-heavy titles, a large share of ad-driven income is page reads, not purchases. TACOS folds in the estimated KU royalties Amazon attributes to your ads, so it does not overstate how ad-dependent a KU title really is — see [how KENP hides your real ad profit](/blog/kindle-unlimited-kenp-hidden-ad-profit). ## When to use which - **ACOS** is Amazon's campaign-level lever — fine for comparing keywords, ads and bids inside the console, *as long as you remember it is measured against sale price, not royalty.* Judge it against your [break-even ACOS](/blog/break-even-acos-amazon-kdp-ads), not your list price. - **TACOS** is the profit question: for every euro of royalty an ad earned, how much did you spend to get it? It only makes sense at the book or account level, over weeks and months. ## Where TrueRoyalties fits TACOS is only trustworthy if "ad-generated royalties" is computed correctly — your real per-book royalty on ad-attributed sales, plus the KU royalties Amazon attributes to your ads, net of tax and converted to one currency. TrueRoyalties assembles exactly that from your KDP and Amazon Ads data and shows TACOS per book and globally, continuously — so you optimise to the money you keep, not the price the customer paid. Because the goal was never a low ACOS on one campaign — it was **Net Profit = Royalties − Ad Spend**, and TACOS is the ratio that gets you there. --- # Net Profit Per Book: How to Know Which Titles Actually Make You Money An account-level ACOS hides the losing titles your winners are subsidising. Here is how to calculate net profit per book, the costs authors forget, and a simple framework for deciding what to scale, fix, or pause. URL: https://trueroyalties.com/blog/net-profit-per-book-kdp Published: 2026-07-04 Tags: Profitability, KDP Ask most authors "are you profitable?" and they answer with one number for their whole account. That single number is exactly how a loss-making title hides for a year. When you advertise ten books, your winners quietly subsidise your losers, and the account-wide average looks fine while two or three titles bleed money every month. The only way to catch it is to calculate **net profit per book.** ## The formula the product is built on ``` Net Profit = Royalties − Ad Spend ``` Simple to write, deliberately hard to compute correctly — and it has to be computed **per title**, not just account-wide. Account-level profit answers "am I okay overall?" Per-book profit answers the question that actually changes decisions: "which titles should I scale, which should I fix, and which should I stop advertising today?" ## Why the account average lies Here is a five-book account that looks healthy in aggregate: | Book | Royalties | Ad spend | Net profit | | --- | --- | --- | --- | | Book A | $1,900 | $600 | +$1,300 | | Book B | $1,400 | $500 | +$900 | | Book C | $420 | $780 | −$360 | | Book D | $310 | $690 | −$380 | | Book E | $560 | $520 | +$40 | | **Total** | **$4,590** | **$3,090** | **+$1,500** | Account net profit is a comfortable +$1,500. But Books C and D are losing $740 a month between them, hidden behind A and B. Fix or pause those two and the same account nets $2,240 — a **49% increase in profit** with zero extra sales, just by seeing the titles individually. ## The costs authors forget Net profit only tells the truth when every real cost is in it. The ones most often left out: - **KENP page reads** belong in royalties — leaving them out makes KU titles look far less profitable than they are (see [how KENP hides your real ad profit](/blog/kindle-unlimited-kenp-hidden-ad-profit)). - **Print cost** on paperbacks is subtracted before royalty; a page-heavy book can have a razor-thin margin at any price. - **KDP withholding tax** — depending on your tax treaty, KDP withholds up to 30% of royalties before you ever see them. - **VAT/GST on ad spend** — in the UK, EU, and several other marketplaces your ad bill is charged with tax on top, so your real spend is higher than the console's number. - **Currency conversion** — royalties paid in euros or yen lose 2–4% at the bank before landing in your home currency. Skip these and your "profit" is fiction. Include them and some titles you thought were winners quietly slip into the red. ## A decision framework Once you have real net profit for each title, sort them into three buckets: - **Scale** — profitable at your target [break-even ACOS](/blog/break-even-acos-amazon-kdp-ads) with a falling [TACOS](/blog/acos-vs-tacos-kdp). Push more budget while the margin holds. - **Fix** — negative net profit but salvageable: prune wasted keywords, lower bids, or raise the price. Give it a defined window, then re-judge. - **Pause or protect** — persistently negative with no path to profit. Stop the spend — *unless* the book is the loss-leading first-in-series that drives read-through into profitable sequels. That last exception matters. A series starter can run at a loss on purpose because it funnels readers into Books 2 and 3. But that is a decision you make **on purpose**, seeing the whole funnel — not a loss you discover by accident a year later. ## Where TrueRoyalties fits Calculating honest per-book net profit means joining ad spend from Amazon Ads to royalties from KDP, folding in KENP, subtracting withholding tax and ad VAT, and converting every marketplace into one currency — then keeping it current as new data arrives. That is precisely what TrueRoyalties does: a live, per-book profit-and-loss view built on the only equation that matters, **Net Profit = Royalties − Ad Spend**, so your winners and your losers can never hide behind each other again. --- # Stop Burning Money: Finding Wasted Ad Spend in Your Amazon Book Campaigns Unmanaged Amazon book campaigns waste 30–50% of their budget on clicks that never convert. Here is how to read your search-term report, concrete rules for negative keywords, and why waste should be measured against net profit. URL: https://trueroyalties.com/blog/find-wasted-ad-spend-amazon-book-ads Published: 2026-07-02 Tags: Amazon Ads, Optimization Left unmanaged, an Amazon book campaign will happily spend 30–50% of its budget on clicks that never turn into a sale or a page read. It is not that the ads fail — it is that they succeed at the wrong things: matching searches that were never going to buy your book, on autopilot, day after day. The good news is that wasted spend is the easiest profit you will ever find, because you are not adding anything — you are just switching off the leaks. ## Auto campaigns are where the leaks hide Auto campaigns are the right way to start: they let Amazon match your book against thousands of search terms and show you what actually converts. But that discovery power is also the leak. Without pruning, an auto campaign keeps paying for terms that get clicks and never orders — a wide loose match burning budget on curiosity clicks and irrelevant searches. Your entire optimization job lives in one report: the **search-term report**, which shows the exact phrases customers typed before clicking your ad. ## Read the search-term report like a treasure map For every search term, you get impressions, clicks, spend, and orders. Three patterns tell you where the money is going: - **Clicks, no orders** — people click and leave. If a term has spent real money across enough clicks with zero orders, it is a leak. - **High impressions, near-zero CTR** — Amazon is showing you to the wrong audience. A click-through rate below about 0.10% means the term is a poor match for your cover and title. - **Irrelevant intent** — terms like "free books" or a competitor's series you have nothing in common with. They will never convert for you. ## Concrete rules for negative keywords Vague advice ("negate bad terms") is useless at 2am with 400 rows in front of you. Use hard thresholds instead: - **The "free" rule.** If your book is not free, add `free` as a negative. Bargain hunters click and bounce. - **The 1.5× royalty rule.** Negate any term that has spent more than **1.5× your royalty per unit** with zero orders in the last 14 days. If your royalty is $2.00, negate any zero-order term that has spent $3.00 or more. You have already paid more than one sale is worth and gotten nothing. - **The click threshold.** Give a term 10–15 clicks before you judge it. Below that, you do not have enough data; above it with no orders, it is a leak. - **The CTR floor.** Negate terms with a CTR under ~0.10% and meaningful impressions — Amazon is spending your budget showing you to people who scroll straight past. ## Cap your downside on the way in Pruning removes existing waste; two settings stop new waste before it starts: - **Down-only bidding.** Amazon's default "dynamic bids – up and down" can inflate your bid by up to 50% on the fly. "Down only" lets Amazon lower your bid on weak placements but never raise it, capping your cost per click. - **Starter bids.** Ignore Amazon's suggested bid and start low — often **$0.10–$0.15** — then raise it only on keywords proven to convert. It is far cheaper to bid up a winner than to bid down after the money is gone. ## The catch: "waste" is defined by net profit, not clicks Here is where most optimization guides go wrong. A term with clicks and no *purchases* is not automatically waste — if those clicks drove **Kindle Unlimited borrows**, the page reads may have paid for the click even though the console shows zero orders (see [how KENP hides your real ad profit](/blog/kindle-unlimited-kenp-hidden-ad-profit)). Negate purely on "no orders" and you can amputate a healthy campaign. So the real definition of waste is spend that is not converting into **royalties** — sales *plus* page reads — measured against your [break-even ACOS](/blog/break-even-acos-amazon-kdp-ads). Everything else is just clicks. ## Where TrueRoyalties fits Finding waste means comparing spend against the royalties it actually produced — including KENP — per campaign and per book, net of tax and in one currency. TrueRoyalties joins your Amazon Ads spend to your KDP royalties so you can see which spend is turning into profit and which is quietly leaking, instead of guessing from a console that only counts half your income. Because cutting waste is the fastest route to the same equation everything comes back to: **Net Profit = Royalties − Ad Spend.** --- # One Book, Seven Currencies: Tracking KDP Profit Across US, UK, DE, FR, ES, IT & JP The same book can be profitable in the US and lose money in Germany once ad VAT, withholding tax, and currency conversion are counted. Here is why you can't just add up numbers from different dashboards — and what a consolidated, tax-aware P&L should look like. URL: https://trueroyalties.com/blog/kdp-profit-across-marketplaces-currency-tax Published: 2026-06-30 Tags: Marketplaces, Profitability Sell one book across Amazon's marketplaces and you are not running one business — you are running seven. Royalties accrue in dollars, pounds, euros, and yen. Ad accounts are billed region by region, some with tax on top. Nobody consolidates any of it. So the author who "adds up the dashboards" to check profitability is quietly comparing numbers that are not in the same currency, not net of the same taxes, and not measuring the same thing. A title that is clearly winning in the US can be losing money in Germany — and the blended dashboard total hides it completely. ## Three places money quietly disappears Between the revenue Amazon reports and the money that reaches your bank, three layers eat your margin — and none of them show up in the ad console. - **Withholding tax on royalties.** Depending on your country's tax treaty with the US, KDP can withhold **up to 30%** of your royalties before paying you. A $1,000 royalty month can arrive as $700. - **VAT/GST on ad spend.** In the UK, the EU, and other regions, your Amazon Ads bill is charged **with tax on top** — 20% in the UK, 19% in Germany, 20% in France. A "£500" ad month is really £600 out of your account. US ad spend generally carries no VAT, so the same campaign has a different true cost in every marketplace. - **Currency conversion.** Amazon pays each marketplace in its local currency. Converting euros or yen into your home currency typically loses **2–4%** at the bank, plus payment thresholds that hold small balances for months. ## Why you can't just add up the dashboards Stack those layers together and the naive total is simply wrong. Watch the same book in two marketplaces, before and after the hidden costs: | | US marketplace | DE marketplace | | --- | --- | --- | | Royalties (reported) | $600 | €600 | | Ad spend (console) | $360 | €360 | | "Profit" on the dashboard | +$240 | +€240 | | Withholding tax on royalties | $0 | −€60 | | VAT added to ad spend (19%) | $0 | −€68 | | FX loss converting to USD (~3%) | — | −€16 | | **Real net profit** | **+$240** | **+€96 ≈ +$104** | Both marketplaces looked identical on the dashboard: +240 each. In reality the German market delivered **less than half** the profit once tax and FX were applied — and a slightly worse ad month there would tip it negative while the dashboard still showed a comfortable surplus. Add the two "profits" together as 480 and you have a number that means nothing. ## What a real consolidated P&L looks like To compare marketplaces honestly, every figure has to be normalised to the same basis before you add anything: 1. **Convert every amount to one reporting currency** at real rates, so dollars, euros, and yen are finally comparable. 2. **Count royalties net of withholding tax**, using your actual treaty rate — not the gross number KDP displays. 3. **Count ad spend tax-inclusive**, applying each marketplace's VAT/GST rate to the console figure. 4. **Then, and only then, sum** to a per-book and account-wide [net profit per book](/blog/net-profit-per-book-kdp). Do this and marketplaces you assumed were equal separate into clear winners and quiet losers — and you can shift budget toward the regions that actually pay. ## The KENP wrinkle, everywhere at once Kindle Unlimited runs in multiple marketplaces too, each with its own Global Fund and per-page rate in local currency. So the page reads that [rescue a campaign from a scary ACOS](/blog/kindle-unlimited-kenp-hidden-ad-profit) also need converting and consolidating before they can join your profit picture. It is the same reconciliation problem, multiplied by every marketplace you sell in. ## Where TrueRoyalties fits This is the mess TrueRoyalties was built to erase. It pulls royalties and KENP from every KDP marketplace and spend from every Amazon Ads account, applies your withholding rate and each region's ad VAT, converts everything into a single currency, and presents one consolidated, tax-aware profit view — per book and overall. No more comparing a dollar dashboard to a euro dashboard and hoping. Just the one number that survives translation across every marketplace: **Net Profit = Royalties − Ad Spend.**