Charge Audit Methodology
Intended reader: CFO, controller, head of finance, or operations leader at a freight forwarder evaluating charge-audit tools.
Executive summary
Freight forwarders lose margin to invoice errors that operations teams do not have time to catch. PulseCargo’s charge audit engine surfaces those errors before invoice approval. This paper documents the methodology — what the engine compares, what it catches today, what it does not catch yet, and how to evaluate the output.
We have deliberately written this paper to also document scope honestly: header-level rate variance and missing-charge detection ship today; line-level math, multi-currency conversion, tax handling, and fuel surcharge handling are on the build roadmap and explicitly named here so the buyer can plan around them.
1 — The problem charge audit solves
A typical mid-market freight forwarder processes 200 to 500 carrier invoices per month. Each invoice lists charges (ocean freight, BAF, fuel surcharge, port handling, documentation, drayage, customs entry, etc.) against the contracted rates the forwarder negotiated with that carrier.
Reconciling each invoice against the contracted rate card is repetitive, detail-heavy work. Industry studies estimate forwarders without automated reconciliation catch roughly 70% of variances; the remaining 30% become margin leakage. At typical mid-market annual freight spend and a 3 % discrepancy rate, that leakage compounds into material unrecovered overcharges every year.
The charge audit engine exists to close that gap.
2 — How the engine works today
2.1 Inputs
For every invoice the engine ingests:
- The invoice header: carrier, invoice number, invoice date, currency, total.
- The invoice line items: charge codes, descriptions, units, rates, totals.
- The shipment context: shipment reference, lane, mode, container or AWB number, weights, dimensions.
- The PO context: linked purchase orders, ASNs, expected charges per the PO.
- The contracted rate card: tenant-configured rate cards per carrier, per lane, per mode, per service. Effective dates, expiry dates, surcharge schedules.
- The audit rule set: tenant-configured tolerance thresholds and exception conditions.
The first three inputs flow from the connected TMS (CargoWise today; Magaya, Descartes, GoFreight on the roadmap). The rate card and audit rules are configured by the tenant in PulseCargo’s admin surface.
2.2 What ships in the audit engine today
Header-level rate variance. The engine compares each invoice’s headline charge against the contracted rate for that lane, mode, and carrier. A rate variance above the tenant’s configured tolerance threshold (e.g. 2 %) generates an exception.
Example: contract rate on Shanghai-to-LA with Carrier X is the baseline. Invoice arrives at 11.4 % above the contracted rate. Above 2 % tolerance. Exception flagged with both values, the contract reference, and the invoice reference.
Missing-charge detection. The engine identifies line items the contract entitles the forwarder to but that are absent from the invoice (rare in carrier-favoring invoicing) or charges on the invoice that have no corresponding contractual basis. Both directions matter; the second direction is where most overcharges hide.
Example: contract entitles the forwarder to a fuel surcharge cap of 8 % of base rate. Invoice shows a 14 % fuel surcharge. The exception identifies the cap, the actual, and the dollar variance.
Duplicate-charge detection. The engine flags charges that appear twice on a single invoice or across two invoices for the same shipment (e.g. detention billed twice).
Carrier behavior pattern breaks. The engine flags when a particular carrier’s invoicing pattern on a particular lane deviates from its own historical pattern — e.g. a surcharge that has been steady for six months suddenly changes by 40 %. This is anomaly detection composed onto charge audit.
Tenant-configurable rule engine. Tenants define their own audit rules: tolerance thresholds, exception severity, escalation paths, ignore-lists for known-acceptable variances. Rules are versioned per tenant.
2.3 What does NOT ship today (roadmap)
We are explicit about what is not yet in the engine because the buyer needs to plan around it:
-
Line-level math. Today’s engine compares invoice headers and named line items to contracted rates. Per-unit math (rate × weight × distance with multiple modifiers) for complex multi-leg shipments is in the build queue.
-
Multi-currency conversion. Today’s engine compares values in the invoice’s stated currency. For tenants whose contracts are in one currency and whose invoices arrive in another, the engine flags the currency mismatch but does not yet do the conversion math against a configured FX rate.
-
Tax handling. Country-specific tax codes (VAT, GST, customs duty pass-through) are flagged as line items but not validated against tax-rate schedules.
-
Fuel surcharge formula validation. Some carriers compute fuel surcharges via published formulas (BAF index × multiplier × fuel price differential). Today’s engine validates against a stated cap or fixed percentage; it does not yet compute the formula-based expectation.
These are scoped roadmap items, not vague intentions. Each has a planned implementation order. Each will appear in the public changelog when it ships.
3 — How the engine produces output
For every flagged exception the engine produces:
- The variance — dollars and percentage, computed.
- The reference values — contracted rate, contract identifier, applicable rate-card row.
- The source records — invoice ID, shipment ID, PO ID, carrier ID. Hyperlinked so the operator can verify.
- The rule that fired — which tenant-configured audit rule produced the exception.
- A suggested action — accept, dispute, escalate, ignore-and-add-to-allowlist.
- Audit metadata — when the exception was generated, what version of the rule set produced it, who has reviewed it.
Every output is explainable. Operators can inspect the inputs and the rule that fired. There is no opaque “the AI flagged this” failure mode. Compliance auditors can replay any exception against the source records.
4 — Where the engine sits in the workflow
The charge audit engine is pre-approval, not post-payment recovery. The intended workflow:
- Carrier invoice arrives via EDI, email, or manual upload.
- The engine processes the invoice within minutes of receipt.
- Exceptions are queued in the tenant’s audit dashboard.
- The finance team reviews the exception queue, not the entire invoice volume.
- Approved invoices proceed to the AP workflow (PayCargo for vendor payments where enabled, or the tenant’s existing AP process).
- Disputed invoices go back to the carrier with the variance details attached.
This sequencing matters. Catching variances after payment requires a recovery cycle that drags on for weeks or months. Catching variances pre-payment recovers the variance at the source with no aging.
5 — How to evaluate the engine on your data
Three steps:
5.1 Connect a recent invoice batch
Connect PulseCargo to the tenant’s TMS (CargoWise today; Magaya, Descartes, GoFreight on the roadmap) and load a representative month of invoice history. The engine processes the batch in minutes.
5.2 Configure the rate card
Either upload a structured rate card (CSV / Excel) or enter the major contract terms manually. The first-month configuration takes a few hours of a finance person’s time per major carrier; it pays back in the first batch.
5.3 Review the exceptions
The engine produces an exception queue. Walk through the queue. Verify each exception against the source records. Calibrate tolerances if needed. Decide which suggested actions to accept.
The first month is usually where the most surprises surface. The expected pattern is: a meaningful number of exceptions in month one, falling to a steady-state rate as the rate card and audit rules are tuned to the tenant’s specific operations.
6 — What we will commit to
For a Professional-tier or higher engagement, PulseCargo commits in writing:
- Header-level rate variance detection within the rate card configured.
- Missing-charge and duplicate-charge detection against the rate card.
- Carrier-pattern break alerts based on the tenant’s own historical invoice data.
- Tenant-configurable audit rules with versioned rule history.
- Per-exception explainability — every exception traceable to source records and the rule that fired.
- Audit log — every audit run logged for compliance evidence.
We do not commit, today, to:
- Line-level math for multi-modifier per-unit charges (roadmap)
- Multi-currency conversion math (roadmap; currency mismatch is flagged, not converted)
- Tax-schedule validation (roadmap)
- Fuel-surcharge formula validation against published indices (roadmap; cap-based and percentage-based fuel surcharges ARE validated today)
We will commit each of these in writing as each ships.
7 — Tier gating
Charge audit is included with the Professional tier and above. The tier rationale:
- Starter Lite is self-service evaluation and does not include audit.
- Starter is the real customer portal but does not include audit.
- Professional includes the rule-based charge audit engine and the audit dashboard.
- Enterprise adds ML-enhanced anomaly detection composed onto the audit, and the Auto-pilot configuration surface (execution loop on the roadmap).
- Enterprise+ adds dedicated infrastructure and custom audit rule libraries.
Pricing is per company, not per seat. The engine itself is the same engine across tiers; the differentiation is depth of automation and dedicated infrastructure. Talk to sales for pricing and engagement scope.
8 — About PulseCargo
PulseCargo is the Synthetic Intelligence layer for freight forwarders. Charge audit is one of eight purpose-built modules; Pulse Chat, Pulse Trace, Pulse Watch, Pulse Score, Pulse Dox, Pulse IQ, and Pulse Flows are the others. Live on CargoWise today; Magaya, Descartes, GoFreight on the integration roadmap. Per company, not per seat.
To request a charge audit demo on your data: pulsecargo.ai/contact.
This paper is © 2026 PulseCargo, Inc. PULSECARGO is filed with the USPTO under Section 1(b) Intent to Use; the ™ designation is in effect.
Want to dig deeper?
Request a 30-minute briefing with the founder — bring your toughest questions on the topics in this paper.