Sales Tracker
By Mike
By Mike
Import sales and see your revenue.
How do I import sales data?
In Sales Tracker, upload a CSV or XLSX from Amazon KDP, IngramSpark, Draft2Digital, Kobo, Apple Books, or Barnes & Noble. For sales that keep coming in, connect WooCommerce, Shopify, or Square. Imported rows show on the Dashboard tab.
Where do I see my total revenue and trends over time?
Open the Dashboard tab in Sales Tracker. It rolls your imports into one income view: lifetime earnings, monthly trends, a year-over-year comparison, and breakdowns by platform and by book. The range buttons are 3M, 6M, 1Y, YTD, and Custom.
Getting started with Sales Tracker
Sales Tracker collects your sales from retailer reports, your own online store and sales you type in yourself, so you can see everything in one place. Open it from Sales Tracker in the sidebar. The page has three tabs: Dashboard, Import and History. Set it up 1. Go to the Import tab. 2. Download a royalty report from a retailer (for example Amazon KDP, IngramSpark or Draft2Digital) and drop it on Drop CSV or XLSX file here, or click Select File. 3. Leave Platform on Auto-Detect and click Import File. When it finishes you'll see how many records were imported. 4. If you sell direct, open Store Integrations on the same tab and connect your store (WooCommerce, Shopify, Square, Stripe, PayPal or Fourthwall). New sales then sync every night. 5. For anything else, such as a book fair or a hand-sold copy, use Manual Entry and click Add Manual Sale. 6. Go to the Dashboard tab to see your royalties, paid units, page reads and platforms. Use the date presets (All Time, 3M, 6M, 1Y, YTD, Custom) and the book, language, format and channel filters to narrow it down. Review and tidy up - The History tab lists every import with its file, platform, rows, royalty and date. Delete an import to remove every record it added. - Pick a Year on the History tab and click Tax Pack PDF or Tax Pack CSV for a year-end summary of royalties by platform and by book. - On the Dashboard tab, Export CSV downloads every sale record. - Your platforms (top of the page) lets you add, rename or delete the platform names you use for manual sales. Want a walkthrough? Click How do I use this tool? to take the tour. It shows example data so you can see how things look before you import anything.
Which Amazon KDP report should I download for Sales Tracker?
Sales Tracker reads the Royalties report from Amazon KDP. It does not read the Payments report. Download the right file 1. In KDP, go to Reports, then Royalties. 2. Choose a date range and click Download. 3. KDP gives you an XLSX file with your combined sales, ebook, paperback and hardcover royalties, and a KENP sheet if you have Kindle Unlimited page reads. All of these import together. The Prior Month Royalties download also works. The month is taken from its Sales Period. If you download the Royalties or Kindle Unlimited report as CSV instead of XLSX, import each file separately. Sales Tracker works out which one it is. Import it 1. Open Sales Tracker and go to the Import tab. 2. Drop the file on the drop zone or click Select File. 3. Leave Platform on Auto-Detect (or choose Amazon KDP) and click Import File. Page reads that show Pending KDP doesn't put a price on Kindle Unlimited page reads until the month has closed. Those rows show Pending in the royalty column on the Dashboard tab. Once KDP shows the amount in your report, click Enter amount next to Pending, type the royalty and click Save. This fills in the row without importing the report again, which would create duplicates. If you see a Payments report message If the import says the file is an Amazon KDP Payments report, you've downloaded the wrong report. Go back to Reports, then Royalties, and download that one instead.
Which sales report do I download from IngramSpark, Draft2Digital, Kobo and other stores?
Sales Tracker imports CSV, TSV, TXT, XLSX and XLS files. Here's which report to download from each place. The same guidance is listed under Where to Download Data on the Import tab. Retailers and distributors - IngramSpark: Reports, then Publisher Compensation, exported as CSV. The Title Report CSV also works. If your file has no dates, rename it to include the month, for example Ingram-2026-03.csv. - Draft2Digital: Sales Reports, choose Sales Detail and export. - Kobo Writing Life: Payments & Reports, then export the monthly sales report. Kobo Plus reading reports also import, as minutes read or listened. - Apple Books: Payments and Financial Reports, then export the Sales & Trends report. - B&N Press: Reports, exported as CSV. - Smashwords: Sales & Payment, then Sales Report, exported as CSV. Direct-sale sites - Payhip: Analytics, then Export sales. - Gumroad: Analytics, then Export CSV. - Ko-fi: Shop, then Orders (or Settings, then Export) as CSV. Tips and memberships are skipped. - Square: new orders sync once you connect Square. For sales from before you connected, export Reports, Sales, Item Sales Summary as CSV from your Square Dashboard. WooCommerce, Shopify, Stripe, PayPal and Fourthwall are not file imports. Connect them under Store Integrations instead. How the month is chosen Sales Tracker uses the dates in the file. If there are none, it looks for a year and month in the file name (like 2026-03 or 2026_03). If it still can't tell, it uses the current month. To put every row in one month, set Report month (optional) before you click Import File. If your file isn't recognised If the platform can't be detected, the Map CSV Columns window opens. Pick the platform, then choose which column holds each value. Book title and Royalty / Revenue are required; the date, units, currency, ISBN and ASIN are optional. Check the preview of the first rows, then click Import with mapping.
How do I connect Shopify, WooCommerce or Square to Sales Tracker?
If you sell books yourself, you can connect your store so its sales flow into Sales Tracker. Connections are under Store Integrations on the Import tab. Only the account owner can connect a store or run a store import, and you can connect one store per service. WooCommerce 1. In your WordPress admin, go to WooCommerce, Settings, then the Advanced tab. 2. Click REST API, then Add key. Set Permissions to Read and click Generate API key. 3. Copy the Consumer key and Consumer secret. The secret is only shown once. 4. In Sales Tracker, click WooCommerce and fill in Store URL (your site address, like https://mystore.com), Consumer Key and Consumer Secret. Display Name (optional) is just for you. 5. Click Connect. Pending, on-hold, cancelled, refunded and failed orders are left out. Shopify 1. In your Shopify admin, go to Settings, Apps and sales channels, then Develop apps. 2. Click Create an app and name it, for example "Author's Toolbox". 3. Under Admin API integration, enable Read orders. 4. Click Install app and copy the Admin API access token (it starts with shpat_). It's only shown once. 5. In Sales Tracker, click Shopify, enter your Shop Domain (the .myshopify.com address) and the Admin API Access Token, then click Connect. Only paid orders are imported. Square 1. Click Square. You'll be taken to Square to sign in and approve the connection. 2. When you come back, Sales Tracker offers to import your orders. Your Square account needs at least one active location. Stripe, PayPal and Fourthwall - Stripe: create a restricted key under Developers, API keys, with Read access for Balance, Charges and Refunds, Checkout Sessions and Invoices. Paste it into Restricted API key. - PayPal: on developer.paypal.com, create a Merchant app under Apps & Credentials (Live), tick Transaction Search under Features, then copy the Client ID and Secret. PayPal can take up to 3 hours to switch Transaction Search on. - Fourthwall: under Settings, For developers, click Create API User and copy the API username and API password. The first import from these reads the last two years. Each card has a How to get link with the same steps. After you connect - Choose Import now when asked, or click Import Orders Now (or Import Sales Now / Import Payments Now) at any time. - New sales also sync automatically every night. - Store sales are grouped into one row per book, per month. - If a product name doesn't match a book in your library, the Map products to your books window asks which book it is. Choose Keep as typed to keep the store's name, or Ignore for things that aren't book sales. You can also choose Skip for now. For Stripe, PayPal and Fourthwall, click Match to books later to file earlier sales under the right book. - If you write under more than one pen name, set Pen name for imported sales. It applies to imports from then on. To change credentials, click the pencil and re-enter them; saved keys are never shown again. To stop syncing, click the trash icon and confirm Disconnect. Your imported sales stay.
How do I add or edit a sale by hand?
Use manual entry for sales that don't come from a report or a connected store, such as a book fair, a library order or copies you sold in person. Add a sale 1. Open Sales Tracker and go to the Import tab. 2. Under Manual Entry, click Add Manual Sale. 3. Choose the Book Title. Pick + New Bookโฆ to add a book that isn't in your library yet. 4. Choose the Platform. To use a name that isn't listed, pick Otherโฆ and type it, for example Etsy or a craft fair. It's saved for next time under Your platforms. 5. Set the Report Month. This is required. 6. Enter Units Sold and the Royalty Amount. For Amazon KDP you can also enter KENP Reads, and for Kobo, Kobo Plus Minutes. 7. Optionally choose a Payment Method and the Currency. 8. Click Add Sale. Each manual sale is one record for one book and one month. It appears on the History tab as its own entry. Edit a manual sale 1. Go to the History tab. 2. Find the manual entry and click the edit icon (Edit sale). 3. Change any field, including the platform, and click Save changes. Only manual sales can be edited this way. Sales from a report or a store come from that source; to fix them, delete the import on the History tab and import a corrected file. Manage your own platform names Click Your platforms at the top of the page to add several names at once (separate them with commas), rename one or delete one. Built-in platforms like Amazon KDP and Kobo are always available and can't be removed.
Why won't my sales report import, or why are my sales totals wrong?
Here are the most common Sales Tracker problems and how to fix them. "Unsupported file type" Sales Tracker reads CSV, TSV, TXT, XLSX and XLS files. Save or export your report in one of those formats. PDFs can't be imported. "Platform could not be detected" The file's columns don't match a report Sales Tracker knows. Check you downloaded the report listed under Where to Download Data. If it's still not recognised, choose the platform in Platform and import again, or map the columns yourself in the Map CSV Columns window. "No valid sales records found" or "File appears to be empty" The file has no sales rows, only headers. Check the date range you chose when downloading the report and try again. The import says it's a KDP Payments report Download the Royalties report from KDP Reports instead. The Payments report can't be imported. Sales are in the wrong month If a report has no dates, Sales Tracker uses the month in the file name, and otherwise the current month. Delete the import on the History tab, then import again with Report month (optional) set, or rename the file to include the month (for example Ingram-2026-03.csv). My sales are counted twice If you import a report for a platform and month you've already imported, you'll see a warning that you may have duplicate records. Click Cancel unless the file really contains different sales. If duplicates already got in, delete the extra import on the History tab. For WooCommerce, Shopify and Square, Reset sync makes the next import fetch all orders again, but doesn't remove the sales already imported. Delete the earlier store imports on the History tab first. For Stripe, PayPal and Fourthwall, Reset sync removes the sales already imported from that service and your saved book matches before starting again. Page reads show Pending KDP prices Kindle Unlimited page reads after the month ends. Click Enter amount on the Dashboard tab once the amount is in your KDP report. A store won't connect - WooCommerce: "Authentication failed" means the Consumer Key or Secret is wrong. Create a new key with Read permission. - Shopify: check the app has Read orders enabled and that you copied the full Admin API access token. - Stripe: if Stripe says a permission is missing, add that permission as Read on your restricted key. - PayPal: make sure you used the Live credentials and that Transaction Search is ticked on the app. It can take up to 3 hours to switch on. - Square: if Square says the connection may need to be reconnected, disconnect it and connect again. I can't connect a store or click Import Only the account owner can connect stores and run store imports. If you're a collaborator and the Import tab buttons are greyed out, your role doesn't include editing Sales Tracker. Ask the account owner to change your access.