eBay profit desk: true net margin per order and SKU
See what each eBay order actually made after fees, ads, shipping, refunds and your product cost, rolled up by SKU and month to date.
Build me an eBay profit desk I open every morning that finally shows what I actually made, not what eBay says I sold. The main page is a table of recent orders, one row per order line item, showing sale price, eBay fees, ad fees, shipping cost, refunds, my cost of goods, and the true net margin in both currency and percent. I want to sort by margin, filter by date range and SKU, and click into any order to see the individual fee lines that add up to its total.
Source the order rows from eBay Get Orders, using each line item's SKU as the join key to everything else. Pull the fee, ad fee and refund lines from eBay Get Transactions and match them back to their order, use eBay Get Transaction Summary for period level fee and refund totals, and use eBay Get Payout Summary so the desk can show how the computed net ties out against what eBay actually paid me. Use eBay Get Inventory Items for the master SKU list, so the cost sheet covers every SKU I sell rather than only the ones that happen to have sold recently.
Above the order table, show a month to date summary strip: gross sales, total eBay fees, total ad fees, total shipping cost, total refunds, total cost of goods, and net profit with margin percent. Below it, show a per SKU rollup table for the selected period with units sold, revenue, total fees, total cost and net margin per SKU, sorted worst margin first so the money losers surface immediately.
The second page is my cost sheet. It lists every SKU with an editable cost of goods field I can type or edit directly in the app, persisted in the app's own storage so the values survive reloads. Add a one click import that reads an existing cost sheet from Google Sheets using Get Values: let me paste a spreadsheet link and pick a range, map the SKU and cost columns, and preview the matches before committing. Any order whose SKU has no recorded cost must land in a visible missing cost queue on the main page with a count badge, and those orders must be excluded from the headline net profit figure rather than counted as zero cost, so the profit number stays honest instead of silently wrong.
Each SKU row, on both the cost sheet and the per SKU rollup, gets a Diagnose this SKU button that kicks off a background agent scoped to that SKU. The agent pulls the SKU's views and conversion rate from eBay Get Traffic Report, its Promoted Listings ads and current ad rate from eBay Get Ads, and its recent fee lines from eBay Get Transactions, then writes a short margin diagnosis of three or four sentences explaining where the margin is going and recommending a specific price change or ad rate change. Write the result back into the app as a dated note on that SKU row, so the row shows the latest diagnosis inline and I can expand to read earlier ones. Show a queued or running state on the row while the agent works.
Add an Export this month action that appends the monthly margin summary, one row per SKU plus a total row, to a Google Sheets tab using Append Values, so my bookkeeper works from the same numbers I am looking at. Let me choose the destination spreadsheet and tab, and record the last export time in the app.
A few details to get right. eBay Finances calls run against apiz.ebay.com rather than the main API host. Money values come back as value and currency objects, so normalize them into plain numbers for a single marketplace currency and display that currency consistently everywhere. The SKU, which is the custom label field on a listing, is the standard join key between listings, orders and cost records, so treat a missing or blank SKU as its own visible problem rather than dropping the order. Refunds should reduce the net for the original order's month, and every figure on screen should make clear which period it covers.
What does this prompt do?
- Lists every recent eBay order with sale price, eBay fees, ad fees, shipping cost, refunds and your own product cost, so you see the real profit on each one instead of just the revenue.
- Rolls the same numbers into per SKU and month to date summaries sorted worst margin first, and appends the monthly summary to a Google Sheets tab for your bookkeeper in one click.
- Gives you an editable cost sheet for product costs, with a one click import from an existing Google Sheets cost sheet and a visible missing cost queue so no order is silently counted as free.
- Adds a Diagnose this SKU button that sends an assistant to review that product's traffic, conversion, ad rate and recent fees, then writes a short margin verdict and a suggested price or ad change onto the row.
What do I need to use this?
- An eBay seller account with access to your orders, payouts and listing stats
- A Google account with Google Sheets, if you want to import costs or export the monthly summary
- Your product costs, either typed in as you go or already sitting in a spreadsheet with a SKU column
- Listings that use the SKU or custom label field, since that is how orders get matched to costs
How can I customize it?
- Change the date window the desk opens on, such as last 30 days instead of month to date.
- Set a target margin so rows below it get flagged, and choose whether to sort by worst margin or by newest order.
- Pick which spreadsheet and tab the monthly export appends to, and which columns your imported cost sheet maps from.
FAQs
Does eBay not already show me my profit?
What happens to orders where I have not entered a cost yet?
Can I bring in the cost sheet I already keep in a spreadsheet?
What does the Diagnose this SKU button actually do?
Will this work if I sell on more than one eBay site?
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 eBay orders actually made money.
Build a profit desk that puts your product costs next to eBay's fees and shows the real margin on every order and every SKU.