The short answer
Define one eligible conversation episode, its start, the first qualifying reply and the end of observation. A still-open episode has a known observation duration and an unknown eventual reply time. Keep it separate from a completed reply: the median among responders is not the median for every episode. A product-limit estimate is conditional on a defensible observation process, and its median may remain unreached.
What you’ll take away
- A read receipt, sent status and qualifying reply are different events.
- An open observation is neither a zero-day reply nor a completed failure.
- Report the risk table and an unreached median instead of extrapolating a deadline.
Define the episode and the clock
For an already authorized creator or client conversation, choose a practical event such as the first substantive answer to one agreed question. Record a consistent start, time zone and unit. A follow-up message does not silently restart that clock, and several messages inside one episode are not several independent response times. Do not use presence icons to reconstruct a reply that was never observed.
Use only records you may legitimately analyze. Keep identifiers and message contents out of public summaries; the supplied exercise has fictional IDs and no inbox. Unknown starts, replies before the start and missing observation ends need review, not an invented duration. A calendar with only dates cannot justify precise hourly claims. This is not an outreach or surveillance workflow.
Keep a last observation distinct from a reply
NIST describes right censoring as observing a unit up to a time without observing its event. We apply that distinction to a clearly labeled teaching example of waiting for a reply. Event=1 means the defined reply occurred at the stated duration; event=0 means it had not occurred by the last observation. No later reply time is known.
Administrative observation ends can leave episodes with different follow-up lengths. Whether those ends are unrelated to the underlying reply process is an assumption to examine. Selectively losing difficult conversations, changing campaigns or treating a terminated request as ordinary follow-up censoring can invalidate the interpretation. Keep such problems explicit rather than assume the calculation repairs them.
Trace all eight constructed episodes
Our original fixture has replies after 1, 2 and 3 days, plus still-open observations ending after 2, 4, 5, 6 and 6 days. The three responders have median 2 days. Calling that “the median reply time across eight episodes” discards five unresolved eventual times. The observed reply count is 3/8; unequal follow-up means that fraction is not a common-horizon response probability.
For the unmodified product-limit illustration, start S=1. At each reply time multiply S by (n−d)/n, where n is still at risk immediately before that time and d is the number of replies then. Censoring removes units for later times without counting a reply. We declare events before censor removal at equal recorded times, consistent with the survival library convention; coarsely rounded times still need a declared rule.
| Day | At risk before | Replies | Censored after replies | Estimated still unanswered |
|---|---|---|---|---|
| 1 | 8 | 1 | 0 | 0.875 |
| 2 | 7 | 1 | 1 | 0.750 |
| 3 | 5 | 1 | 0 | 0.600 |
| 4 | 4 | 0 | 1 | 0.600 |
| 5 | 3 | 0 | 1 | 0.600 |
| 6 | 2 | 0 | 2 | 0.600 |
Let the median remain unreached
The constructed estimate never reaches S≤0.5, so its median is not reached in the observed support. The final 0.6 is not a prediction that 60% will never answer. There are no observations beyond day 6. The calculation uses the unmodified product-limit rule, not NIST’s separate probability-plot adjustment; with remaining censored units the last reply need not take S to zero.
At day 3 the conditional product-limit reply estimate is 1−0.6=0.4, while 3/8=0.375 is the raw observed-event fraction over unequal windows. Those answer different questions. Neither is a measured population response rate from these invented episodes. Eight fixtures establish no uncertainty coverage, creator benchmark or promised service time.
Resolve three complete reporting decisions
T1 — The complete fixture gives responder-only median 2 days and product-limit median unreached. Decision: state both with their different bases, the eight-unit ledger and observation limit. Result: no universal “reply within two days” promise.
T2 — A supplied row has event=0 after 4 days. Decision: retain “no qualifying reply observed through day 4”; do not turn it into a reply at day 4, zero, or a permanent rejection. Result: its known observation contributes to earlier risk sets without fabricating the eventual outcome.
T3 — A timestamp yields a negative duration, or the event code is unknown. Decision: hold the numerical review and resolve the permitted source record. The offline checker rejects negative/nonfinite durations and invalid event codes. Result: no silent deletion that makes the reported median look faster.
Save an observation contract and a bounded statement
The worksheet keeps episode eligibility, start/event definitions, units, observation end, censoring reasons, time-tie convention, complete risk table and permitted conclusion. The packet contains every fictional row, the computed result and a dependency-free Python checker. It does not import messages, contact anyone or validate independence.
The primary censoring/product-limit guidance and the survival author’s discussion of informative censoring and ties were read on 1 November 2026. Our application and all numbers are constructed. Preserve an actual study’s registered outcomes and withdrawal rules; this explanation neither changes them nor establishes a reader, relationship or customer result.
Sources & product references
Product details reflect the publication date. External features and interfaces may change.




