If you run an operating store, you have probably seen "net revenue" used two different ways — and only one of them is correct. Getting it wrong quietly distorts how you read your own margins. This article nails down the exact definition, then shows what the answer changes about your per-order profit.
The short answer: net revenue stops before COGS
Net revenue measures what you actually collected from customers after sales adjustments. According to Xero's net revenue guide, the formula is net revenue = gross revenue − returns − allowances − discounts. Notice what is not in that list: your product cost.
Cost of goods sold is the direct cost of producing or buying what you sold. It does not touch the revenue line at all. Instead, COGS is the first expense subtracted below net revenue.
So if someone tells you net revenue already has COGS baked in, they are describing gross profit, not net revenue. The two sit on different lines of the income statement, and conflating them overstates your top line while understating your costs.
Net revenue vs. gross revenue vs. gross profit
The cleanest way to keep these straight is to walk the income statement top to bottom. Each line removes one kind of cost, in a fixed order.
The formulas, in order
Here is the hierarchy every Shopify or POD income statement follows, with the formulas drawn from Xero and FreshBooks' net revenue hub:
- Gross revenue = total sales at full price, before any deductions.
- Net revenue = gross revenue − returns − allowances − discounts.
- Gross profit = net revenue − cost of goods sold.
- Net income = gross profit − operating expenses − interest − taxes.
COGS appears exactly once, between net revenue and gross profit. That single placement is the whole answer to the question. Everything above COGS is revenue; everything from COGS down is cost.
This also explains why net revenue is always a larger number than gross profit for a profitable store. Net revenue has only shed refunds and discounts; it has not yet paid for the product. If you want to see how the product cost itself is built and booked, our guide to recording cost of goods sold walks the journal entries.
Where the confusion comes from
Several high-ranking pages define net revenue as "sales minus cost of goods sold." That sentence describes gross profit. It is a common slip because both figures are "net of something," and in casual use people shorten "net profit" to "net."
The distinction is not academic for an operator. If you treat net revenue as already net of COGS, you will double-count your product cost the moment you subtract COGS again — or you will think your margin is far healthier than it is. Precision here is the difference between a store you think is profitable and one that actually is.
A quick test: if a figure only moved because of a refund, a coupon, or a return, it belongs in net revenue. If it moved because your supplier charged you to print and ship an item, it belongs in COGS, below the revenue lines entirely.
A worked example for an operating POD store
Say you run a store doing 340 orders a month at a $31 average order value, with $2,800 a month in Meta spend. Walk the stack with real numbers.
- Gross revenue: 340 × $31 = $10,540.
- Sales adjustments: you ran a 10%-off code on part of the month and processed a handful of refunds, totaling $540 in returns, allowances, and discounts.
- Net revenue: $10,540 − $540 = $10,000.
Net revenue is $10,000. COGS has not entered yet. Now subtract it.
- COGS: each order costs you $12 in product plus $5 in supplier shipping, so $17 per order. Across 340 orders that is 340 × $17 = $5,780.
- Gross profit: $10,000 − $5,780 = $4,220.
Only now do operating expenses come off. Subtract your $2,800 in ads plus roughly $500 in platform and payment-processing fees, and net income is $4,220 − $2,800 − $500 = $920. One keyword — "does net revenue include COGS" — moves you between a $10,000 number and a $4,220 number. That is a 58% swing in how you'd read the same month.
The per-order view
Operators think in per-order terms, so translate it. At $31 revenue and $17 COGS, each order throws off $14 of gross profit before you pay to acquire the customer.
Your customer acquisition cost is $2,800 ÷ 340 = $8.24 per order. That leaves about $5.76 per order before processing fees — the number that actually funds the business. If you had mistaken net revenue for gross profit, you would have thought every order cleared $31 of "net," and you would scale ad spend straight into a loss. This is the per-unit discipline unit economics is built around, and it is the backbone of the broader ecommerce ops economics hub.
Why this matters more for POD than for stocked inventory
For a merchant holding inventory, a return usually comes back into stock, so a refund mostly costs shipping — not the whole COGS. The item is still sellable.
Print-on-demand breaks that. A refunded POD order cannot be restocked because it was printed for one buyer, so the COGS you already paid your supplier is gone. That means your COGS line is more sensitive to refunds and disputes than a stocked seller's, and it makes the net-revenue-versus-gross-profit gap wider in practice.
Chargebacks sharpen the point. A lost dispute typically costs 2x–2.5x the order value once you add unrecoverable COGS, shipping, ad spend, and the $15 Shopify Payments chargeback fee, per chargeback.io's Shopify fee breakdown. None of that shows up in net revenue; all of it lands in COGS and operating costs. The accurate way to cost each printed unit — which drives both your COGS line and your refund math — is laid out in our walkthrough of FIFO cost of goods sold.
How Victor keeps the stack honest
Reading this hierarchy correctly by hand, every month, across Shopify payouts and two ad platforms, is where most solo operators lose the thread. PodVector AI's Victor is an AI employee that pulls your live Shopify, Meta Ads, Google Ads, and Printify, Printful, or Gelato data into one place and computes true per-order profit — net revenue after adjustments, then COGS, then ad spend — so you see the $4,220 line, not just the $10,000 one.
Victor is not a dashboard you have to read. He delivers the reports to your Google Drive, and every write action he takes is approval-gated, so nothing executes until you say so. You can put Victor on your store and have the full profit stack built from your real numbers.
FAQs
Does net revenue include cost of goods sold?
No. Net revenue is gross revenue minus returns, allowances, and discounts only. Cost of goods sold is subtracted after net revenue to arrive at gross profit, so COGS is never part of the revenue figure itself.
Is net revenue the same as gross profit?
No, and this is the most common mix-up. Net revenue sits above COGS; gross profit sits below it. Gross profit = net revenue − COGS, so gross profit is always the smaller number for a profitable store.
What is the difference between net sales and net revenue?
For a product store they are effectively the same thing — both are gross sales minus returns, allowances, and discounts. "Net sales" is the more traditional income-statement label; "net revenue" is the common modern phrasing. Neither one includes COGS.
Where does COGS actually appear on the income statement?
On exactly one line: directly below net revenue (or net sales) and directly above gross profit. It is the first expense you subtract from revenue, before any operating expenses like ads, apps, or your Shopify subscription.
Why does the distinction matter if I'm just trying to grow?
Because scaling decisions ride on the right number. If you read net revenue as if it already covered product cost, your margin looks roughly double what it is, and you will push ad spend past the point where orders are actually profitable. For POD specifically, the unrecoverable COGS on every refund makes that error more expensive than it is for a stocked seller.