QUASHZ
refusing a row whose outcome had not been decided yet when the decision would have been made.
A vendor sends a dataset and one verdict decides whether anything may be trained on it. The first row this refuses is one whose OUTCOME was not yet decidable at the decision time, which no data contract can express because no data pipeline has a target. When each number first existed is recovered by bisecting a public archive rather than assumed from a lag table: 41 of 43 quarters were served between 115 and 121 days after the day they are labelled and two took 150 and 175, and reading them by their label date would use a number the publisher had not published on 94.8 per cent of decision dates.
- Tests
- 96
- Python
- 3.11 to 3.13
- Release
- v0.1.0
- Licence
- MIT
The demo, as it really ran
$ uv run python examples/what_was_knowable.py
43 quarterly publication dates recovered from the archive, by bisection, never assumed. How long after the day it is labelled each figure was first served: 41 of 43 between 115 and 121 days and one at 150 days: 2018-10-01, served 2019-02-28 and one at 175 days: 2025-07-01, served 2025-12-23 A pipeline using the average of those would be right most of the time, and a quarter wrong twice in ten years. Asked on 2024-04-24, which quarterly figure could a decision have used? the quarter labelled 2024-01-01 NOT UNTIL 2024-04-25 Reading it by its label would have used a number that did not exist for another day. That is one row. Measured across the whole frame: 2661 of 2808 decision dates (94.8%) would read a figure the publisher had not published, by up to 175 days. And what the frame does about it: 2828 days a model could have run on 2808 days it could have learned from 20 days where a decision is possible and supervision is not The last figure is not a defect to be fixed. It is every day near the present. The last row admitted is 2026-07-24, deciding on a yield published 2026-07-23 and judged on an outcome dated 2026-08-20. The quarterly figure it may read is already 388 days old. The first row refused after it is 2026-08-21, and the reason is not that a column was null. It is that the answer had not happened yet.
Output captured on 2026-08-29. It is committed to the repository and a test fails when it stops matching a live run, so this page cannot quietly drift from the code it describes.
Read it
- Source on GitHub the README carries the argument in full
- Release v0.1.0 changelog and tag
The rest of the toolset
- QUACKZ deflating a backtest that only looks good because it was picked out of two hundred
- QUOTEZ market data an agent can read and cannot act on
- QUELLZ measuring what prompt-injection containment costs in utility as well as in attack rate
- QUIDZ refusing the outbound payment that would have gone out twice
- QUESTZ stopping a scraper before it writes a CSV from a page that changed shape
- QUIZZ answering what a statistic said at the time, and refusing when it cannot
- QUARANTINEZ treating an outcome the venue never confirmed as terminal rather than as a retry
- QUENCHZ deciding in the open what a tool server gets free while it is still somebody's subprocess
- QUILTZ proving infrastructure code wrong without a cloud account, and saying what that cannot show
- QUAYZ telling a crash loop from an OOMKill, and naming the failure that no single field finds
- QUARRYZ keeping every version a statistical office published, and failing the build when it quietly issues another
- QUALMZ a fixed number of looks at the holdout, where re-running the same configuration does not buy another
- QUEUEZ ordering a feed by its sequence, because on a real recorded session the clock goes backwards
- QUANDARYZ counting the distinct screens a component can settle into when its responses arrive out of order