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 | 40 | 38 | 2 | 0 | 2026-10-20, commit 27b7ec9 |
| Flat growth | 63 | 63 | 0 | 0 | 2026-10-20, commit 27b7ec9 |
| Logistic growth | 52 | 52 | 0 | 0 | 2026-10-20, commit 27b7ec9 |
By feature
| Feature | Cases | Match | Intentional differences | Don't match yet |
|---|---|---|---|---|
| Seasonality, events and regressors | 35 | 35 | 0 | 0 |
| Uncertainty ranges | 19 | 19 | 0 | 0 |
| Cross-validation and choosing settings | 15 | 15 | 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.