Skip to content
AnrilX
All insights

Every figure should carry its source

· 3 min read · The AnrilX team

Here is a figure: 4,182,940 SAR.

You cannot do anything with it. Not because the number is wrong (it may well be right) but because nothing about it tells you what it measures, which rows it covers, or when. To use it you would have to ask the person who produced it, and what you would actually be evaluating is how much you trust them.

Most reporting works this way. The provenance exists, but it lives in the definition of the report, which lives in a system nobody opens, written by somebody who has since changed roles.

What we print instead

Source: zsd_sales_order / ZA_SalesOrder · net revenue = sum of TotalNetAmount · Q3 2026
Filter: SalesOrganization eq '2100' · 238 documents read

Five facts: which entity set was read, what was computed and from which SAP field, which rows were included, which window, and how many documents that turned out to be. Underneath the number, in the answer, not in a log.

Why each part is there

The entity set is first because it is the error with no other tell. A figure computed from the wrong entity is well-formed, plausible and completely wrong, and every other line on the page looks fine. It is the only place this can surface.

The field and aggregation are there because the label on a figure is the least reliable thing about it. A question asks for “discount” and something has to decide what that means. Printing discount = sum of TotalNetAmount puts that decision where a reader can see it, and the moment they do, the wrong ones are obvious.

The filter and period are there because scope is where honest figures go wrong. Not a wrong calculation: a right calculation over rows nobody meant to include. A total that quietly covers all of time looks exactly like one scoped to this quarter.

The row count is the cheapest sanity check ever invented. Anyone who knows the business knows whether 238 documents is the right order of magnitude, and they know it instantly.

The things it must also say

Provenance is only worth something if it reports the bad cases too.

When the window was assumed. A question naming no period reads all of time. That has to be stated, because an unbounded total is indistinguishable on screen from a scoped one.

When the read was incomplete. If the server returned fewer rows than asked for and we could not assemble the rest, the figure is a lower bound and says so. A confident total over an undercount is worse than no total, because at least a missing number prompts a question.

When a name was repaired. If a field name was slightly wrong and resolved to the nearest match, that is a fact about the answer.

When a business rule was applied. Which document governed it, and what the unadjusted figure was, marked as unadjusted.

It costs almost nothing

This is the part that surprises people. Provenance is not an expensive feature. The execution layer already knows every one of those facts; it had to, in order to run the query. Printing them is formatting.

The reason it is rare is not cost. It is that a system which prints its own provenance can be caught being wrong, and a system that does not, cannot. That is exactly the property you want.

In the product

The same idea, in the product

The parts of AnrilX this article argues about.

Questions this raises

What is a Source Line?

The derivation printed under a figure, in the answer rather than in a log: which entity set was read, what was computed and from which SAP field, which rows were included, which window, and how many documents that turned out to be.

Why does the source line name the entity set first?

Because a figure computed from the wrong entity is the error with no other tell. It is well-formed and plausible, every other line on the page looks fine, and the source line is the only place it can surface.

Is printing provenance under every figure expensive to build?

Almost nothing. The execution layer already knows every one of those facts (it had to, in order to run the query), so printing them is formatting. The reason it is rare is not cost: a system that prints its own provenance can be caught being wrong, and a system that does not, cannot.

Bring the question your reports cannot answer

Thirty minutes against a live SAP system we provide: no access to yours, nothing to set up. If it cannot answer, you find that out in half an hour rather than three months into a pilot.