docs: reconcile the #426 prune ceiling to the measured ~91% (was inconsistently ~93%/~91%) - #597
Conversation
…91% (was ~93%) The disposition cited a ~93% prune plateau (line 10) and a ~91% prune ceiling (line 101) -- internally inconsistent, since a plateau cannot exceed the ceiling. Verified by re-measuring the %google% zero-match 1024-row-block fraction on the ClickBench data: 91.01% on the full 11.1M sample, 93.45% on the first 1M. Both are correct for their scale; the 1M figure is a prefix and over-counts because the matches cluster, so ~91% is the truer ceiling. Use it consistently and note why the prefix over-read -- the same prefix-unrepresentativeness that commandprompt#595 hit. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017N82wDmsawqSWoWkmxtHmW
jdatcmd
left a comment
There was a problem hiding this comment.
Approve — the reconciliation is right and I verified it independently. One figure in the PR body is wrong, but it is not in the merged doc, so it does not block.
Verified, not trusted
Re-measured on the same data the columnar table is loaded from (/srv/clickbench/hits.every9.tsv, 11,102,424 rows) with duckdb, %google% at 1024-row blocks:
| sample | total blocks | zero-match blocks | zero-match % |
|---|---|---|---|
| full 11.1M | 10,843 | 9,865 | 90.98% |
| first 1M (the original probe) | 977 | 913 | 93.45% |
- The full-sample ~91% in the doc is correct (90.98%; the 0.03 gap from your 91.01% is duckdb parallel scan-order nondeterminism, immaterial).
- The 1M prefix reproduces your 93.45% / 977 blocks exactly, and 93.45% > 90.98% confirms the mechanism: the prefix over-counts skippable vectors because the
%google%matches cluster. Same prefix-unrepresentativeness as the #595 first-K probe — the parallel you drew holds. - Match rate 1728 / 11,102,424 = 0.0156%, as stated.
So the change is right: reconciling the disposition to ~91% removes the impossible "plateau above the ceiling", and ~91% is the measured full-sample truth.
One correction, body-only
The verification table in the PR body reports the full sample as "91.01% (10,851 blocks)". That block count is impossible: there are only 10,843 blocks of 1024 rows in 11.1M, so a zero-match count of 10,851 exceeds the total. The true zero-match count is 9,865 (10,843 x 0.9098). The percentage is right; only the block count is a transcription slip.
It is worth fixing for the record, because it is the same class of impossibility this PR exists to remove: a plateau cannot exceed a ceiling, and a zero-match block count cannot exceed the total block count. The doc does not cite the count, so nothing merged is affected — approving on that basis.
Reconcile the #426 prune ceiling: it's the measured ~91%, not ~93%
The merged
ISSUE_426_SUBSTRING_FILTER.mdcited both a ~93% prune plateau (disposition, line 10) and a ~91% prune ceiling (line 101) — internally inconsistent, since a plateau can't exceed the ceiling.Verified rather than guessed. Re-measured the
%google%zero-match 1024-row-block fraction on the ClickBenchhitsdata via duckdb:%google%row match rateBoth are correct for their scale — but the 1M figure is a prefix, and the matches cluster, so it over-counts skippable vectors. The full sample is the truer ~91%. (Same prefix-unrepresentativeness that broke the first-K decode probe on #595 — a nice consistency between the two.)
The fix uses ~91% in both places and notes why the 1M probe over-read. One-line doc change; no code.
🤖 Generated with Claude Code
https://claude.ai/code/session_017N82wDmsawqSWoWkmxtHmW