Is there a spreadsheet template I can use to track profit by channel?
Short answer: Yes, and you can build a useful one in an afternoon. You need three tabs: an Orders tab where every sale is one row, a Costs tab with the purchase cost for each SKU (stock keeping unit, your product code), and a Dashboard tab that totals profit by channel with a SUMIFS formula. It works in Excel, a spreadsheet program from Microsoft, and in Google Sheets, the free browser-based one. It stops working well when you sell on three or more channels and paste in exports by hand every week.
You sell on more than one channel and want a simple sheet that shows which channel actually makes you money.
I'm Ranjit, and I run Blur Studio: 15+ years building software, 120 apps taken live, and clients who have gone on to raise $10M+. I build AI systems and processes that help businesses do a lot more with a lot less time. I also work differently from most of what else is out there, more on that further down this page. Say hello.
What the template needs to answer
A profit dashboard should answer one question: after everything it cost, how much did each channel earn me this month? A channel is a place you sell, such as your Shopify store, Amazon or Etsy. Shopify is a tool for running your own online store. Amazon and Etsy are marketplaces that take fees out of each sale.
Revenue is not profit. A channel with the most sales can be your worst earner once fees, shipping and returns come out. The template below makes that visible.
The three tabs
Tab 1: Orders
One row per order line, meaning one product on one order. Paste exports from each channel into the same columns. Use these columns:
| Column | What goes in it | Where it comes from |
|---|---|---|
| A: Date | Order date | Channel export |
| B: Channel | Shopify, Amazon, Etsy | You type it, same spelling every time |
| C: Order ID | Order number | Channel export |
| D: SKU | Product code | Channel export |
| E: Qty | Units sold | Channel export |
| F: Revenue | What the customer paid for the items | Channel export |
| G: Fees | Marketplace and payment fees on this line | Channel fee or payout report |
| H: Shipping paid by you | Label cost for this line | Shipping tool export |
| I: Refunds | Money returned to the customer | Channel export |
| J: Unit cost | Looked up from the Costs tab | Formula |
| K: Profit | The result | Formula |
In column J, use a lookup so cost comes from one place. In Google Sheets or current Excel, =XLOOKUP(D2, Costs!A:A, Costs!B:B, 0) looks up the SKU in D2, returns its cost from the Costs tab, and returns 0 if the SKU is missing. In column K: =F2-G2-H2-I2-(J2*E2). That is revenue, minus fees, minus shipping, minus refunds, minus unit cost times quantity.
Why return 0 for a missing SKU? It keeps the sheet running. But zero cost makes profit look too good. Add a check cell later that counts rows where cost is 0 and turn it red when it is above zero.
Tab 2: Costs
Two columns to start: SKU and unit cost. This is the tab people skip, and it is the most important one. Unit cost means what it costs you to get one unit to your door: purchase price plus inbound freight and duties, spread per unit. Add packaging if you want. Shopify can hold a "Cost per item" value on each product, and its product CSV has a column for it, so you can export it from there rather than retyping. If you buy from several suppliers, see my supplier price list template for keeping that tab clean.
Tab 3: Dashboard
Put months down the side and channels across the top. For each cell use SUMIFS, which adds up numbers that match several conditions. The syntax is the same in Excel and Google Sheets: the range to sum first, then pairs of range and condition. Microsoft's help page says you can use up to 127 pairs.
Example for Shopify revenue in the month that starts in A2, with channel names in row 1: =SUMIFS(Orders!F:F, Orders!B:B, B$1, Orders!A:A, ">="&$A2, Orders!A:A, "<"&EDATE($A2,1)). Change F:F to K:K to get profit instead of revenue. Add a margin row: profit divided by revenue.
Useful rows for the dashboard:
- Revenue, fees, shipping, refunds, profit, margin per channel
- Orders per channel (use COUNTIFS on Order ID, or count unique ones if one order has several lines)
- Profit per order
- Top 10 SKUs by profit (a pivot table works well here)
- A check row: number of order lines with zero cost
A filled-in example with made-up figures
These numbers are invented to show the shape. In one month a seller has:
| Channel | Revenue | Fees | Shipping | Refunds | Product cost | Profit | Margin |
|---|---|---|---|---|---|---|---|
| Own store | $8,000 | $270 | $900 | $200 | $3,200 | $3,430 | 43% |
| Marketplace A | $12,000 | $1,800 | $1,400 | $500 | $4,800 | $3,500 | 29% |
| Marketplace B | $3,000 | $330 | $450 | $60 | $1,200 | $960 | 32% |
Marketplace A has the most sales, yet only barely beats the own store on profit even though it sells 50% more. And the own store has a better margin. That is the kind of thing the sheet exists to show. The seller might then push repeat buyers to the own store, or raise prices on Marketplace A.
Mistakes that make the numbers wrong
- Different channel spellings. "Etsy" and "etsy " are two channels to a formula. Use a dropdown list (data validation) in the Channel column.
- Mixed dates. Some exports use day first, some month first. Convert to real dates, not text.
- Fees missing. Order exports often leave fees out. Fees usually come from a payout or settlement report, so match them back by order ID. Keep those reports: the IRS lists sales slips, invoices and receipts among the supporting documents behind your books.
- Returns in the wrong month. A refund in March for a February sale should be in March if you want cash profit. Choose a rule and write it on the sheet.
- Bundles. A bundle SKU needs its own cost or a rule that splits cost across parts.
- Tax. Keep sales tax out of revenue.
When the sheet breaks
Sheets are a good start, but they break in predictable ways. Once you have tens of thousands of order lines, the sheet gets slow to open and recalculate. Two people edit and overwrite a formula. A channel changes its export columns and your paste shifts everything by one. Worst, the report is only as fresh as the last person who pasted. If you spend more than two hours a month assembling it, or you are making stock and ad decisions from numbers that are weeks old, it should run itself. I wrote about that step in turning an Excel sheet into a web app, and the KPI dashboard guide covers which numbers deserve a screen. If your stock lives in a sheet too, see the multichannel inventory spreadsheet. For one channel in depth, my Amazon seller profit and loss guide goes further.
How I'd approach this
Build the sheet by hand for two months. Do not skip it. You will learn which numbers you trust and which exports are messy, and that tells you what to automate. After that, decide by cost of time: if assembling it eats half a day each month, it is worth having the data pulled in automatically. Start with the Costs tab and the zero-cost check, since those two cause most wrong answers. Keep the Dashboard tab small, five or six rows, and look at it on the same day each week.
Questions people ask
Can I build an ecommerce profit dashboard in Google Sheets?
Yes. Everything in this template works in Google Sheets: XLOOKUP for costs, SUMIFS for the totals, and a pivot table for top products. A small store fits comfortably.
Excel or Google Sheets for a profit dashboard?
Use whichever you already open daily. Google Sheets is easier to share and edit with a partner. Excel is better if your team already works in Microsoft files. The formulas in this guide are the same in both.
How do I calculate profit per order?
Revenue minus marketplace and payment fees, minus the shipping you paid, minus refunds, minus unit cost times quantity. In the template that is column K.
Where do I get fees for each order?
Usually from the channel's payout or settlement report, not the order export. Match the fee back to the order by order ID. For the Amazon side, see Amazon seller profit and loss.
When should I stop using a spreadsheet?
When assembling it takes hours each month, the numbers are weeks old by the time you see them, or you sell on three or more channels. See turning an Excel sheet into a web app.
More in this topic: Ecommerce: reporting, profit and automation (17 guides) →