Somebody has left the exception queue open for you.
A shipment request has come out of the ERP with the usual instructions. What’s moving. Where it leaves from. Where it goes. When it has to arrive.
No carrier on it. No price on it. That isn’t an omission. That’s where the TMS begins.
The screen has already turned your shipment into a load. It read the weight and dimensions, chose equipment, decided whether this is truckload or LTL, and dropped the lane into its rate tables.
Then it does what the word rating suggests while being nothing like a market. It reads contracted rate bases, accessorials, fuel surcharge, and the routing guide. Primary carrier. Backup. Another backup. It isn’t asking the country who wants your load. It’s ranking carriers somebody arranged months ago.
The first name sits at the top because the guide says so, and that is the entire extent of the software’s authority. A routing guide is not a truck. It isn’t a promise. It’s a sequence that becomes visible the moment a shipment needs one.
You open the tender and send the ANSI X12 EDI 204.
The name is Motor Carrier Load Tender, which is considerably less dramatic than the moment feels. It leaves your screen and becomes a document belonging to one particular carrier.
The TMS has committed to offering your load one carrier at a time, in routing-guide order. It doesn’t scatter the same promise everywhere and wait to see who catches it.
The queue changes before you’ve finished deciding whether the first carrier will even take it.
A 997 comes back. There’s a small acknowledgment mark beside your 204 now. The message arrived. The translator found the shape it expected. The document parsed.
Renner at the next desk watches you look at it.
“That’s not a yes.”
“It came back clean.”
“It came back.” She turns to her own screen. “Read it again.”
You read it again. It’s a functional acknowledgment, and it confirms structural receipt. It does not confirm that the carrier has a truck, wants your freight, accepts your price, or intends to honour a single detail inside the 204. You’ve received a receipt for the envelope. Your load is still standing there waiting for the carrier’s answer.
“So what comes back when it is a yes?”
“A 990. Or a no. Same transaction.”
The EDI 990 is Response to a Load Tender, and that’s the business message. Acceptance lives there. Rejection lives there. The 997 and the 990 hold different jobs because a document can arrive perfectly cleanly and still be refused. The distinction is old enough to have gone invisible to people who’ve been looking at these screens too long.
The TMS is now waiting on a clock the EDI standard never set.
The response expectation belongs to the buyer and to the trading relationship, layered on top of ASC X12 the same way the routing guide is layered on top of the rate table. Somebody decided how long this carrier gets before your offer moves on. The 204 can’t decide it. The 997 can’t decide it. A clean message has never once made a commercial deadline.
You check the carrier connection. It says compliant, and that word has done a great deal of work in rooms like this one.
ASC X12 says which segments and elements a transaction set may carry. It doesn’t require every partner to use all of them. It doesn’t make an optional reference number optional for this carrier. And it doesn’t stop a private code list waiting behind a field that looks entirely ordinary to you.
There’s a PDF in the onboarding folder with the carrier’s name on it. The implementation guide is thin enough to ignore and specific enough to stop your load.
It narrows the 204 down to the version this carrier actually accepts. This reference here. That code there. This field populated the way their translator expects it. The published standard is necessary. The guide is where the real contract lives.
“Map’s old,” Renner says.
She doesn’t say whose map, and it doesn’t matter yet.
A 204 built to ASC X12 004010 and a translator waiting for 005010 aren’t guaranteed to meet cleanly. The wrong version doesn’t always break loudly, either. It can drop a segment. It can misread one. It can produce a message well formed enough to earn a 997 and wrong enough that the carrier is looking at something other than the load you sent.
That’s what makes an exception queue quiet.
A network failure hands everybody something to point at. A structurally sound mistake has no smoke at all. It arrives, it parses, and then it stands there with its hands in its pockets while a reference number goes missing somewhere neither side can see it.
You put the carrier’s guide beside the map, and the reference segment isn’t where the old translation puts it.
The TMS invented no rate and chose no wrong carrier. It sent a 204 that belongs to the published standard rather than to the narrower agreement waiting on the other end. Compliant with the standard is not compliant with this partner’s guide, and you’ll meet that sentence again.
The map is corrected. The tender goes out a second time, same load, reference where the guide requires it, carried through a different arrangement of fields.
Another 997 comes back. This time it means exactly what it meant before — the document arrived and parsed. You let it sit there as a receipt. You don’t turn it into a truck.
Then the 990 arrives.
The screen makes very little of it. There’s no fanfare anywhere in this software for a carrier’s decision. The tender simply changes state.
The carrier has accepted your offer. The routing guide has stopped being a list of possible names and become a commitment from one of them, and you can feel the difference, because the queue has stopped asking you to solve that part of the day.
None of that was a correction to the 997. The 997 was true when it arrived. The carrier’s translator did receive a document in the expected structure. The 990 answered a question the acknowledgment was never built to answer: whether this carrier accepts this particular load. Systems make trouble when somebody promotes a receipt into a decision, and the only reason anybody does that is because the receipt arrived first.
Had the 990 rejected your 204, the TMS would have tendered the load to the next carrier in the guide. Had the response window lapsed, the same thing. When the guide runs out, the offer reaches the spot market. That’s the cascade. Your first choice was never a prediction of consent. It was the first door in a line of doors.
The accepted load leaves your part of the screen and enters the carrier’s work, and it doesn’t disappear.
Later an EDI 214 starts arriving with event codes. AF for actual pickup. AG for estimated delivery. D1 for delivered. CA for cancelled. K1 for arrived at customs.
They can come four to six times a day. They can come weekly. The trading relationship decides the rhythm and nobody consults the standard about it. A continuous GPS or telematics feed may draw you a smoother line across a map. The 214 is the contractual status record only where the agreement says it is.
So you have three messages doing three jobs. A 997 says the carrier’s system received a shaped document. A 990 says the carrier accepts or rejects your load. A 214 says what’s happening after acceptance. Not one of them can do another’s job by arriving promptly.
After delivery the carrier sends an EDI 210 — Motor Carrier Freight Details and Invoice. Your load has crossed the road and become a bill. The TMS, or the audit function bolted to it, matches that 210 against the original tender and the proof of delivery before anybody authorises payment. A 210 is not proof your rate is right. It’s a request to be paid, measured against records that existed before it did.
Your original 204 is still in the history. So are both 997s, the 990, the 214 events and the 210. They don’t agree by looking alike.
They agree because each one was asked a narrower question than the one before it, and somebody built a separate message for every narrowing rather than trusting anyone to infer it.
The queue has moved on without you. Another shipment request has reached the top carrier in another routing guide, and a 204 is sitting under a carrier name waiting to go.
When the acknowledgment comes back you’ll know what it did. You’ll know what it didn’t do.
You wait for the 990.
Check the record
Sources
- X12 Transaction SetsAccessed 2026-08-18
- 997 | X12Accessed 2026-08-18
- GS1 US Guideline for Full Truck Load Motor Carrier Load Tender and Load Tender Response (204/990)Accessed 2026-08-18
- Electronic Data Exchange | When Planning for EDI Implementation, Weigh the Cost and Benefit Tradeoffs | X12Accessed 2026-08-18
- Release Schedule | X12Accessed 2026-08-18
- UP Supply's Supplier 214 v4010 EDI SpecificationAccessed 2026-08-18
- 214 | X12Accessed 2026-08-18
- 210 | X12Accessed 2026-08-18
