First confirm that both totals describe the same metric, reporting window, time zone, currency, and filters. Then compare independent source control totals with each transformation stage. Investigate joins, filters, windows, and adjustments in that order after establishing comparability.
A difference you can trace
Synthetic example RP-REC-01. Two source rows contain spend of $600 and $400. The source control is $1,000. The report displays $1,250: report minus source is +$250, or +25% relative to the source. This arithmetic identifies a discrepancy; it does not identify its cause.
| Stage | Spend USD | Evidence to retain |
|---|---|---|
| Source export | 1,000 | Rows S1 = 600 and S2 = 400; export timestamp |
| After transformation | 1,250 | Same window and filter; adjustment A1 = +250 |
| Report total | 1,250 | Frozen report version and filter state |
| After removing unapproved A1 | 1,000 | Recomputed report and approval record |
In this fixture, an explicit unapproved +$250 adjustment explains the entire difference. We can verify that cause because the stage record contains A1. A real report needs equivalent evidence before assigning a cause.
Investigate without losing the trail
- Joins and grain. Count rows and distinct business keys before and after each join. Repeated source amounts warrant a cardinality check. A repeated number alone does not prove duplication.
- Filters and completeness. Compare included campaigns, channels, statuses, currencies, and missing keys. For a Sheets report, check the last populated row, formula ranges, hidden rows, import errors, and expected periods. A blank is unknown until its meaning is agreed; it is not automatically zero.
- Windows and refreshes. Freeze extracts from the same cutoff and document the source time zones. A late refresh may make two individually correct snapshots incomparable.
- Adjustments and formulas. List every manual override, sign, unit conversion, and rounding rule. Identify its owner and approval. Recompute from full precision before rounding the final output.
What to request next
Collect the frozen source export, metric definition, inclusive start and exclusive end, time zone, filters, transformation output, adjustment log, and report snapshot. Write an explicit comparison rule and tolerance before accepting the difference.
If the source is 0, the absolute difference still exists, but percentage difference relative to source is undefined. If the source is missing, report the comparison as unavailable. Do not divide by zero or treat absent evidence as a pass.
Acceptance checklist
- Same metric, unit, population, and time basis confirmed.
- Independent controls reproduced from retained inputs.
- Every difference explained, corrected, or carried as an unresolved risk.
- Approver accepts the frozen output against the written rule.
Sources and reproducibility
Technical references checked October 27, 2026. Worked examples are synthetic ReportPatch fixtures, checked by automated calculations.