BLOG ·

How Truckload Carriers Price a Shipper RFP (2026)

A shipper's bid file lands with 1,800 rows and a two-week deadline. Here is the workflow a carrier's pricing team actually runs, step by step, and the places where it quietly goes wrong.

Every truckload RFP starts the same way: a spreadsheet arrives. It might come as an export from the shipper's bidding platform (Emerge, Jaggaer, and Coupa are common senders), or as a plain Excel attachment on an email. It has hundreds or thousands of lanes, a tab of instructions, and a deadline. This post walks through the workflow a carrier's pricing team runs between that email and a submitted bid. We run this workflow day in, day out, on bids anywhere from a hundred lanes to ten thousand; every step below is a step we do, not a step we imagine.

One thing has changed about the setting. Bids used to cluster in an annual season. Shippers now run mini-bids and rate refreshes all year, so this workflow is no longer a season, it is a background process. That pressure shapes every step.

Step 1: Read the file before pricing anything

Ten minutes here saves days later. Three things to establish:

  • The lane key. Is a lane defined by ZIP, city and state, or 3-digit ZIP region? Mixed keys in one file are common and break naive lookups.
  • Whose miles. Most files carry the shipper's mileage. You will quote on their miles, but you should know where their miles disagree with a truck router's, because rate per mile times wrong miles is a wrong price.
  • Whether the volume column can be trusted. Research out of the MIT Center for Transportation and Logistics found 65 to 80 percent of lanes in a typical RFP can be ghost lanes: rows with little or no real freight behind them, there for network coverage. Price a ghost lane like a real one and you spend scarce analyst hours on freight that will never tender.

Step 2: Cut the file to your network

The fastest pricing decision is the lane you do not price. A disciplined cut keeps lanes that touch your domicile radius, fit your equipment, and match how you actually run (live, drop, team). A clean partial bid with defensible rates beats a full bid where half the rates are padding. Declining lanes is not a failure state; it is most of the strategy.

Step 3: Validate the geography and the miles

Before rates, fix the file: ZIP codes that do not exist, city spellings the shipper's export mangled, origin-destination pairs that map to the wrong state. Then check the shipper's mileage against real truck routing on the lanes that matter. Small mileage disagreements compound: two percent of miles on a high-volume lane is real money over a contract year.

Step 4: Build the linehaul

Three inputs, in order of authority:

  1. Your floor. What the lane costs to run with your trucks, your lanes, your deadhead.
  2. Your record. What you quoted this customer before, what you won, and what you actually ran. The gap between won and ran is where a bid strategy meets the road.
  3. The market, as a check. A benchmark band tells you where your number sits, not what your number is. Benchmarks are quoted all-in, so strip fuel before comparing; we wrote the full fuel math here.

Adjust for what the file tells you: drop versus live, cargo type, seasonal lanes, round-trip pairings where an inbound makes an outbound cheap.

Step 5: Do the fuel math correctly

Every shipper runs its own fuel program, and the linehaul you submit depends on which kind. A per-mile DOE table means you subtract the shipper's fuel from your target all-in. A percent-of-linehaul program means you divide by one plus the percentage. Mixing those up silently misprices every lane in the bid. The fuel post above walks the whole calculation with current diesel prints.

Step 6: Package the bid

Tiers if the shipper asked for them, accessorials quoted separately (drop trailer pools especially: amortize the pool over real monthly volume, and flag the low-volume lanes where the amortization goes ugly), minimum charges, and any lane-level notes the instructions tab demanded.

Step 7: Export and verify

The bid goes back in the shipper's own format, same columns, same tabs. Then the self-checks: does linehaul plus fuel equal the target on every row, did every priced lane keep its lane ID, did the declined lanes stay blank rather than zero. A bid that fails the portal's validator on deadline day was priced for nothing.

And then round two

Submit is rarely the end. On most large bids the shipper comes back: rate feedback on the lanes where you were high, a shortlist round, a second deadline. Round two reprices under pressure, because now there is a signal (you were 8 percent out on these forty lanes) and less time. Teams that kept their pricing logic in a spreadsheet rebuild it from memory; teams that kept the whole first round intact just adjust and resubmit.

Diagram of the truckload bid lifecycle with the pain at each step: files arrive in bursts in different formats, lane selection is combinatorial, pricing balances margin against win rate, approvals scatter across email, and each shipper demands its own exact format.

Where this breaks

None of these steps is hard on one lane. The workflow breaks on volume: three concurrent bids, each 1,500 lanes, each with its own file format, fuel program, and deadline, all landing on the same two analysts. The first thing that goes is validation. The second is the market check. The last is any accounting of which customers got the careful version. That failure mode has a name, triage, and most carriers are running it without ever having decided to.

This workflow is also, step for step, what our product does. EnrouteAI exists to run it at file scale: it ingests the bid however the shipper formatted it, runs the geography and mileage checks automatically, applies the carrier's strategy and record to every lane with a market band beside each rate, carries the right fuel program per bid, and writes the finished answer back into the shipper's own sheet. The judgment stays with the pricing team; the seven steps stop costing a week. Here is what EnrouteAI does in full, and here is the software category explained, if the breaking point above reads familiar.

FAQ

How long does it take to price a truckload RFP?

By hand, a practiced team spends days per bid, and most of it is not pricing judgment: it is file cleanup, validation, and formatting. The judgment fits in hours; the mechanics eat the week.

What is a ghost lane?

A lane in an RFP with little or no real freight behind it, included for network coverage or optionality. MIT CTL research puts ghost lanes at 65 to 80 percent of a typical RFP. They are why the scope cut in step 2 matters more than any single rate.

Should a carrier bid every lane in an RFP?

No. Bid the lanes your network can run at rates you can defend, decline the rest cleanly. Shippers score coverage, but a padded rate on a lane you cannot run damages the relationship more than a blank row.

Should I price on the shipper's miles or my own?

Quote on theirs, because that is what the rate multiplies against. Know yours, because the difference is margin you either priced or ate.