“On two occasions I have been asked, 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' … I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.”Charles Babbage · Passages from the Life of a Philosopher · 1864 · Passages from the Life of a Philosopher (1864), cap. V — Difference Engine No. 1
Every figure in a report must be able to say which rows and which file it came from.
The question that exasperated Babbage is still asked today, just differently: "the model is good, so the figures are good?". No. A warehouse does not fix what it receives; at best it makes visible where it came from. That is provenance (lineage): for every figure in a report, the path back through the transformations to the source rows and file, at column level, derived from the SQL that produced them. On every row, small metadata: source system, load identifier, extraction time. What it is for: impact analysis (if source X breaks, which reports suffer?), debugging (this odd figure — from which rows? which file? which day?), compliance (where personal data flows, which the GDPR explicitly requires) and reproducibility (same code, same data version, same result). The typical case: an amount column upstream switches from one currency to another without notice; the totals "look plausible" for two weeks. No type validation catches that. The only defence is being able to trace every figure back and see the day the distribution moved.
Why it matters The wrong figure that "looks fine" is the most expensive one in the warehouse. Without provenance you hunt it for weeks; with it, you find it in one query.