Markup & Margin Calculator
Enter your cost and any one of selling price, markup % or margin %. The calculator solves for the rest, then adds fulfilment, shipping, fees and returns so you see contribution margin, not just the textbook number.
Solve For Price, Profit, Markup and Margin
Two inputs are enough. Add the ecommerce cost lines underneath and it also returns what the order actually contributes.
Fields marked are required. Everything else is optional and refines the result.
Ecommerce cost lines
The two formulas, side by side
Margin = (price − cost) ÷ price. Markup = (price − cost) ÷ cost. Same gross profit on top, two different denominators underneath. Everything on this page follows from that one difference. Contribution margin then subtracts fulfilment, shipping, percentage fees and the returns allowance before dividing by price.
Same Profit, Two Numbers, One Expensive Mistake
Two ratios, built from the same pair of inputs. Swapping one for the other underprices the product every time.
Markup looks up from cost
It answers: how much did I add on top of what I paid? The denominator is cost, so markup has no ceiling. A 300% markup is ordinary in beauty and accessories.
Margin looks down from price
It answers: what share of each revenue dollar do I keep? The denominator is price, so margin can never reach 100% while cost is above zero.
Markup is always the larger figure
For any profitable product, markup exceeds margin, because cost is always smaller than price. If someone quotes a margin above its markup, one of the two labels is wrong.
The mistake, in one line
Someone asks for a 50% margin. The buyer applies a 50% markup instead. On a $10.00 cost, the correct price is $20.00 and the price actually set is $15.00. The product ships at a 33.3% margin, a third below target, on every unit until someone notices.
| On a $10.00 cost | 50% markup applied | 50% margin applied | Difference |
|---|---|---|---|
| Selling price | $15.00 | $20.00 | $5.00 per unit |
| Gross profit | $5.00 | $10.00 | Double |
| Resulting markup | 50% | 100% | Markup is the bigger number |
| Resulting margin | 33.3% | 50% | 16.7 percentage points |
| On 5,000 units | $25,000 gross profit | $50,000 gross profit | $25,000 forgone |
Markup To Margin Conversion Table
Margin = markup ÷ (1 + markup). Prices in the third column assume a $10.00 cost so you can sanity-check a row against a number you can do in your head.
| Markup % | Equivalent margin % | Price on a $10.00 cost | Gross profit |
|---|---|---|---|
| 5% | 4.8% | $10.50 | $0.50 |
| 10% | 9.1% | $11.00 | $1.00 |
| 15% | 13.0% | $11.50 | $1.50 |
| 20% | 16.7% | $12.00 | $2.00 |
| 25% | 20.0% | $12.50 | $2.50 |
| 30% | 23.1% | $13.00 | $3.00 |
| 40% | 28.6% | $14.00 | $4.00 |
| 50% | 33.3% | $15.00 | $5.00 |
| 60% | 37.5% | $16.00 | $6.00 |
| 75% | 42.9% | $17.50 | $7.50 |
| 100% | 50.0% | $20.00 | $10.00 |
| 150% | 60.0% | $25.00 | $15.00 |
| 200% | 66.7% | $30.00 | $20.00 |
| 300% | 75.0% | $40.00 | $30.00 |
Margin To Markup Conversion Table
Markup = margin ÷ (1 − margin). This is the direction most people get wrong, because the markup needed climbs steeply once margin passes 50%.
| Target margin % | Markup you must apply | Price on a $10.00 cost |
|---|---|---|
| 10% | 11.1% | $11.11 |
| 15% | 17.6% | $11.76 |
| 20% | 25.0% | $12.50 |
| 25% | 33.3% | $13.33 |
| 30% | 42.9% | $14.29 |
| 35% | 53.8% | $15.38 |
| 40% | 66.7% | $16.67 |
| 45% | 81.8% | $18.18 |
| 50% | 100.0% | $20.00 |
| 55% | 122.2% | $22.22 |
| 60% | 150.0% | $25.00 |
| 65% | 185.7% | $28.57 |
| 70% | 233.3% | $33.33 |
| 75% | 300.0% | $40.00 |
| 80% | 400.0% | $50.00 |
Three rows worth memorising
A 25% markup is a 20% margin. A 50% markup is a 33.3% margin. A 100% markup is a 50% margin. Doubling the cost does not give you a 100% margin — it gives you exactly half, and no amount of markup ever reaches 100% margin.
Gross Margin Is Not What The Order Leaves Behind
A textbook margin calculator stops at cost of goods. An ecommerce order carries four more variable costs, each charged per order rather than per dollar of revenue.
Fulfilment per order
Pick, pack, packaging materials and the labour behind them. It is close to flat per order, so it eats a far larger share of a $20 order than a $200 one.
Outbound shipping
Charged on chargeable weight, not on price. Light, bulky goods are billed on volume, so a low-value bulky SKU can be the worst line in the range.
Marketplace and payment fees
These scale with price, so they shave a fixed number of percentage points off every order. Referral, listing and gateway fees stack rather than replace each other.
Returns and write-offs
A returned order loses the outbound shipping, the return leg and often the resale value. Carrying an allowance is more honest than pretending the rate is zero.
Signs your margin figure is the textbook one
- The cost field holds an ex-factory or supplier invoice price, not landed cost
- Nothing in the model changes when order volume or basket size changes
- Free shipping thresholds do not appear anywhere in the calculation
- The same margin is quoted for the marketplace channel and the own-site channel
- Returns are handled as a footnote rather than a cost line
- Peak-season surcharges never move the number
If three or more of these are true, the margin on your pricing sheet is describing a product, not an order.
An Imported Skincare SKU Sold in the US
A serum with a $4.10 factory price. Inbound freight, duty and inbound handling add $2.10, so landed cost is $6.20 per unit. It retails at $18.90 on a US marketplace.
| Field | Value entered | Where it comes from |
|---|---|---|
| Landed cost per unit | $6.20 | $4.10 ex-factory + $2.10 freight, duty and inbound handling |
| Selling price | $18.90 | Marketplace listing price, inclusive of the promo it usually runs at |
| Fulfilment cost per order | $1.85 | Pick, pack and packaging from the 3PL rate card |
| Outbound shipping per order | $3.40 | Blended domestic rate across the destination market |
| Marketplace + payment fees | 12% | Referral commission plus payment gateway, as a share of price |
| Returns allowance | 4% | Observed return rate applied against price |
| Line | Amount | Share of the $18.90 price | Running total kept |
|---|---|---|---|
| Selling price | $18.90 | 100.0% | $18.90 |
| Less landed cost | −$6.20 | 32.8% | $12.70 |
| Less fulfilment | −$1.85 | 9.8% | $10.85 |
| Less outbound shipping | −$3.40 | 18.0% | $7.45 |
| Less fees at 12% | −$2.27 | 12.0% | $5.18 |
| Less returns at 4% | −$0.76 | 4.0% | $4.43 |
| Contribution profit | $4.43 | 23.4% | $4.43 |
What the three numbers are actually for
The 204.8% markup is how you set the price from the cost. The 67.2% gross margin is what appears in the accounts above the fulfilment line. The 23.4% contribution margin is the only one of the three that tells you whether spending $4.00 to acquire this order was a good idea.
Every Formula This Calculator Uses
Each one runs in your browser exactly as written. Cost of goods sold and cost per unit both sit behind the cost field.
Gross profit
price − cost = gross profit Per unit. This is the numerator shared by both ratios below.
Margin
(price − cost) ÷ price × 100 Undefined when price is zero. The calculator shows a dash rather than a number.
Markup
(price − cost) ÷ cost × 100 Undefined when cost is zero. A dash appears instead of an infinite value.
Price from markup
cost × (1 + markup ÷ 100) Used when you enter a markup target instead of a price.
Price from margin
cost ÷ (1 − margin ÷ 100) Requires a margin below 100%. At 100% the divisor is zero and no price exists.
Contribution margin
(price − variable costs) ÷ price × 100 Variable costs are cost, fulfilment, shipping, fee % and returns %.
Edge cases, handled on purpose
A zero cost makes markup undefined and a zero price makes margin undefined, because both mean dividing by zero. The calculator prints a dash in those cells instead of a stray infinity symbol. A margin of 100% or more is rejected, since no finite price produces it.
Getting An Answer You Can Price Against
1. Build landed cost first
Factory price, inbound freight, duty, insurance and inbound handling, divided by units received. Ex-factory cost alone flatters every figure downstream.
2. Choose what you already know
Price if the SKU is already listed, markup if you price off a cost multiple, margin if finance hands you a target to hit.
3. Add the order-level costs
Pull fulfilment and shipping from a 3PL rate card or recent invoices rather than estimating. Fees and returns go in as percentages of price.
4. Run it per channel
Marketplace, own site and retail carry different fee and shipping profiles. One blended number hides the channel that is losing money.
What goes wrong in a spreadsheet
- A markup column gets labelled margin and nobody re-checks the formula
- Percentage fees get applied to cost instead of price
- The returns allowance is dropped because it made the sheet look bad
- Old shipping rates survive a carrier change by months
What this page does instead
- Shows markup and margin together so the two can never be confused
- Applies fee and returns percentages to price, which is where they land
- Prints the contribution margin next to the gross margin every time
- Keeps every input visible instead of hiding it in a cell reference
Use the copy button to paste the whole result set into a pricing review or a supplier negotiation.
What To Do When Contribution Margin Comes Back Thin
A thin result is a signal about the order, not a verdict on the product. Four levers move it, and they move it by very different amounts.
Raise the price
The fastest lever and the riskiest. Every dollar added flows to contribution minus the fee percentage, so a 12% fee keeps 88 cents of it.
Cut landed cost
Supplier terms are the obvious route, but consolidating inbound freight and reviewing the duty classification often move more per unit.
Shrink the parcel
Shipping is billed on chargeable weight. Lower carton height and less void fill can cut the shipping line without touching the product.
Lift basket size
Fulfilment and shipping are close to flat per order. Two units in one parcel roughly halve their share of the price.
Before you sign off a price
- Confirm whether the target you were given is a markup or a margin
- Check the cost field is landed cost, and that the duty rate is current
- Run the promotional price, not only the list price
- Model the free-shipping threshold as a separate scenario
- Compare contribution profit against your cost to acquire the order
- Re-run it when carrier rates or marketplace commissions change
Nothing you enter leaves your browser, so pricing you are not ready to share stays local to your machine.
Pin Down The Costs Behind The Margin
The fulfilment and shipping figures are assumptions until you cost them properly. These pages replace them with real numbers.
Runs entirely in your browser
Every figure is calculated locally by JavaScript on this page. No pricing data is sent to Locad, nothing is stored, and there are no external requests while the calculator is open.
Markup and Margin Questions
Want Real Numbers In The Cost Fields?
Talk to Locad about fulfilment and shipping rates for your order profile, basket size and destination markets.