Back to Laneworks

How to set margins on freight quotes without losing the job

4 November 2026 · By the Laneworks team · All articles

In short: Buy and sell rates, markup versus margin with worked examples, per-line versus total margin, a dollar floor per shipment, and when to show an all-in price.

Every freight quote is a buy rate plus something. How you work out that something decides whether you win jobs and still make money on them. Most small forwarders set it by feel, a round number on top of the ocean freight and the rest passed through. That works until the team is busy, the rates move, or someone quotes a small LCL shipment at a loss. This article covers the arithmetic, the choice between per-line and total margin, and when to show the customer an all-in price.

Buy rates and sell rates

Your buy rate is what you pay: the carrier or co-loader rate, the terminal's charges, the trucking company's price. Your sell rate is what the customer pays you. The difference is your gross profit on the job, before your own time, systems and overheads.

Keep the buy rates in one place with their validity dates, so whoever quotes is pricing from current numbers. Our guide to structuring a freight rate sheet covers a layout that works for that. A margin policy can only be as good as the buy rates underneath it.

Markup and margin are different numbers

This is where most pricing errors start. Markup is profit as a percentage of cost. Margin is profit as a percentage of the sell price. They're calculated from the same profit, but they're never the same percentage.

Say a job costs you $1,000 and you add 20%:

Buy ............................ $1,000.00
Markup 20% on cost ............. $  200.00
Sell ........................... $1,200.00
Margin = 200 / 1,200 ........... 16.7%

If your target is a 20% margin, adding 20% to cost falls short. To get a margin, divide the cost by one minus the margin:

Sell = Buy / (1 - target margin)
Sell = $1,000 / (1 - 0.20) = $1,250.00
Profit = $250.00 → margin 20%, markup 25%

A quick conversion table for the common numbers:

Markup on cost     Margin on sell
   10%                 9.1%
   15%                13.0%
   20%                16.7%
   25%                20.0%
   33.3%              25.0%
   50%                33.3%

Pick one term for your business and use it everywhere: in your rate sheet, in your pricing rules and when you talk to staff. A target of "20%" means $250 profit on that job to one person and $200 to another.

Per-line margin or total margin?

There are two ways to build a sell price, and most forwarders end up using both.

Per-line margin sets a markup on each line: a percentage on freight, a fixed amount on documentation, a percentage on cartage. It's easy to apply and easy to explain, and it lets you stay sharp on the lines customers compare most, usually the ocean or air freight, while earning on the lines they compare less.

Total margin sets a target for the whole job. You add up the buy rates, apply the margin once, then spread the sell price across the lines. It guarantees the job makes what you need, but on its own it can leave one line looking expensive against a competitor's.

The practical answer is per-line markups with a total check. Price each line, then check the job's total margin against your minimum before the quote goes out. Here's an FCL import with example rates:

Line                     Buy        Sell     Profit
Ocean freight ........ 2,700.00   2,950.00   250.00
Destination THC ......   520.00     560.00    40.00
Documentation ........    95.00     120.00    25.00
Cartage ..............   560.00     640.00    80.00
-----------------------------------------------------
Total ................ 3,875.00   4,270.00   395.00
Margin on sell ....................................  9.3%

If your minimum is 12% on a job like this, the per-line markups fall short, and you'd see it before sending, not at month end. You'd then decide where to add it, or whether to take the job at 9.3% because it's a new customer or a regular lane.

Set a dollar floor, not just a percentage

Percentages break down on small jobs. A 15% margin on an LCL shipment that costs you $180 is $31.76, which won't cover the time it takes to book, clear and invoice it. Set a minimum dollar profit per shipment as well as a target margin, and apply whichever is higher. This is the same logic carriers use with minimum charges, and it's what stops the small, fiddly jobs quietly losing money.

What not to put a margin on

Keep government charges out of your margin. Duty, import GST or VAT, and government processing charges or levies should be shown at cost, labelled as pass-through. Marking them up is hard to defend if a customer checks, and they're usually published amounts anyone can look up. If you fund those payments for the customer, charge a clear disbursement fee instead.

Watch currency as well. If you buy freight in USD and sell in AUD, the exchange rate you use is part of your margin. Either quote the freight in USD and say so, or convert at a stated rate with a small buffer and give the quote a short validity.

When to show an all-in price

An all-in price, one number from origin to door, is easier for the customer to compare and harder for them to pick apart line by line. It suits regular lanes with stable local charges and customers who buy on total landed cost.

Itemise when charges are variable or passed through at cost, when the customer's procurement team asks for a breakdown, or when the Incoterm means some lines belong to the supplier. You can also do both: an all-in freight and local charges figure, with duty, tax and possible extras listed underneath. Our freight quote reply template shows a layout that keeps either version readable.

A simple margin policy to start with

Apply your margins on every draft

Laneworks drafts quotes from your own rate sheet, with the rate-sheet row behind every number, so you can check the buy and sell on each line before the quote goes out. See a sample draft, or forward a real quote request to try@getlaneworks.com and a draft comes back in about two minutes.

Forward a quote request