# Bounded CDF presentation and compressed report data

The user requested a maximum distribution resolution instead of large CDF
files. This generation changes derived report storage and plotting. It runs
no engine benchmark and changes no historical evidence or result grade.

## Policy and implementation

The latency notebook stores `data/curves.csv.gz`, with reproducible gzip
headers, plus `data/cdf-resolution.json`. Each source/engine/scenario/transport/
evidence-kind curve has at most 2,000 observed points; `--cdf-max-points` accepts
16 through 2,000. Endpoints and observations nearest the declared quantile
anchors are retained. Extra targets concentrate on the upper tail; any spare
budget fills gaps using existing rows. Values are never rounded or interpolated.
The connected plot omits intermediate distribution steps: its point budget
does not promise a bound on latency error or histogram accuracy.

Summary calculations still consume every original input sample, before CDF
reduction. Existing source selection, sample counts, percentile conventions,
maxima and rankings are unchanged. Sparse summary markers keep their original
evidence grade. Old uncompressed `curves.csv` inputs remain readable; two
simultaneous formats are refused, and generation into a legacy report directory
requires a fresh output directory instead of overwriting old evidence.

The three-language loopback renderer now selects at most 2,000 points without
allocating one cumulative fraction per sample. Its final cumulative fraction
is exactly one; previously the display used `(n-1)/n`. All original table
quantiles, their conventions, maxima, sample counts and prose remain unchanged.
Dense imported curves are bounded at rendering as well as report writing.

The [portable retention policy](../../../../oss/benchmarks/docs/CONTRACT_EVIDENCE.md)
distinguishes derived CDF resolution, declared histogram precision, and
losslessly compressed ordered evidence. Already sealed archives retain their
original bytes and membership, including historical CSV/binary duplicates.

## Verification and limits

Baseline is private main `bf275d694`. All 58 other generator function ASTs and
all 35 other renderer function ASTs are identical to that baseline. The only
changed existing functions are generator `write_data`, `build_notebook`, `main`
and renderer `load_frames`, `_plot_distribution_subset`,
`libhft_threeway_loopback`. The sibling CDF helper adds no third-party package.

The final focused run passes **31 tests, zero failures/errors/skips**, including
all 58 latency notebook and 12 parked comparison notebook code cells executed
in actual kernels. Checks include a million-observation CDF view, dense
independent source curves, rare maximum/tail retention, full-input loopback
tables, gzip byte reproducibility/round-trip, legacy reading and ambiguous
format refusal, invalid budgets, source/output isolation and input preservation.
The retained small fixture's three CSVs remain byte-identical after gzip
decompression; only the intended resolution explanation is added to its original
notebook prose. Public source scan: six files, zero findings.

The initial system-Python import fails because it lacks IPython; the existing
notebook virtual environment is used read-only. The first broader run retains
two stale commercial-context AST expectations already present at the baseline
and one new tuple-unparse assertion failure. The corrected checks normalize
only the previously moved private identity bridge, compare the Java caption's
numeric control flow, and restore only the declared CDF projection before
comparing original table control flow. Original snapshots/assertions are kept.
All failed logs remain alongside the passing continuation.

[Verification inputs and results](evidence/cdf-resolution-20261009/verification.json)
bind 18 source/support files by SHA-256, size and mode.
[The verifier](evidence/cdf-resolution-20261009/verify.py) rechecks those inputs,
the retained baseline ASTs and final test/scan receipts after integration.
No Stage 2 preparation, timing, field parity, source pin, SDK, workload,
shared clock/build/layout API, installed runtime or host job changes. This is
software/report qualification, with no new timing, physical or release grade.
