Why High Shipping Volume Doesn't Just Add Invoices, It Buries the Overcharges
Carrier invoices don't arrive in the same shape as your shipments, and matching them by hand inside a 10-day payment window is where margin quietly slips away.
The invoice never looks like the shipment
For manufacturers, distributors, third-party logistics providers and marketplaces, freight is one of the highest-volume transaction types in the business, and one of its bigger costs. One of our clients spends close to $3 million a month on parcel freight alone.
The trouble starts with how the paperwork arrives. When a warehouse ships an order in Dynamics 365 Finance and Supply Chain Management (D365 F&SCM), a freight bill is created for that shipment, usually with an estimate from the carrier or a rate card value from your transportation management system. A few days later the carrier invoice shows up, and it isn't organized around your shipments at all. Depending on your volume, it can carry hundreds or thousands of lines, and each one has to be traced back to the right freight bill.
Those lines rarely line up one-to-one with the estimate. A single shipment can pick up base freight, a fuel surcharge, a residential delivery fee and a label charge, sometimes spread across two, three or four separate invoices. Even with good search and filter tools, finding the freight bill behind each line is slow, detailed work, and it has to be repeated every time a new invoice file lands.
Ten days to check, pay or dispute
Freight reconciliation would be tedious even with unlimited time, and it doesn't get that. Most carriers expect payment within about 10 days. Pay late and the late fees can run higher than the freight charges themselves, and a carrier that isn't getting paid on time may stop showing up at your dock to pick up goods.
That leaves teams choosing between two bad options. They can pay on time without looking closely and absorb whatever overcharges are buried in the lines, or they can check every line and risk missing the payment window. As shipping volume grows, neither one holds up.
The overcharges aren't random, either. The same kinds of variances show up again and again:
- A contracted carrier discount that wasn't applied
- A residential surcharge on a delivery that wasn't residential
- A dimensional weight adjustment after the carrier remeasured the box, so a 12 x 12 x 8 inch package gets billed as 12.5 x 12.5 x 8.25
- A charge billed at a different rate than the one on your rate card
Some of these are small enough to write off. Others are worth disputing, but only if someone spots them in time, because disputes also have to be filed within the carrier's terms.
Let the system match, and let people handle the exceptions
A well-run freight reconciliation process has one manual step: deciding what to do about the charges that don't match. Everything else can run on a schedule.
- Freight estimates come in from carriers, or from rate cards in your TMS.
- Freight bills are captured automatically as shipments and fulfillment orders are generated.
- Freight costs are accrued, so finance can close the month with an accurate view of freight liability.
- Carrier invoices are imported in whatever format each carrier sends. For many parcel carriers that's EDI, for many trucking carriers it's CSV or Excel files, and in Europe it's usually EDIFACT.
- Each invoice line is matched to its freight bill.
- Matched invoices flow into accounts payable, so carriers get paid on time.
- Accruals are reversed once the invoices post, so nothing is left hanging in the books.
The matching in step 5 is where most of the value sits, and it works best as a set of rules applied in order. The first pass looks for a full match: same carrier, same tracking number, a ship date within a set number of days, and total charges within a dollar and percentage tolerance. If that fails, the rules step down to partial matches, such as carrier and tracking number with a matching ship date, tracking number plus a sales order or PO number, and finally tracking number alone. Each carrier can have its own sequence, because each carrier's data has its own quirks.
Tolerances do a lot of quiet work here. A 5-cent difference on a label charge shouldn't land on anyone's desk, while a missing contract discount should. Setting those thresholds decides which variances are worth a person's time.
For the lines that don't match, there are three practical choices:
- Dispute it with the carrier when the charge is wrong.
- Bill it direct to the customer when the charge is legitimate and theirs to pay.
- Expense it when the amount is small enough that chasing it costs more than it recovers.
Over time, the full matching history becomes its own data set. It shows which carriers drift most from their estimates and which charge types cause the most variances, which feeds directly into rate card conversations and how you price freight to your own customers.
A quick self-check
Five questions worth asking about your own freight reconciliation:
- How many carrier invoice lines get paid without being matched to a freight bill?
- Could your team check every line on a large invoice and still pay within 10 days?
- Do you know which carriers drift furthest from their estimates, and on which charges?
- When a contracted discount or rate isn't applied, does anyone catch it before payment?
- Are freight accruals current enough for finance to see what you owe carriers before month end?
If more than one or two of these are hard to answer, that isn't a sign anyone is doing their job badly. It usually means the matching is still happening by hand, and the overcharges are getting paid along with everything else.
How this runs inside D365 F&SCM
We built Freight Invoice Automation (FIA) to run this process inside D365 F&SCM. It imports freight bills from any warehouse or transportation management system, pulls carrier invoices in directly whether they arrive as EDI or flat files, and sends matched invoices straight into accounts payable on a schedule. In practice, FIA matches 93 to 95 percent of freight bills with no one touching them, and some carriers reach 97 to 98 percent.
The client spending close to $3 million a month on parcel freight used this process to dispute the charges worth pursuing. Over the past year they recovered around $400,000 a month, while still paying legitimate invoices on time and keeping their carrier relationships in good standing.
The next step we're working on is the exception handling itself. We're previewing a Copilot agent that breaks variances down by root cause and recommends what to dispute, write off or bill, with the longer-term goal of preparing disputes in the format each carrier requires.
Where to start
If your team is still matching carrier invoices by hand against a 10-day clock, I'd be glad to walk you through how this works in your own D365 environment.
See Freight Invoice Automation in action
Watch the full demo to see how FIA matches carrier invoices to freight bills, flags the variances worth disputing, and keeps carriers paid on time.