This walkthrough produces a human-approved housing outcome report, inspects the receipt behind its publishable figure, and independently re-derives the result. It uses synthetic data and makes no network calls.
- Python 3.12 or newer
- uv
- GNU Make
git clone https://github.com/ChelseaKR/outcome-receipts.git
cd outcome-receipts
make install
.venv/bin/receipts run \
--config examples/housing-demo/report.toml \
--out out/demo \
--approved-by "Demo reviewer"
.venv/bin/receipts verify \
--config examples/housing-demo/report.toml \
--receipts out/demo/receipts.jsonA successful run prints grounding gate: PASS. Verification then reports that
all receipts match. Open these files to follow the trust chain:
out/demo/report.mdis the drafted, grounded, suppressed, approved report.out/demo/trace.htmlexplains every publishable figure without requiring SQL.out/demo/receipts.jsonis the machine-readable receipt manifest.out/demo/bundle.jsonrecords the exported artifacts and their digests.
The example intentionally contains small cells. The default CMS-modeled policy suppresses counts from 1 through 10 and applies complementary controls so the hidden values are not exposed by straightforward subtraction. This is a demonstration policy, not a compliance determination for a specific report.
Audit a short narrative that contains the receipted total and an invented additional number:
printf 'We served 12 clients and 999 additional clients.\n' > /tmp/outcome-receipts-draft.md
.venv/bin/receipts audit \
--config examples/housing-demo/report.toml \
--narrative /tmp/outcome-receipts-draft.mdThe audit exits non-zero and identifies the unbound number. The normal export path applies the same rule and refuses to write a report with an unbound numeric span.
- Report a successful or blocked demo run
- Bring an anonymized schema for mapping help
- Ask a question in Discussions
Do not attach client-level data, identifiers, credentials, or a real service export to an issue or discussion.