WP30 statistical analysis plan (registered with the protocol freeze)
- Unit of analysis: one (document, question, condition, model pair) trial. Documents are the independent clusters; all questions of a document are dependent observations.
- Quality endpoints: synthetic/exec:
correct∈ {0,1} (exec graded by hidden tests: all-pass = 1; pass rate reported as secondary); public QA: LongBench F1 (max over reference answers) with the LongBench normalization.quality_operationalsets failed/invalid attempts to 0 so that failures cannot vanish; conditional quality over successes is reported separately. - Resource endpoints: serialized payload bytes (measured), cache tensor bytes (measured), scenario latencies assembled from recorded spans: cold = build + compress/serialize + load + receiver; warm per-query = load + receiver; amortized(N) = build/N + warm; peak MLX memory (prefill and decode recorded separately).
- Uncertainty: document-level cluster bootstrap, 2 000 replicates, percentile 95 % intervals, for means and for paired
differences on identical instances. Bootstrap two-sided p-values for the registered primary family, Holm-corrected (6 tests,
protocol/hypotheses.md). Everything else is exploratory and labelled so. - Latency: p50/p95 and means with sample counts; timing trials in the core run alone on the GPU (pilot timings excluded).
- Failures: operational success rate over all scheduled trials; categories success/invalid_output/timeout/oom/incompatible/ implementation_error/unavailable/budget_exhausted; retries keep both attempts.
- No test-set tuning: prompts, budgets, selection hyper-parameters, and the router are fixed on dev before the core run.