Methodology

Cost without a revenue line

Published: 2026-10-10

In a forwarding company there is one operation that almost nobody performs systematically: matching every line of a received invoice against a line of an issued invoice.

The reason is not negligence. The reason is that the two sides are handled at different times, by different people and often in different systems. The cost arrives with the carrier's invoice two weeks later; the revenue is invoiced right after the carriage. The matching is done on aggregate totals at month end, and there everything reconciles, because aggregate totals always reconcile.

Three possible cases

A cost line without a revenue line is one of three things.

First, the service is included in an agreed package price. The customer pays an “all-in” rate, and it covers both the terminal charge and the document handling. There is no leakage.

Second, the cost was absorbed deliberately. There was a commercial decision not to charge — for the sake of the relationship, because of a mistake on your own side, under a volume arrangement. Not leakage either, although it is worth knowing how much of it accumulates.

Third, nobody issued the revenue. The service was performed, the cost was paid, the invoice was never issued.

The third case looks exactly like the first and the second until somebody checks.

Why it is hard to find without matching

Because the leakage does not move a single indicator anyone looks at.

Turnover is normal. The margin is slightly below plan, but the margin is always slightly below plan, and there are ten reasons for that. The invoice count matches the shipment count, because what goes unissued is usually one line, not a whole invoice.

It becomes visible only when the lines are matched.

How to do the matching yourself

You need a shared identifier. The best one is the shipment file or job reference, if it is present on both the cost side and the revenue side. The second best is the transport document number. The third is the container number together with a date.

If none of them exists, matching is possible by route, date and weight, but then the result is an assumption, not a fact, and such cases cannot be presented as findings.

It is worth starting with one service type, not with everything. Pick one that is frequent, small and easy to forget: reefer plug-in, an additional stop, weighing, temporary storage. Take three months and check how many times the cost is there and the revenue is not.

If the ratio is high, these are not coincidences — it is a process in which the service is not captured at the point where the invoice is built.

What to do with the result

Most of the cases found will be too old to be worth invoicing. That is normal and it is not a defeat.

The value lies elsewhere: you now know which service type leaked, and you can fix the place where it happens. One fix to the mechanism works every week going forward, while one late invoice works once and still costs you an explanation.

One more thing the matching shows

Once the lines are matched, you see not only what went uninvoiced but also the margin by service type. This is often the first time a company sees which services actually pay for themselves and which are performed at cost or below.

That is not the purpose of the audit, but it is a by-product that often turns out to be more useful than the list of findings itself.

Related articles:

Revenue leakage audit