Revenue minus cost of goods sold is your gross profit — the money left after you pay to produce and deliver what you sold, before ads, apps, and overhead. When it is calculated as revenue minus cost of goods sold, the result tells you whether your catalog can even cover the rest of the business. For a print-on-demand store, the trap is that COGS is bigger than the supplier invoice: leave out payment fees and shipping and your gross profit looks healthier than it is.

If you already run a store, you don't need the textbook version. You need to know exactly what to subtract, what operators routinely forget, and how gross profit connects to the number that actually lands in your account. That is what this walks through, with real operating figures.

The formula: revenue minus cost of goods sold

The definition is simple and non-negotiable. According to Xero's accounting glossary, "gross profit is your revenue minus the cost of goods sold (COGS)." Written as sales minus cost of goods sold, it is the same thing:

Gross profit = Revenue − COGS

So a month with $10,540 in sales and $6,528 in COGS gives you $10,540 − $6,528 = $4,012 in gross profit. That $4,012 is the pool everything else draws from — your ad budget, your apps, your own pay. If it is thin, no amount of top-line growth fixes the store.

The number people actually botch is not the revenue side. It is COGS.

What actually belongs in COGS

For a POD seller, COGS is every direct, per-order cost of getting one unit produced and into the buyer's hands. That means more than the blank-plus-print price your supplier charges.

True COGS should include the product base cost, the supplier's shipping charge, and the payment-processing fee on the sale. Polar Analytics makes the point directly for ecommerce: leaving transaction fees and freight out of COGS "can inflate margin by 8 points or more." An eight-point gap is the difference between a store you think is profitable and one that is quietly bleeding.

Here is what belongs in a POD order's COGS, and what does not:

  • In COGS: product/blank cost, print or embellishment cost, supplier shipping, payment-processing fee (the roughly 2.9% + $0.30 per transaction your gateway takes).
  • Not in COGS: ad spend, your Shopify subscription, apps, email tools, your own salary. Those are operating expenses that come out after gross profit — more on that below.

The reason this matters more for POD than for a stocked store is unrecoverable cost. A printed item can't go back on a shelf, so every dollar of COGS on a refunded or disputed order is simply gone. If you want the deeper mechanics of that, the ecommerce ops economics guide covers where those costs hide, and the walkthrough on recording cost of goods sold shows how to book it cleanly.

Worked example: gross profit on a real POD order

Say you run a store doing 340 orders a month at a $31 average order value, with $2,800 a month in Meta spend. Take one typical order:

Line item Amount
Sale price (revenue) $31.00
Product base + print cost −$13.00
Supplier shipping −$5.00
Payment processing (2.9% + $0.30) −$1.20
COGS total −$19.20
Gross profit per order $11.80

So this order's gross profit is $31.00 − $19.20 = $11.80, a gross margin of $11.80 ÷ $31.00 = 38%. Notice what happens if you forget the $1.20 processing fee: the order looks like $13.00 profit and a 42% margin. That four-point overstatement, repeated across 340 orders, is $408 of imaginary profit every month.

Scale the honest number up: 340 orders × $11.80 = $4,012 in monthly gross profit, matching the formula above. That is the real pool. Now subtract the $2,800 Meta budget and you are at $1,212 before apps, subscriptions, and your own pay — which is why the COGS you use has to be exact.

Gross profit vs. gross margin vs. net profit

These three get muddled constantly, and the distinction changes what decision you make.

  • Gross profit is the dollar figure — $11.80 an order, $4,012 a month. It tells you how much you kept.
  • Gross margin is that figure as a percentage of revenue — 38% here. As Xero puts it, the dollar figure tells you how much you kept and the percentage tells you how efficiently you kept it. Margin is what you compare across products and against benchmarks.
  • Net profit is what remains after you subtract all operating expenses — ads, apps, subscriptions, your pay — from gross profit. It is the bottom of the statement, not the top.

On benchmarks: Polar Analytics pegs a good ecommerce gross margin at roughly 50% to 70%, with apparel — the bulk of POD — landing around 55% to 70% at full retail. If your true POD margin sits near 38% like the example, that is a signal your pricing or supplier mix, not your ad account, is the constraint. Gross margin thinking is a core piece of unit economics: the per-unit math has to work before volume can help you.

Why sales minus cost of goods sold isn't your take-home

Gross profit is a checkpoint, not a paycheck. It answers one question: does the product itself make money before you spend to sell it? For an operating store, the more urgent question is what survives ad spend.

Using the example again: $11.80 gross profit per order, minus $2,800 ÷ 340 = $8.24 of ad spend per order, leaves $3.56 per order before any fixed cost. Add a Shopify plan, an email tool, and a couple of apps, and that $3.56 gets thin fast. This is why gross profit and per-order profit are different tools — one grades the catalog, the other grades the whole operation. If the vocabulary here is fuzzy, the primer on what a unit of account is is a useful sidebar on why you fix the unit before you measure.

Per-order profit: the number that pays you

The reason most operators never see this cleanly is that the inputs live in different places. Revenue and processing fees sit in Shopify. Product and shipping costs sit in Printify, Printful, or Gelato. Ad spend sits in Meta and Google. Nobody stitches them into one honest per-order figure automatically, so the "profit" number in most dashboards is really just gross revenue minus a guess.

This is the gap PodVector AI built Victor to close. Victor is an AI employee, not a dashboard — he connects to your Shopify store, Meta Ads, Google Ads, Printify, Printful, Gelato, and Klaviyo, and computes true per-order profit by pulling COGS, fees, shipping, and ad spend from the actual sources instead of estimates. He delivers reports to Google Drive and can draft approval-gated customer-support email, and every write action he takes waits for your approval before it runs. The point is a gross-profit and per-order figure you can trust enough to price against.

FAQs

What is revenue minus cost of goods sold called?

It is called gross profit. Xero defines it as revenue minus the cost of goods sold — the money left from your core sales after direct production and delivery costs, but before operating expenses like ads, apps, and payroll.

Is sales minus cost of goods sold the same as profit?

It is gross profit, not net profit. Sales minus cost of goods sold tells you whether your products make money on their own. Your actual take-home is net profit, which subtracts ad spend, subscriptions, and overhead from that gross figure. A store can post strong gross profit and still lose money after ads.

What should a POD seller include in COGS?

Product base cost, print or embellishment cost, supplier shipping, and the per-transaction payment fee. Polar Analytics warns that omitting freight and transaction fees can overstate margin by eight points or more. Ad spend and fixed software costs are operating expenses, not COGS.

What gross margin should I aim for?

Polar Analytics puts a good ecommerce gross margin at roughly 50% to 70%, and apparel — most POD — around 55% to 70% at full retail. If your true margin is well under that, the fix is usually pricing or supplier cost, not more traffic.

Why does a refund cost a POD seller the full COGS?

Because a printed item can't be restocked. When you refund a POD order, the supplier's production and shipping cost is unrecoverable, so you eat both the refund and the COGS. The recording cost of goods sold walkthrough shows how to keep that visible in your numbers.

How do I get an accurate gross profit number without spreadsheets?

You need one source that combines store revenue and fees, supplier COGS and shipping, and ad spend. Victor from PodVector AI pulls those from Shopify, your POD suppliers, and your ad accounts to compute true per-order profit, so the gross-profit figure you price against reflects real costs rather than estimates.