Skaters.jl
July 13, 2026 ยท View on GitHub
Online, univariate, distributional time-series forecasting by conjugation. The Julia port of skaters: every prediction is a full probability distribution, updated in constant time per observation, with calibration diagnostics carried in the state.
using Pkg
Pkg.add(url = "https://github.com/microprediction/Skaters.jl")
(General-registry registration will follow once the surface settles.)
Quick start
using Skaters
sk = laplace(k = 1) # the general forecaster; no tuning parameters
st = nothing
d = nothing
for y in mystream
d, st = sk(y, st) # d[1] is the one-step-ahead predictive
end
dist_mean(d[1]) # point forecast
dist_quantile(d[1], 0.9) # any quantile
dist_logpdf(d[1], y_next) # density scoring
st["z"][1] # calibration: N(0,1) surprise of the last
# arrival under the forecast issued FOR it
laplace(k = 20) emits twenty horizons per step. st["pit"] and
st["z"] make any stream self-diagnosing: flat PIT histogram means the
forecasts are calibrated, and abs(z) > 4 is an anomaly detector with
stated false-alarm rates (the tails carry an online generalized-Pareto
fit, so tail probabilities mean what they say; measured evidence in the
main repository).
What is inside
The full library, not a subset: fourteen invertible transforms, four residual leaves, precision-weighted and Bayesian ensembles, the multi-scale mixture, the lattice projection for repeating values, the terminal CRPS leaf, the GPD tail splice, the prediction parade, the covariance estimators, the periodicity detector, the spec builders, and the adaptive search engine.
Why trust it
This port is parity-locked to the Python reference: 105,798 probe
values (means, spreads, densities, quantiles, CRPS across 56 scenarios)
must agree to 1e-6 with vectors generated by the reference before
anything ships. Pkg.test() runs that gate plus seven adversarial
robustness scenarios (constant series, lattices, a 1e9 spike with
recovery, a 1e300 tick, scale collapse, volatility whiplash) and exact
bit-level determinism and serialize-resume contracts.
PORTING.md records the pinned reference commit and the refresh ritual.
Ecosystem
- Reference implementation and benchmarks: microprediction/skaters
- The site, papers, and studies: skaters.microprediction.org
- Sibling ports: JavaScript (npm
skaters), R (skaters-r, r-universe installs), and a portable Rust core with a Python accelerator backend.