Skip to content

Margin vs Markup vs Contribution Profit for Online Stores

By Raúl Vaquerizo Tortosa · Published October 26, 2026

“We run a 60% margin” can mean very different things depending on who says it. For an online store the difference between markup, gross margin and contribution profit decides whether a product, a discount or an ad campaign actually makes money.

Markup

Markup compares profit with cost:

Markup = (selling price − cost) ÷ cost

A product bought for $10 and sold for $25 has a markup of 150%. Markup is handy for setting prices from costs, but because it is measured against the smaller number, it always looks bigger than margin.

Gross margin

Gross margin compares the same profit with the selling price:

Gross margin = (selling price − cost) ÷ selling price

The same $10 product sold for $25 has a gross margin of 60%. Margin tells you how much of each dollar of revenue is left after paying for the goods.

Converting between them

Markup Gross margin
25% 20%
50% 33.3%
100% 50%
150% 60%
200% 66.7%
300% 75%

The formulas are: margin = markup ÷ (1 + markup), and markup = margin ÷ (1 − margin).

For an online store, “selling price” should be net revenue: the price after discounts, excluding any sales tax or VAT you collect for the government.

Contribution profit

Gross margin only subtracts the cost of the product. An online order carries many more costs that only exist because that order happened:

  • shipping and packaging
  • payment processing fees, charged on the full amount paid including tax and shipping
  • platform or marketplace fees
  • refunds and unsellable returns
  • per-order app or fulfillment charges
  • advertising to acquire the order

Subtract all of these and you get contribution profit - what the order contributes towards your fixed costs (staff, software subscriptions, rent) and, after those, net profit.

Contribution profit = net revenue − product cost − all variable costs per order

A worked example

An illustrative order: a $49 product with a 10% discount, $14.50 product cost, $7.70 shipping and packaging, payment fees of 2.9% + $0.30, a 4% returns allowance and $9 of advertising.

Measure Amount
Net revenue $44.10
Gross profit $29.60
Gross margin 67.1%
Markup 204.1%
Contribution before ads $18.56
Contribution profit $9.56
Profit (contribution) margin 21.7%

A 204% markup and a 67% gross margin turn into a 21.7% contribution margin. All three numbers are correct; they answer different questions.

Break-even ad spend comes from contribution

The most useful number for advertising is contribution before ads. It is the most you can pay to acquire an order before that order loses money - your break-even cost per acquisition (CPA). In the example it is $18.56.

The same limit can be expressed as a return on ad spend (ROAS):

Break-even ROAS = net revenue ÷ contribution before ads

Here, $44.10 ÷ $18.56 ≈ 2.38. A campaign earning less than about $2.38 of net revenue per $1 of spend loses money on the first order. Ad platforms often report revenue including tax and shipping, so make sure you compare like with like.

Why discounts hurt more than they look

A discount reduces revenue but none of the costs. In the example, the 10% discount took $4.90 off revenue - which is more than half of the final $9.56 contribution profit. Before running a promotion, recalculate contribution at the discounted price, not just the margin.

Getting the inputs right

  • Use landed cost as product cost, not the supplier price. See the landed cost calculator.
  • Never count sales tax or VAT as revenue.
  • Count each cost once: if you enter shipping charged as revenue and shipping paid as a cost, do not also net them off elsewhere.
  • Keep fixed costs, such as your platform subscription, out of per-order contribution.

Try your own numbers in the Shopify profit margin calculator, or the Amazon FBA calculator for marketplace sales.