Carrier fraud
We Built AI Risk Analysis for Carrier Email. Our First Version Flagged a Normal Booking Message.
By The Draylo Team · August 16, 2026
The short answer
We built an AI check that reads a carrier's email and flags language patterns associated with freight fraud. The first working version flagged a completely normal booking email — twice. The fix was not a better model; it was teaching the model that matching nothing is the normal outcome, requiring a verbatim quote for every flag, and carving out legitimate factoring.
The failure: a clean email came back flagged
A risk check that fires on ordinary email is worse than no check at all. Brokers who see flags on normal freight business stop reading the flags — and then the box is wallpaper on the one message that actually matters. That is the failure mode we hit, and it is the reason this post exists.
The test email was as ordinary as freight gets: a rate, a lane, equipment type, a pickup time, and a signature block. No payment language. No urgency. No contact changes. Nothing a fraud analyst would look at twice.
The model came back with two flags. It read "rate confirmation looks good on our end" as urgency pressure combined with an unusually good rate. It read a plain signature block — name, title, company, phone — as an announcement of changed contact details. Both readings were fabricated from text that said neither thing.
This was a control test, not a positive test. We were checking that a clean message stayed clean. That distinction matters more than it sounds: it is easy to build a check that catches suspicious language, and hard to build one that stays quiet the other 99% of the time. If we had only tested it on fraudulent emails, it would have looked like it worked.
Why the model wanted to say something
The cause was the prompt, not the model. We had given it six pattern labels — "urgency pressure", "changed contact details", and so on — and asked which were clearly present. That framing has two defects, and both push toward false positives.
First, a topic label is not a test. "Changed contact details" describes a subject, and a signature block is about contact details, so a model matching on topic will match. What the pattern actually means is narrower: the message must announce that contact information has changed. Nothing in the label said so.
Second, nothing told the model that matching nothing was an acceptable answer. Language models are built to produce output. Asked which of six categories apply to a piece of text, a model will look for reasons one applies, because returning an empty list feels like failing the task. On ordinary freight email — which is most freight email — the correct answer is an empty list almost every time.
The three fixes, and which one mattered most
Rewriting the check took three changes. Only one of them was about catching more; the other two were about restraint.
- ›**Evidence tests instead of topic labels.** Each pattern now states what must actually be asserted in the message, and what specifically does not count. Mentioning a rate is not urgency. A signature block is not a contact change. The test names the exclusion, because the exclusion is where the false positives came from.
- ›**A stated expectation of silence.** The instructions now say plainly that most freight email matches nothing, and that reporting a pattern that is not plainly there is worse than missing one. This single change did more than any wording tweak to the pattern list.
- ›**A verbatim quote for every flag, verified in code.** The model must copy the exact text that proves each pattern, and we check that the quote actually appears in the message before showing anything. A confident model cannot invent its own evidence.
The factoring carve-out: the fix nobody outside freight would think of
The highest-value pattern to surface is a payment redirect — a message asking that money go somewhere new. It is also the pattern most likely to be legitimate, and that is a freight-specific problem a general-purpose risk model gets wrong.
Roughly 80% of carrier payments route through a factoring company. A Notice of Assignment directing payment to a factor is normal business correspondence, sent constantly, by carriers doing nothing wrong. A check that flags payment redirects without knowing this would fire on a large share of legitimate invoices — and would train brokers to ignore it before it ever saw a real attack.
So the evidence test carries an explicit carve-out. A Notice of Assignment, an established factor named on the rate confirmation, or standard "remit to our factor" language is not the pattern. What is the pattern: changing previously agreed payment routing mid-relationship, especially with urgency, or instructions that bypass a factor already on file.
That last case is worth stating plainly, because it cuts the other way. A message saying "we have left our factor, pay us directly now" is exactly what an impersonator sends to divert payment away from a legitimate factor. Our check flags it — and it should, even when the release is genuine. A broker who receives one should confirm it out-of-band before changing where money goes.
What the rebuilt check does and does not do
We tested the rebuilt version against 46 labelled freight emails, weighted deliberately toward the negatives — 30 of the 46 were messages that should produce nothing at all.
On those 30 — ordinary booking emails, rate negotiations, detention disputes, breakdown notices, cargo claims, onboarding packets, and four legitimate factoring notices — it returned zero flags. That is the number we care most about, because it is the one that decides whether a broker keeps reading.
On the fraudulent messages it caught 7 of 7 obvious cases and 7 of 8 written specifically to evade the pattern list — polite, well-formatted messages with no urgency words and the payment redirect buried mid-message. The one it missed is instructive: an email that never pressures anyone to skip verification, but politely offers to skip it as a favour to the broker's own busy compliance queue. Deference reads as cooperative, so the test did not fire.
We are publishing that miss because it is the honest shape of this problem. This is a language check, not a verdict. It reads the words in one message; it does not know the carrier, and it cannot tell you whether the person emailing you is who they claim to be. Patterns are not proof.
| What we tested | Cases | Result |
|---|---|---|
| Ordinary carrier email that should stay silent | 30 | 0 false positives |
| Overt fraud language | 7 | 7 flagged |
| Fraud language written to evade the pattern list | 8 | 7 flagged |
What this means if you are evaluating any AI vetting tool
The lesson generalizes past our own product. When a vendor tells you their AI detects freight fraud, the first thing to note is the verb. Reading an email cannot establish that fraud occurred — the same sentences appear in legitimate business every day. What a language check can honestly offer is a risk signal: a reason to slow down and verify.
The question that then separates a real tool from a demo is not "what does it catch?" It is "what does it stay quiet on, and how do you know?"
Ask what the false-positive rate is on ordinary email, and what it was measured against. Ask whether every flag carries evidence you can read yourself, or just a score. Ask what happens on a legitimate factoring notice. A vendor who has not tested the boring case has not finished building the thing.
And treat any language signal as one input among several. Message language tells you how an email is written. It does not tell you whether the authority is active, whether insurance is on file, or whether the sender's address matches the carrier's federal record. Those are separate checks against separate sources, and the ones that catch an impostor using a real carrier's identity.
Frequently asked questions
Can AI detect freight fraud in carrier emails?
Not detect — surface. A language model can identify patterns associated with fraud, such as payment-change requests, pressure to skip verification, and announced contact changes. It cannot determine that fraud occurred, because the same sentences appear in legitimate business. Treat the output as a reason to verify out-of-band, not as a finding.
Why did the first version flag a normal booking email?
The prompt described six patterns as topic labels rather than evidence tests, and never stated that matching nothing was an acceptable answer. Language models are built to produce output, so asked which categories apply, it found reasons one applied. It read a mention of a rate confirmation as urgency and a signature block as a contact change.
Does a request to change payment details always mean fraud?
No. Roughly 80% of carrier payments route through a factoring company, so a Notice of Assignment redirecting payment to a factor is normal business. What warrants scrutiny is a change to previously agreed payment routing mid-relationship, particularly with urgency attached, or instructions that bypass a factor already on file.
What should a broker do when a message-language check flags an email?
Verify out-of-band before acting, especially before changing where payment goes. Call the phone number on the carrier's federal record — not a number from the email. A language pattern is a reason to check, not evidence of fraud, and the confirmation has to come from a channel the sender does not control.
Is message-language checking the same as verifying a carrier?
No. Reading an email tells you how the message is written. Verifying a carrier means checking the federal record: whether operating authority is active, whether liability insurance is on file, and whether the sender's address matches the carrier's registered contact. Those are separate checks against separate sources.
Get the next guide in your inbox
Practical guides like this one — carrier fraud, broker liability, vetting that holds up. One email when a new guide publishes; no list-blasting, unsubscribe with one reply.
Keep reading
- ›why impersonation beats invention — the unwatched contact records fraud verifies itself against
- ›what the downstream scam looks like — anatomy of a double-brokering attempt
- ›the verification workflow this check does not replace — how to check if a carrier is legit
- ›the fraud landscape these patterns come from — cargo theft and carrier fraud data