Shopify's admin tells you your revenue. It does not tell you what you actually made. Between discounts, refunds, product costs, payment processing, shipping, and ad spend, the number that hits your bank account is very different from the number on your sales report — and most merchants only find out how different at tax time.
Here is the full calculation, step by step, using the same definitions Shopify itself uses in its reports so you can reconcile every line.
Step 1 — Start from net sales, not gross revenue
Gross revenue is what your customers were charged before anything else happened. Net sales is what survives the messy parts:
- Gross sales — product price × quantity, before discounts.
- − Discounts — every code and automatic discount applied at checkout.
- − Refunds — money you gave back, whenever the refund happened.
That gives you net sales — the figure Shopify shows under Reports → Net sales. Tax and shipping collected are not income in any meaningful sense: tax is the government's money passing through your account, and shipping charges are (usually) offset by what you pay the carrier. Track them, but keep them out of your profit line.
Step 2 — Subtract cost of goods sold (COGS)
COGS is what the products you sold actually cost you: unit cost × units sold, per SKU. Two things merchants get wrong here:
- Using one blended percentage for the whole catalog. A 30% assumption is fine on day one, but if your margins differ by product (they do), per-SKU costs are the difference between a guess and a number you can act on.
- Forgetting that COGS applies to sold units in the period, not purchased inventory. Buying $10,000 of stock is not a $10,000 cost this month.
Net sales − COGS = gross profit. This is the number that tells you whether your products, as priced, are viable.
Step 3 — Subtract payment processing fees
Every order loses a slice to the card networks. On Shopify Payments' standard online rate that is roughly 2.9% + $0.30 per transaction (your exact rate depends on your plan and region — check your Shopify billing settings). On $50,000 of monthly sales across 800 orders, that is about $1,690 — quietly one of your larger expenses.
The percentage applies to the charged amount (after discounts, including tax and shipping the customer paid), which is why estimating fees from net sales alone always runs low.
Step 4 — Subtract advertising spend
If you run Meta or Google ads, connect that spend to the same period as the revenue it generated. The resulting figure —
gross profit − ad spend = contribution profit (some call it true profit or POAS-adjusted profit)
— is the single most decision-useful number in ecommerce. Revenue can grow while contribution profit shrinks; that is exactly the failure mode scaling brands hit, and you cannot see it on a revenue dashboard.
Step 5 — Everything else (the honest footnote)
For a complete P&L you would also subtract shipping costs you pay carriers, apps and software, staff, and overhead. Those matter for your accountant; for weekly operating decisions, net sales → gross profit → contribution profit is the chain to watch, because those are the numbers your daily choices (pricing, discounting, ad budgets) actually move.
The formula, all together
- Net sales = gross sales − discounts − refunds
- Gross profit = net sales − COGS − payment fees
- Contribution profit = gross profit − ad spend
Doing this automatically
You can maintain this in a spreadsheet — plenty of merchants do, and it works until the day you have two stores, three ad channels, or a big refund week, and the sheet quietly drifts from reality.
RTDashboard does this calculation live: it syncs your Shopify orders, applies per-SKU costs (with a CSV bulk import for your supplier sheet), uses your store's configured payment-fee rate, pulls ad spend from Google and Meta, and is upfront about data quality — when part of your revenue still uses estimated costs, the dashboard says so instead of pretending. There's a free plan and a live demo with sample data, no signup needed.