Method
How a figure earns its label.
A number is not a fact because it appears on a slide. It is a fact because you can name the artefact it came from and the operations performed on it. Every figure on this site carries a stamp saying which it is. The stamps are computed by rule, not chosen by an author.
The three standing rules
- A model assumption may fill a gap. It may never overwrite a record fact. Where the record speaks, the model is silent.
- Unknown is not zero. A missing payment is not a payment of nothing. Treating it as zero turns an open question into a settled loss.
- Every "if" points at the act that would make it an "is." A counterfactual without a named closing document is decoration.
The six labels
A value read directly off a source artefact. A charge on an 837 line. A paid amount on an 835. A deposit on a bank statement.
Payer paid $412.18 on claim line 88431-2, per remits_835.csv.
Arithmetic over record facts only. No assumption enters. If any input is unknown, the result becomes a gap rather than a smaller number.
Realized $/wRVU = payer dollars received ÷ mapped work units.
A record fact combined with a declared assumption. Always carries the assumption in plain words and the document that would replace it with a fact.
If the unresolved lines paid at the record's median ratio, they would be worth $X.
Arithmetic over assumptions only. Useful for planning. Never admissible as a statement about what happened.
Projected collections at an assumed 4% volume growth.
A required input the record does not establish. Rendered as a gap, never as zero, and always paired with the act that would close it.
No remittance on record for 216 claim lines. Closes on: the 835 for those lines.
Two sources establish incompatible facts. The conflict is displayed, not resolved by preference.
The 837 names payer A on a line the 835 attributes to payer B.
The algebra
Combining figures produces a label by rule. A derived figure cannot be cleaner than its dirtiest input.
| RECORD + RECORD | → | RECORD-DERIVED |
| RECORD + MODEL | → | COUNTERFACTUAL |
| MODEL + MODEL | → | MODEL-DERIVED |
| any required input missing | → | GAP |
| any unresolved conflict | → | CONTRADICTION |
Governed totals go further. A counterfactual or model figure is refused entry to a total outright — not folded in quietly. Where some inputs are unknown, the total is reported as partial and says how many inputs it excluded.
Match states
At every handoff — work to claim, claim to remittance, remittance to cash — a link is recorded in one of five states. Collapsing them into a boolean is how a break disappears.
- matched — exactly one counterpart on the record.
- unmatched — no counterpart. A gap, with a named closing document.
- ambiguous — more than one candidate counterpart, no basis to choose.
- contradictory — counterparts exist and disagree on a material field.
- not_applicable — the link is not expected for this row.
The intake ladder
Sources arrive on rungs. Each rung adds a class of evidence and buys more resolution. It never rewrites the rung below it: a later file can explain a difference the earlier stage found, but it cannot make that difference disappear.
Stage 1
Your own books
Establishes: work performed, at the grain the clinical export carries; work units where a reference schedule covers the code; cash that arrived, under a declared deposit-classification rule; a single, honestly tangled difference between the two.
Cannot establish: claim lifecycle; payer adjudication; denial cause; contracted rate; which specific step lost the money.
Stage 2
The wire
Establishes: which work became a claim, and which did not; what the payer adjudicated: allowed, denied, adjusted, patient responsibility; payer payment by remittance, separate from cash; a carve of the tangled gap into named slices, plus an explicit remainder.
Cannot establish: what the billing vendor posted, wrote off, or worked; contractual entitlement without the governing agreement; why cash and remittance differ, when no trace matches.
Stage 3
Their raw ledger
Establishes: what the vendor posted against each payer payment; what was written off, and under which reason; which denials were worked and which went stale; named fees or deductions sitting between remittance and cash.
Cannot establish: whether a disagreement is error, methodology, or misconduct — that is surfaced, not adjudicated.
Stage 4
Their story
Establishes: whether each reported figure matches the payer record; whether it matches the vendor's own raw ledger; whether a difference is methodology rather than error; which reported figures are not independently testable at all.
Cannot establish: intent; any conclusion the underlying records do not carry.
Four rules the engine enforces
- No row is swallowed.
- Every claim line, encounter, deposit and remittance row lands in exactly one visible class, and the classes are required to sum to the population that entered. A row that fails a join, a lookup or a constraint is parked and counted — never dropped, never rounded into a neighbouring bucket.
- Cash and remittance are separate evidence.
- A remittance is the payer's account of itself. A deposit is money. Neither is used to prove the other. The EFT trace is the only join, and its cardinality is stated rather than assumed one-to-one.
- Money is handled in whole cents.
- Every reconciliation is carried out in integer cents, so a closure either holds exactly or reports its remainder. Nothing closes because of a rounding tolerance.
- Unknown identities stay unknown.
- An unrecognised payer, facility or place of service resolves to unresolved, not to the most common value. A code with no reference work unit is marked uncovered and excluded from the denominator — it is never counted as zero work.
Repairs and elections
Deterministic cleanup is allowed. Silent cleanup is not. Stripping a dollar sign, reading parentheses as a negative, trimming whitespace — each one is written to a repair log with the original text, the normalised text and the rule that changed it, and each repaired row is labelled as repaired rather than clean.
A load-bearing choice — which bank rows count as professional collections, how an unknown payer is treated — is an election. It is declared with a definition, a status and an author. An election may fill a gap. It may never overwrite a record fact, and it is stamped COUNTERFACTUAL wherever it touches a number.
Where the data lives
Postgres runs in the browser tab, compiled to WebAssembly. Files are parsed and queried on the machine in front of you and discarded on reload. There is no server, no account, and no upload. The bundled demonstration set is synthetic. Real claim data belongs on hardware you control, running the same engine from a fork.