In short
- Markup compares profit with cost: markup = (price − cost) ÷ cost.
- Gross margin compares profit with price: margin = (price − cost) ÷ price.
- To price from a markup: price = cost × (1 + markup). From a target margin: price = cost ÷ (1 − margin).
- A 40% markup is not a 40% margin. On a $12.00 cost, it is $3.20 a unit less.
Want the numbers for one product right away? Use the free markup and margin calculator.
Two percentages for the same profit
Take a product that costs you $12.00 and sells for $20.00. It makes $8.00 of gross profit. Measured against the cost, that is a 66.67% markup ($8 ÷ $12). Measured against the price, it is a 40% margin ($8 ÷ $20). Same product, same profit, two different percentages.
Neither is wrong. They answer different questions. Markup tells you how much you add on top of what you pay. Margin tells you how much of each sale you keep after paying for the product. Shopify uses margin: when you fill in Cost per item on a product, Shopify shows the profit and the margin for its price.
Setting a price from supplier cost
When your supplier gives you a cost, either rule turns it into a price:
- From a markup: price = cost × (1 + markup)
- From a target margin: price = cost ÷ (1 − margin)
Here is the same $12.00 cost with “40%” applied both ways:
| Rule | Calculation | Price | Profit | Markup | Margin |
|---|---|---|---|---|---|
| 40% markup | 12.00 × 1.40 | $16.80 | $4.80 | 40% | 28.57% |
| 40% margin | 12.00 ÷ 0.60 | $20.00 | $8.00 | 66.67% | 40% |
This is the classic mistake. If you want a 40% margin but apply a 40% markup, you charge $3.20 less per unit than you meant to, and your real margin is 28.57%. Across a whole supplier price list, that adds up quickly.
Markup to margin conversion table
To convert between the two: margin = markup ÷ (1 + markup), and markup = margin ÷ (1 − margin).
| Markup | Gross margin |
|---|---|
| 10% | 9.09% |
| 20% | 16.67% |
| 25% | 20% |
| 33.33% | 25% |
| 42.86% | 30% |
| 50% | 33.33% |
| 66.67% | 40% |
| 100% | 50% |
| 150% | 60% |
| 200% | 66.67% |
| 300% | 75% |
Two things stand out. For the same price, the margin is always smaller than the markup. And a margin can never reach 100%, because that would mean the product cost nothing, while a markup can be any size.
Which one should you use?
Neither is better; they are two views of the same profit. Markup is quick to apply when you start from a supplier cost, which is why many price lists and spreadsheets use it. Margin is easier to compare with the rest of your costs, because fees, discounts and shipping are also shares of the selling price. If you have a target margin in mind, price with the margin formula directly instead of converting it to a markup in your head. That one habit prevents the 40% mistake above.
What belongs in “cost”
The formulas are only as good as the cost you put in. The supplier’s unit price is the start, but getting a product ready to sell often costs more:
- shipping, duties and customs fees from the supplier, spread across the units in the shipment (often called landed cost),
- packaging and labels,
- currency conversion and bank fees, if the supplier bills in another currency.
Decide what “cost” means for your store and use it the same way for every product. If you enter only the supplier’s unit price in Shopify’s Cost per item field, remember that the margin Shopify shows is before all of these.
Gross margin is not profit
Gross margin subtracts only the product cost. The rest of your costs still have to come out of it:
- payment processing fees,
- shipping you pay for but do not fully charge,
- discounts and promotions,
- returns and damaged goods,
- advertising, apps and your Shopify plan.
Taxes matter too. If your prices include VAT or GST, work out the margin on the price without tax, or it will look better than it is. This is why a margin that looks healthy on paper can be thin in practice. Choose a target margin from your own numbers, with room for all of the above.
Discounts take a bigger bite than you expect
A discount comes straight out of your profit, so it lowers the margin by more than its own percentage. Using the same product, with a $12.00 cost and a $20.00 price:
| Discount | Sale price | Profit | Margin |
|---|---|---|---|
| None | $20.00 | $8.00 | 40% |
| 10% off | $18.00 | $6.00 | 33.33% |
| 20% off | $16.00 | $4.00 | 25% |
| 40% off | $12.00 | $0.00 | 0% |
A 20% discount cuts this product’s profit in half. If you run regular sales, set your target margin with the discounted price in mind.
Rounding and price endings
Formulas rarely produce tidy prices. A $12.40 cost at a 40% target margin gives $20.666…, which rounds to $20.67. Rounding moves the margin a little, here to 40.01%.
Price endings move it more. If you then choose $19.99 instead, the margin drops to 37.97%. Always check the margin on the final price you will charge, not on the formula’s result.
Applying a rule to a whole supplier price list
For one product, a calculator is enough. For a supplier file with hundreds of SKUs, the steps are:
- Put the supplier cost next to each variant, matched by SKU, in a copy of a fresh Shopify export.
- Apply one formula to every row. In a spreadsheet, with the cost in column C, a 40% target margin is
=ROUND(C2/(1-0.4),2)and a 40% markup is=ROUND(C2*(1+0.4),2). - Compare the new prices with the current ones before importing anything. Look for large jumps, drops and prices below cost.
The guide to updating Shopify prices from a supplier CSV walks through the matching, review and import steps.
Supplier Update Guard does this in your browser. Choose Markup on unit cost or Target gross margin and enter the percentage. It calculates a price for every matched variant, rounds it to your currency’s precision and shows the cost and gross margin next to each proposed price. Rows below cost, or with a gross margin under 10%, need an individual decision before they can be approved. It then builds a Shopify import file and a rollback file, without uploading your files or connecting to your store.