---
name: an-exhausted-wait-is-a-right-censored-observation
description: "A wait that exhausts its budget proves NOT-OBSERVED-BEFORE-EXPIRY, never ARRIVED-AFTER — delayed, absent and filtered all produce the identical observable, so the latency tail has no measured upper endpoint."
metadata: 
  node_type: memory
  type: feedback
  originSessionId: 7da3035c-261a-44d3-b4eb-c2f746962618
  modified: 2026-09-10T14:35:35.233Z
---

Measured 2026-09-10 (v0.69.0 gate, `spt-daemon::sync two_tier_sync_lands_and_gate_refuses_server_side`;
hertz refuted, doyle withdrew, deployah filed the correction on releases#294).

A polling wait — `for _ in 0..400 { probe(); sleep(25ms) }`, panic on fallthrough — that exhausts
all 400 iterations is a **right-censored observation**. It establishes exactly one thing: *no
eligible item was observed before expiry*. It does **not** establish that one appeared afterwards.
The observation stops at the boundary; nothing past it was measured.

So in the FAILED executions these are indistinguishable, all producing "400 polls, no eligible
item, panic":

- **delayed** publication (arrived after expiry),
- **absent** publication (never arrived),
- **retired or filtered** publication (present, but not eligible under the probe's own filter).

**The tail therefore has NO measured upper endpoint.** "DELAYED PUBLICATION, measured" was the
withdrawn claim — it names a mechanism the data cannot separate from two others, and it reads as
quantified precisely because the *passing* runs were measured so well.

**Low IPC does not rescue it.** IPC under 1 % shows the wait is genuinely waiting rather than
burning its budget on the probe. That is a statement about where the time went in the runs that
*completed the measurement*; it says nothing about what happened past the boundary in the ones that
did not.

**Why:** censored data invites a mechanism claim because the *successful* observations are richly
measured — first-success iteration counts, latencies, IPC ratios. The precision is real and belongs
entirely to the uncensored half. Reading it as though it described the censored half is how a
measured-sounding cause outruns its evidence.

**How to apply:**
- Say what the wait PROVES: "no eligible item before expiry." Never "it arrived late."
- Before naming a mechanism from a timeout, list every state that yields the SAME observable. If
  more than one does, the mechanism is UNRESOLVED — write CENSORED into the record.
- Separate what survives: here the boundary defect stayed load-bearing and measured — successes
  observed at 4.448s (176/400) and 9.940s (392/400) against a 10.0s budget, ~2% headroom — so the
  threshold demonstrably sits inside the *successful*-latency distribution and some fraction of
  reds must be boundary jitter. What is NOT established is that any PARTICULAR red is one.
- Splitting a finding into MEASURED and CENSORED halves beats both "classified" and "unclassified":
  it says precisely which future measurement would close it (observe past the expiry — extend the
  probe and record what appears, rather than widening the budget and losing the signal).

Kin: [[duration-over-a-timeout-is-not-a-stretch]] (a duration that SPENT a timeout is not a
stretch), [[a-zero-from-an-absence-grep-is-a-spelling-claim]] (an absence closes only on a positive
read of what IS there), [[an-identical-treatment-controls-the-input-not-the-effect]].
