AI for Trucking, Fleet & Freight
Capable · M6 · lesson 6 of 22 · queued
Preview — browse every lesson free. Enroll to mark lessons complete, open partner links and save your progress. Login & enroll →
AI-Assisted Load Matching
📖
now learning

AI-Assisted Load Matching

15 min

It is 5:47 on a Monday morning and Maria, a dispatcher at a 38-truck regional carrier running produce out of the Central Valley, has seven loads to assign before her drivers' 6:00 AM start. Three drivers are already stretched thin on hours of service (HOS), two have home-time promises due by Wednesday, and one has a reefer unit that was just flagged by the shop for a compressor issue. She has the load board open, the TMS (transportation management system) up, and her phone in hand, working the puzzle from memory. She will match these loads to these drivers in the next 12 minutes, and if she gets it wrong, a load goes late, a driver runs out of hours on I-5, or she violates a promise a driver has been planning his family life around. This is the puzzle that AI-assisted load matching is built to solve, and the reason solving it well is the biggest single lever a carrier has in a market where there are 80,000 too few drivers.

Why Load Matching Is the Hardest Puzzle in Freight

The load-matching problem looks simple from a distance. You have trucks, you have loads, you put trucks on loads. But anyone who has spent a week in a dispatch office knows the reality: every match is a simultaneous decision across five or six hard constraints, all of which interact, and any one of which can make a match that looks obvious on paper into a load that never gets delivered.

The constraints are: HOS availability (how many driving hours and on-duty hours does this driver have left in their current cycle?), home-time commitments (when did this driver promise to be home, and can the proposed load be completed before that date?), equipment compatibility (does the load require a reefer, a flatbed, a 48-foot trailer, or a hazmat-rated unit?), appointment windows (the shipper has a pickup at 7:00 AM and a delivery appointment at 3:00 PM on Wednesday that cannot be missed), driver preference and lane familiarity (a driver who knows the Bay Area docks is worth twice as much on that lane as one who has never backed into those bays), and deadhead cost (the distance from the driver's current position to the load's pickup point, which is fuel and hours burned producing zero revenue).

A dispatcher solving this puzzle manually is running all six constraints in parallel, in their head, for every possible driver-load combination, under time pressure. For a fleet of 10 trucks and 15 available loads, that is 150 possible combinations, and every constraint reduces the viable set by some fraction. By the time the dispatcher narrows it to a handful of genuinely feasible matches, they are working from intuition, experience, and a memory of which drivers have which situations rather than a systematic analysis of the real constraint landscape. They will get it mostly right most of the time, because skilled dispatchers are genuinely good at this. They will not get it optimally, because no human can hold 150 combinations and six interacting constraints in working memory simultaneously.

The failure modes are specific and expensive. A match that violates HOS lands the driver on the side of the road mid-route when the ELD (electronic logging device) locks them out, costing a missed delivery, a breakdown service call, and a shipper who starts looking for a different carrier. A match that breaks a home-time promise costs a driver who is already irreplaceable in an 80,000-driver shortage. A match that puts the wrong equipment on a load costs a rejection at the shipper dock and the scramble to find a replacement at the last minute. A match that routes a driver 200 miles to a pickup for a 300-mile load, when another driver was 40 miles away, costs fuel and empty miles that show up directly in margin.

This is why AI-assisted load matching is the centerpiece of the dispatch goldmine. The scarcest resource in freight right now is not trucks or loads. It is legally drivable driver-hours in a market 80,000 drivers short with 237,600 openings appearing every year that the industry cannot fill. Wasting those hours on poorly matched loads, unnecessary deadhead, or HOS violations is burning the most valuable input in the business. An AI that can surface the matches a dispatcher would miss, and surface them in seconds rather than minutes, does not replace the dispatcher. It makes the dispatcher dramatically more productive with the drivers they already have.

What AI-Assisted Load Matching Actually Does

Before building a workflow, it is worth being precise about what "AI-assisted load matching" means, because the term covers a range of capability that varies enormously across tools and vendors.

At the most basic level, AI-assisted load matching is constraint filtering: given a set of loads and a set of drivers, the system eliminates combinations that violate hard rules (HOS limits, equipment mismatches, appointment windows that cannot be met given current driver position) and surfaces the remaining candidates ranked by some combination of cost, efficiency, and fit. This is optimization, not generation. The system is solving a constrained combinatorial problem, not writing prose. It is the same class of AI as the engine that routes a delivery fleet or prices an airline seat, and it is extremely well suited to the freight matching problem because the constraints are well-defined and measurable.

More sophisticated implementations add: real-time HOS data pulled from ELD integration (so the system knows exactly how many hours each driver has available, not a dispatcher's estimate), deadhead cost modeling (the system calculates the cost of the empty miles to the pickup point and incorporates that into the ranking), backhaul opportunity lookahead (the system considers not just the proposed load but the load's delivery location and what freight is available there for the return, so it does not optimize the outbound leg and strand the driver in an empty lane), and driver preference scoring (the system knows that Driver 4 has a high satisfaction rating for the I-80 corridor and a low rating for night-time urban delivery, and weights matches accordingly).

What AI-assisted load matching does not do is make the dispatch decision. The system generates options and ranks them. The dispatcher evaluates those options against factors the system may not have: the driver relationship, the knowledge that a particular shipper's dock crew runs late, the hunch that a driver who just ran 2,000 miles needs a lighter week even if the HOS clock technically allows more. The dispatcher commits the match. The AI proposes; the human decides. This distinction is not a limitation of current AI. It is the correct division of labor for a decision that carries legal, financial, and human consequences.

The Data the System Needs

An AI load-matching tool is only as good as the data it receives. The minimum viable inputs are: current driver position (GPS or last-known location from the TMS), current HOS status (hours available today, hours available in the current 70-hour/8-day cycle, restart status), equipment type and any restrictions (reefer, flatbed, dry van, oversize, hazmat certification), home terminal and home-time commitments, and available loads with pickup location, delivery location, pickup window, delivery appointment, and equipment requirement.

Optional but high-value inputs include: driver preference data (lanes, shipper types, load types the driver has rated highly or low), historical deadhead cost by lane for the fleet, load board data for return freight at each delivery location, and maintenance flags that restrict certain equipment from certain distances or temperatures.

The dispatcher does not need to feed all of this manually if the TMS is properly configured. Modern TMS platforms can maintain driver profiles, pull ELD data automatically, and ingest load tenders into a format the AI tool can read. The integration setup is a one-time configuration task; once it is done, the data flows into the matching tool in near-real-time. For a dispatcher using a generative AI tool rather than a purpose-built optimization engine, the data still needs to be supplied, but it can be pasted into the prompt rather than integrated through an API.

Building a Prompt That Generates Real Matches

For dispatchers who do not have access to a purpose-built AI load optimization system, generative AI can do useful match analysis if the prompt is constructed to force specific, constraint-grounded output rather than general advice. The key difference between a prompt that produces useful dispatch intelligence and one that produces confident-sounding noise is specificity: the model needs the actual data, not a description of the situation.

Consider the difference between these two prompts. The first: "I have several drivers available and a few loads to assign. Can you help me figure out the best matches?" This prompt will produce generic load-matching advice, possibly with invented lane rates and optimistic assumptions about HOS. It is useless for a real dispatch decision. The second: "I have three available loads and four drivers. Here are the drivers with their current HOS remaining, home terminals, equipment, and locations: [data]. Here are the loads with pickup location, delivery location, pickup window, delivery appointment, and equipment required: [data]. Rank all viable driver-load combinations that do not violate HOS, identify which combinations require equipment not on the driver's unit, and flag any combination where the driver cannot make the delivery appointment given their current position. Show your reasoning for each ranking." This prompt can produce genuinely useful analysis because it has the data it needs to apply the real constraints.

The worked example below illustrates what this looks like in practice with Maria's Monday morning scenario.

Worked Example: Maria's Monday Morning

Maria has four drivers available for two urgent loads. Here are the inputs:

Drivers:

  • Driver A (Fresno, dry van): 8.5 hours available today, 42 hours left in 70-hour cycle, home time due Wednesday night
  • Driver B (Modesto, reefer): 11 hours available today, 55 hours left in cycle, home time due Friday
  • Driver C (Stockton, dry van): 6.5 hours available today, 61 hours left in cycle, home time due Sunday
  • Driver D (Bakersfield, reefer): 10 hours available today, 38 hours left in cycle, home time due Thursday

Loads:

  • Load 1: Fresno to Los Angeles (dry van, 220 miles, pickup 7:00 AM, delivery Wednesday 8:00 AM, $1,350 rate)
  • Load 2: Turlock to Seattle (reefer, 840 miles, pickup 9:00 AM, delivery Thursday 6:00 AM, $3,200 rate)

AI analysis output (prompt run at 5:50 AM):

For Load 1 (Fresno to LA, dry van): Driver A is the natural match on position (already in Fresno, zero deadhead) and equipment. The question is HOS: 220 miles at highway speeds is roughly 3.5 to 4 hours driving, plus pre-trip inspection and loading time. Driver A has 8.5 hours available today, which is sufficient for pickup and several hours of driving. The delivery is Wednesday morning, giving two days for a 220-mile trip. Driver A's home-time deadline of Wednesday night is compatible if the delivery runs on schedule. Recommended: Driver A on Load 1.

For Load 2 (Turlock to Seattle, reefer): Driver B (Modesto, reefer) is the primary candidate. Modesto to Turlock pickup is 20 miles of deadhead. 840 miles to Seattle requires two driving days split across available hours: roughly 500 miles Day 1 (11 hours available) and 340 miles Day 2. The Thursday 6:00 AM delivery deadline is tight. Driver B has 55 hours in cycle, which covers 840 driving miles plus stops. Home time is Friday, compatible. Driver D (Bakersfield, reefer) is the alternative but starts 110 miles from the pickup (versus Driver B's 20 miles), and with only 38 hours in cycle, completing 840 loaded miles plus 110 deadhead miles is marginal. Driver D is a backup only. Recommended: Driver B on Load 2.

Flags: Driver C has only 6.5 hours available today, making either load a stretch for same-day pickup. Driver D's cycle hours are too limited for Load 2 without a 34-hour restart.

Maria reviews this output in 90 seconds. She knows something the AI does not: Driver B mentioned last week that he prefers not to run the I-5 to Seattle because of a family situation in Stockton that has him wanting shorter turns this month. She calls Driver B before committing. Driver B confirms he can run the Seattle load and the timing works. She commits: Driver A on Load 1, Driver B on Load 2. Total time from opening the prompt to committed dispatch: four minutes, versus the usual 15 to 20 minutes of manual analysis.

The AI gave her the framework. She provided the context the AI could not have. She made the decision. That is the correct workflow.

The Constraints the AI Must Respect

A load match that violates HOS is not a match. It is a liability. The Federal Motor Carrier Safety Administration (FMCSA) hours-of-service rules set firm limits: no more than 11 hours of driving in a 14-hour on-duty window, a mandatory 30-minute break after 8 hours of driving, and a maximum of 70 hours on duty in any 8-day period for carriers operating 7 days a week. The ELD records all of it automatically and locks the driver out when the limits are reached. A dispatcher who commits a load that requires a driver to exceed those limits is not just creating an operational problem. They are exposing the carrier to a violation, a fine, a potential out-of-service order, and a CSA (Compliance, Safety, Accountability) score impact that can affect the carrier's safety rating and, in extreme cases, their operating authority.

This means the AI tool's HOS analysis is not advisory. It is a hard filter. Any match the AI surfaces that would require a driver to exceed their available hours is not a viable option to be weighed against other options. It is a disqualified option. The dispatcher who receives an AI ranking that shows a match with a note like "marginal on HOS, may require driver to push limits" should treat that match as off the list, not as a stretch goal. "Marginal on HOS" is another way of saying "requires a violation to execute."

Equipment constraints are equally hard. A dry-van trailer is legally and practically not the right unit for a load requiring temperature control. A driver without hazmat endorsement cannot legally move hazmat freight, regardless of what the optimization score says. These are not preferences to be overridden in a tight situation. They are regulatory and operational facts that disqualify a match.

Home-time commitments are softer constraints but not optional ones. In a market 80,000 drivers short, every driver who leaves because the carrier does not honor home-time promises is a driver the market may not replace for months. Home-time promises are retention tools in an industry that cannot afford to lose the people it has. Treating them as negotiable on a regular basis is a slow leak that ends with a fleet that cannot attract or keep drivers regardless of what the pay rate is.

How to Handle a Situation with No Viable Match

Sometimes the AI analysis will show that no available driver can legally make a particular load. This is not a failure of the AI. It is the system doing exactly what it is supposed to do: surfacing the real constraint before the dispatcher commits to a plan they cannot execute. The correct response is not to override the HOS analysis and dispatch anyway. It is to take one of the legitimate alternatives: find another carrier or broker the load, check whether a rested driver who just completed a restart is available, push back on the shipper for a later pickup window that a driver's reset can accommodate, or accept that this load cannot be filled from the current fleet and pass it on.

A dispatcher who is used to manually working through the puzzle under time pressure may feel the instinct to find a way to make it work, to look for the corner of the HOS clock that provides just enough room. Resist that instinct. An AI that shows no viable match is giving the dispatcher a gift: the information they need to make a safe, legal, defensible decision before a driver is 300 miles into a load they cannot finish legally.

Grounding AI Suggestions in Real Data

One of the specific failure modes of generative AI in freight contexts is the tendency to fill in data gaps with plausible-sounding estimates. A model that does not have the actual current freight rate for a lane will often produce a rate that is within the plausible range for that lane type, not because the model has checked the load board but because it has been trained on enough freight data to know what "sounds right." This is a problem when the dispatcher is using the AI's rate estimate to make a coverage decision.

The discipline that prevents this failure is explicit data supply and explicit sourcing requirements. When building a load-matching prompt, supply the actual load tender data: the rate that is on the tender, the shipper's appointment windows, the load board posting if the load is being sourced there. Do not ask the AI to estimate what the load should pay. Give it what the load actually pays, and let it evaluate whether that rate covers the cost of the match given the deadhead and the driver's time.

For deadhead cost, supply the carrier's actual cost-per-mile for deadhead miles (fuel, driver pay, fixed cost per mile) rather than asking the AI to estimate it. A typical carrier's all-in deadhead cost is in the range of $1.20 to $1.80 per mile depending on fuel prices, but that range varies enough that the difference between using the actual number and an estimated number can shift the financial analysis of a match. If the actual deadhead cost is $1.45 per mile and the AI uses $1.20, a 100-mile deadhead looks $25 cheaper than it actually is. That is not a model failure. It is a data-supply failure that the dispatcher can prevent.

The same principle applies to HOS data. Supply the driver's actual available hours from the ELD report, not an estimate. A dispatcher who tells the AI "Driver A has about 9 hours" when the ELD shows 8 hours 20 minutes has created a small discrepancy that could turn into a tight situation if the load runs long. Use the actual number from the actual source.

Measuring the Match Quality Over Time

The reason to track load-matching outcomes over time is not administrative. It is economic. A dispatcher who knows that their AI-assisted matching workflow has reduced average deadhead from 18 percent of total miles to 11 percent has a number they can take to the owner. A dispatcher who knows that pre-dispatch HOS flags have eliminated three mid-route driver lockouts in the last quarter has eliminated roughly $4,500 in towing, delay, and re-dispatch costs, at an average of $1,500 per incident. These are the numbers that justify the tooling and the discipline.

The metrics worth tracking are simple: deadhead percentage (empty miles divided by total miles, weekly), match quality (rate of loads that reach delivery on time, with the assigned driver, without HOS violations), and driver utilization (productive driving hours as a share of legally available hours). None of these require a sophisticated analytics platform. A dispatcher who tracks them in a spreadsheet and reviews them monthly will have enough signal to see whether the AI-assisted workflow is improving outcomes and where the remaining gaps are.

For a carrier running 20 trucks, a reduction in deadhead from 20 percent to 14 percent on an average of 2,500 miles per truck per week represents roughly 1,200 fewer empty miles per week across the fleet. At $1.45 per deadhead mile, that is $1,740 per week in recovered margin, roughly $90,000 per year, from better matching alone. The AI tool does not need to be perfect to produce that result. It needs to be better than a dispatcher working under time pressure from memory, which it routinely is.

Key Takeaways

  • Load matching is a constrained combinatorial problem with six interacting hard constraints: HOS availability, home-time commitments, equipment compatibility, appointment windows, driver preference, and deadhead cost. No human dispatcher can hold all combinations in working memory simultaneously. AI-assisted matching surfaces the combinations that satisfy all hard constraints and ranks them by efficiency, in seconds.
  • AI load matching produces options, not decisions. The dispatcher evaluates the AI's ranked output against context the system cannot have: driver relationships, shipper-dock nuances, load-cycle awareness, and the judgment calls that keep drivers engaged in a shortage market. The AI proposes; the dispatcher commits.
  • HOS limits are hard filters, not advisory guidelines. Any match that requires a driver to exceed their legally available hours is disqualified. A generative AI tool that flags a match as "marginal on HOS" is telling the dispatcher the match is off the table, not that it is worth stretching for.
  • Supply actual data, not estimates. The AI's output is only as reliable as the inputs: use the actual HOS hours from the ELD report, the actual rate from the load tender, and the carrier's actual deadhead cost per mile. Estimated inputs produce confident-sounding output that does not reflect the real constraint landscape.
  • For the highest-quality prompt output, structure the input as a constraint table: driver ID, position, HOS available, equipment, home-time deadline; and load ID, pickup location, delivery location, pickup window, delivery appointment, equipment required, rate. Ask the AI to filter first (eliminate all HOS and equipment violations), then rank (by total cost including deadhead), and flag ambiguities explicitly.
  • In an industry 80,000 drivers short, deadhead and poor matching are the waste the business cannot afford. A carrier running 20 trucks that reduces deadhead from 20 percent to 14 percent recovers approximately $90,000 per year in margin, from better matching alone, without adding a single truck or driver.
  • Track match quality over time: deadhead percentage, on-time delivery rate, and pre-dispatch HOS flag rate. These are the numbers that show the dispatching workflow is improving, that justify the tooling investment, and that tell the owner the program is working.
  • Equipment flags and hazmat endorsement restrictions are as hard as HOS limits. A match that puts the wrong equipment type or a non-endorsed driver on a restricted load is a rejected tender or a FMCSA violation, not a preference to be overridden under time pressure.