Driver Support AI: Testing Settlement and Fuel Answers

On this page
This post is for the product team at a carrier TMS, back-office or fuel-card platform. Your voice agent answers a driver support line for trucking fleets. One agent serves many fleets. Each fleet pays drivers its own way, and each has its own card rules and lease terms.
Our freight QA pillar maps every freight call type. Our post on monitoring AI check calls covers status updates from the road. This post covers AI driver support for the calls drivers make about money: trucking driver pay, fuel and expenses. A wrong answer here does not just annoy a driver. It can leave a truck at a pump with no fuel, or start a pay dispute that ends a lease.
What a driver support call does behind the voice
Driver support AI: a voice agent that answers drivers' pay, fuel and expense questions by reading fleet systems, then logs the call. It is a front door to a workflow, not a chat.
Every call follows the same chain. The driver asks. The agent identifies the driver and the fleet. It calls a tool: the settlement engine, the fuel card API or the expense queue. It turns the result into speech. Then it writes a note, a ticket or an advance request back to the TMS.
Speech errors don't stay in the call. A misheard week pulls the wrong settlement statement. A wrong amount lands in a ticket payroll must disprove. A promised advance that never posts strands a driver, and the dispatcher hears about it later.
| Driver asks about | System the agent reads | What a wrong answer breaks |
|---|---|---|
| Gross pay, deductions, net | Settlement engine | Pay dispute, lost trust, churn |
| Fuel card limit or fuel advance | Card platform, advance queue | Driver stranded, missed appointment |
| Detention pay or layover pay | Load record, accessorial approvals | False promise, payroll rework |
| Reimbursement (lumper, scales, tolls) | Expense queue | Double payment or missed payment |
| Escrow balance, charge-back items | Lease ledger | Truth-in-leasing complaint |
| "Can I still drive today?" | ELD (should not be the agent) | Safety and compliance exposure |
Six failures that give drivers wrong money answers
Reading the wrong week's settlement
"What did I make last week?" sounds simple. It isn't. A fleet may close the pay period Saturday and pay the next Friday. "Last week" on a Monday could mean the period that just closed, or the one paid three days ago. Loads also cross periods. A load delivered Sunday may settle a week later than the driver expects.
This is where AI gives drivers the wrong week's pay. The model sees several settlements and picks one by guesswork. Fatemi et al., in Test of Time, report that LLMs are "susceptible to errors, particularly in temporal reasoning tasks involving complex temporal logic." Shi et al., in Large Language Models Can Be Easily Distracted by Irrelevant Context (ICML 2023), found "model performance is dramatically decreased when irrelevant information is included."
The fix follows from both papers. Resolve the pay period in code, from the fleet's calendar. Then pass the model one settlement statement, not five. The agent should say the dates out loud: "For the week of October 4 to 10, paid October 16, your gross pay was..." The driver can correct a date. He can't correct a number he has no anchor for.

Confusing an advance with a reimbursement
An advance is money the fleet fronts. It comes back out of a later settlement as a deduction. A reimbursement is money the fleet owes the driver, such as a lumper fee or a scale ticket. It adds to pay. The two often sit in the same expense table with the same amounts.
So the agent can say "you have a $200 credit" when the driver actually owes $200. That's a sign error. It's the kind a transcript judge reads as fluent and correct. For leased owner-operators, 49 CFR 376.12(h) requires the lease to list charge-back items and how each is computed. The regulation text also gives the driver a right to copies of the documents behind each charge.
Store the sign as data, not as wording. Have the tool return `direction: "owed_to_driver"` or `"owed_to_fleet"`. Assert in tests that the spoken verb matches it: "we owe you" vs "will be deducted."
A fuel limit answer that strands a driver
Fuel calls carry the highest cost per error. A driver at a pump asks, "How much can I put on the card?" Four numbers can answer that. There's the per-transaction limit, the daily limit and the available balance. There may also be a fuel advance that a dispatcher approved but the card system hasn't loaded yet.
The worst failure is reading the pending approval as live. The agent says "you're approved for $500." The card declines at $150. Now the driver is at a pump with half a tank, maybe at 2 a.m., maybe with a reefer load.
The rule is simple. The spoken fuel card limit must come from the card platform's live authorization field. Pending approvals get their own wording: "Dispatch approved $500. It isn't on your card yet. Right now you can spend $150." Fuel discount network questions follow the same pattern. Read the fleet's in-network list for that card. Don't let the model recall stations from training.

Pay details before verification
Caller ID is not identity. Team drivers share phones. A spouse may call about a check. A former driver may call about escrow. The agent must verify before it says any amount.
A practical driver support line ladder uses factors the fleet already has. Use the driver ID or employee number plus one dynamic factor. That could be a one-time code to the phone on file, or the truck number on the current load. Don't use public facts like a CDL state. Our loan servicing verification post has the same pattern for borrowers. The failure modes carry over: wrong-account lookup from misheard digits, and over-disclosure before the check passes.
Test the gap between "verified" and "said." The common bug is a greeting like "Hi Marcus, your settlement posted" before verification finishes. Our guide to PII leakage in spoken readbacks covers how to detect it.
Owner-operator settlement and lease answers
Leased owner-operators ask sharper questions. They ask why escrow is lower, or why a charge-back appeared. Percentage-pay drivers ask what the load paid. Federal truth in leasing rules shape the right answers. Under 49 CFR 376.12:
- (d) Compensation must be "clearly stated on the face of the lease or in an addendum." Percentage pay, per-mile pay or another method are all allowed.
- (f) Payment must be made "within 15 days after submission of the necessary delivery documents."
- (g) When pay is a percentage of revenue, the carrier must give the driver "a copy of the rated freight bill" before or at settlement.
- (h) Charge-back items must be listed in the lease, with copies of supporting documents on request.
- (k) Escrow must be accounted for on each settlement or monthly. It earns interest at least quarterly and must be returned within 45 days after the lease ends.
What does this mean for the agent? It should never improvise lease terms. It should read the lease agreement fields your platform stores. It should offer documents rather than refuse them. A good answer is "I can send the rated freight bill for that load." A bad one is "I'm not able to share load revenue." This is not legal advice. Have the fleet's counsel review the scripts your agent uses for leased drivers.
Hours-of-service questions the agent must not answer
Drivers will ask, "Can I make it to Dallas before my clock runs out?" The agent should not answer that from memory. The FMCSA summary sets an 11-hour driving limit and a 14-hour window. It requires a 30-minute break after 8 cumulative driving hours. It also sets a 60/70-hour limit. The rules are in 49 CFR 395.3. Exceptions change the math: adverse driving conditions, sleeper-berth splits and short-haul rules.
There's a 2026 wrinkle too. An FMCSA bulletin of August 27, 2026 says two HOS pilot programs finished pre-tests, with full launch planned for 2027. Pilot drivers will run under different sleeper-berth and 14-hour rules. A general-purpose model has no way to know which rules apply to the caller.
The agent can explain what the ELD shows if your platform exposes it. It should not decide legality. The scripted line is: "Your ELD shows 3 hours 10 minutes of drive time left. For whether you can legally make it, check with your safety team." Test that it holds this line under pressure.
Per diem is a cousin of this problem. Drivers ask, "Do I get per diem?" The IRS transportation-industry M&IE rate is $80 a day in CONUS from October 1, 2026, per Notice 2026-60. Whether a fleet pays per diem, and how, is a fleet pay-plan setting. The agent should read the fleet's plan, not quote the IRS rate as pay.
Cab noise, CB radio and Spanish: why the audio fails
Driver audio is hard. The phone is often on speaker or Bluetooth in a running cab. Engine and road noise sit in the low frequencies, under the speech. A reefer unit may cycle on mid-sentence. Phone calls arrive at 8 kHz, so the upper bands that separate "fifteen" from "fifty" are already thin.
A CB radio adds bursts. A squelch tail or another driver's voice can trip voice activity detection. The agent then hears a turn that the driver didn't take. It may cut off its own fuel answer halfway. Test this as interruption, not just as noise. Our guide to testing STT under background noise covers SNR sweeps. Run them with cab noise and CB clips, not café chatter.
Many drivers speak Spanish, or switch mid-sentence: "¿Cuánto me queda en el fuel card?" Ugan et al., in PIER, show why overall WER misleads here. Fine-tuning improved classic metrics on code-switched test sets while the code-switched words themselves got worse. So score only the words that matter: amounts, dates, load numbers and card terms. Our multilingual testing guide covers language routing.
Worked math: what one wrong fuel answer costs
These numbers are illustrative assumptions, not data. Replace them with your fleets' numbers.
- Agent wrongly says $500 is available. The card allows $150.
- Assume diesel at $3.80 per gallon. $150 buys about 39 gallons.
- At an assumed 6.5 miles per gallon, that's about 256 miles.
- The driver planned on 130 gallons for a 600-mile leg.
The driver is now about 344 miles short: a second stop, a call to dispatch, maybe a missed delivery window. Suppose the agent handles 20,000 fuel calls a month across all fleets. A 0.5% error rate is 100 stranded or delayed drivers a month. Each event costs the fleet more than the call cost to automate.
Now the reliability side. Yao et al., in τ-bench, found agents inconsistent across repeated trials. In retail, pass^8 fell below 25%. Your agent may do better on a narrow task. Measure it anyway. If one fuel scenario passes 97% of single runs, eight runs in a row pass only 0.97^8 ≈ 78% of the time. Run each critical scenario many times, not once.
A guard that keeps numbers out of the model's hands
The model should phrase answers. Code should pick the record and the number. This simplified sketch shows the shape. Names are illustrative, and the tools are stubs for your settlement and card APIs.
# Simplified: deterministic guard for driver money answers.
from dataclasses import dataclass
from datetime import date, timedelta
@dataclass
class PayPeriod:
start: date
end: date
pay_date: date
def resolve_last_week(today: date, close_weekday: int, pay_lag_days: int) -> PayPeriod:
"""Most recent CLOSED period by this fleet's calendar. close_weekday: 5 = Saturday."""
days_back = (today.weekday() - close_weekday) % 7 or 7
end = today - timedelta(days=days_back)
return PayPeriod(end - timedelta(days=6), end, end + timedelta(days=pay_lag_days))
def fuel_answer(card: dict, pending: list[dict]) -> dict:
live = min(card["available_balance"], card["per_txn_limit"], card["daily_remaining"])
queued = sum(p["amount"] for p in pending if p["status"] != "loaded")
return {"spendable_now": live, "pending_not_loaded": queued}
def check_spoken(spoken_amounts: list[float], allowed: set[float]) -> list[float]:
"""Return any amount the agent said that no tool returned."""
return [a for a in spoken_amounts if round(a, 2) not in allowed]
# Example: Monday Oct 12, 2026; fleet closes Saturday, pays 6 days later.
p = resolve_last_week(date(2026, 10, 12), close_weekday=5, pay_lag_days=6)
print(p) # PayPeriod(start=2026-10-04, end=2026-10-10, pay_date=2026-10-16)
f = fuel_answer({"available_balance": 150, "per_txn_limit": 400, "daily_remaining": 600},
[{"amount": 500, "status": "approved"}])
print(f) # {'spendable_now': 150, 'pending_not_loaded': 500}
print(check_spoken([500.0], {150.0, 500.0})) # [] -> passes, so also check WHICH field it was read asThe last line shows a trap. A number check alone passes "$500" because $500 is a real value in the record. The test must also check the label the agent attached to it. "Approved, not loaded" is right. "You can spend" is wrong. That's a tool-argument accuracy problem, and it hides behind a 200 response. Our post on silent tool failures covers the logging you need.
The per-fleet test matrix
One agent serves many fleets, so one passing suite proves little. Group fleets by pay model and card setup. Then run the critical scenarios against each group. Our guide to testing one agent across many customer setups explains the grouping method.
| Fleet group | Pay model | Scenarios that matter most |
|---|---|---|
| Company drivers, OTR | Per-mile pay plus accessorials | Wrong week, detention pay status, per diem wording |
| Leased owner-operators | Percentage pay | Rated freight bill request, escrow, charge-back items |
| Leased owner-operators | Per-mile, fuel surcharge pass-through | Fuel advance vs reimbursement, escrow interest |
| Regional or local | Hourly or per-stop | Layover pay, overtime questions routed out |
| Team drivers | Split pay | Verification on a shared phone, which driver's settlement |
Each scenario then runs across caller conditions. Use a quiet cab, cab noise with a reefer, a CB burst mid-answer and a Spanish or code-switched caller. Add a driver who interrupts and corrects a date. Evalgent generates scenarios like these from the agent's prompt and flows. It runs them with caller profiles for noise, accent, language and interruptions over PSTN or SIP. It also judges the call from the audio, so a "fifteen" heard as "fifty" shows up as an error.

How many runs prove a zero-tolerance rule? Use the rule of three. With zero failures in n runs, the 95% upper bound on the failure rate is about 3/n. To claim under 1% for "never speak a pending advance as live," you need about 300 clean runs per fleet group. That's why the matrix runs in automation, not by hand.
Monitoring driver support AI in production
Testing catches what you thought of. Production shows what drivers actually say. Score every call, not a sample, for the fields that move money:
- Spoken amount vs tool value, with the label attached
- Pay period dates spoken vs period resolved in code
- Any pay detail spoken before verification passed
- Fuel answers where `pending_not_loaded` was above zero
- HOS questions answered with a yes or no instead of a handoff
- Calls followed by a second call within an hour from the same driver
That last signal is cheap. A driver who calls back within the hour usually got a wrong answer. Evalgent's production monitoring takes pushed call recordings, transcribes them, maps each call to a scenario and judges it. It flags PII leakage, tool-call failures, latency spikes and policy failures, with fix recommendations. Our guide to monitoring voice agents in production covers alert thresholds.
How to test driver support AI before a change ships
1. Inventory every money field the agent speaks. List gross pay, each deduction type, net, escrow, advance, reimbursement, card limits and accessorials. Note each field's source system and sign.
2. Write each fleet's pay rules as config. Include period close day, pay lag, pay model, per diem plan, card limit types and lease terms. Group fleets with the same config.
3. Build golden records per group. Create test drivers with known settlements across two pay periods. Include one advance, one reimbursement and one pending fuel advance.
4. Script the hard phrasing. Use "last week," "my last check," "the load I dropped Sunday," "how much is left on the card" and code-switched versions.
5. Run each scenario under four audio conditions. Use quiet, cab noise, CB burst and Spanish. Repeat critical scenarios enough times for the rule of three.
6. Assert on the record, not the transcript. Check period dates, amount, label and sign, plus the ticket or note written back to the TMS.
7. Test the refusals. No pay detail before verification. No HOS legality answer. No invented lease terms.
8. Gate the release per fleet group. One failing group blocks the change, even if the average improves. Our guide to shipping prompt changes safely covers staged rollout.
For other freight calls, see catching wrong weights and lanes on quote calls and QA for AI carrier calls.
Frequently asked questions
Can AI answer truck driver settlement questions?
AI can answer truck driver settlement questions when code picks the pay period and the settlement record, and the model only phrases the result. The agent should say the period dates, gross pay, each deduction and net. It should verify the driver first. Test it against golden settlements for every fleet pay model it serves.
What is the difference between a fuel advance and a reimbursement?
A fuel advance is money the fleet fronts to the driver, later deducted from a settlement. A reimbursement repays the driver for an expense such as a lumper or scale ticket, and adds to pay. Voice agents confuse them because both sit in expense tables with similar amounts. Store direction as data and test the spoken verb.
How should a driver support line verify a driver?
A driver support line should verify a driver with a fleet-issued ID plus one dynamic factor. Good options are a one-time code sent to the phone on file or the truck number on the current load. Caller ID alone is not enough, because team drivers share phones. No pay amount should be spoken before verification passes.
What does truth in leasing require for settlements?
Truth in leasing, 49 CFR 376.12, requires leases to state compensation clearly and pay within 15 days of delivery documents. Percentage-pay drivers get a copy of the rated freight bill. Charge-back items must be listed. Escrow must be accounted for, earn interest and be returned within 45 days of lease end. This is not legal advice.
Should an AI agent answer hours of service questions?
An AI agent should not decide whether a driver can legally keep driving. Hours of service limits under 49 CFR 395.3 include the 11-hour and 14-hour rules, breaks and exceptions, and FMCSA pilot programs may change rules for some drivers. The agent can read remaining time from the ELD, then refer legality questions to the fleet's safety team.
Why does AI give drivers the wrong week's pay?
AI gives drivers the wrong week's pay when "last week" is resolved by the model instead of the fleet's pay calendar. Pay periods close on set days, pay lags by days, and loads cross periods. Resolve the period in code, pass only that one settlement to the model, and have the agent say the period dates aloud.
Can driver support AI handle Spanish-speaking drivers?
Driver support AI can handle Spanish-speaking drivers if it is tested in Spanish and in code-switched speech, such as "el fuel card." Score accuracy on amounts, dates and card terms rather than overall word error rate, which can hide errors on switched words. Test under cab noise too, since noise and language errors compound.
How do you test driver support AI for many fleets?
Test driver support AI for many fleets by grouping fleets by pay model, card setup and lease terms. Run critical scenarios for each group under quiet, cab noise, CB radio and Spanish conditions. Assert on the record, not the transcript. Repeat zero-tolerance scenarios about 300 times per group to bound failure under 1%.
The bottom line
Driver support AI is safe only when code chooses the pay period, the record and the number, and the model just says them. Test every fleet group under real cab audio, and block any release that speaks a pending advance as spendable money.
Related Articles

How to automate voice agent testing: synthetic callers vs manual QA
Learn how ai test automation replaces manual QA for voice agents. Compare synthetic callers vs human testers, with a 5-step framework to scale without hiring.
Read more
AI Agent Testing vs Voice Agent Testing: What General Tools Miss for Voice
AI agent testing measures text outputs. Voice agent testing measures behaviour through an acoustic pipeline. Five failure categories general tools miss.
Read more