Margin vs markup
Both start from gross profit: your selling price minus what the product costs you. Use prices without VAT.
- Margin is gross profit as a share of the price. It tells you how much of each sale you keep.
- Markup is gross profit as a share of the cost. It tells you how much you added on top of what you paid.
Margin = (price − cost) ÷ priceExample: ($40 − $16) ÷ $40 = 60%
Markup = (price − cost) ÷ costExample: ($40 − $16) ÷ $16 = 150%
Same product, same profit, two different percentages. Margin can never reach 100%, because that would mean the product cost nothing. Markup has no ceiling.
Do you know the margin you want and need a price? Divide the cost by one minus the margin.
Price = cost ÷ (1 − target margin)Example: $16 ÷ (1 − 0.5) = $32 for a 50% margin
A common slip is cost × (1 + margin). That gives $16 × 1.5 = $24, which is a 33.3% margin, not 50%.
Convert markup to margin
To switch between the two, you only need the percentage. Write it as a decimal first, so 50% becomes 0.5.
Margin = markup ÷ (1 + markup)Markup = margin ÷ (1 − margin)
| Markup | Margin | Price for a $10 cost |
|---|---|---|
| 25% | 20.0% | $12.50 |
| 50% | 33.3% | $15.00 |
| 100% | 50.0% | $20.00 |
| 200% | 66.7% | $30.00 |
Doubling the cost is a 100% markup. It’s also a 50% margin. Mix the two up in a budget, and you plan on profit you won’t see.
Gross margin vs what an order leaves
Gross margin only counts the product cost. A real order has more costs, and they come out of the same sale:
- Shipping you pay. The carrier charges you per parcel. If the customer pays less than that, or nothing, the gap is yours.
- Payment fees. Card processors often take a percentage plus a fixed amount per order. Our guide to WooCommerce payment fees shows how they add up.
- Discounts. A coupon cuts the price but not the product cost. In the example below, a 10% coupon cuts gross profit by 16.7%.
- Refunds and returns. Some sales come back, and return shipping often stays with you.
That’s why the margin on a product page differs from the margin per order. The product page compares price with cost. The order shows what’s left after everything that sale set off. Our guide to profit per order goes through each cost.
A worked example
Example: you sell a candle for $40, excluding VAT. It costs you $16. A 10% coupon is running. The carrier charges $6.50, and the customer pays nothing for shipping. Your card fee is 2.9% + $0.30.
| Line | Amount |
|---|---|
| Price, excluding VAT | $40.00 |
| Coupon, 10% | −$4.00 |
| Product cost | −$16.00 |
| Shipping you pay | −$6.50 |
| Payment fee, 2.9% of $36 + $0.30 | −$1.34 |
| What the order keeps | $12.16 |
On the product page, the candle has a 60% margin and a 150% markup. The order keeps $12.16. That’s 33.8% of the $36 the customer paid you. Ads and running costs still come out of that $12.16. To see how much ad spend it leaves room for, try the break-even ROAS calculator.
Profit margin calculator
Pick what you know. With a price, you get margin and markup. With a target margin, you get the price to charge. Turn on order costs to see what one order keeps. Use prices without VAT.
Assumes one item per order. The payment fee is worked out on the discounted price without VAT. Real fees apply to the full amount the customer pays, so they run a little higher. Nothing you type leaves this page.
Typical mistakes
- Working from prices with VAT. Example: a $50 price includes 25% VAT, so $40 is yours. With a $16 cost, the margin is 60%. Count the VAT, and you get 68%. VAT isn’t income; you pass it on. US sales tax works the same way.
- Forgetting fees. 2.9% + $0.30 sounds small. On a $36 order it’s $1.34, or 3.7% of the sale.
- Forgetting shipping. Free shipping is a cost you carry. On a cheap product it can take most of the margin.
- Leaving out discounts. Run a sale, and last month’s margin no longer applies.
- Using the wrong cost. Product cost should include what it took to get the item to your shelf, such as freight and import duty. Our guide to cost of goods in WooCommerce shows where to enter it.