
ORBIT / HANDBOOK 03
Reconciliation
Data that drives decisions
A number can drive a decision when its grain, its owner, and the way to stop a bad publish are named. This book is how I keep that publish honest.
- Name the grain before the two reports are compared.
- Explain the difference or block the publish.
- Do not publish a number between them.
Data that drives decisions/Reconcile or block
1
Reconciliation
Reconcile or block
Two reports can carry the same name and still disagree. Publishing one of them, or a third number between them, before the difference has a cause, gives a decision a figure it cannot defend.
My operating rule: name the grain before the two reports are compared, explain the difference or block the publish, and do not publish a number between them.
Checked 16 Oct 2026
Why the number gets published
The decision needs a measure today. Two systems already show it, and the two figures differ. The short path is to read out the figure a person recognizes, or to place a third figure between them so the room has one number. That third figure becomes the baseline the next report is judged against. The difference leaves the room under a published name, still unexplained.
Kimball names the design error under that path. If the grain is not declared at the start, the design rests on quicksand, and rogue facts that introduce application errors sneak in. A fact has to be true to the grain. In his doctor-bill example, a year-to-date amount on a line-item row is not true to that grain. When a report combines the rows, the result is nonsense, and it is dangerous because it invites the reader to trust it. He says to omit that fact and calculate the aggregate in the application.
The techniques note states the constraint. Different grains must not be mixed in the same fact table. Each grain is its own table. I treat two reports at two grains as two contracts. One published figure that treats them as the same contract is the mistake that constraint is there to stop.
The practice, and my rule
The principle is Kimball's. In the 2003 article, declaring the grain means saying what one record represents, in business terms. Listing the dimensions and treating that list as the declaration is the mistake he names in his students' designs. He calls the declaration a contract. The 2013 techniques note calls it a binding contract, and it says the grain is declared before the dimensions and the facts.
The control is the Green Book's: the GAO's Standards for Internal Control in the Federal Government, May 2025. Appendix II describes a reconciliation as identifying and comparing transactions from two sets of records, determining whether they were recorded properly, have yet to be recorded, or were recorded improperly and require correction, and explaining the differences. The two sets may both be internal, or one may be external, as in a bank reconciliation. Paragraph 10.04 includes comparisons that relate different sets of data so management can analyze the relationship and act, as a control over performance measures, and it includes comparing file totals with control accounts as a control over information processing. Paragraph 16.05 includes comparisons and reconciliations in ongoing monitoring.
Paragraph 10.10 calls a detective control the activity that discovers an unintended result and corrects it, and it says the usefulness of that control depends on the correction being timely. I use that timeliness as the reason the explanation happens before the publish. The standard does not describe a dashboard, and the block is my rule.
The mechanism that stops the next build is narrower, and it is dbt's. A test returns the rows it was written to catch. Unless it is configured otherwise, a nonzero count is an error. On the dbt build command I checked, an upstream test that fails skips the downstream resources. Set the severity to warn, or widen the threshold, and those resources run. A uniqueness test can pass on both reports while the reports still disagree. The test is how a check I have already named can stop the next model. The reconciliation is the comparison of the two statements.
My operating rule on that practice: name the grain before the two reports are compared, explain the difference or block the publish, and do not publish a number between them. The owner of the definition approves the grain. A green pipeline is not that approval. The analytics field card states the same stop. An unexplained gap stays dark, and a number is not shipped unless the grain, the owner, and the way to stop a bad publish are named. The card draws 4.8%, 6.2%, and 5.1%, and it says those figures are a picture of a disagreement, not a calculated portfolio result. In that picture the published figure is one grain after the difference is explained. It is not the midpoint of the two reports.
Kimball, declaring the grain·Kimball Group, grain·GAO Green Book, May 2025·dbt, build skips downstream·dbt, test severity·Data analytics field card
The day
This is the order I use when a measure is about to be published. The grain is Kimball's. The comparison and the explanation are the Green Book's reconciliation. The skip, when a named check fails, is dbt's error severity, and I use that severity for a check that is supposed to stop the publish. The block, when the cause cannot be named, is my rule. A tolerance counts only when the owner wrote it down before the comparison.
Kimball, declaring the grain·Kimball Group, grain·GAO Green Book, May 2025·dbt, build skips downstream·dbt, test severity
An illustrative break
This is an illustrative scenario. It is not a record of a portfolio I measured, and it states no amount.
Two extracts are both titled overdue balance. In one, a row is an account at month-end, and charged-off accounts are out of scope. In the other, a row is an invoice as of yesterday, and charged-off accounts are in scope. The totals differ because the grains differ. Until the owner names one grain as the published measure, both extracts stay dark. A figure placed between the two totals would be true to neither grain.
What I inspect
These are the questions I ask. They are my check, not a list Kimball or the GAO published.
How I would know
I track four signals. I have no target times, and these definitions are not results I have collected. A green build that leaves two definitions of the same measure in use is not the practice.
Open disagreements are published measures whose second statement differs, and the difference is not yet named.
Time open runs from the difference appearing until it is explained or the publish is blocked.
Blocked publishes are the times the gate stopped a number that would otherwise have shipped.
Owned definitions are measures whose grain has a named owner.
Where I do not use it
An investigation that will not be published can hold two cuts while the cause is still unknown. This page blocks the publish.
The Green Book's reconciliation compares two sets of records. One statement, with no second set, is a different control. A uniqueness test on that statement can still be an error that skips the next model. That is the dbt mechanism on a single statement.
Kimball says an aggregate is used together with the atomic data it came from, because the aggregate carries less detail. I keep them as two grains. I do not fold them into one cell so a chart has a single figure.
The calendar, the blast radius, and the cutover stay on the technology delivery field card. This page stops the number. It does not choose the window.
A slow PD or ECL backtest, and the search over that backtest, stay on the Bayesian optimisation card. This page starts when two reports of a measure disagree.
The Green Book ties a detective control to a correction that is timely. I place that correction before the number is published. A reconciliation that begins after the decision has already used the number is a review of a figure that shipped.
Kimball, declaring the grain·GAO Green Book, May 2025·dbt, build skips downstream·Technology delivery field card·Bayesian optimisation field card
References
- Ralph Kimball, Declaring the Grain (1 Mar 2003)
- Kimball Group, Grain, Dimensional Modeling Techniques (Sep 2013)
- Kimball Group, Dimensional Modeling Techniques PDF (Sep 2013)
- GAO, Standards for Internal Control in the Federal Government, GAO-25-107721 (May 2025)
- dbt Developer Hub, dbt build, skipping on failures (read 16 Oct 2026)
- dbt Developer Hub, test severity (read 16 Oct 2026)
- Data analytics field card
- Technology delivery field card
- Bayesian optimisation field card
1 / 1