Benchmarks
Every benchmark case runs the same input through Effect Prophet and Python Prophet 1.4.0, then compares every forecast row, the trend, each component and the fitted noise. Only matching cases are timed. How close are the results? explains how we test.
Each trend has its own page with every case run for it. The feature pages gather the cases for one feature from all three trends, linking to the same case pages.
By trend
| Trend | Cases | Match | Intentional differences | Don't match yet | Run |
|---|---|---|---|---|---|
| Linear growth | 55 | 53 | 2 | 0 | 2026-11-07, commit 3a5a6ce |
| Flat growth | 72 | 72 | 0 | 0 | 2026-11-07, commit 3a5a6ce |
| Logistic growth | 58 | 58 | 0 | 0 | 2026-11-07, commit 3a5a6ce |
By feature
| Feature | Cases | Match | Intentional differences | Don't match yet |
|---|---|---|---|---|
| Seasonality, events and regressors | 37 | 37 | 0 | 0 |
| Uncertainty ranges | 24 | 24 | 0 | 0 |
| Full Bayesian fitting | 7 | 7 | 0 | 0 |
| Cross-validation and choosing settings | 25 | 25 | 0 | 0 |
Timings come from one machine and describe this workload only. They are not a general speed ranking. Where Python is faster, it is often because Python runs Stan's optimizer as compiled C++, while Effect Prophet runs the same algorithm as WebAssembly with narrower vector instructions. The gap is widest for Newton's method on short histories with many parameters.