Dataset: housing-demo. Generated by receipts eval. This file is committed and regenerated on release. The fixtures are seeded synthetic service data with planted ground-truth figures; there is no real personal data.
A number in a funder report that is wrong or invented is the expensive, sometimes irreversible error. So the gated metric is the grounding rate: the share of numbers in the narrative that bind to a receipt. It is fail-closed at 100%; a single unbound number blocks export.
| Metric | Value | 95% CI |
|---|---|---|
| Numbers in narrative | 4 | |
| Bound to a receipt | 4 | |
| Grounding rate (gated) | 100.0% (4/4) | [51.0%, 100.0%] |
| Unverifiable numbers | 0 | |
| Hallucinated-number rate | 0.0% (0/4) | [0.0%, 49.0%] |
Grounding gate (100% required): PASS (observed 100.0%).
This committed run scores the drafted narrative, every number of which comes from a receipt, so it passes. That the gate catches an injected unverifiable number is shown by the merge-blocking test tests/test_grounding_gate.py, not by failing this report.