Running normalization

One ugly stream, two normalizers. The joke: whatever you feed it, the same bell comes out.

What goes in — rolling z-score of the raw stream (window 30): what naive standardisation gives you
What comes out state["z"]: the PIT of each point under the forecast made for it, through Φ⁻¹
rolling z-score laplace z N(0,1)

Both panels normalize the same observations onto the same axis. The left panel divides by a trailing standard deviation — so trends smear it sideways, volatility bursts fatten its tails, and jumps leave scars for thirty steps. The right panel is laplace's calibration state: each arriving point's probability integral transform under the predictive distribution issued for it, mapped through the standard-normal quantile. Because the model has already absorbed the trend, the volatility clock, the seasonality, and the coordinate, what remains is (roughly) pure N(0,1) innovation — running normalization. That residue is also an anomaly detector: anything with |z| > 4 earned it.

Pick the multiplicative or jumps regime for the full effect. The bars are recomputed live as the stream reveals; the black curve never changes.