Most freight invoices get paid the same way: the bill lands in accounts payable, someone checks that the vendor is real and the total looks about right, and it goes into the payment run. That process catches fraud. It does not catch a fuel surcharge pulled from the wrong month, a car rated under the wrong commodity code, or demurrage on a car your plant ordered out two days earlier. Freight invoice reconciliation is the step that catches those, and it works best before you pay.
Our guide to the rail freight invoice and its line items covers what each charge means. This post is about the process: how to set up reconciliation so every rail freight bill is matched to an expected charge, how to sort the differences, and what to do with the ones that are real.
What Freight Invoice Reconciliation Is (and Is Not)
Freight invoice reconciliation is matching every freight bill to an expected charge you built from your own records, then resolving each difference before the bill is paid. The expected charge comes from your rate authority, your bill of lading, the railroad's published fuel surcharge program and your facility's placement and release records.
It is not the same thing as a freight audit, though the two get used interchangeably. The difference is timing:
| Reconciliation | Freight audit | |
|---|---|---|
| When | Before payment | Usually after payment, looking back |
| Goal | Pay the right amount the first time | Recover money already paid in error |
| Unit of work | Each car, each charge | Patterns across months of bills |
| Who does it | Traffic or logistics team, with AP | Internal audit or an outside service |
| Fixes | A hold or a dispute on one bill | An overcharge claim, a credit, a rate correction |
You want both. But a shipper that reconciles well gives the audit much less to find, and a credit you never had to chase is worth more than one you recover eight months later.
One rule up front: reconcile at the car level, not the invoice total. A consolidated statement can cover dozens of freight bills. If one car is overbilled and another is underbilled, the total can look fine while both are wrong.
Build the Expected Charge Before the Bill Arrives
The single biggest reason freight invoices go unchecked is that nobody wrote down what the move should cost. If the only number in the building is the railroad's, there is nothing to reconcile against. So the first step happens at shipment, not at billing.
For every car you tender, record an expected charge built from:
- The rate authority. Contract number and the amendment in force on the ship date, or the tariff and item. Note the rate basis: per car, per net ton, or per hundredweight.
- The billing weight. From your scale ticket, or the minimum weight in the rate authority if the car loaded light.
- Origin and destination rate stations. The station the rate applies to, not just the city on the bill of lading.
- The commodity and STCC exactly as the rate authority names it.
- The fuel surcharge from the railroad's published program for the applicable period. See how rail fuel surcharges are calculated if you have never worked one out by hand.
- Known accessorials you agreed to in advance, such as a switch to a serving carrier.
This does not need software. A shared sheet with one row per car, filled in when the bill of lading goes out, is enough for a shipper moving a few hundred cars a year. Larger shippers usually do the same thing inside the ERP as a freight accrual, which has the side benefit of putting freight cost in the right month on the books.
The Match: Five Checks for Every Freight Bill
When the bill arrives, run the same five checks in the same order. The order matters: an error near the top makes everything below it wrong, so there is no point checking the fuel surcharge on a car that was rated off the wrong tariff.
- Identity. Car initial and number, waybill date, shipper and consignee all match your bill of lading. A transposed car number means you may be paying for someone else's car.
- Rate authority. The bill cites the contract or tariff you expected. A tariff rate on a lane you have under contract is one of the most expensive errors there is, because it repeats on every car until someone catches it.
- Rate inputs. STCC, rate stations and billing weight match your records. Multiply rate times weight (or take the per-car rate) and you should land on the line-haul charge to the penny.
- Fuel surcharge. Right program, right period, right method. Check it against the railroad's published table rather than last month's bill.
- Everything else. Every accessorial line has an event behind it that you can confirm in your own records: a placement, a release, a switch, a weighing. If you cannot find the event, the line is not ready to pay.
Demurrage bills get their own check
Demurrage is where your facility records and the railroad's records most often disagree, so reconcile it separately from line-haul freight bills. Under 49 CFR 1333.4, Class I railroads have to put specific data on each demurrage invoice, including for every car: the estimated arrival, actual placement, constructive placement and when you were notified of it, when the car was ordered in, the release time and the credits and debits applied. That data exists so you can check it. Compare each timestamp to your gate log or plant records. Our rail demurrage fees guide covers how free time and credits work.
An Illustrative Reconciliation
The numbers below are illustrative, not a real lane or rate. Say a shipper moves 10 loaded covered hoppers under a contract at $4,100 per car, plus a fuel surcharge published as a dollar amount per car per month. The expected charge sheet says $4,100 line haul and $310 fuel per car. The statement comes in at a total $1,150 higher than expected.
| Finding | Cars | Difference | Cause |
|---|---|---|---|
| Fuel surcharge at $335 instead of $310 | 10 | +$250 | Prior month's table applied |
| Line haul at $4,550 instead of $4,100 | 2 | +$900 | Billed off the tariff, not the contract |
| Billing weight 0.4 tons over scale ticket | 1 | $0 | Per-car rate, weight does not change the charge |
Look at what the total hides. The $1,150 gap is real, but it is two different errors with two different fixes. The fuel surcharge is a billing-system issue that will hit every car that month. The two tariff-rated cars point to a setup problem: the contract was probably not attached to that origin, or the waybills were missing the contract reference. Fix that at the source, or the same $450 per car comes back next month. The weight difference is noise on a per-car rate, though it would matter on a per-ton rate.
Sorting Variances: Tolerance, Error, or Rate Problem
Every difference between the bill and your expected charge falls into one of three buckets, and each bucket gets a different response.
- Inside tolerance. Rounding, a few hundred pounds on a per-ton rate, a pennies-level fuel difference. Set a small dollar or percentage threshold and let these pass automatically. Chasing a $6 variance costs more than the $6.
- Billing errors. Wrong fuel period, duplicate bill, an accessorial with no event behind it, demurrage on a car you had already released. These get disputed bill by bill.
- Rate or setup problems. Wrong rate authority, wrong STCC, wrong rate station, an expired contract amendment. These are the expensive ones because they repeat. Dispute the bills in front of you, then fix the cause with the railroad's pricing contact.
Keep a variance log with one row per finding: car, bill, bucket, amount, cause, and status. After three months it tells you which errors are one-offs and which are systemic, which is the information you actually need when you sit down with a railroad to talk about billing or rates. The working with railroads course module covers how to have that conversation.
Pay, Hold, or Dispute
Once a bill is reconciled, there are three outcomes. Clean bills get paid on time. Bills with a disputed line get the undisputed portion paid and the line disputed through the railroad's process. Bills that cannot be matched yet, usually because a placement record or a contract amendment is missing, get held with a reason and a date.
Avoid quietly short-paying. An unexplained short payment looks like a late payment to the railroad's collections team, and late payment costs money. Union Pacific's published policy, for example, charges a finance charge at an annual rate of 12%, or 0.0329% per day, on past-due freight bills, under the credit terms in Uniform Freight Classification Rule 62 and your own contract or tariff. The same policy excludes the time a bill was in dispute from that calculation, and a dispute that corrects the bill is not subject to the charge at all. In other words, file the dispute and the clock works in your favor. Short-pay without one and it works against you.
Most Class I railroads take disputes through their customer portal, attached to the specific freight bill. Include the evidence with the first submission: the contract page, the scale ticket, the gate log. A dispute that says "rate is wrong" without the authority attached tends to come back asking for it.
The Clocks That Matter
Reconciling before payment avoids most deadline problems, because you dispute while the bill is still open. For the bills that slip through, these are the limits that apply to rail freight charges under federal law:
| Who | Action | Deadline |
|---|---|---|
| Shipper | Civil action to recover an overcharge | 3 years after the claim accrues (49 U.S.C. 11705(b)) |
| Shipper | Complaint to the STB for damages | 2 years after the claim accrues (49 U.S.C. 11705(c)) |
| Railroad | Civil action to collect its charges | 3 years after the claim accrues (49 U.S.C. 11705(a)) |
For a shipment, the claim accrues on delivery or tender of delivery (49 U.S.C. 11705(g)). Two cautions. Freight moving under a rail transportation contract is governed largely by that contract, so its dispute and claim terms may be shorter and are the first place to look. And the railroad's clock runs too: a bill that was underbilled can be rebilled, so reconcile in both directions and do not treat an undercharge as free money.
Loss and damage is a separate process with its own rules. If the problem is a damaged load rather than a wrong charge, see how to file a rail freight claim.
Making It a Monthly Routine
Reconciliation only works if it happens every month, on every bill. A process that holds up:
- At tender: the expected charge row is created from the bill of lading and the rate authority.
- On receipt: each freight bill is matched to its row, and the five checks are run.
- Weekly: variances outside tolerance go to someone who knows rail, not just AP, for a pay, hold or dispute decision.
- Before the payment run: clean and partially disputed bills are released on time.
- Monthly: the variance log is reviewed for repeat causes, and open disputes are chased to a credit.
- Quarterly: rate authorities are re-checked for expirations and amendments before they cause a month of mis-rated cars.
The step most shippers skip is the third one. Accounts payable can match a total to a purchase order, but it usually cannot tell a wrong STCC from a right one, or know that a car released Tuesday should not be accruing demurrage Thursday. That knowledge gap, not a lack of software, is why rail bills go unchecked. If you do not have a rail person in house, that is the part worth handing off. Our rail freight audit and recovery service and rail logistics services cover it, and the railroad pricing course module walks through how the rates on your bills are built.
Sources: 49 U.S.C. 11705 (limitation on actions); 49 CFR 1333.4 (demurrage invoice information); Union Pacific Late Payment Policy and Late Pay Q&A pages, up.com, accessed October 6, 2026. Worked example is illustrative. This is general information, not legal advice; your contract and the governing tariffs control.
Frequently Asked Questions
What is freight invoice reconciliation?
Freight invoice reconciliation is matching every freight bill against what you expected to be charged, using your rate authority, bill of lading, fuel surcharge schedule and facility records, then resolving each difference before payment. It is done per car, not on the invoice total.
What is the difference between a freight audit and freight invoice reconciliation?
Reconciliation happens before you pay: each bill is matched to an expected charge and differences are held or disputed. A freight audit usually looks back at bills already paid to find overcharges to recover. Doing reconciliation well shrinks what an audit has to recover.
How long do I have to recover a rail freight overcharge?
Under 49 U.S.C. 11705(b), a civil action to recover rail overcharges must be started within 3 years after the claim accrues, and a complaint to the Surface Transportation Board for damages within 2 years. The claim accrues on delivery or tender of delivery. Contract terms can set their own, shorter process, so check yours.
Should I short-pay a rail freight invoice I disagree with?
Usually no. Pay the undisputed charges on time and dispute the specific line through the railroad's dispute process. Union Pacific, for example, excludes the time a bill was in dispute from its late-payment finance charge, while unexplained short payments tend to create collection problems on your account.
What tolerance should I use when reconciling freight invoices?
Set a small dollar or percentage tolerance so rounding and minor weight differences pass automatically, and route anything above it to review. Never apply a tolerance to rate, commodity code or origin and destination mismatches, because those errors repeat on every car.