How to Calculate Your True Profit Per Order
Most DTC brands track ROAS and call it profit. Here is how to calculate your real contribution margin per order, and why the gap is usually shocking.
A ROAS of 3x sounds profitable. But ROAS is a revenue metric, not a profit metric. If your product costs $30 to make, $9 to ship, $3 in platform fees, and the ad spend was $25 per order, a 3x ROAS on a $100 product leaves you with $33 in profit, not $67. That difference determines whether you are building a real business or just moving money around.
What contribution margin actually measures
Contribution margin is the number that tells you what a sale actually contributes to your business after all the direct variable costs of that order are paid. It is calculated as revenue minus COGS, outbound shipping, payment processing fees, and the ad cost attributed to that order.
The formula: Contribution Margin = Revenue - COGS - Shipping Cost - Fees - Ad Cost Per Order
Walk through a real example
Say you sell a product for $120. Here is what the unit economics look like when you actually run the numbers:
- Selling price: $120
- COGS (product + landed freight + duty): $38
- Outbound shipping to customer: $9
- Shopify + payment fees (~2.9% + $0.30): $3.80
- Ad cost attributed to this order: $22 (if your ROAS is ~5.5x)
- Contribution margin: $120 - $38 - $9 - $3.80 - $22 = $47.20 (39%)
That $47.20 is what goes toward fixed costs like rent, software, team, and owner pay. If fixed costs are $15,000 per month and you need to hit them with $47.20 contribution per order, you need roughly 318 orders per month before you see any profit from operations.
The three costs most brands undercount
- Landed COGS: brands often use the invoice price from the supplier and forget to include freight, duty, and customs handling. These can add 15-30% to unit cost.
- Return rate impact: if 10% of orders are returned, your effective contribution margin per gross order is lower than the per-shipped calculation shows. A $47 contribution margin drops to roughly $42 once you account for one return per ten orders.
- Payment processing on full gross: Shopify and Stripe fees apply to the full gross order value including shipping, so the fee line is larger than brands expect.
Why contribution margin, not gross margin, is the right number
Gross margin only subtracts COGS. It looks much better than contribution margin because it ignores shipping, fees, and ad cost. Brands that optimize for gross margin can scale into a cash flow crisis: they are generating revenue but the variable cost stack eats most of it.
Contribution margin is the honest number. It is what your business actually keeps after executing the sale, from the moment someone clicks the ad to the moment the parcel arrives.
How to use this number operationally
- Set a minimum contribution margin floor per SKU (many brands use 30-35%) and pause any campaign where the attributed CM falls below it.
- Calculate your break-even ROAS from the contribution margin, not gross margin. If your CM is 39%, your break-even ROAS is 1 / 0.39 = 2.56x. Any campaign running below 2.56x ROAS is losing money.
- Run the calculation per channel, not blended. A campaign on Meta might have higher ad cost per order than Google, producing different per-order CM even on the same product.
The fastest way to run these numbers is to feed your COGS, shipping, and fee structure into the free profit calculator and see per-order contribution margin instantly across different ROAS and AOV scenarios.
Related definitions and tools
See all your margins live in one place.
Vibel connects Shopify, Meta, and every other channel and surfaces contribution margin, MER, and per-SKU profit automatically.