Case Study · Freight & Logistics · Anonymized

20,000 quotes a year, priced by hand.
Here's how we measured it, proved it, and automated it.

A freight & logistics company asked us to automate their email quote desk. Before proposing a build, we analyzed 165,151 emails and 31,561 historical quotes, and replayed 18 months of history through their own pricing rules. This page is that analysis — the real numbers, with the client's identity withheld.

165,151
emails analyzed from the client's live quote mailbox
31,561
historical quotes replayed through the client's own rules
18 months
of operating history joined: mailbox × quote ledger × rate tables
57%
of sea-freight quotes auto-quotable on day one, before any expansion
Initial Analysis · Measure before you build

First, we put hard numbers on the problem.

The client's quote desk ran on email: 2,000–3,000 request threads a month, more than 21,600 quotes a year through their quoting system, every one read, retyped and priced by a person. Instead of estimating what automation might be worth, we measured it — their mailbox, their quote ledger and their rate tables, joined into one dataset and replayed through their own hand-off rules.

Quote-request demand was steady — and growing.
Inbound quote-request email threads per month over the 17 charted months (37,339 threads)

Demand grew roughly 40% across the window — the team's inbox was getting heavier every quarter, with no plans to add staff. Source: the client's quote mailbox, read-only export.

What the data showed

Five findings, all measured — none assumed.

  1. The email channel was the real workload.

    21,600+ quotes a year, with the mailbox carrying 2,000–3,000 request threads every month and growing. The public web quote tool handled a small fraction; email was where the hours went.

  2. The client's own rules already covered more than half the volume.

    Replaying every sea-freight quote through the client's own hand-off rules and live rate tables: 57.2% were auto-quotable immediately. The single biggest blocker — destination ZIPs missing from the zone table (26.3%) — was a coverage gap, not a pricing problem.

  3. Air freight was the largest mode, so it joined the build.

    Air was 44% of all quote volume, and customers routinely asked for sea and air together in one email — so the build covered both, letting the agent answer combined requests in full instead of splitting them.

  4. Hand quoting was measurably inconsistent.

    Controlling for both lane and shipment size, the same shipment was quoted with a median 52% coefficient of variation — 61 of 63 lane×size cells exceeded 20%. Even holding customer and month constant, prices still varied ~24%. Rules don't wobble; people at volume do.

  5. The deterministic engine reproduced their real prices.

    On a hand-verified sample, the engine landed within +2% to +10% of actual quotes — always slightly under, a gap traced to a single missing fuel surcharge. And it escalated the same shipments their team escalates: oversized, high-cube, white-glove. Found before go-live, not after.

Sea freight on day one: 57.2% auto-quotable with the client's own rules.
Disposition of 7,818 sea-freight quotes replayed through the client's hand-off rules and live rate tables

The 26.3% blocked by unmapped ZIPs is the cheapest win on the board: each ZIP added to the zone table converts hand-offs into automatic quotes. Until then, the unknown-ZIP fallback routes them safely to a person — nothing fails silently.

Same lane, same size — very different prices.
Effective $/cu ft, 10th percentile – median – 90th percentile, for the six highest-volume lane × size cells (lanes anonymized)
p10–p90 range median
View the data
Lane × sizep10 $/cfmedian $/cfp90 $/cfQuotesCoV
Lane A · 25–50 cu ft8.0010.4919.8842049%
Lane A · 50–100 cu ft7.849.7515.8657859%
Lane A · 100–250 cu ft2.938.7513.1356183%
Lane A · 250–500 cu ft1.868.2511.2542851%
Lane A · 500–1000 cu ft1.657.7210.0027164%
Lane B · 100–250 cu ft6.1210.5716.8715667%

Medians sit near the official tariff; the spread around them is human-quoting variation. A deterministic engine collapses each cell to one price: one lane → one rule → one price.

The engine's gap was systematic — which means correctable.
Median (actual price ÷ engine price) by shipment size, across 4,405 repriced sea-freight quotes
View the data
Size (cu ft)Actual ÷ engineQuotes
0–201.57×459
20–501.27×847
50–1001.11×958
100–1501.03×488
150–2501.00×520
250–4000.95×495
400–7000.89×432
700–10000.84×202

Small shipments run hot (minimums, surcharges and accessorials dominate); mid-size sits at parity; large shipments show volume discounting. The clean, monotonic curve told us the gap was three specific calibrations — a fuel surcharge, size-tiered rate breaks, and accessorial extraction — not a broken model.

The build

A Digital Worker shaped to their desk — not the other way around.

Customers kept emailing the same address they always had. Behind it, the agent now reads each request, prices it from the client's own rate tables, and replies in minutes — or hands the thread to a person with everything extracted. The full architecture is on the overview page; the pieces that mattered most:

AI reads; it never prices.

The model extracts origin, destination, pieces, dimensions, weight and service flags from messy emails. Every dollar figure comes from the client's own deterministic rate engine.

Missing details? It asks.

Incomplete requests don't stall or get guessed at — the agent replies asking for exactly what's missing and keeps the thread alive until it can price properly.

Humans own the exceptions.

Unknown ZIPs, oversized loads, special handling — anything uncertain reassigns to the team with full context. Anyone can take any thread at any time; the agent instantly steps aside.

Backtested before go-live.

The go-live gate: replay a year of real email threads through the agent and compare every generated quote to the one a human actually produced — against accuracy targets the client set.

Supervised rollout, client-paced.

Every quote human-reviewed at first. Auto-send is a switch the client owns and flips only when the accuracy record has earned it — for as long or short as they want.

A dashboard that doubles as the invoice.

Volume, turnaround, escalation reasons and measured hours saved — the same numbers that prove the agent's value are the numbers our fee is calculated from.

The economics

Estimated conservatively. Then grounded in payroll.

The readiness assessment deliberately banded the labor value using conservative stated assumptions. When the client's actual payroll and per-quote handling time replaced those assumptions, the measured figure came in above the top of the band — and those grounded inputs were locked into the pricing model.

Annual labor value of the automated work: band first, then measured.
Initial sensitivity band from stated assumptions vs. the payroll-grounded measured model
initial band — stated assumptions measured — actual payroll & handling time, locked

Grounded inputs: 13.5 minutes of manual handling per quote (measured from payroll hours against quote volume), a volume-weighted fully loaded labor rate, and ~963 auto-quotes a month — ~$130K a year of measured labor value, roughly 2,300 hours returned to the team. That's the capacity of an additional full-time hire, added without recruiting anyone.

Speed where it pays.

Median turnaround fell from ~4 hours to minutes. In the client's own history, quotes answered within an hour won 69% of the time vs. ~35% for slow replies — and every +1 point of capture is worth ~$238K/yr at their median quote value.

Around-the-clock coverage.

At least a fifth of quote requests arrived outside business hours — by the most conservative measure — and used to wait for the office to open. The agent answers them on arrival, every night and weekend.

Consistency, by construction.

The measured 52% same-lane price variation drops to zero on agent-priced quotes. Same shipment, same price — whoever's on shift, whatever the hour.

The point was capacity, not cuts.

This system was never designed to eliminate jobs. The Digital Worker absorbs the routine volume; the team's senior quoters redeploy to complex, custom shipments carrying roughly three times the value of a routine quote — and the company absorbs its growing demand without hiring extra staff to keep up with the inbox.

All figures measured in the engagement's initial data analysis of the client's historical email threads, quote ledger, rate tables and payroll records, or set in the resulting engagement model. Lane identities and the client's identity are withheld. Results vary by process, volume and data.

Why they could trust it

Nothing here asks for faith.

Every claim on this page existed before go-live, because the system was proven the same way it was scoped: on the client's own history. The replay showed them exactly how it prices, when it asks for missing details, and which shipments it routes to a person — case by case, against known outcomes. And the client keeps a standing veto: any thread, any time, one click to take over.

Let's talk

Want this level of proof before you build? That's our Initial Analysis.

Bring us your most repetitive process. We'll analyze your real operating data — mailboxes, tickets, systems — and put measured numbers on what a Digital Worker is worth, before you commit to anything.

Your data stays yours — never used to train public models Findings you keep, whether or not we build
JS
Jeff Springer Co-CEO · RatePlug AI
jeff.springer@rateplug.com (877) 710-0808 RatePlug AI overview
Tell us the process and roughly how many requests a month it sees — we'll bring an automation read on it to the first call.