Engine 19.0.0rc597 · Reader 9.0.0rc656 · Development snapshot
How much longer might an open object take?
The remaining-time estimate is the median additional time to closure, conditional on an object already having reached its current age while still open. Ghost Observatory publishes it as objects.remaining_median_sec.
The estimate comes from the analysis scope's Kaplan–Meier model. It changes with the object's age because reaching that age provides information: the object has already outlasted some of the observed closures.
The conditional median formula
Sremaining(r | a) = Ŝ(a + r) / Ŝ(a)
r50 = first future t with Ŝ(t) ≤ ½ Ŝ(a), minus a
The Engine searches future model steps for the first half-survival crossing and subtracts current age. It permits an absolute tolerance of 10−12 in the crossing comparison.
A conditional median differs from subtraction
Suppose ten objects closed at ages 2 through 11 days. Two other objects remain open at the cutoff: one aged 3 days and one aged 8 days. The product-limit estimate has an overall median time to close of 7 days.
| Age | Estimated share still open | What it tells us |
|---|---|---|
| 3 days | 5/6 ≈ 83.33% | Current-age denominator |
| 7 days | 25/54 ≈ 46.30% | Still above half of 83.33% |
| 8 days | 10/27 ≈ 37.04% | First future step below that threshold |
Half the current survival is 41.67%. The future crossing occurs at age 8, so the remaining median is 8 − 3 = 5 days, published as 432,000 seconds. Subtracting age from the overall median would give 7 − 3 = 4 days and answer the wrong conditional question.
There are eight observed closures strictly older than age 3, enough for this estimate's publication floor. The eight-day-old object has only three older closures and receives no remaining median.
The model's population and clock
All estimates in a scope use the same pooled model of eligible top-level process objects. Completed, cancelled and merged objects all count as closed. The forecast therefore concerns becoming closed by any supported outcome, rather than successful delivery alone.
Current age is windows.as_of_ts minus the admitted first observation. The cutoff is fixed by the result file; opening the Reader tomorrow does not silently advance it. Durations are elapsed seconds, including nights and weekends.
Objects begun before a bounded window, child objects, unknown outcomes and inadequate temporal or ordering evidence are excluded. An eligible object beginning inside the window and remaining open at the cutoff contributes a censored observation.
Why a forecast can be empty
The scope must meet min_traces, default five objects. For a particular open object, at least five model objects must have closed at ages strictly greater than its current age. The survival curve must also have positive survival at that age and reach a future conditional half-survival step.
The Engine does not extend a positive survival tail to manufacture a median. Closed objects and objects outside the model also have no remaining forecast. The forecast_withheld diagnostic explains affected open-object populations.
Even a published median is an estimate for this pooled history. It is not a promised completion date or a person-specific prediction. The mix of work objects and the censoring assumptions still matter.