The real problem with spot rates
Spot rates change daily. Most forwarders compare them in the most lossy way possible: a sales rep eyeballs a number from a third-party index, mentally compares it to a contract rate they remember from last quarter, and replies to the customer in their own words. By the time finance sees the quote, margin discipline is already gone.
The fix is not to stop using spot data. The fix is to make spot data a structured input to your quoting flow instead of a vibe.
Three ways spot leakage actually happens
- Invisible benchmarking. A customer says “the market is at 1,800”. The rep cannot verify that quickly, so they shave the contract price to “stay competitive”. Multiply by every reply that day.
- Stale comparison. The rep is comparing today's spot offer against a contract rate that already had a GRI applied. The numbers are not actually comparable.
- One-off discounts that stick. A "just for this booking" discount becomes the new floor for that customer. Nobody intended it; nobody wrote the rule down.
What a disciplined comparison looks like
A forwarder that compares spot vs contract correctly does four things on every quote:
- The reference contract is the current valid version, not what the rep remembers.
- The spot benchmark is timestamped and source-attributed, not a number from a chat.
- The customer's own historical behavior is on the screen: have they paid above or below market in the past?
- The quote tool enforces the margin floor automatically. Sales cannot accidentally quote below the rule.
The first three are data problems. The fourth is a workflow problem.
How Freightools.ai handles this
Inside Freightools.ai, Tari keeps the contract library structured and queryable so the current valid rate is one click away, and Miles enforces lane- and customer-specific margin floors on every quote it generates. Spot benchmarks slot in as a side-by-side reference next to the contract number — the rep sees both, the system protects the floor.
You do not need to buy software to fix this. But if your team is comparing spot to contract by memory and Slack, the leakage is not a "people problem" — it is a tooling gap.
A short checklist for sales managers
- Are reps quoting from the current valid tariff version, or the one in their head?
- Is every spot benchmark you cite dated and sourced, so finance can audit it later?
- Is your floor margin a rule the system enforces, or an instruction the rep is meant to remember?
- When a customer says "the market is X", can your rep answer with a number in the same minute?
If the answer to any of these is "not really", spot rates are leaking margin out of your business — and the answer is structure, not discipline.
What the numbers look like over a quarter
Margin leakage on spot rarely shows up in a single quote. It compounds. A desk quoting forty spot moves a week, leaking an average of forty dollars of forgotten surcharge on one in five, is bleeding low five figures a quarter — quietly, with no single quote looking wrong. That is why "we are basically fine" is the most expensive sentence on a forwarding floor: nobody owns the aggregate.
The fix is not heroic discipline. It is making the surcharge, the validity, and the floor render automatically on every quote so the leak cannot start in the first place.
Building the comparison into the quote, not beside it
Most teams treat spot comparison as a separate step: pull the benchmark, eyeball it, then quote. The separation is where errors enter. A better pattern folds the comparison into the quoting view itself:
- The current valid contract or buying rate for the lane is already on screen, surcharges itemized.
- The spot benchmark sits next to it, timestamped and sourced.
- The customer markup rule and floor are applied before the rep ever types a number.
When the comparison and the quote are the same screen, "which is cheaper" stops being a judgment call made under time pressure and becomes a number the system already reconciled.
The three lanes where leakage hides most
Not every lane leaks equally. In practice, margin quietly disappears in three specific places, and knowing them tells a sales manager where to look first.
The first is high-frequency, low-value lanes — the bread-and-butter moves a desk quotes dozens of times a week. Because they are routine, reps stop checking the surcharge detail and quote from memory. A small omission repeated across hundreds of quotes is a larger annual number than a single dramatic mistake on a marquee shipment.
The second is lanes with volatile surcharges — anywhere BAF, peak-season surcharges, or GRIs move frequently. The base rate looks stable, so the rep trusts last week's number, while the surcharge that actually changed gets carried forward stale. The customer pays the old surcharge; the forwarder absorbs the difference and never connects it back to the quote.
The third is multi-leg or transhipment routings, where the all-in price is assembled from several underlying costs. Each handoff is an opportunity to drop a local charge, a documentation fee, or a terminal handling cost. The quote looks complete because it carries a number; it is incomplete because a line was never added.
The defence is the same in all three cases: the surcharge structure has to render automatically from a current, structured rate record, not from the rep's recollection. When every quote rebuilds the full cost from live data, the routine lane, the volatile surcharge, and the multi-leg routing all stop being special — they are just records the system totals correctly every time.
A useful exercise for any sales manager: pull last month's quotes on your top five lanes and re-price them from your current tariff. The gap between what you quoted and what you should have quoted is your real leakage rate. Most teams are surprised, and rarely in a good way — but it is the fastest way to turn an abstract worry into a number worth fixing.
Talk to us
If you want to see how Tari + Miles handle spot vs contract on real lanes, book a demo. We will walk through your actual lane mix, not a generic deck.