A nightly import reports “completed.” The source contains 120 orders, and the destination has 120 new rows. Everything looks fine until someone notices that one order is missing and another was imported twice.
A successful job and a reconciled batch are different things. Reconciliation checks that each intended record has a known outcome.
Freeze the scope of the batch
Record the input selection and its cutoff time. Give the batch an identifier and keep the source record identifiers. If the input changes while the import runs, the team should still know which version it meant to process.
Define whether the destination should create a new record, update an existing one, or skip it for a stated reason. Without those rules, a mismatch can look like a bug even when it is expected.
Compare identifiers before totals
For each source identifier, look for its matching destination identifier or a documented exception. Count distinct identifiers as well as rows. Check for missing matches, duplicate matches, and unexpected destination records.
For example, an illustrative result might show 120 inputs: 116 written, two intentionally excluded, one rejected for a missing reference, and one with an unknown outcome. The counts explain the batch, but the team still needs to investigate the unknown before repeating it.
Check the fields that matter
Matching IDs do not prove that every value arrived correctly. Spot-check fields that affect the next step, such as quantities, dates, account associations, or status. Compare totals only within compatible units and scopes. A total across different currencies or units can hide errors rather than reveal them.
Turn discrepancies into work
- Assign someone to each unresolved outcome.
- Record the source reference, known destination reference, and reason.
- Recheck an uncertain write at the destination before retrying.
- Correct individual records when possible instead of replaying the whole batch.
- Reconcile again and record what remains open.
A useful end-of-run report tells a person whether the batch is safe to use and what still needs attention. “Completed” is only the starting point.
For recovery design, see our automation exception queue guide, or discuss a reconciliation pilot.