If you run a store with real order history, you already know the textbook answer. The useful question is what that number does and doesn't tell you once ad spend and fees enter the picture. This page walks the full calculation with operating numbers, then shows the gap the definition pages skip.
Net sales minus cost of goods sold equals gross profit
Gross profit is a subtraction, not a mystery: net sales − cost of goods sold = gross profit. Expressed as a percentage of net sales, the same figure is your gross margin.
The two inputs both need care, because each hides a common mistake. "Net sales" is not the same as the money that hit your Shopify dashboard, and "cost of goods sold" for print-on-demand behaves differently than it does for a store holding inventory.
What counts as net sales (not gross sales)
Gross sales is every dollar customers were charged. Net sales is what's left after you strip out the money that came back out or never really counted:
- Refunds and returns — the full order value handed back.
- Discounts and promo codes — the difference between list price and what the customer paid.
- Allowances — partial refunds you gave to keep an unhappy customer.
Say your store rings up 340 orders in a month at a $31 average order value. That's $10,540 in gross sales. Subtract $340 in discount codes and $200 in refunds, and your net sales are $10,000. That $10,000 is the correct top line for the gross profit calculation — using the $10,540 inflates every margin number below it.
What counts as cost of goods sold for a POD store
For print-on-demand, cost of goods sold is what your supplier charges to produce and ship each unit — the base product cost plus the per-order supplier shipping fee. It does not include your Meta or Google ad spend, your Shopify subscription, or the payment processing fee. Those are real costs, but they live below the gross profit line.
The POD-specific wrinkle: your COGS is unrecoverable on a refund. A stocked retailer takes a returned item back into inventory, so a refund costs shipping and handling, not the whole unit. A printed-on-demand item can't be restocked — when you refund, the production cost is simply gone. That makes COGS the number worth mapping tightly, which is what the recording cost of goods sold walkthrough covers in depth.
Worked example: gross profit on an operating store
Take the same store — 340 orders, $10,000 in net sales. Say each order costs you $9 in base product and $5 in supplier shipping, so COGS is $14 per order.
| Line | Amount |
|---|---|
| Net sales | $10,000 |
| Cost of goods sold (340 × $14) | −$4,760 |
| Gross profit | $5,240 |
| Gross margin (5,240 ÷ 10,000) | 52.4% |
So net sales minus cost of goods sold equals $5,240, a 52.4% gross margin. That reads healthy — and it's exactly where a lot of sellers stop looking, which is the trap.
Gross profit is not your real profit
Here's the line the definition pages skip. Gross profit tells you the goods are priced above their production cost. It does not tell you whether the store makes money, because the two biggest costs for most POD stores — ad spend and payment fees — sit below it.
Walk one order instead of the month. Say you sell a $31 shirt with $14 of COGS:
- Gross profit on the order: $31 − $14 = $17 (about 55%).
- Ad spend to acquire it: your $2,800 monthly Meta budget across 340 orders is $8.24 per order.
- Payment processing: a common card rate of roughly 2.9% + $0.30 on a $31 order is about $1.20.
$17 − $8.24 − $1.20 = $7.56 in true per-order profit. That's the number that actually pays you — and it's less than half the gross profit figure. Multiply the gap by 340 orders and the $5,240 of gross profit becomes something much closer to $2,570 before you've paid your Shopify subscription or your own time.
The costs that sit below the gross profit line
The full stack between gross profit and take-home profit, for a typical operating POD store:
- Advertising — usually the largest line, and the one gross profit completely ignores.
- Payment processing — a few percent plus a fixed fee on every transaction.
- Chargebacks — when a dispute is lost, the cost lands at roughly two to two-and-a-half times the order value once you add the unrecoverable COGS, the fee, and the ad spend, according to chargeback.io. On Shopify Payments that includes a flat fifteen-dollar chargeback fee per dispute for US merchants, refunded only if you win.
- App subscriptions and platform fees — Shopify, email tools, and the rest.
- Fixed overhead — your time, any contractor help, software.
This layered picture is the whole point of reading your ecommerce ops economics as a stack, not a single margin. Gross profit is layer one. The related breakdown of AI unit economics shows how the per-order math compounds once acquisition cost is in the mix, and the note on inventory carrying costs explains why the POD "no inventory" model still carries hidden cost in the COGS line.
Gross margin vs. gross profit: read them together
Gross profit is a dollar amount; gross margin is that amount as a percentage of net sales. You need both. Two stores can each show $5,000 of gross profit — one on $10,000 of net sales (50% margin) and one on $25,000 (20% margin). The second store is working far harder for the same gross dollars and has much less room to absorb ad spend and fees.
Margin is what tells you whether there's room below the line. A 52% gross margin can support a healthy ad budget; a 20% gross margin gets eaten alive by the same spend. When you compare your store to published benchmarks — such as the cost-of-goods-sold detail in the Aritzia 2023 annual report analysis — you're comparing margins, not raw profit dollars.
How to keep this number honest every month
Three habits keep the gross profit line trustworthy:
- Start from net sales, not gross. Pull refunds and discounts out first, every time.
- Keep COGS current. Supplier prices and shipping fees change; a stale product cost quietly overstates margin.
- Never stop at gross profit. Carry the calculation down through ad spend, fees, and chargebacks to true per-order profit — because that's the only figure that reflects whether the store is actually paying you.
That last step is where most sellers lose the thread, because the numbers live in different places: net sales in Shopify, COGS with your supplier, ad spend in Meta and Google. Stitching them per order, by hand, every month, is the tedious part.
This is the work Victor, the AI employee inside PodVector AI, does across your live data. Victor connects to Shopify, Meta Ads, Google Ads, Printify, Printful, Gelato, and Klaviyo, and computes true per-order profit — net sales minus COGS minus ad spend minus fees — so you see the number below the line, not just the flattering one at the top. Victor is not a dashboard; he's an AI employee who reads the live data and delivers the report, and every write action he takes is approval-gated, so nothing executes until you say so.
FAQs
Net sales minus cost of goods sold equals what, exactly?
Gross profit. It's the money left after you subtract what it cost to produce and ship your goods from your net sales. As a percentage of net sales, that same number is your gross margin.
Is gross profit the same as net profit?
No. Gross profit only accounts for cost of goods sold. Net profit is what's left after you also subtract ad spend, payment processing, chargebacks, app subscriptions, and overhead. For most POD stores, net profit is a fraction of gross profit because advertising sits below the gross line.
Does cost of goods sold include shipping and ad spend?
COGS includes the supplier shipping you pay to fulfill an order, because that's part of getting the physical good made and moved. It does not include advertising, your Shopify subscription, or payment fees — those are operating costs below the gross profit line.
Why does a refund hurt a POD store more than a stocked retailer?
Because a printed-on-demand item can't be restocked. When you refund, the customer keeps the item (or you eat return shipping on something you can't resell), and the production cost you already paid your supplier is unrecoverable. The full COGS becomes a loss, not just the shipping.
Should I use gross sales or net sales to calculate gross profit?
Net sales. Gross sales includes money that was later refunded or discounted away, so starting from it overstates gross profit and every margin figure below it. Strip out returns, discounts, and allowances first.
What's a healthy gross margin for a POD store?
There's no universal number, and margin only matters relative to your costs below the line. The practical test is whether your gross margin leaves enough room to cover your ad spend, fees, and overhead and still pay you per order — which is why true per-order profit, not gross margin alone, is the figure to watch.