Freight Invoice Audit Without a Goods Receipt: How Rate-Card Validation Replaces Three-Way Matching

Chirashree Dan Marketing Team
| | 33 min read
Freight shipping documents and laptop showing rate card validation of carrier invoice charge lines during a freight invoice audit

TL;DR: Freight and logistics service invoices cannot be three-way matched because no goods receipt note is ever created, so most clear on a two-way check that confirms cartons, weight, destination, and service level but never asks why the rate is $10 a unit instead of $8. Industry research consistently places error rates on freight invoices in the high single digits to low double digits of total lines, and unvalidated rate drift of even 2 to 4 percent of annual freight spend flows silently into the general ledger. Contracted rate-card validation supplies the missing third leg: AI extracts the invoice, then deterministic rules recompute every charge line against the contracted lane, service level, weight break, and fuel index.


Every accounts payable team knows the three-way match. Purchase order, invoice, goods receipt note. If the quantity received matches the quantity billed and the price matches the PO, the invoice clears. It is the backbone of controls over physical goods, and Peakflo has written at length about how it works and where it breaks in our complete guide to three-way matching in accounts payable.

Freight invoices break the model at its foundation. There is no goods receipt note, because nothing was received. A service was performed. A container moved from one port to another. A pallet was delivered on a Tuesday. Nobody in the warehouse scanned anything into the ERP, and no receipt document was ever generated. The third leg of the match does not exist and never will.

So what happens instead? In most logistics operations, the freight invoice clears as long as a PO number is present and the header data looks plausible. The system checks cartons, weight, destination country, service level. All of that is real validation and all of it is worth doing. But there is one question nobody asks: why is this $10 a unit and not $8, or $12? That question is the entire freight invoice audit, and in most finance functions it is answered by nobody.

Why Can’t Freight Invoices Be Three-Way Matched?

The structural answer is that three-way matching is a quantity control, and freight is a price problem.

When you buy 500 units of a component, the receipt confirms that 500 arrived. The goods receipt note is a genuinely independent third source of truth, generated by a different team, at a different time, from a different system.

A freight service has no equivalent confirmation of value. The proof of delivery confirms the event occurred, but says nothing about whether the carrier applied the right tariff version, the right weight break, or the right fuel index period. Confirming the event happened is not the same as confirming the price was correct — the distinction that separates service invoice validation from the goods case covered in our analysis of three-way matching exceptions and how AI resolves them.

Service invoices therefore sit in the same control gap as the unstructured spend covered in our guide to non-PO invoice validation. Something arrived, something is owed, and the amount is accepted on trust.

What Actually Gets Checked on a Freight Invoice Today?

Most logistics finance teams run checks that are genuinely useful but sit entirely on one side of the ledger. They confirm the shipment attributes. They do not confirm the commercial terms.

The checks that typically pass without question include a valid PO or shipment reference, carton count matching the booking, gross weight within a plausible range of the declared weight, destination country matching the shipment record, and a service level consistent with what was booked. Every one confirms that the invoice relates to a real shipment. None confirms that the price is the price you agreed to pay.

The gap widens the moment a carrier invoice carries multiple charge types, which almost all do. A single ocean or air invoice can carry a dozen distinct lines, each priced from a different mechanism.

Charge typeWhat it should validate againstCommon failure mode
Base freight / linehaulContracted rate card for lane, service level, equipment type, weight breakExpired tariff version applied; wrong weight break tier
Fuel surchargeContract formula referencing a published index and billing periodStale index period; surcharge applied to wrong base amount
Terminal handling / port chargesPublished terminal tariff for the origin or destination facilityCharge levied at both ends when contract says origin only
Documentation and customs feesFixed schedule in the carrier contract annexPer-document fee billed per line instead of per shipment
Security and screening leviesRegulatory tariff scheduleRate not updated after a published tariff reduction
Accessorials (waiting, redelivery, storage)Operational event evidence and agreed accessorial scheduleCharged without supporting event record or beyond free time

Accessorial charges deserve particular attention because they are event-driven rather than rate-driven, and they are covered in depth in our companion piece on validating accessorial charges, demurrage, and detention.

What Is Rate-Card Validation?

Rate-card validation is the substitute third leg. If no goods receipt exists to prove the quantity, the contracted rate card proves the price.

The rate card is the commercial agreement expressed as structured data. For a given origin-destination lane, at a given service level, for a given equipment or container type, within a given weight or volume break, on a given service date, the agreed rate is a specific number. That number is the authority the invoice must be reconciled against — exactly the role the goods receipt note plays for physical goods.

Making that work in production requires the rate card to be treated as a first-class, versioned dataset rather than a PDF in a shared drive. Four attributes matter:

  • Effective dating. An invoice for a shipment on 3 March must validate against the rate card in force on 3 March, not the one signed in June. Without effective dating, retrospective audit becomes meaningless.
  • Granularity. A card that only stores a lane average cannot catch a weight-break error. The rate table needs the same dimensionality as the carrier’s own pricing logic.
  • Completeness. Charges with no rate-card entry are not automatically valid. They are unvalidated, and they need to be flagged as such rather than defaulting to approval.
  • Ownership. Someone must own each card and be accountable when it expires. Expired cards are the single largest source of silent rate drift.

Once the rate card is structured this way, freight invoice reconciliation stops being a judgement call and becomes an arithmetic comparison — the same shift toward rule-based control described in our guide to multi-condition invoice validation rules for complex business logic.

How Does AI Validate a Freight Invoice Line by Line?

The most important design principle in freight audit automation is the division of labour: AI reads, rules decide.

Carrier invoice layouts are wildly inconsistent. Ocean carriers, air forwarders, trucking companies, courier networks, and regional subcontractors each produce documents with different structures, charge nomenclature, and levels of line detail, arriving as clean PDFs, scans, or spreadsheet attachments. This is precisely the problem that modern AI invoice capture is built to solve, and where machine learning genuinely outperforms templates.

But once the data is structured, the pricing decision must become deterministic. You do not want a language model estimating whether $10 a unit is reasonable. You want a rule that looks up the contracted rate and does the arithmetic, so every approval and rejection is reproducible, explainable to an auditor, and defensible in a carrier dispute.

In practice, the validation pass for a single charge line follows a fixed sequence.

FOR each charge line on the invoice:
  1. CLASSIFY charge_type from the line description (base freight | fuel | terminal | docs | accessorial)

  2. RESOLVE rate_card_version WHERE carrier = invoice.carrier AND service_date BETWEEN effective_from AND effective_to

  3. LOOK UP contracted_rate KEY (lane, service_level, equipment_type, weight_break)

  4. RECOMPUTE chargeable_basis = MAX(actual_weight, volumetric_weight) — if applicable then select the correct weight_break tier

  5. EXPECT expected_amount = contracted_rate x chargeable_basis + indexed_surcharge(index_source, billing_period)

  6. COMPARE variance = billed_amount - expected_amount IF |variance| <= tolerance(charge_type) THEN pass ELSE raise exception WITH reason_code and evidence

  7. IF no rate_card entry exists for this combination THEN flag UNVALIDATED (never auto-approve)

Step seven is the one most teams get wrong. When a charge has no matching rate-card entry, the safe default is not approval. Treating unmatched lines as unvalidated rather than acceptable is what converts a freight audit from a sampling exercise into a control. The same principle underpins broader overpayment prevention, as covered in our guide on how to prevent invoice overpayments.

Where Does the Rate Card Actually Live?

This is where most freight invoice audit projects stall. The validation logic is not hard. Finding an authoritative, machine-readable rate card is.

In a typical mid-market or enterprise logistics operation, rates are scattered across at least three of the following sources, often with no single owner and no reconciliation between them.

Rate-card sourceTypical stateExtraction approachEffort to operationalise
Transport management system (TMS)Already structured; usually most current for contracted lanesScheduled API pull or database view into the rate repositoryLow
ERP contract or info records (SAP, Oracle, NetSuite)Structured but often header-level only; missing weight breaksScheduled extract of contract and vendor master tablesLow to medium
Signed contract PDFs and tariff annexesAuthoritative but unstructured; multiple amendments in forceDocument AI extraction into a structured rate table, reviewed once by the contract ownerMedium
Finance or procurement spreadsheetsMost granular in practice; version control is informalDirect ingest with a mandatory owner and effective-date column addedMedium
Carrier portal or emailed rate updatesCurrent but transient; frequently not filed anywhereAutomated capture into the rate repository at receiptMedium to high
Verbal or email spot-rate agreementsNo system record at allFormalise into the rate repository as a spot-rate entry before invoice arrivalHigh (process change)

The practical sequence is to start with whichever source is already structured, validate the highest-spend carriers first, and progressively pull the unstructured sources into the same repository. Logistics operators consistently find that fewer than ten carriers account for the overwhelming majority of freight spend, so the first digitisation pass is far smaller than the full carrier list suggests. Regional operators can also look at how this fits broader procurement digitisation in our overview of logistics procurement automation in Singapore.

How Much Rate Drift Reaches the General Ledger?

Rate drift is dangerous precisely because it is undramatic.

A single invoice billed at $10 a unit against a contracted $9.40 does not trip any threshold. The variance is 6 percent on that line, the invoice total sits inside budget, and the approver has no basis on which to object. Multiply that across thousands of shipments a quarter and the aggregate is material — but material in a form that never appears as a variance, because the budget was built from the same drifted actuals.

Industry research into logistics cost management consistently indicates that freight invoices carry error rates in the high single digits to low double digits as a share of lines, with the majority favouring the carrier. Analyses published by firms such as McKinsey and Deloitte repeatedly identify freight as one of the least controlled categories in indirect procurement, largely because of this absence of a receipt-based control. Trade cost research from UNCTAD and the World Bank reinforces how large freight is as a share of landed cost, which is what makes even low percentage leakage consequential.

There are four mechanisms that produce most of the drift:

  • Expired tariff versions. A rate card lapses, the carrier continues billing under its own updated tariff, and nobody notices until renewal.
  • Weight break misapplication. The chargeable weight is computed correctly but the tier boundary is applied at the carrier’s discretion rather than the contract’s.
  • Stale index periods. Fuel or currency adjustment factors are applied using an index value from a prior period that happens to be higher.
  • Scope creep on surcharges. Charges contractually applicable at origin appear at both ends, or per-shipment fees are billed per line.

None of these is fraud. All of them are the predictable result of a control gap.

How Does Manual Freight Audit Compare to Automated Rate-Card Validation?

Many logistics finance teams already do some form of freight audit. It is usually a spot check by an experienced analyst on the largest invoices, which catches the obvious errors and misses the structural ones.

DimensionManual freight auditAutomated rate-card validation
CoverageSample-based; typically largest invoices onlyEvery invoice, every charge line
Basis of judgementAnalyst memory of what a lane usually costsContracted rate card resolved by service date
Weight break checkingRarely recomputedRecomputed on every line
Fuel index verificationAlmost never checked against the billing periodVerified against contract formula and period
Unmatched chargesApproved by default if the total looks normalFlagged as unvalidated; never auto-approved
Speed per invoice10 to 30 minutes for a multi-line international invoiceSeconds, with only exceptions surfacing to a human
Audit evidenceAnalyst judgement, rarely documentedReason code, expected amount, and rate-card version stored per line
Carrier dispute positionAnecdotalLine-level evidence with contract reference
Scalability with volumeLinear headcount growthFlat; headcount applies to exceptions only

The strategic difference is not speed. It is that automated validation changes what the finance team is even capable of asking. A manual process can ask whether this invoice looks wrong. A rate-card engine can ask whether this carrier has systematically applied the wrong weight break on this lane for six months — which is the question that recovers money and fixes the contract. This capability sits alongside the wider control set described in our accounts payable automation platform and the complete guide to accounts payable automation.

How Do You Integrate Freight Invoice Audit With On-Premise SAP ECC or S/4HANA?

For most established logistics operators, SAP is the system of record and will remain so. Any freight audit capability that requires ripping out or migrating the ERP is dead on arrival, and the good news is that none of this requires it.

The correct architecture is a validation layer that sits in front of SAP. Invoices are captured, extracted, and validated outside the ERP, and only clean, coded, fully evidenced documents are posted into it. SAP continues to own vendor master data, the general ledger, payment runs, and statutory reporting. This pattern is described in detail in our guide to adding an AI layer over SAP accounts payable automation.

Three integration paths cover virtually every on-premise SAP estate:

  • File-based SFTP exchange. The simplest starting point. SAP writes scheduled extracts of vendor master, contract or info records, cost centres, and GL accounts to a secure directory; the validation layer reads them and writes back a posting file of validated invoices. This requires no new SAP interfaces and is usually approvable by a basis team within a single change window.
  • IDoc messaging. For higher volumes and near-real-time posting, validated invoices are posted as INVOIC IDocs with standard SAP error handling and reprocessing, and master data flows outbound on the equivalent IDoc types. This is the path most logistics operators settle on once the process is proven.
  • RFC and BAPI calls. Where synchronous validation is needed — confirming a cost centre or contract reference exists before the invoice is released — remote-enabled function modules and BAPIs provide direct, transactional access without file staging.

Three constraints matter when scoping this. First, no S/4HANA migration dependency exists; ECC 6.0 estates support all three paths today, and organisations mid-migration can run the same validation layer across both landscapes. Second, SAP remains the system of record, so the validation layer must never become a second source of truth for vendor or GL data. Third, rate cards typically do not live in SAP at all, making the integration asymmetric: master data flows out of SAP, rate data flows in from the TMS or contract repository, and only the validated result flows back. Peakflo’s broader integrations follow the same principle across other ERPs.

What Does a Freight Invoice Audit Implementation Look Like?

Implementation is best sequenced by carrier spend concentration rather than by attempting full coverage at once. Most teams reach production on their highest-volume carriers within eight to twelve weeks.

PhaseDurationActivitiesOutput
Phase 1: Rate card discoveryWeeks 1-3Inventory carriers, locate governing rate cards, assign owners, digitise top carriers into a versioned rate tableStructured rate repository covering the majority of freight spend
Phase 2: Extraction and rulesWeeks 3-6Configure AI extraction across carrier layouts, define charge-type classification, build recomputation rules and tolerance bandsWorking validation engine on representative invoice sample
Phase 3: Shadow modeWeeks 6-8Replay 60 to 90 days of already-paid invoices, measure catch rate and false positives, tune tolerancesQuantified leakage baseline and tuned rule set
Phase 4: Production and ERP postingWeeks 8-10Enable straight-through posting to SAP or other ERP, activate exception routing to procurement, operations, and APLive freight invoice audit with exception-only human review
Phase 5: Coverage extensionWeeks 10-12+Onboard remaining carriers and subcontractors, formalise spot-rate capture, add recovery workflow for historic claimsFull carrier coverage and structural drift prevention

Phase 3 is the phase teams are most tempted to skip and the one that determines success. Replaying already-paid invoices produces two things nothing else can: a defensible number for how much leakage exists, and a false-positive rate that tells you whether your tolerance bands are usable in production. Finance leaders report that this shadow-mode number is what unlocks budget approval, because it converts an abstract control argument into a measured recovery figure.

Singapore-based logistics operators should also note that qualifying digital solutions may be supported under national digitalisation schemes; see our overview of the Productivity Solutions Grant and the digitalisation programmes published by IMDA and Enterprise Singapore.

Which Freight Exceptions Still Need a Human?

Automation should reduce human review to the decisions that genuinely require judgement, not eliminate them. Four categories should always route to a person:

  • Spot rates with no contracted equivalent. Peak-season and emergency shipments are legitimately unpriced against the card. They need a named approver, not an auto-pass.
  • New lanes and new service levels. The first invoice on a lane establishes a precedent. Someone should confirm it before it becomes the baseline.
  • Accessorials without operational evidence. Waiting time or storage charges that lack a supporting event record are a genuine dispute, and disputes need an owner in operations.
  • Systematic variances. When the same reason code recurs across many invoices from one carrier, the answer is a contract conversation, not a per-invoice adjustment.

Routing these to the right owner rather than back to accounts payable is what keeps exception queues from becoming a new bottleneck. Agentic routing of this kind is covered across Peakflo AI and our AI agentic spend management capability, and applies equally to the reverse-direction problem covered in our post on 3PL billing accuracy and revenue leakage. Where carriers submit invoices outside EDI channels — which in most networks is the majority of the subcontractor base — the capture side of the problem is addressed in our guide to straight-through processing of non-EDI supplier invoices. Sector bodies such as IATA publish settlement and billing standards that illustrate how much structure exists in air freight billing once it is captured properly.

Our Verdict: Rate-Card Validation Is the Only Real Control on Service Spend

For physical goods, the goods receipt note is a genuinely independent confirmation of value, and three-way matching remains the correct control. For freight, that confirmation does not exist and cannot be manufactured. Proof of delivery confirms the event, not the price. Any freight control framework built on the assumption that confirming the shipment is equivalent to confirming the charge is validating the wrong thing.

Rate-card validation is not a nice-to-have refinement of freight audit. It is the substitute third leg, and without it a freight invoice is effectively approved on trust no matter how many header attributes are checked.

Our assessment for logistics finance teams is straightforward. If freight spend is below roughly $2 million a year with a small, stable carrier base, disciplined manual audit on the top carriers is defensible. Above that, or with more than about ten active carriers, or with a subcontractor network that changes seasonally, manual audit cannot achieve meaningful coverage and the leakage is structural rather than occasional. Automated rate-card validation typically pays for itself on recovery alone in the first year at those volumes, with market pricing for freight audit capability generally landing in the range of a low per-invoice fee or a modest platform subscription rather than a percentage of freight spend.

The decisive argument is not cost recovery, though. It is that a validated rate card gives finance and procurement a shared, evidenced view of what freight should cost — which is the precondition for negotiating the next contract from a position of fact rather than anecdote.

Conclusion

The absence of a goods receipt note on a freight invoice is not a data quality problem to be worked around. It is a structural gap in the control model, and the only durable answer is to replace the missing leg with the contracted rate card.

That means treating rate cards as versioned, effective-dated, machine-readable data rather than contract PDFs. It means using AI where AI is strong — reading inconsistent carrier documents at scale — and keeping the pricing decision deterministic so every approval is reproducible and every rejection is defensible in a carrier dispute. And it means sitting the validation layer in front of the ERP so that SAP, or whichever system holds the ledger, keeps its role as the system of record without a migration project attached.

Peakflo’s AP automation combines AI extraction with deterministic, contract-aware validation rules built for service invoices that will never have a goods receipt. Take a product tour to see how charge-line validation works, or book a demo with Peakflo to walk through your own carrier invoices and rate cards.

Stop asking whether the shipment arrived. Start asking why it cost $10 and not $8.


Frequently Asked Questions

What is a freight invoice audit?

A freight invoice audit is the process of verifying that every charge line on a carrier or forwarder invoice matches the commercially agreed terms before payment. Unlike a goods invoice check, it does not compare quantities received. It compares the billed rate against the contracted rate card for that lane, service level, weight break, and applicable surcharges, then flags any line that falls outside tolerance.

Why can’t freight invoices be three-way matched?

Three-way matching requires a purchase order, an invoice, and a goods receipt note that confirms physical delivery of a quantity. Freight is a service, so no goods receipt note is ever created in the ERP. The third leg of the match is structurally absent, which means most freight invoices clear on a two-way check: does the invoice reference a valid PO, and is the amount within budget.

What is rate-card validation?

Rate-card validation is the substitute third leg for service invoices. Instead of matching against a goods receipt, each charge line is reconciled against the contracted rate card: the agreed price for a specific origin-destination lane, service level, equipment or container type, weight or volume break, and any indexed surcharges. The rate card becomes the authoritative record of what the charge should have been.

What is freight rate drift?

Rate drift is the gradual divergence between the rate a carrier actually bills and the rate that was contracted. It happens through expired tariff versions being applied, incorrect weight break tiers, stale fuel index values, unagreed minimum charges, and lane definitions that quietly widen. Because each individual variance is small, drift rarely triggers a budget alert and flows directly into the general ledger unchallenged.

What charge types appear on a freight invoice?

A typical freight invoice carries a base linehaul or freight charge, a fuel surcharge, terminal or handling charges, documentation and customs fees, security and screening levies, and accessorial charges such as waiting time, redelivery, or storage. Each of these validates against a different source: the rate card, a published index, a tariff schedule, or an operational event log.

How does AI validate a freight invoice line by line?

AI handles extraction, not the pricing decision. A document model reads the invoice regardless of layout and outputs a structured charge table with lane, service level, weight, container type, and each charge line. Deterministic rules then take over: the engine looks up the contracted rate for that combination, recomputes the expected amount, and compares it to the billed amount. Keeping the arithmetic deterministic makes every decision reproducible and auditable.

Can freight invoice audit work with an on-premise SAP ECC system?

Yes. An AI validation layer sits in front of SAP rather than inside it. Rate cards and vendor master data can be exported from SAP ECC on a schedule via file-based SFTP extracts, and validated invoices can be posted back as IDoc messages or through RFC and BAPI calls. SAP remains the system of record and no S/4HANA migration is required to begin auditing freight invoices.

What is a weight break and how is it validated?

A weight break is a threshold in a rate card where the per-unit rate changes, for example a lower rate per kilogram above 500 kg. Validation requires two checks: that the chargeable weight was computed correctly from actual versus volumetric weight, and that the correct tier was applied. Carriers sometimes bill a lower tier’s threshold with a higher tier’s rate, which is invisible unless the tier logic is recomputed.

How is a fuel surcharge validated on a freight invoice?

A fuel surcharge is validated against the contract formula, not against a fixed number. The engine checks that the correct index source was used, that the index value corresponds to the billing period rather than an earlier or later one, that the surcharge is applied to the correct base amount, and that any contractual cap or floor is respected. Stale index periods are one of the most common sources of quiet overbilling.

How long does a freight invoice audit implementation take?

Most logistics finance teams reach production on their highest-volume carriers within eight to twelve weeks. The sequence is typically two to three weeks to digitise rate cards, two to three weeks to configure extraction and validation rules, two weeks running in shadow mode against already-paid invoices, and two to four weeks to extend coverage to the remaining carrier base.

What is the difference between freight audit software and freight bill audit and payment services?

Freight audit software validates invoices inside your own accounts payable process and posts results to your ERP, leaving you in control of payment timing and banking relationships. Freight bill audit and payment providers take custody of the payment run as well, typically charging a per-invoice or percentage-of-spend fee. Software keeps the audit trail and the cash under your control, which matters where treasury policy or ERP-based controls apply.

Do you need a transport management system to do rate-card validation?

No. A transport management system makes rate-card validation easier because rates are already structured, but it is not a prerequisite. Rate cards held as contract PDFs, carrier tariff annexes, or finance-maintained spreadsheets can be extracted into a structured rate table and versioned with effective dates. Many logistics operators begin validation from spreadsheets and formalise the rate repository afterwards.

Chirashree Dan

Marketing Team

Read more articles on the Peakflo Blog.