Free calculator

Freight Margin Calculator — margin vs markup

A freight margin is measured on the SELL price, a markup on the BUY price, and they are never the same number: a 20% markup leaves only 16.7% margin. The sell price for a target margin m is buy ÷ (1 − m) — €500 at 20% margin is €625, not €600. This free calculator shows both figures at once.

  • No account
  • No data sent
  • No carrier rates included
  • Updated

Buy price and pricing rule

Commercial floors (optional)

Buy-price stress test

Results

Sell price

Gross profit
Margin (on sell)
Markup (on buy)
Equivalent coefficient
Margin after the increase
Buy increase that wipes the margin
Floor applied

Sell price by target margin

Margin Sell price Gross profit Markup

How to use this calculator

  1. 01 Enter the carrier buy price and its currency Type the all-in buy price you actually pay the carrier, in EUR, USD, GBP, CHF, CAD, MAD or PLN. The tool contains no carrier tariff: the buy price comes from your own negotiated rate grid.
  2. 02 Choose how you want to price Percent margin on the sell price, markup on the buy price, a target sell price (the tool works the margin backwards), or a fixed amount per shipment.
  3. 03 Add your commercial floors Set a minimum margin amount and a floor sell price if you have them. The calculator applies max(buy ÷ (1 − m), buy + minimum, floor) and tells you which one won.
  4. 04 Stress-test the buy price Enter a buy-price increase in percent to see the margin you would really keep on an unchanged sell price, and the increase that wipes the margin out entirely.

Limits — what this calculator does not do

  • Margin and markup are not the same base. This tool always displays both so a quote can never be defended on the wrong one.
  • Gross margin is not net margin: ad valorem insurance cost, claims, payment terms, factoring and bank fees are not modelled here.
  • All amounts are excluding tax. No VAT, no reverse charge, no local tax rule is applied.
  • No "normal" or "market" margin range is suggested anywhere on this page: broker margins vary by lane, service and customer, and any figure we printed would be unsourced.
  • The buy price is your input. This page embeds no carrier tariff and fetches none — everything is computed in your browser.

Runs in your browser. This page contains no tracking of your inputs: the arithmetic runs in JavaScript on your device. Nothing is uploaded, nothing is stored, no account is required, and no carrier tariff is embedded in the page.

What is the difference between margin and markup in freight?

Margin is the profit divided by the sell price; markup is the same profit divided by the buy price. A 20% markup on a €500 buy gives €600 and only 16.7% margin, while a 20% margin gives €625 — the same word, two different prices.

Both numbers describe the same euros of profit. They differ only in what they divide by:

  • Margin m = (sell − buy) ÷ sell
  • Markup k = (sell − buy) ÷ buy

They convert into each other exactly: m = k ÷ (1 + k) and k = m ÷ (1 − m). Below, the same €500 buy price priced both ways:

TargetSell priceGross profitMarginMarkup
Markup 20%€600.00€100.0016.7%20.0%
Margin 20%€625.00€125.0020.0%25.0%
Margin 25%€666.67€166.6725.0%33.3%
Margin 30%€714.29€214.2930.0%42.9%

The gap is €25 per shipment on this example — roughly the difference between a profitable lane and a busy one. Cargavo is a TMS for freight brokers, and it stores the rule as a margin on the sell price, expressed as p/(1-m), precisely so that nobody has to remember which base a spreadsheet was built on.

How do you calculate a freight sell price from a buy price?

Sell price = buy price ÷ (1 − margin rate). For a €500 buy price and a 20% target margin: 500 ÷ 0.80 = €625, gross profit €125, which is 20% of 625. Dividing, never multiplying, is what makes the target margin come out right.

The whole calculation is one division. With m expressed as a decimal (20% = 0.20):

sell = buy ÷ (1 − m)  ·  gross profit = sell − buy  ·  realised margin = (sell − buy) ÷ sell

Worked example, step by step:

  1. Buy price from your carrier rate grid: €500.00
  2. Target margin: 20%, so 1 − m = 0.80
  3. Sell price: 500 ÷ 0.80 = €625.00
  4. Gross profit: 625 − 500 = €125.00
  5. Check: 125 ÷ 625 = 20.0% margin, and 125 ÷ 500 = 25.0% markup

Three variants the calculator also covers. A fixed amount per shipment: sell = buy + a, used on cheap short-haul consignments where a percentage returns too little. A target sell price the customer has already accepted: the tool inverts it into m = 1 − buy ÷ sell, which tells you what you are really making. And floors: sell = max(buy ÷ (1 − m), buy + minimum margin, floor price), with a visible flag telling you which of the three won.

Do you apply the margin to the fuel surcharge and the options too?

Both conventions exist and they give different prices for the same stated margin: some brokers margin the all-in buy cost, others margin the linehaul only and pass the fuel surcharge, tail lift or ADR through at cost. Neither is wrong; only the unstated one is.

A carrier buy price is rarely one number. It is a linehaul, plus an indexed fuel surcharge, plus the options actually ordered — tail lift, ADR, ad valorem insurance, delivery appointment, waiting time. Where you place the margin changes the quote:

ConventionSell price formulaOn buy €500 + €80 fuel + €40 tail lift, m = 20%
Margin on everything(linehaul + fuel + options) ÷ (1 − m)€775.00
Margin on linehaul + fuel, options at cost(linehaul + fuel) ÷ (1 − m) + options€765.00
Margin on linehaul onlylinehaul ÷ (1 − m) + fuel + options€745.00

Same buy cost, same "20% margin" written on the quote, €30 of difference. Decide the convention once, write it down, and apply it to every customer — that is the only way a margin figure means anything across a team. Cargavo, a TMS for freight brokers, keeps the rule in each customer's pricing configuration rather than in someone's head, and applies it server-side on every quote.

What happens to your margin when the carrier raises the buy price?

On an unchanged sell price, a buy-price increase of x reduces the realised margin to 1 − buy × (1 + x) ÷ sell, and the margin reaches zero at x = sell ÷ buy − 1. A 20% margin absorbs a 25% buy increase, a 10% margin only 11.1%.

Quotes outlive tariffs. The carrier reprices, the fuel index moves, and the sell price you published stays where it is. Two figures tell you how exposed you are:

  • Realised margin after an increase of x: m' = 1 − buy × (1 + x) ÷ sell
  • Maximum absorbable increase: xmax = sell ÷ buy − 1 (which is exactly the markup k)

On the €500 → €625 example: a 5% buy increase (€525) leaves 16.0% margin, a 10% increase (€550) leaves 12.0%, and the margin hits zero at a 25% increase. A thin 8% margin, by contrast, is gone after an 8.7% increase.

This is why the sell price has to be recomputed from the current grid rather than copied from last month's quote. Cargavo is a TMS for freight brokers and forwarders: it recalculates the buy price from the rate grids you build yourself — weight_zone, pallet, mpl_bracket or hybrid_weight, rebuilt from your carriers’ Excel or CSV sheets, with no carrier API and no EDI — then applies each customer's margin rule (percent via p/(1-m), or a fixed amount per bracket) on the server. The buy price and the margin live in a private record: the customer portal shows the sell price and nothing else. Quotes are referenced Q-YYYY-NNNN, shipments S-YYYY-NNNN, in EUR, USD, GBP, CHF, CAD, MAD or PLN and in English, French, Spanish or German. Plans are €49, €149 and €399 per month with a 14-day trial and no card required.

Frequently asked questions

What is the formula for a freight sell price with a target margin?

Sell price = buy price ÷ (1 − margin rate). At a 20% target margin, a €500 buy price gives 500 ÷ 0.80 = €625. Multiplying by 1.20 gives €600 and a realised margin of only 16.7%.

Is a 20% markup the same as a 20% margin?

No. A 20% markup means 16.7% margin, because the profit is divided by the sell price instead of the buy price. The conversions are m = k ÷ (1 + k) and k = m ÷ (1 − m).

Should a freight broker margin the fuel surcharge?

Both conventions are used. Margining the all-in cost gives a higher sell price than margining the linehaul only and passing the fuel surcharge through at cost. What matters is stating which one your quote uses and applying it consistently.

What margin does a freight broker make?

This page publishes no market figure. Broker margins vary by lane, service level, volume and customer, and any single percentage quoted as a norm would be unsourced. Enter your own buy price and target instead.

Does this margin calculator send my prices anywhere?

No. It is free, requires no account, and the arithmetic runs in JavaScript in your browser. Nothing is uploaded or stored, and no carrier tariff is embedded in the page.