Every carrier quote, read and structured — before the coordinator's eyes touch it.
Keelway runs a Sonnet 4.6 extraction pipeline on every inbound carrier email. Rate, equipment, lane, ETA, and detention terms come out as structured rows in the load_inquiries table — ready for ranking, ready for TMS write-back, ready for the coordinator to act on in one keystroke. No copy-paste. No manual data entry. Works on all 12 carrier email formats including PDF attachments.
The problem with reading 40 carrier emails by hand
When a load posts to DAT or Truckstop, it generates 30–50 carrier email replies within two hours. Each reply needs to be opened, read, and mentally parsed for: What is the rate? Is it all-in or linehaul only? What equipment? Is there a detention assumption buried in paragraph three? Does the ETA work for the consignee window? That is roughly 4–6 minutes of cognitive labor per email. At 40 emails per load and 20 loads per coordinator per day, the math produces a brokerage that is permanently behind.
The problem is compounded by the fact that carriers do not fill out a form. They reply however they reply — which across the industry produces at least 12 recognizable email formats, from the clean dispatcher template to the owner-op text-to-email forward with no punctuation and a rate buried mid-sentence. A coordinator reads these because they have to. Keelway reads them so the coordinator doesn't.
The two-model extraction pipeline
Keelway's rate extraction is not a regex parser or a keyword-matching rule engine. It is a full LLM pipeline tuned for freight-domain extraction, running in two passes.
Sonnet 4.6 — primary extraction
Opus 4.7 — fallback for ambiguous formats
PDF and image attachment extraction
Structured load_inquiries rows
load_inquiries table: offered_rate, equipment_type, origin, destination, available_date, transit_days, detention_rate, layover_assumption, and carrier_contact. Optional fields — team_driver, hazmat_cert, reefer_temp_range — are extracted when present. Every row has a confidence field and a raw_email_id foreign key for auditability.Per-brokerage model tuning
Lane rate distribution from extracted data
What happens to emails with no rate
A meaningful fraction of inbound carrier emails are availability signals, not quotes: Interested, what's the pay? or I have a truck empty in Chicago Thursday, any loads? These emails are classified as availability responses, not rate replies, and routed to a separate queue. Keelway drafts a templated What's your best rate on this lane? reply that the coordinator can send in one click — keeping the conversation moving without leaving the ranked-list view.
TMS write-back on acceptance
When a coordinator accepts a carrier from the ranked list, Keelway writes the accepted carrier, offered rate, equipment, and lane confirmation back to the connected TMS — Tai, McLeod, Aljex, Revenova, Turvo, or Rose Rocket. The raw extraction record persists in the load_inquiries table regardless, giving your operations and finance teams a complete audit log of every carrier who replied and what they quoted on every load. No double entry, no data that only lives in Gmail.
Rate extraction in the context of the full triage workflow
Rate extraction is the first step in Keelway's triage pipeline. Once the rate is structured, the carrier trust score layer applies FMCSA and fraud signals to the same carrier. Both signals feed the composite ranking algorithm that surfaces the top five carriers per load. The full pipeline — extract, score, rank, act — runs in under ten seconds from email receipt. See the end-to-end workflow on the carrier email automation page, or read about how the broker platform connects extraction to TMS write-back, check-calls, and delivery alerting.
Extraction accuracy and the cost of getting it wrong
A misread rate — a $2,300 all-in quote parsed as $2,300 linehaul — is not a minor inconvenience. It propagates to the ranked list, biases the rate percentile calculation, and can produce an acceptance at a rate that destroys margin once the broker adds fuel. Keelway's two-model pipeline with per-brokerage calibration is explicitly designed to keep the error rate low enough that coordinators trust the extracted numbers without cross-checking the raw email on every row. The target is under 2% correction rate by day 60; most brokerages reach it by day 30.
Frequently asked questions
What is carrier rate extraction?+
Which carrier email formats does Keelway support?+
What happens when the LLM is not confident in the extracted rate?+
Does extraction work on PDF attachments?+
What structured fields does Keelway extract?+
How does Keelway handle rate ranges vs. flat quotes?+
Does extracted data write back to the TMS?+
Can I query historical rate extractions for lane pricing?+
What if a carrier sends an email with no rate at all?+
Stop reading carrier emails. Let Keelway extract the data.
See extraction liveRelated
Every extracted carrier is scored 0–100 against FMCSA and fraud signals before hitting the ranked list.
Composite ranking by trust, rate, lane fit, and speed — five rows, one keystroke to accept.
A taxonomy of every carrier email format Keelway encounters in the wild — and why a regex can't handle them.
Parade outbounds for capacity. Keelway triages what already landed in your inbox. Full comparison.