The stuff this cycle made, archived 2026-10-21 and rendered from
git show rev65-attempt28-iterations11ofx:stuff/….
outages-needed.mdprobation-length.mdrare-failure-floor.mdRule 1 ends probation when the 95% upper bound on p99 outage length is within 25% of the estimate. This note works out how many *observed outages* (not intervals) that takes, because that count, not the calendar, sets probation length.
A distribution-free upper bound on p99 uses the largest observed outage. It covers p99 with 95% confidence only if 1 - 0.99^n >= 0.95, so n >= 299 outages. Below that there is no nonparametric upper bound at all, so the 25% test cannot even be evaluated. For a guardian with one outage a week that is almost six years.
Outage lengths are usually right-skewed, so fit ln(length) ~ Normal(μ, σ). Then p99 = exp(μ + 2.326σ) and the standard error of μ̂ + 2.326σ̂ is about σ·sqrt((1 + 2.326²/2)/n) ≈ 1.925σ/sqrt(n).
"Upper bound within 25%" means 1.645 · 1.925σ/sqrt(n) <= ln(1.25) = 0.223, so n >= 203·σ².
| spread σ (log scale) | typical ratio p90/p50 | outages needed |
|---|---|---|
| 0.5 | 1.9× | 51 |
| 0.75 | 2.6× | 115 |
| 1.0 | 3.6× | 203 |
1/ln(1+tol)². At 50% tolerance the counts drop to about a third (σ = 1 → 61 outages).rare-failure-floor.md has to apply to guardians that fail often too, not only to rare ones.Open question: the lognormal fit must be checked (for example by a QQ plot of log lengths) before the 200·σ² count is trusted. A heavy tail beyond lognormal would make the bound too optimistic.
Rule 1 ends probation when the 95% upper bound on a guardian's p99 outage is within 25% of the estimate. Rule 2 only counts outages whose check windows sit at least one p99-outage length from other counted windows. This note works out what those two rules imply for probation length, so the stopping point comes from data and not from "30 days".
With no assumption about the outage distribution, a 95% upper bound on the 99th percentile exists only if the largest of n observations has a 95% chance of exceeding it:
1 - 0.99^n >= 0.95 => n >= ln(0.05) / ln(0.99) = 298.1 => n >= 299
So with one check interval per day, a distribution-free grace floor needs at least 299 days. That bound is just the worst observed outage, so the "within 25%" test cannot usually be met. A 30-day probation gives no p99 bound at all under this method.
If outage durations are exponential with mean m, then p99 = m * ln(100), and the ratio of upper bound to estimate is the same for p99 as for m. With k counted outages, the 95% upper bound on m is 2k*m_hat / chi2_{0.05}(2k). Using chi2_{0.05}(2k) ~ 2k - 1.645*sqrt(4k):
upper / estimate ~ 1 / (1 - 1.645 / sqrt(k)) <= 1.25 => sqrt(k) >= 8.22 => k >= 68
| counted outages k | upper/estimate (approx) |
|---|---|
| 10 | 2.08 |
| 30 | 1.43 |
| 68 | 1.25 |
| 100 | 1.20 |
The probation length is then 68 divided by the rate of *counted* outages. Rule 2 lowers that rate: outages that cluster inside one p99 length of each other count once, so a guardian that fails in bursts takes longer to graduate. That is intended, because a burst is one incident and not 68 pieces of evidence.
Rule 1 ends probation when the 95% upper bound on p99 outage is within 25% of the estimate. A guardian with almost no outages never gets there: you can't estimate the size of outages you haven't seen.
If there are 0 outages in N independent counted intervals (spaced per rule 2), the 95% upper bound on the per-interval outage *rate* is about 3/N (the rule of three). For example:
| counted intervals N | rate bound (95%) |
|---|---|
| 30 | 10% |
| 100 | 3% |
| 299 | 1% |
At N = 299 the rate bound reaches 1%. That means p99 outage is 0 at 95% confidence: in 99% of intervals there is no outage.
Before N = 299, set the grace floor to the fleet-pooled p99 outage length, which is the p99 over all graduated guardians' counted outages. Don't use the guardian's own data. The guardian graduates early only if both of these hold:
With daily intervals, 30 days gives a rate bound of 10%, which says nothing about p99. A reliable guardian on a hand-picked 30 days gets a floor that has no evidence behind it. The pooled floor at least uses real outages from similar guardians.
Pooling assumes the fleet is homogeneous. If a few guardians fail often and with long outages, they push the pooled p99 up, and reliable guardians end up with floors that are too long. A pooled value cut down to guardians of the same type or provider would fix that, but each type then needs enough guardians to pool from.