1. Choose your data
Drag CSV files here, or
One CSV per table. The file name becomes the table name, so items.csv is
referenced by the rules as items.
Loaded tables
2. Findings
How this works, and what it cannot do
Why it runs entirely in your browser
Level 0 exists because of a constraint, not in spite of one: it runs in your own environment, with no cloud cost and no data leaving the machine. That is what lets a planner run it on an export from their own laptop without a procurement process, a security review, a data-processing agreement or an internet connection. The moment a single network call appears, all of that comes back and the adoption story dies.
So this page has, by construction: no fetch, no XMLHttpRequest, no
WebSocket, no sendBeacon, no analytics, no telemetry, no external
fonts, scripts or stylesheets. The rule library and the sample data are embedded in the page
itself, which is also why it works when opened directly from disk.
Verify it yourself: open your browser's developer tools, switch to the Network tab, and run the diagnostic — nothing is requested. Or simply disconnect from the network first: everything still works.
How a finding is built, and what "confidence" means
Rules are JSON data, never code. Each rule names a detection function, a scope filter and a condition built from a fixed operator set; the rule text is never executed, so a rule file cannot introduce behaviour. Every finding carries the evidence that produced it — the actual values compared, the thresholds applied and the arithmetic behind its confidence. You should never see a recommendation here without the data underneath it.
Confidence uses one documented model, applied identically to every finding:
Honest caveat: these numbers are calibrated judgement, not measured
probability. 0.83 does not mean "83% of such findings turn out to be real" —
nobody has that data yet. It is a consistent, explainable ordering of how much inference stands
between the data and the claim.
What is deliberately missing
The strategy document names ten generic detection functions. Seven of them are honestly computable from local flat files, and all seven are implemented here. The other three need a knowledge layer — a business glossary, semantic models, consultant design documents — which are documents rather than tables. Stubbing them would fake coverage, so they are absent and named instead:
Also out of scope at this tier: natural-language explanation and cross-customer pattern learning (Level 1), and any kind of write-back, parameter correction or simulation (Level 2, and only after a read-only-first rollout). Findings here are hypotheses for a human, not instructions for a machine. The engine knows the column names a rule mentions; it does not know what your coverage group means, so it cannot tell a legitimate exception from a defect.