Ingest carrier invoices via EDI 210 (Motor Freight Invoice) or carrier API invoice download endpoints; parse each charge line into shipment identifier, charge type, and amount
Retrieve the original rate quote for each shipment from your TMS or rate shopping engine using the shipment ID or PRO number as the join key
Compare invoiced charges line by line against the quoted rate components: base rate, fuel surcharge, and accessorials; flag any line where the invoiced amount exceeds the quoted amount by more than a configurable tolerance
Categorize discrepancies by type: weight discrepancy (carrier re-weighed), re-classification (freight class upgraded), unexpected accessorial (liftgate not declared), and pricing error (rate applied incorrectly)
Generate dispute claims for pricing errors and accessorial charges that were not contracted; file disputes with the carrier within the invoice dispute window (typically 60-180 days)
Track dispute resolution outcomes and use the data to improve shipment data quality at booking time (accurate weights, declared accessorials) to reduce future discrepancies
Known gotchas
Carrier invoice dispute windows vary by carrier contract and can be as short as 30 days; an automated audit that runs daily or weekly is essential to avoid missing dispute deadlines
Dimensional weight re-measurement by carriers is a frequent source of invoice adjustments; invest in accurate in-warehouse dimension capture (DIM scanners) to preempt carrier DIM billing disputes
Some accessorial charges (delivery area surcharge, remote area fee) are based on carrier-maintained ZIP code lists that are updated periodically; your rate engine must use the same version of the ZIP list the carrier uses to avoid false positives
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp