Demonstration
The dependence tax
Barber & Pananjady’s Figure 1, live: split conformal on moving-average noise loses coverage linearly in \(t/n\) — and an order of magnitude more gently than the worst case allows.
The setup, precisely, because everything hangs on it. Let \(W_j\) be i.i.d. standard normals and give the noise a memory of \(t\) steps: \(\varepsilon_i = \sum_{j=i-t}^{i} W_j\), a moving average of order \(t\), so \(\varepsilon_i\) and \(\varepsilon_{i'}\) share terms whenever \(|i-i'|\le t\) and are independent beyond that. Data are \(Y_i = f(X_i) + \varepsilon_i\) with a pretrained, memoryless oracle \(f\), so the score is \(s_i = |Y_i - f(X_i)| = |\varepsilon_i|\). Split conformal does exactly what it always does: take the \((1-\alpha)(1+1/n)\) empirical quantile of the \(n\) calibration scores and ask whether the test score \(s_{n+1}\) falls below it. Coverage is the probability of that event over the whole path \((\varepsilon_1,\dots,\varepsilon_{n+1})\) — a marginal, ensemble-of-histories statement, estimated below by a running Monte Carlo that accumulates while you watch (the shaded ribbons are \(\pm 2\) standard errors).
Three calibration sizes \(n\), \(2n\), \(3n\) run side by side against the ratio \(t/n\). Two things to see. First, the curves collapse: coverage depends on dependence only through \(t/n\), the paper’s Figure 1 in both directions at once. Second, the collapse is a straight line, and a shallow one — the grey reference has slope \(\alpha\) per unit of \(t/n\), so at 90% nominal a dependence range of a tenth of your calibration window costs about one point of coverage.
Tick the zoom-out box to see what the theory actually promises: the switch-coefficient bound of Barber & Pananjady (2026) caps the loss at \(\min_\tau\{\tau/(n+1) + 2\beta(\tau)\}\), and for MA(\(t\)) noise the \(\beta\)-mixing coefficient vanishes beyond lag \(t\), so the floor is \(1-\alpha-(t+1)/(n+1)\) — the dashed blue line. The bound is linear in \(t/n\) (earlier analyses gave \(\sqrt{t/n}\)), it is tight over stationary mixing processes, and it is two-sided: a matching ceiling stops the set silently over-covering. The empirical tax then comes in an order of magnitude under the cap.
Takeaway. Nothing about the algorithm was changed, and nothing about the guarantee was redefined: this is plain split conformal on a dependent series, and its marginal coverage bends rather than breaks — by about \(\alpha\cdot t/n\) in practice, by at most \(t/n\) in the worst case. That is why the folklore says conformal “works” on time series. Two cautions carry over from the rest of the site: the statement is an average over paths, so it says nothing about coverage given the regime you can see (see conditional coverage and sharpness), and what it does not survive is drift — the drift demo is the companion failure mode.
Acknowledgement: thanks to Peter Urbani for the suggestion.
Using conformal prediction in your own project? Tell Claude: “Read https://conformalprediction.net/SKILL.md and create a project skill from it.” It adds a check for whether your coverage is conditionally trustworthy.