Skip to content

BA Playbook 05

Two Systems Show Different Numbers

A practical BA guide to investigating data mismatches.

Surya · August 8, 2026 · 4 min read · 14 practices

Data

For Business Analysts investigating data discrepancies, BAs supporting reconciliation or control functions, Anyone handed "which number is right" with no other context and Product Owners triaging a data quality ticket.

System A: 1,248 trades. System B: 1,231 trades. Someone drops both screenshots into Teams and asks: "which one is wrong?" Maybe neither. Different numbers often come from different definitions, timing, populations, filters or processing states — not from either system being broken. The first job isn't finding the wrong number. The first job is making sure you're actually comparing the same thing.

01

Step 01

Confirm the metric

"Trades" alone is not a shared definition yet.

At a glance

  • Trade?
  • Order?
  • Execution?
  • Booking?
  • Gross or net?

Why it helps

Two teams can both be right and still disagree, if one is counting orders and the other is counting executions.

02

Step 02

Confirm the time window

The same day can mean three different things to three different systems.

At a glance

  • Business date, or calendar date?
  • Which timezone?
  • What's the cut-off?
  • What time does the batch actually run?

Why it helps

A trade booked at 11:58pm can land in "today" or "tomorrow" depending on which of these four answers a system uses.

03

Step 03

Confirm the population

Before comparing counts, confirm both sides are counting the same slice of the world.

At a glance

  • Market?
  • Region?
  • Client?
  • Product?
  • Venue?
  • Status?

Why it helps

One system scoped to EMEA and one scoped globally will never match, and neither is malfunctioning.

04

Step 04

Confirm the source

Not every number comes from the same place, even when the screen looks the same.

A cached report lagging the live database by design isn't a bug. It's worth knowing before anyone spends an afternoon chasing it as one.

At a glance

  • Live database?
  • API?
  • Scheduled report?
  • Cache?
  • Warehouse?

Why it helps

The source tells you how fresh the number is allowed to be — which sometimes fully explains the gap on its own.

05

Step 05

Compare definitions, not just counts

The two systems can both be correct and still never agree.

Compare

System A

Counts an amended trade as one trade — the latest version only.

System B

Counts every trade version separately, including amendments.

Why it helps

Both may be behaving exactly as designed. The mismatch is a definition gap, not a defect in either one.

06

Step 06

Compare processing states

A count taken mid-pipeline will never match a count taken at the end of it.

The flow

ReceivedValidatedBookedMatchedSettledRejected

Why it helps

If System A counts anything past "Received" and System B only counts "Settled," the gap is explained before you look at a single row.

07

Step 07

Check the filters

Somebody, at some point, probably applied a filter and forgot about it.

At a glance

  • A UI filter left switched on
  • Report defaults nobody remembers setting
  • SQL WHERE conditions baked into the query
  • Statuses excluded by default

Why it helps

This single step resolves more mismatches than any of the others, and it's the easiest one to skip because it feels too simple to be the answer.

08

Step 08

Check for duplicates

Sometimes the higher number is the wrong one, not the lower one.

Why it helps

A retried request, a re-run batch, or a join that fans out unexpectedly can all quietly inflate a count.

09

Step 09

Check for missing records

And sometimes it's the lower number that's actually incomplete.

Why it helps

A failed load, a filter that silently drops nulls, or a join that drops unmatched rows can all quietly shrink one.

10

Step 10

Compare identifiers

Matching on the wrong key can look exactly like a data mismatch.

At a glance

  • Trade ID
  • Order ID
  • Transaction ID
  • External ID

Why it helps

If System A keys off an internal trade ID and System B keys off an external reference, records that genuinely match will look unmatched until the mapping is fixed.

11

Step 11

Take a small sample before you touch the whole population

Do not start with all 100,000 rows.

Why it helps

Pick 5 to 10 individual mismatches and trace each one by hand. The pattern that explains all of them is usually visible after the third or fourth.

Pro tip — If the same explanation accounts for your first five mismatches, it's very likely the explanation for the rest too — confirm it before assuming otherwise.

12

Step 12

Sort what you find into reconciliation buckets

Not every mismatch is the same kind of mismatch. Separate them before explaining them.

The flow

Only in AOnly in BIn both, values differIn both, match

Why it helps

"Only in A" points at a missing-record problem. "In both, values differ" points at a definition or timing problem. They need different investigations, not one shared explanation.

13

Step 13

Classify the root cause

Every mismatch traces back to one of a small number of causes.

At a glance

  • Data — something's missing or duplicated
  • Definition — the two sides mean different things
  • Timing — the two sides were measured at different moments
  • Processing — the two sides are at different pipeline stages
  • Reporting — the report layer, not the underlying data, is wrong
  • Requirement — nobody actually specified which of these was correct

Why it helps

Naming the category is most of the fix. "It's a timing issue" tells everyone what kind of conversation happens next.

14

Step 14

Document the actual cause, not just that it's resolved

"Fixed" is not a finding. It's the absence of one.

The shift

Data mismatch fixed.
System B excludes trades in PENDING_ALLOCATION status while System A includes them. Business decision: System A's definition is correct; System B's report filter has been updated to match.

Why it helps

The next person who hits a similar mismatch — and there will be a next person — needs the actual cause, not a status update.

Neither number was "wrong."

They were never counting the same thing.

Most data mismatches resolve into a one-sentence answer once someone traces a handful of records instead of arguing about the totals. The totals are a symptom. The definition, timing or status gap underneath them is the actual finding.

Take this with you

Data Mismatch Investigation Checklist

DATA MISMATCH INVESTIGATION CHECKLIST

[ ] Same metric
[ ] Same business definition
[ ] Same date
[ ] Same timezone
[ ] Same population
[ ] Same filters
[ ] Same status
[ ] Same source
[ ] Same identifiers
[ ] Duplicate check done
[ ] Missing-record check done
[ ] Small sample reconciled
[ ] Root cause classified
[ ] Business decision recorded

Get new playbooks first.