The finance textbooks define these two terms and stop. For a print-on-demand store owner watching Meta spend eat into a good-looking margin, the definition isn't the point. The point is which costs land on which line — and why a store with a healthy gross margin can still limp toward zero operating profit.
This guide walks the full stack with real operating numbers, not a $10,000-minus-$750 toy example.
Gross profit vs operating expenses: what each line measures
Think of your income statement as a staircase. Revenue sits at the top, and each cost category is a step down.
Gross profit is the first step. It's revenue minus cost of goods sold (COGS) — the direct cost of producing and shipping the exact items you sold. For a POD store, COGS is what you pay Printify, Printful, or Gelato per unit plus the shipping they charge you.
Operating expenses are the next step. These are the indirect costs of running the business that don't scale one-to-one with a single order: ad spend, your Shopify plan, email tools, app subscriptions, and payment processing fees. Wall Street Prep frames the relationship cleanly — operating profit equals gross profit minus operating expenses.
The dividing question is simple: did this cost attach to a specific unit you shipped? If yes, it's COGS and lives above gross profit. If it's a cost of keeping the lights on regardless of any single order, it's an operating expense.
The two-step profit stack, with a worked example
Say you run an operating store doing 340 orders a month at a $31 average order value, spending $2,800/month on Meta ads. Here's how the two lines separate.
Step 1 — Gross profit. Your supplier charges $12 per unit plus $5 shipping, so COGS is $17 per order.
- Revenue: 340 × $31 = $10,540
- COGS: 340 × $17 = $5,780
- Gross profit: $10,540 − $5,780 = $4,760 (a 45% gross margin)
A 45% gross margin looks great. If you stopped reading your P&L here — as a lot of sellers do — you'd feel good about the store.
Step 2 — Operating expenses. Now subtract everything it costs to run the store around those orders:
- Meta ad spend: $2,800
- Shopify plan: $39
- Klaviyo (email): $60
- Other apps and tools: $101
- Total operating expenses: $3,000
Operating profit: $4,760 − $3,000 = $1,760 — about a 17% operating margin.
That's the whole story in two numbers. Gross profit said 45%. Operating profit said 17%. The gap between them is your operating expenses, and for most POD stores the single biggest line in that gap is ad spend. This is the same arithmetic covered in more depth in our explainer on gross profit minus operating expenses.
What counts as an operating expense for a POD store
The generic finance articles lump operating expenses into "SG&A" and move on. For a POD operator, the real categories look like this:
- Advertising and acquisition — Meta, Google, TikTok, influencer spend. Almost always your largest operating expense.
- Platform subscriptions — your Shopify plan, theme, and paid apps.
- Email and retention tools — Klaviyo, SMS apps, review widgets.
- Payment processing fees — the roughly 2.9% + 30¢ per transaction that never shows up in COGS.
- Software and services — design tools, a VA, bookkeeping, customer-support software.
Note what's not here: your per-unit product cost and per-order shipping. Those are COGS, and getting that split right is the whole game — our guide on recording cost of goods sold walks through exactly which POD costs belong above the gross-profit line.
The channel your operating expenses live on matters
Where you sell changes your operating-expense base dramatically. If you run on Etsy, the platform's combined take — listing, transaction, and payment fees plus Offsite Ads — approaches 10–13% of every sale, with a mandatory 12% Offsite Ads fee once you cross a revenue threshold. That fee is a pure operating expense skimmed off the top.
Move the same store to Shopify and those percentage fees mostly disappear, replaced by a flat subscription plus your own ad spend. The operating-expense shape changes even when revenue doesn't — which is why comparing two stores on gross margin alone tells you almost nothing.
Why gross profit can look healthy while you lose money
Here's the trap. Gross profit only knows about COGS. It has no idea you spent $2,800 acquiring the customers who placed those orders.
In the worked example above, imagine Meta costs creep from $2,800 to $4,000 as competition rises — a common autumn story. Gross profit doesn't move; it's still $4,760. But operating profit drops to $560, and one more cost increase puts the store underwater. Nothing about the 45% gross margin warned you.
This is why operating profit, not gross profit, is the number to watch week over week. It's also why a single lost chargeback stings so much: on Shopify Payments a chargeback carries a $15 fee that's deducted immediately and, for POD, the printed unit can never be restocked — the full COGS is gone. Each of those events lands squarely on your operating line.
The margin trap POD sellers miss
Two stores can have identical gross margins and completely different operating profit. The difference is discipline on the operating-expense line — and the discipline starts with measuring per-order profit after every operating cost, not per-store margin at the end of the month.
Different business models weight these lines differently, too. A law firm's operating expenses are dominated by payroll with almost no COGS, while a POD store carries real per-unit COGS and heavy ad spend. Same income-statement structure, wildly different where the money leaks. The broader mechanics of all of this live in our ecommerce ops economics hub.
How Victor keeps both lines honest
The hard part isn't the formula — it's keeping COGS, per-order shipping, ad spend, and app fees mapped to the right line, per order, every day, across the tools they live in.
Victor is the AI employee from PodVector AI built to do exactly that for POD sellers. Victor connects to Shopify, Meta Ads, Google Ads, Printify, Printful, Gelato, and Klaviyo, then computes true per-order profit — revenue minus real COGS minus the operating expenses attributable to that order — and delivers the reports to your Google Drive. Every write action Victor takes, including any customer-support email it drafts, is approval-gated: Victor prepares it, you approve before anything sends.
Victor isn't a dashboard you have to go read. It's an employee that does the reconciliation and tells you when the gap between gross profit and operating profit is closing on you. Put Victor to work on your store.
FAQs
Are operating expenses the same as COGS?
No, and mixing them is the most common P&L mistake POD sellers make. COGS is the direct cost of the units you sold — your per-item supplier charge plus the shipping they bill you. Operating expenses are the indirect costs of running the store: ads, subscriptions, apps, and payment fees. COGS is subtracted first to get gross profit; operating expenses are subtracted next to get operating profit.
Is ad spend an operating expense or COGS?
Ad spend is an operating expense. It's a cost of acquiring customers, not a cost of producing a specific unit, so it sits below the gross-profit line. This is exactly why a store can post a strong gross margin and a weak operating margin — the ad spend that made the sales possible never touched the gross-profit calculation.
What's the formula linking gross profit and operating expenses?
Operating profit = gross profit − operating expenses, where gross profit = revenue − COGS. So the full chain is: revenue minus COGS gives gross profit, and gross profit minus operating expenses gives operating profit. Operating profit is the line that tells you whether the store actually earns money before interest and taxes.
Where do payment processing fees go — COGS or operating expenses?
Payment processing fees (the roughly 2.9% + 30¢ per transaction on most gateways) are operating expenses, not COGS. They're a cost of running the store, not a cost baked into the product. Because they scale with revenue, they're easy to forget and easy to underestimate — model them explicitly on your operating line.
Why does my gross margin look fine but my bank account doesn't grow?
Because gross margin ignores your operating expenses, and for most POD stores ad spend is the largest operating cost of all. A 45% gross margin can collapse to a single-digit operating margin once Meta spend, subscriptions, and fees come out. Track operating profit, not gross margin, if you want the number that matches your bank balance.
Should I count supplier shipping in COGS or operating expenses?
Count the shipping your POD supplier charges you per order in COGS — it attaches to the specific unit shipped, so it belongs above the gross-profit line alongside the product cost. Fulfillment and warehouse costs that aren't tied to a single order (like a monthly software fee) stay in operating expenses. Getting this split right is what makes your per-order profit trustworthy.