It depends — and the fastest way to know is to price out a single order. Say you sell a $32 print-on-demand t-shirt: product plus supplier shipping might run about $12, and payment processing adds roughly 2.9% + 30¢, or about $1.23 per order (per A2X's Shopify fee breakdown) — call it $13.23, near 41% of the sale. If your variable line looks lower than that, one of two things is true: your product genuinely earns a high per-unit margin, or a real variable cost has been misfiled somewhere it does not belong.

Those two answers point in opposite directions, so it is worth knowing which one you are looking at. A truly lean cost of goods is good news you can lean into. A number that only looks low because a cost slipped out of the variable line is a landmine — it makes your margin read healthier than it is and quietly overstates your profit.

This guide walks both cases with real arithmetic, shows you how to tell them apart in ten minutes, and explains why the answer changes how you should think about growth. For the full statement it sits inside, see our ecommerce P&L guide.

What "variable costs" should include

Variable costs are the expenses that move with each sale — they rise when you sell more and fall when you sell less. For a small Shopify or print-on-demand store, the honest variable list per order is short but specific:

  • Product / production cost — the blank plus printing your supplier charges you.
  • Supplier shipping to the customer — often bundled into the production charge.
  • Payment processing — a percentage plus a fixed fee on every transaction.
  • Packaging and inserts — if you add them.

Everything else — your Shopify plan, apps, design tools, contractor pay, and especially ad spend — is a fixed or operating cost, not a variable one. That distinction is the whole game here, because the single most common reason a variable line looks "too low" is not efficiency. It is that something variable got left out of it. Our P&L accounting explainer breaks down where each line belongs.

Reason one: your product genuinely earns a high margin

This is the good version. Some products simply cost little to make relative to what they sell for, so the variable cost per order is a small slice of revenue.

Say you sell a design-heavy $38 t-shirt. Your supplier charges $11 for the printed blank and shipping, and payment processing on a $38 order is about 2.9% + 30¢ = $1.40. Total variable cost is $12.40 per order.

That works out to $12.40 ÷ $38 = 33% variable cost, which means a 67% contribution margin — the share of each sale left over after variable costs to cover your fixed expenses and profit. A low variable cost ratio like this is exactly what strong product economics looks like, and it signals better fixed-cost leverage on every sale (Corporate Finance Institute explains the variable-cost-ratio relationship here).

If this is your situation, low variable costs are a feature. The lever to pull is volume: because each additional sale keeps two-thirds of its revenue, growing units drops far more to the bottom line than it would for a thin-margin product. If you want to push that ratio even lower on purpose, our guide on how to improve variable costs covers supplier negotiation, processor choice, and product mix.

Reason two: a variable cost is hiding somewhere it shouldn't be

This is the version to worry about. Your variable line reads low not because the product is lean, but because a genuine variable cost has been booked somewhere else — so it never lands in the number you are looking at. Three misfilings cause almost all of it.

Payment fees folded into the payout, not the P&L. The deposit Shopify drops in your bank is a net settlement — sales minus fees minus refunds, on a delayed schedule — so it almost never equals your sales for the period (A2X details how payouts net out fees). If you record the deposit as "sales," the processing fee vanishes into the gap and your variable costs look artificially low. The fix: book gross sales at the top, fees on their own line.

Refund fees not tracked. When you refund a $32 order, the original ~$1.23 processing fee is generally not returned to you (A2X notes the fee is kept on refunds). Ignore that and every refund quietly shaves a real cost off your books.

Chargeback fees left out. A disputed charge carries a $15 fee on Shopify Payments in the US, refunded only if you win (source: A2X). A run of disputes is a real variable-ish cost that never shows up if you do not record it.

There is a fourth trap worth naming, and it runs the other way. The classic mistake is putting ad spend inside cost of goods. That inflates gross margin and hides that customer acquisition is your real risk. Ad spend is an operating expense, full stop. A clean ecommerce P&L template keeps each of these in its own lane so the variable number you read is the real one.

How to tell which case you're in — a 10-minute check

Pick one recent order and rebuild its variable cost by hand, from primary sources rather than from a summary line:

  1. Pull the exact sale price for that order from Shopify.
  2. Pull the supplier charge for that same order from your Printify or Printful billing — the actual amount, not an estimate.
  3. Add the processing fee: sale price × your plan's rate + the fixed per-transaction fee. Confirm your rate on Shopify's own pricing page, since it drops on higher plans.
  4. Add packaging if you ship anything extra.
  5. Divide that total by the sale price to get your true variable cost ratio for that order.

Now compare it to what your bookkeeping reports. If the hand-built number matches the low figure in your books, congratulations — reason one, your product is genuinely lean. If your books show a lower number than your hand-built one, reason two: a cost is leaking out of the variable line, and you have found where.

Doing this order by order across a whole month by hand is tedious, which is exactly why the fees get dropped in the first place. This is the gap PodVector was built to close: it connects Shopify, Meta Ads, Google Ads, Printify, and Printful, and computes true per-order profit — product, supplier shipping, processing, and ad cost attributed down to the individual order — so a "low" variable line either checks out or shows you the leak. Victor, its AI operator, analyzes that live data and proposes moves, taking Shopify-side actions only with your approval. See your true per-order costs with PodVector.

Why low variable costs change how you should grow

The reason all of this matters is operating leverage. When variable costs are low, a large share of each sale is contribution margin, so profit is highly sensitive to volume — small swings in units produce big swings in the bottom line (Corporate Finance Institute on the leverage effect).

That cuts both ways. Genuinely low variable costs mean scaling sales is powerful, because most of each new dollar survives to cover fixed costs and profit. But if your low number is an illusion from a misfiled fee, you will scale on a margin that does not exist — and the faster you grow, the more real cash those hidden fees pull out while your P&L keeps smiling.

One last warning that low variable costs make easy to miss: profit is not cash. Even a lean, profitable store can run short, because ad spend leaves your account daily while Shopify payouts settle on a delay. A store with beautiful margins can still be cash-negative in any given week if it scales ad spend faster than payouts refill the tank. When your books and your bank feed the same numbers, syncing your store to a ledger like Xero connected to Shopify makes that reconciliation far less painful.

This is general information, not tax or accounting advice. Rules change and vary by situation — consult a licensed CPA or accountant before acting.

FAQs

Is it bad if my variable costs are low?

Not on its own — low variable costs usually signal a healthy, high-margin product and strong operating leverage. The only time it is bad is when the number is low because a real variable cost (a processing fee, a refund fee, ad spend miscategorized) has been left out or misfiled. Rebuild one order's costs by hand to confirm the low figure is real before you celebrate it.

What counts as a variable cost for a Shopify store?

The costs that change with each sale: your product or production charge, supplier shipping to the customer, payment processing fees, and any per-order packaging. Your Shopify plan, apps, software, and contractor pay are fixed or operating costs. Ad spend is an operating expense — putting it in your variable or COGS line is the most common way to accidentally make margins look better than they are.

Why do my variable costs look lower than my payout suggests?

Because your Shopify payout is a net figure — sales minus fees minus refunds — not your revenue. If you book the deposit as sales, the fees disappear into the difference and never show up as a variable cost. Record gross sales at the top of your P&L and put fees on their own line so nothing gets hidden.

How low should my variable cost ratio be?

There is no universal target — it depends on your product, supplier, and processor. The useful move is to calculate your own ratio (total variable cost per order ÷ sale price) and track whether it holds steady month to month. A ratio that suddenly drops without a real change in your supplier deal or pricing is usually a bookkeeping slip, not a win.

Does lowering variable costs increase my profit?

Yes, and often more than you would expect, because every dollar you cut from variable cost flows straight into contribution margin on every future order. Cutting a dollar of variable cost is worth more than adding a dollar of sales, since the sale carries its own costs while the saving is pure margin. Just make sure you are cutting a real cost, not erasing one from your books.