An admission verdict for a candidate dataset, and the refusal no data contract can express.
The refusal. A row is refused when its OUTCOME had not been decided yet at the moment the decision would have been made. A feature store can tell you a column is null; none of them can tell you the thing being learned had not happened.
When each number first existed is recovered, not assumed. 478 probes against a public archive across 43 quarters. 41 were first served between 115 and 121 days after the day they are labelled; two took 150 and 175. Reading them by their label date would take a figure the publisher had not published on 2,661 of 2,808 decision dates, by up to 175 days.
The archive lies in two ways that return HTTP 200. The wrong host accepts a vintage and ignores it. A date that is not a real vintage serves the nearest preceding one under a header echoing the date that was asked for, so the header cannot detect it and only a content hash of the two probes can.
The verdict. 2,808 rows admitted and 4,123 refused, with the rate never reported without its reasons. Two estimator families over the same purged and embargoed splits: logistic regression at 0.6206 beats all 200 block permutations, boosting at 0.5886 is beaten by one, and the smallest effect each finds at the declared rate is 0.8 and 1.6 standard deviations. Those 2,808 rows are 140 effectively independent observations, which is the number that decides what the rest is worth.
What it does not say. The controls bound what this procedure could have detected on this frame at the effect sizes swept. They establish no absence of anything, and an empirical null is not a multiple comparisons correction.
Verification. 8 required status checks, five of which re-run a measurement and fail if a byte of the result changed, transcripts included. The demo needs nothing but Python.