Engine 19.0.0rc597 · Reader 9.0.0rc656 · Development snapshot
What does due-date risk estimate?
Due-date risk estimates the probability that an open object will still be open at its due instant, given that it has already reached its current age. The Ghost Observatory Engine publishes the value between zero and one as objects.due_miss_probability.
Completed, cancelled and merged objects all count as closed in the model. A cancellation before the deadline therefore ends survival. The field does not estimate the probability of delivering a successful result late, even though its stored name contains “miss”.
The conditional probability
P(still open at due | open now) = Ŝ(u) / Ŝ(a)
Both ages use the same first observation: a is as_of_ts − first_ts, and u is due_ts − first_ts. The cutoff comes from the result's windows.as_of_ts, not the time at which somebody opens the Reader.
A worked probability and its basis
Use a model containing ten objects closed at ages 2 through 11 days, plus two objects still open at ages 1 and 8 days. The younger object is due five days after the cutoff, when it will be six days old.
| Quantity | Value |
|---|---|
| Current age | 1 day |
| Due age | 6 days |
| Survival at current age | 1 |
| Survival at due age | 6/11 |
| Closures strictly older than current age | 10 |
| Published probability | 6/11 ≈ 0.54545, or 54.55% |
The probability is supported by ten later closures, satisfying the default minimum. The other open object, aged eight days, has only three older closures. Its due_miss_basis_n can be published as three, while its probability remains empty.
What does the basis count?
due_miss_basis_n counts model objects that closed at ages strictly greater than the current object's age. It is neither the total model population nor the number currently at risk in the survival calculation.
The probability itself still uses the full eligible survival model, including censored observations. The closure count is an additional publication requirement: the Engine withholds the probability when too few later closures support it.
When no probability is published
The whole model must meet min_traces, default five. The object must have positive survival at its present age and at least min_due_miss_basis older closures, default ten. Both settings are configurable; changing a threshold changes publication, not the evidence already observed.
The due instant must be at or after the cutoff. A due time strictly before as_of_ts is already past due; the Engine does not attach a new future probability to it. Objects that are closed, have an unknown outcome, lack a due date or fall outside the eligible model also have no such estimate.
A due age beyond the oldest observed age is unsupported while survival remains positive. The Engine permits that tail only after the observed curve has reached zero. A published zero is a value of this model, not a guarantee about future objects.
The pooled model admits eligible top-level process objects with adequate identity, order and clock evidence. It excludes objects begun before a bounded window. The forecast_withheld diagnostic explains affected open objects.
How the Reader uses it
The Objects workspace's At risk view lists open objects, putting already past-due objects first, then ordering by published risk with missing probabilities last, followed by age. Past-due status is a comparison of stored timestamps; it is not a stored probability of 100%.
An object's due forecast is separate from the source system's per-instance SLA result. Inspect the due timestamp, basis count and model population before using the ranking to prioritize review.