Start from the assumption that both are right
The framing you are handed — which number is correct — is nearly always the wrong question, and
answering it as asked is how these investigations run for three weeks. Two competent teams
counting the same business event rarely have a bug. They have two definitions, each of which is
correct for the purpose it was built for, and the disagreement is only visible because both got
put on the same slide.
So the question to work on is what question each figure answers. Operations counts what it
dispatched, because that drives warehouse and courier decisions. Finance counts what it can
recognise as revenue under an accounting policy, which excludes things Operations legitimately
counts and applies a different date. Both numbers are needed. Neither is a mistake. Saying this
out loud early also de-escalates the meeting, because nobody has to be wrong for you to make
progress.
That said, do not assume it: prove it. A genuine defect does occasionally hide in here — a join
that duplicates rows, a filter dropping records with a null branch code, a timezone conversion
applied twice — and the reconciliation below is what distinguishes the two cases.
Decompose instead of comparing totals
Comparing two monthly figures tells you nothing except that they differ. The technique is to
shrink the problem until you can see individual records, along four axes at once.
Narrow the window to a single day, ideally a quiet one. Narrow the population to one branch or one
product line. Get both sides to the same grain, which usually means asking each owner for a record
listing rather than a total. Then match the two lists on a business key and look at what is in one
and not the other. The first divergence you find explains far more than the aggregate difference
does, because the same cause repeats thousands of times over a month.
Five causes account for most of these, and it is worth checking each explicitly. Population, where
one side includes cancellations, internal transfers, test accounts or zero-value records. Timing,
where one uses the event date and the other the posting date, or the month cut-off falls at
midnight in different timezones. Filters, where a status list on one side has drifted out of step
with the other. Source, where one reads the transactional system and the other a warehouse loaded
overnight with a day's lag. And calculation, where currency is converted at a different rate date
or a deduplication rule differs.
Publish a bridge, not a verdict
The deliverable that ends the argument is a reconciliation that walks from one figure to the other
in named steps. Once the gap is fully explained, the disagreement stops being about trust.
| Step | Records |
|---|
| Operations dispatched count for March | 12,480 |
| Less orders cancelled after dispatch, excluded by Finance | −402 |
| Less intercompany transfers, not revenue | −173 |
| Less dispatched 31 March, invoiced 1 April | −246 |
| Plus dispatched 28 February, invoiced in March | +190 |
| Finance recognised count for March | 11,849 |
Every line is a business rule somebody can agree or dispute on its own, which is what makes the
table useful — a stakeholder who rejects the whole 631-record gap will happily accept or challenge
the 173 intercompany transfers. That bridge happens to close exactly, which is the comfortable
case. More often it does not, and the aim is then to drive the difference down to a residual you
can name and size. Suppose thirty records were left over out of 12,480: that is not a rounding
tolerance to be waved away; it is a small pile of specific records, and it is where the actual
defect lives if there is one.
Fix the governance or you will be back
Reconciling the month is the easy half. If both reports keep running with both definitions, the
same meeting happens in April with different numbers, so the analysis has to end in a decision
about definitions rather than about March.
That decision has three parts. One metric gets a written definition — population, date basis,
inclusions, exclusions, source, and the calculation — recorded in a glossary that is referenced by
the reports themselves. One named person owns it, meaning they approve changes to it and are asked
before a new report reuses the name. And the other figure is either retired or explicitly renamed
so it stops competing: "dispatched volume" and "recognised order volume" can coexist forever
without an argument, whereas two things both called "March orders" cannot.
The failure mode to avoid is settling it by rank. If the number that wins is the one belonging to
the more senior stakeholder, the losing team keeps their own spreadsheet, keeps using it to run
their part of the business, and you have added a shadow report to the problem you were asked to
solve.
© 2026 Preptima. Originally published at preptima.com (opens in a new tab).