Short answer: Your contribution margin is your net revenue excluding VAT minus all variable costs: purchasing, shipping, packaging, payment fees, advertising and returns. It is the amount each order contributes towards your fixed costs and your profit. If it is too low, more revenue will not help: you lose money on every extra order.
Many online stores steer by revenue or gross margin. Those figures leave out the costs that move with each order, such as the shipping box, the iDEAL transaction (iDEAL is the most widely used online payment method in the Netherlands) and the ad click that brought the customer in. The contribution margin does include them. In this article we calculate it for a single order and for a whole month.
What is contribution margin?
Contribution margin is what remains of your revenue after you have paid all variable costs. Variable costs are costs that rise with the number of orders. Fixed costs such as rent, salaries and software are not included: you pay those even in a month when you sell nothing.
Contribution margin = net revenue excl. VAT − variable costs
For a Shopify store, the variable costs are usually:
- Purchasing: the cost price of the products sold.
- Shipping: what you pay the carrier, even if the customer got free shipping.
- Packaging: boxes, filling material and tape.
- Payment fees: what your payment provider charges per transaction.
- Advertising: your ad budget, spread across the orders it generated.
- Returns: return shipping, handling and products you can no longer sell.
Always calculate with revenue excluding VAT. The 21 per cent VAT your customer pays (the standard rate in the Netherlands) is passed on to the Dutch tax authority (Belastingdienst). It is never your money.
How does it differ from gross margin and net profit?
The three figures sit in layers on top of each other. Each layer deducts more costs.
Gross margin = net revenue − cost of goods
Contribution margin = gross margin − other variable costs
Net profit = contribution margin − fixed costs
Gross margin only looks at purchasing. A product with a 60 per cent gross margin looks fine, but after shipping, advertising and returns there may be little left. Net profit only becomes visible after the month ends, once the fixed costs are known as well. Contribution margin sits in between: you can calculate it per order and it tells you straight away whether an order makes money.
Some stores split it further: a contribution margin before advertising and one after advertising. You need the first for your break-even MER, as explained in Calculating ROAS, POAS and MER.
Worked example: one order
Suppose a customer buys a vase for €121 including VAT. Excluding VAT, that is €100. The amounts below are an example; fill in your own costs.
| Item | Amount | Share of revenue |
|---|---|---|
| Net revenue excl. VAT | €100.00 | 100 per cent |
| Purchasing | − €40.00 | 40 per cent |
| Gross margin | €60.00 | 60 per cent |
| Shipping | − €6.50 | 6.5 per cent |
| Packaging | − €1.00 | 1 per cent |
| Payment fees | − €0.80 | 0.8 per cent |
| Returns (average per order) | − €3.00 | 3 per cent |
| Contribution margin before advertising | €48.70 | 48.7 per cent |
| Advertising per order | − €15.00 | 15 per cent |
| Contribution margin | €33.70 | 33.7 per cent |
Of the €60 gross margin, €33.70 remains. Almost half disappears on costs you do not see in a gross margin overview.
The returns line is an average. If 1 in 10 orders comes back and each return costs you €30, you count €3 per order. Bear in mind that under Dutch consumer law a customer who returns the entire order within the 14-day cooling-off period also gets back the shipping costs they paid.
Worked example: one month
Calculating per order is useful for a single product. For your whole store, calculate per month, using the actual totals from Shopify, your accounts and your ad accounts. Suppose a store processes 800 orders in October.
| Item | October |
|---|---|
| Revenue excl. VAT | €85,000 |
| Refunded for returns | − €5,000 |
| Net revenue | €80,000 |
| Cost of products sold | − €32,000 |
| Shipping | − €5,200 |
| Return costs | − €1,200 |
| Packaging | − €800 |
| Payment fees | − €700 |
| Contribution margin before advertising | €40,100 (50.1 per cent) |
| Google Ads and Meta | − €12,000 |
| Contribution margin | €28,100 (35.1 per cent) |
| Fixed costs | − €18,000 |
| Result before tax | €10,100 |
Per order, the contribution margin here is €28,100 ÷ 800 = €35.13. The fixed costs of €18,000 are the costs of software, staff and storage that do not move with the number of orders.
How do you calculate your break-even?
With the contribution margin you know how much you need to sell to cover your fixed costs.
Break-even revenue = fixed costs ÷ contribution margin as a percentage
Break-even number of orders = fixed costs ÷ contribution margin per order
In the example, that is €18,000 ÷ 0.351 = roughly €51,250 in revenue, or €18,000 ÷ €35.13 = 513 orders. Everything above that is profit. If your contribution margin drops to 25 per cent, for instance because your advertising gets more expensive, your break-even shifts to €72,000. You then need over 40 per cent more revenue just to break even.
What is a healthy contribution margin?
There is no fixed percentage that holds for every store. A store with expensive products and few staff can make a profit on a lower contribution margin than a store with lots of cheap orders. So be wary of benchmarks without a source.
Instead, work backwards from your own figures:
Required contribution margin = (fixed costs + desired profit) ÷ expected revenue
Suppose your fixed costs are €18,000 a month, you want to make €8,000 profit and you expect €80,000 in revenue. You then need a contribution margin of €26,000 ÷ €80,000 = 32.5 per cent. The store in the example achieves 35.1 per cent, so it is just above that.
Also look at the contribution margin per product and per channel. A product with a low contribution margin is not necessarily bad, as long as it does not swallow most of your ad budget.
How do you improve your contribution margin?
Every line in the table is a lever you can pull:
- Price: a €2 price increase goes entirely to your contribution margin. Test it on a few products first.
- Purchasing: negotiate volume discounts or look at a different supplier for your best-selling products.
- Average order value: shipping, packaging and part of your payment fees are per order. A free shipping threshold or bundles spread those costs over more revenue.
- Advertising: steer on contribution margin per channel rather than on revenue. A campaign with a high ROAS on low-margin products can deliver less than a campaign with a lower ROAS on high-margin products.
- Returns: better product photos, size charts and honest descriptions prevent returns. State clearly on your website who pays the return costs.
- Payment mix: fees differ per payment method. Check your payment provider's pricing page to see what each method costs you.
Which figures to track alongside contribution margin is covered in Online store KPIs: the 12 figures you should track. How to bring them together in one place is explained in Shopify dashboard: all your store figures in one place.
Frequently asked questions
What is the difference between contribution margin and gross margin?
Gross margin is revenue minus purchasing. Contribution margin also deducts shipping, packaging, payment fees, advertising and returns. As a result, the contribution margin is always lower and shows more accurately what an order delivers.
Do I calculate contribution margin including or excluding VAT?
Excluding VAT. You pass the VAT on to the tax authority. If you calculate with revenue including VAT, you count money that is not yours and your contribution margin looks much higher than it is. In the worked example, €33.70 would become €54.70.
Are advertising costs variable costs?
Yes, for an online store they are. Your ad budget moves with the number of orders you want to achieve. That is why many stores calculate a contribution margin before and after advertising.
How do I calculate contribution margin per order?
Take the price excluding VAT and deduct purchasing, shipping, packaging, payment fees, an average for returns and the advertising cost per order. For the advertising cost per order, divide your ad budget by the number of orders.
Want to see your contribution margin every day without doing the maths? Ecommetrics combines your figures from Shopify, Google Ads and Meta with your purchasing and shipping costs and shows what you really keep each day, excluding VAT. Join the waiting list.