Confirmation analysis specification, 2026-09-30.1. AI-assisted code and drafting. No completed empirical timing report is claimed at this release. The existing node collector, selection rule, 30-day study clock and immutable daily ZIP files are unchanged. The first full UTC day after a valid collecting interval starts the study. All 30 exports must exist before report generation. The website reads that report only when its SHA256 matches the archive index. Until then it shows actual rolling cohort counts and measured coverage only. When the report exists the analysis renders automatically on /confirmation-times/#analysis. Reproduce: download /confirmation-times/?format=report, rename the .py.txt source to .py, then run Python 3 (standard library only): python analyze_confirmation_report.py report-30d.json analysis.json Use the observer package to verify the daily ZIP file SHA256 values and rebuild the original frozen report. This summary does not replace input verification. Never concatenate recurring cohorts from daily snapshots as separate transactions. All outcome shares use every sampled record. Confirmed-only median and P90 require at least 20 matched confirmations. Pending/gap/reorg/disappeared states are not successes or discarded observations. No Kaplan-Meier curve, confidence interval or network-wide deadline probability is implied; censoring may be informative, and fee-conditioned outcomes are not collected by this protocol.