Variable Cost Components

A reference list of the cost lines that vary with each order shipped — the definitional inputs behind every contribution-margin number you'll quote internally.
Variable Cost Components
The per-order cost lines — COGS, freight, shipping, processor fees, pick-pack, returns provision, and ad cost — that scale with each order shipped.
Variable cost components are the line items that move with order volume rather than sitting in your fixed overhead. For a typical online store the bucket is seven lines: cost of goods sold, inbound freight allocated per unit, outbound shipping, payment processor fees, pick-and-pack labour, a provision for returns, and the per-order share of advertising spend.
The list matters because it is the definitional input behind every contribution margin number you quote. Two teams can look at the same order and report margins 15 points apart simply because one folded returns and ad cost into the bucket and the other left them in fixed opex. Agreeing on the seven lines below is what makes CM comparable across SKUs, channels, and months.
Start with the product itself. COGS is the landed unit cost from your supplier — the invoice price plus duties, plus the inbound freight allocation that gets that unit into your warehouse. Most Shopify brands miss the inbound freight piece and quietly overstate margin by 2-4 points.
Then come the fulfilment lines: outbound shipping (what you actually pay the carrier, not what the customer paid you), pick-and-pack labour from your 3PL or in-house warehouse, and payment processor fees — usually 2.4-2.9% plus a fixed cent charge per transaction. These three are easy to pull from invoices and should never be treated as fixed.
The two contentious lines are returns provision and per-order ad cost. Returns provision is a percentage you reserve against every order to cover refunds, return shipping, and write-offs on non-resellable stock — not the cost of the returns that actually happened this month. Per-order ad cost is total paid spend divided by orders, the bridge between marketing P&L and unit economics.
VC_order = COGS + Freight_in + Shipping_out + Processor_fee + Pick_pack + Returns_provision + Ad_cost_per_order
COGS
Cost of goods sold
Landed unit cost from supplier, including duties
Freight_in
Inbound freight allocation
Per-unit share of inbound shipping to your warehouse
Shipping_out
Outbound shipping
Carrier cost to deliver the order to the customer
Processor_fee
Payment processor fee
Stripe / Shopify Payments / PayPal fee, typically 2.4-2.9% + fixed cent charge
Pick_pack
Pick-and-pack labour
3PL or in-house warehouse cost to pick, pack and label the order
Returns_provision
Returns provision
Reserve percentage covering refunds, return shipping and unsellable stock
Ad_cost_per_order
Per-order ad cost
Total paid media spend in the period divided by orders in the period
A €75 AOV apparel order shipped from a UK 3PL via standard ground.
COGS: €22.00
Inbound freight: €1.20
Outbound shipping: €5.50
Processor fee (2.4% + €0.25): €2.05
Pick-and-pack: €2.80
Returns provision (8% of revenue): €6.00
Per-order ad cost: €14.00
→ €53.55 variable cost — leaving €21.45 contribution margin (28.6%)
Healthy for apparel at this AOV. If ad cost drifted to €20, CM falls to 20% and the SKU stops funding overhead at acceptable scale.
The benchmarks below are realistic ranges by vertical for a Shopify store in the €1M-€15M band. They are not targets — they are what the bucket usually weighs when you actually open the invoices. Use them to sanity-check your own model before you trust the CM number it spits out.
Variable cost composition as % of net revenue, by vertical
| Cost line | Apparel | Beauty / skincare | Consumer electronics | Supplements |
|---|---|---|---|---|
| COGS (incl. inbound freight) | 28-35% | 18-25% | 55-65% | 22-30% |
| Outbound shipping | 6-9% | 4-6% | 3-5% | 5-7% |
| Processor fees | 2.5-3% | 2.5-3% | 2.5-3% | 2.5-3% |
| Pick-and-pack | 3-5% | 3-5% | 2-4% | 3-5% |
| Returns provision | 6-12% | 2-4% | 4-8% | 1-3% |
| Per-order ad cost | 15-25% | 20-30% | 8-15% | 18-28% |
| Total variable cost | 60-89% | 50-73% | 75-100% | 52-76% |
Two readings of this table. First, apparel and supplements look healthier than electronics because higher gross margin absorbs ad cost — electronics brands live or die on AOV. Second, returns provision is the line most often missing entirely from internal models, which is why apparel CM numbers shared in slack threads tend to be 6-10 points too generous.
Variable cost components FAQ
No. Rent is fixed — you pay it whether you ship 100 orders or 10,000. Only the per-order labour to pick and pack belongs in the variable bucket. If your 3PL bills a flat monthly fee that covers storage and handling, split it: storage to fixed opex, the per-order handling charge to variable.
For contribution margin measurement, yes. Each incremental order required some amount of paid spend to acquire, so dividing total paid media by orders gives a per-order figure that scales with volume. Brand spend with no direct response intent is the exception — that one belongs in fixed marketing opex.
The shipping cost still happens, you just absorb it instead of charging the customer. Book the full outbound carrier cost to variable cost, and let revenue be the price the customer actually paid. Your CM number will correctly reflect that free shipping is a margin sacrifice.
Use your trailing 12-month actual return rate multiplied by the average cost of a return (return shipping + restocking labour + write-off on unsellable units). For apparel that is typically 6-12% of revenue; for supplements 1-3%. Update quarterly.
Net revenue. A 15% subscribe-and-save discount is a price reduction, not a cost — so revenue drops, and your variable cost lines stay the same. The CM impact shows up as a lower margin percentage on a smaller revenue base, which is the correct economic picture.
Per-order ad cost. An affiliate paying out 10% on a sale is variable by definition — it scales one-for-one with orders. Influencer fixed fees are fixed marketing; the rev-share component is variable.
Granular enough that COGS, shipping, and returns provision are SKU-specific. Processor fees, pick-pack, and ad cost can be averaged across the catalogue unless you have hero SKUs whose ad spend is tracked separately. The point is to make CM comparable across SKUs without spending a week per refresh.
Fold them into the processor fees line or create an eighth 'risk' line if they exceed 0.5% of revenue. For most Shopify Payments stores chargebacks are noise (<0.1%); for higher-AOV electronics they matter and deserve their own line.
Yes — the materials and the extra pick-pack time both scale with orders that opt in. If you charge for gift wrap, the revenue offsets the cost; if it is free, you absorb it. Either way it lives in the variable bucket, not in marketing opex.
Add a referral fee line (typically 8-15% of revenue depending on category) and a fulfilment fee if you use FBA. Outbound shipping and pick-pack collapse into the FBA fee. Per-order ad cost becomes Sponsored Products spend divided by Amazon orders — same logic, different platform.
Track CAC, channels, and funnel conversion in one place
Metricuno connects ad spend, funnel events, and revenue so you can see CAC by channel, cohort, and campaign — without stitching together five tools.