// the find
uber/orbit
A Python package for Bayesian forecasting with object-oriented design and probabilistic models under the hood.
Orbit is Uber's Bayesian time series forecasting library, wrapping Stan and Pyro behind a scikit-learn-style fit/predict API. It targets data scientists who want proper uncertainty quantification on forecasts without writing Stan or Pyro models from scratch. The four model families (ETS, LGT, DLT, KTR) cover most practical forecasting scenarios from simple smoothing to nonlinear kernel regression.
The estimator abstraction is genuinely well-designed — you can swap between full MCMC, MAP, and variational inference by changing one argument, which makes it practical to prototype with MAP and validate with MCMC without rewriting anything. DLT with regressors handles real-world demand forecasting problems (trend + seasonality + external signals) in a way that Prophet can't easily match because you get actual posterior distributions, not point estimates dressed up as intervals. The KTR model is the standout: kernel-based time-varying regression is rare in open-source forecasting tools and handles structural breaks more honestly than changepoint heuristics. The backtest module and decomposition utilities are solid — you can actually inspect what the trend/seasonality components are doing, which is necessary for debugging bad forecasts.
Stan as a hard dependency is a real installation tax — cmdstanpy requires a working C++ toolchain, and on Windows or locked-down corporate machines this regularly breaks. The docs list cmdstanpy as a core dependency without adequately warning what that means in practice. Activity has slowed noticeably; the last meaningful commit activity is thinning and the GitHub issue tracker has open bugs sitting untouched for months, which is a risk for anything going into production. KTR training time at scale is painful — the kernel matrix grows quadratically with observation count and there's no sparse approximation, so weekly data over several years is fine but daily data over a decade will stall. The Pyro estimator coverage is thinner than Stan — only LGT and KTR have Pyro implementations, so if you need VI with ETS or DLT you're stuck with Stan.