Defaults, eight months of daily data
match ← All linear growth benchmarks256 days of history. Over 100 rows, so both libraries fit with L-BFGS instead of Newton.
Input
benchmark/inputs/v1/linear-medium.json: 256 history rows and 64 forecast rows.
Output
Largest difference: 0.0018 (0.0018% of the input's range).
Every forecast row from both libraries.
| Date | Effect Prophet | Python Prophet | Difference |
|---|---|---|---|
| 2020-09-13 | 107.7958 | 107.7954 | 0.00045 |
| 2020-09-14 | 107.5631 | 107.5627 | 0.00045 |
| 2020-09-15 | 108.3425 | 108.3420 | 0.00047 |
| 2020-09-16 | 109.9333 | 109.9328 | 0.00052 |
| 2020-09-17 | 111.5460 | 111.5455 | 0.00054 |
| 2020-09-18 | 112.3359 | 112.3353 | 0.00055 |
| 2020-09-19 | 112.0778 | 112.0772 | 0.00057 |
| 2020-09-20 | 111.3662 | 111.3656 | 0.00060 |
| 2020-09-21 | 111.1336 | 111.1330 | 0.00059 |
| 2020-09-22 | 111.9129 | 111.9123 | 0.00062 |
| 2020-09-23 | 113.5037 | 113.5030 | 0.00067 |
| 2020-09-24 | 115.1164 | 115.1157 | 0.00069 |
| 2020-09-25 | 115.9063 | 115.9056 | 0.00070 |
| 2020-09-26 | 115.6482 | 115.6475 | 0.00072 |
| 2020-09-27 | 114.9366 | 114.9359 | 0.00075 |
| 2020-09-28 | 114.7040 | 114.7033 | 0.00074 |
| 2020-09-29 | 115.4833 | 115.4825 | 0.00077 |
| 2020-09-30 | 117.0741 | 117.0733 | 0.00082 |
| 2020-10-01 | 118.6868 | 118.6860 | 0.00083 |
| 2020-10-02 | 119.4767 | 119.4759 | 0.00085 |
| 2020-10-03 | 119.2186 | 119.2178 | 0.00087 |
| 2020-10-04 | 118.5071 | 118.5062 | 0.00090 |
| 2020-10-05 | 118.2744 | 118.2735 | 0.00089 |
| 2020-10-06 | 119.0537 | 119.0528 | 0.00092 |
| 2020-10-07 | 120.6445 | 120.6436 | 0.00096 |
| 2020-10-08 | 122.2573 | 122.2563 | 0.00098 |
| 2020-10-09 | 123.0471 | 123.0461 | 0.0010 |
| 2020-10-10 | 122.7890 | 122.7880 | 0.0010 |
| 2020-10-11 | 122.0775 | 122.0765 | 0.0010 |
| 2020-10-12 | 121.8448 | 121.8438 | 0.0010 |
| 2020-10-13 | 122.6242 | 122.6231 | 0.0011 |
| 2020-10-14 | 124.2150 | 124.2139 | 0.0011 |
| 2020-10-15 | 125.8277 | 125.8266 | 0.0011 |
| 2020-10-16 | 126.6176 | 126.6164 | 0.0011 |
| 2020-10-17 | 126.3595 | 126.3583 | 0.0012 |
| 2020-10-18 | 125.6479 | 125.6467 | 0.0012 |
| 2020-10-19 | 125.4153 | 125.4141 | 0.0012 |
| 2020-10-20 | 126.1946 | 126.1934 | 0.0012 |
| 2020-10-21 | 127.7854 | 127.7841 | 0.0013 |
| 2020-10-22 | 129.3981 | 129.3968 | 0.0013 |
| 2020-10-23 | 130.1880 | 130.1867 | 0.0013 |
| 2020-10-24 | 129.9299 | 129.9286 | 0.0013 |
| 2020-10-25 | 129.2183 | 129.2170 | 0.0013 |
| 2020-10-26 | 128.9857 | 128.9844 | 0.0013 |
| 2020-10-27 | 129.7650 | 129.7636 | 0.0014 |
| 2020-10-28 | 131.3558 | 131.3544 | 0.0014 |
| 2020-10-29 | 132.9685 | 132.9671 | 0.0014 |
| 2020-10-30 | 133.7584 | 133.7570 | 0.0014 |
| 2020-10-31 | 133.5003 | 133.4989 | 0.0015 |
| 2020-11-01 | 132.7888 | 132.7873 | 0.0015 |
| 2020-11-02 | 132.5561 | 132.5546 | 0.0015 |
| 2020-11-03 | 133.3354 | 133.3339 | 0.0015 |
| 2020-11-04 | 134.9262 | 134.9247 | 0.0016 |
| 2020-11-05 | 136.5390 | 136.5374 | 0.0016 |
| 2020-11-06 | 137.3288 | 137.3272 | 0.0016 |
| 2020-11-07 | 137.0707 | 137.0691 | 0.0016 |
| 2020-11-08 | 136.3592 | 136.3576 | 0.0016 |
| 2020-11-09 | 136.1265 | 136.1249 | 0.0016 |
| 2020-11-10 | 136.9058 | 136.9042 | 0.0017 |
| 2020-11-11 | 138.4967 | 138.4950 | 0.0017 |
| 2020-11-12 | 140.1094 | 140.1077 | 0.0017 |
| 2020-11-13 | 140.8993 | 140.8975 | 0.0017 |
| 2020-11-14 | 140.6412 | 140.6394 | 0.0018 |
| 2020-11-15 | 139.9296 | 139.9278 | 0.0018 |
Timing
Median of all measured repetitions.
| Step | Effect Prophet | Python Prophet | Effect Prophet is |
|---|---|---|---|
| Convert input rows | 40 µs | 556 µs | 14× faster |
| Fit | 26.9 ms | 87.4 ms | 3.2× faster |
| Predict | 316 µs | 3.28 ms | 10× faster |
| Fit and predict | 26.2 ms | 89.5 ms | 3.4× faster |
| Convert, fit and predict | 26.1 ms | 91.3 ms | 3.5× faster |
| First forecast in a new process | 193 ms | 1.51 s | 7.8× faster |
| Save model to JSON | 29 µs | 583 µs | 20× faster |
| Load model from JSON | 157 µs | 2.35 ms | 15× faster |
| Load and predict in a new process | 155 ms | 1.44 s | 9.3× faster |
Settings
The case declaration both libraries ran.
json
{
"kind": "map",
"comparison": {
"kind": "equivalent-objective",
"evidenceId": "linear-output-first-v4"
},
"fitRequest": "growth-only",
"configuration": {
"growth": "linear",
"scaling": "absmax",
"seasonalityMode": "additive",
"holidaysMode": "additive",
"changepoints": {
"mode": "auto",
"count": 25,
"range": 0.8
},
"changepointPriorScale": 0.05,
"seasonalities": [
{
"name": "weekly",
"periodDays": 7,
"fourierOrder": 3,
"priorScale": 10
}
],
"events": [],
"regressors": []
},
"pythonOptimizer": {
"algorithm": "Auto",
"maxIterations": 10000,
"newtonFallback": true
}
}