Amazon SKU profit dashboard with every Amazon fee broken out
See what each Amazon SKU actually earns after referral fees, FBA fees, storage, refunds and promotions, with the loss makers sitting on top.
Build me an app that my finance lead and I open every week to see what each Amazon SKU actually earns after Amazon takes its cut. Seller Central shows revenue and fees in separate places and never calculates profit, so today we export several reports and join them by SKU in a spreadsheet. This app should do that join for us and be the single screen we work out of.
The main screen is a profit table for a date range I select, with one row per SKU. Each row shows units sold, gross sales, every Amazon deduction broken out into its own column (referral fee, FBA fulfilment fee, storage fee, refunds, promotions), my cost of goods for the units sold, and net margin in both dollars and percent. Default the table to sort loss making SKUs on top, worst margin first, so the products quietly costing me money are the first thing I see. Keep the other sort options available by clicking column headers. Give me a date range picker at the top that defaults to the last full calendar month.
For the data: handlers pull the money side from Amazon Seller Partner List Financial Events for the selected range, and unit counts from Amazon Seller Partner Search Orders over the same range. Read my per unit cost of goods from a Google Sheets tab using Get Values, where the sheet has one row per SKU with the SKU in one column and the unit cost in another. Also call Amazon Seller Partner Get Inventory Summaries so that for any losing SKU I can see how many units are still sitting in FBA, shown as a column or in the row detail.
Important build nuances. List Financial Events caps at a 180 day span, so any range longer than that has to be chunked into sequential calls and the results merged. It is rate limited to 0.5 requests per second with a burst of 30, so fetch the financial events once for the whole range and cache the result in the view, then compute every row from that cached data. Never refetch per row or per SKU. Financial events come back as event type groups such as ShipmentEventList, RefundEventList and ServiceFeeEventList, each containing fee and charge components, so the handler needs to walk those groups and roll the amounts up by SellerSKU to produce one set of totals per SKU.
Handle missing cost of goods explicitly. If a SKU has no cost on file in the sheet, render a visible COGS missing state on that row instead of computing margin as if cost were zero. A SKU showing 100 percent margin because nobody entered a cost is the most common way these dashboards mislead people, so those rows should look obviously incomplete and should not be mixed into the loss making sort as if they were profitable. Also label the margin column as pre ad margin throughout the app, since Amazon's financial data does not include advertising spend and I do not want anyone reading this as a fully loaded number. A short note near the table explaining that advertising is excluded is enough.
Clicking a SKU opens a drill down showing every individual fee event behind that row, listed with date, order or transaction reference, event type and amount, grouped by fee category. This is how I tell why margin moved on a given SKU, so keep the individual events visible rather than only showing subtotals. Include that SKU's current FBA inventory position in the drill down as well.
I need to be able to edit a SKU's cost of goods inline in the table. When I save an edit, the app persists the new value in its own storage so the table updates immediately, and writes the same value back to the source spreadsheet using Google Sheets Update Values so the sheet my team already uses stays correct. Show a clear saved state and surface an error if the sheet write fails rather than silently diverging.
Add an Export button that appends the current view, exactly as filtered and sorted, as a dated snapshot to a Google Sheets tab using Append Values, so my accountant has a running record of each period we reviewed. Include the date range and the export date on every appended row.
Finally, let me flag SKUs to watch. Flagged SKUs are pinned to the top of the table and stay flagged across sessions, stored per user so my finance lead and I can watch different products. Cost of goods edits are shared since they live in the spreadsheet, but the watch flags are personal.
What does this prompt do?
- Shows one row per SKU for any date range you pick, with units sold, gross sales, every Amazon deduction listed separately, your cost of goods, and net margin in both dollars and percent
- Sorts loss making SKUs to the top so the products quietly costing you money are the first thing you see
- Lets you click any SKU to see every individual fee event behind the number, so you can tell exactly why margin moved
- Pulls your per unit cost of goods from a Google Sheet, lets you correct it inline, and writes the change back to the sheet
- Shows how many units of a losing SKU are still sitting in Amazon fulfilment centres, so you know how much exposure is left
- Exports the current view as a dated snapshot into a Google Sheets tab for your accountant, and keeps flagged SKUs pinned between sessions
What do I need to use this?
- An Amazon Seller Central account connected to General Input, with access to financial and inventory data
- A Google account with a spreadsheet holding your per unit cost of goods, one row per SKU
- A tab in that same spreadsheet where exported snapshots can be added
- Roughly ten minutes to check that your cost of goods sheet covers your active SKUs
How can I customize it?
- Change the default date range that loads when you open the app, for example last 30 days instead of last calendar month
- Point the app at a different spreadsheet or tab for cost of goods, or change which columns hold the SKU and the unit cost
- Adjust what counts as a problem SKU, for example flagging anything under 10 percent margin rather than only negative ones
- Add or remove deduction columns depending on which fees actually matter to your business
FAQs
Why does my Amazon dashboard not already show this?
Does this include my advertising spend?
What happens to SKUs where I have not entered a cost of goods?
Can I pick any date range I want?
If I fix a cost of goods in the app, does my spreadsheet stay correct?
Can two people use this at once?
Related templates
Stop buying stale lists. Reps run a saved search, work the results like an inbox, and only the accounts they approve ever reach your CRM.
Drag creators through Sourced to Wrapped on a board grouped by campaign, with audience stats on every card and a one-click brief for each creator.
Pick a repricing rule, send an assistant out to check competitor pages, then approve the new prices that clear your margin floor.
See the projected bounce rate for any outbound send before it goes out, and keep the launch button locked until the list is clean enough to be safe.
Pick any date range and see what each device in your home actually cost to run, not just how many kilowatt-hours it used.
Search three months of global coverage on your topic, rank the outlets actually writing about it, and draft a tailored pitch for each one.
Stop guessing which Amazon SKUs actually make money.
Open one screen with every Amazon fee subtracted, your real costs applied, and the loss makers already at the top.