Explicit US control, multiplicative
match ← All linear growth benchmarksThe same rows, occurrences, priors, mode and fitted names as the corresponding country case, but all dates are explicit events and no country snapshot is embedded.
Input
benchmark/inputs/v5/country-basic-96.json: 96 history rows and 4 forecast rows.
Output
Largest difference: 6.0e-12 (< 0.0001% of the input's range).
Every forecast row from both libraries.
| Date | Effect Prophet | Python Prophet | Difference |
|---|---|---|---|
| 2024-12-25 | 20.1198 | 20.1198 | 4.3e-12 |
| 2025-01-01 | 23.1763 | 23.1763 | 6.0e-12 |
| 2025-01-02 | 20.1232 | 20.1232 | 4.3e-12 |
| 2025-01-05 | 21.5778 | 21.5778 | 5.0e-12 |
Timing
Median of all measured repetitions.
| Step | Effect Prophet | Python Prophet | Effect Prophet is |
|---|---|---|---|
| Convert input rows | 14 µs | 473 µs | 35× faster |
| Fit | 5.45 ms | 18.8 ms | 3.4× faster |
| Predict | 182 µs | 4.84 ms | 27× faster |
| Fit and predict | 4.66 ms | 25.8 ms | 5.5× faster |
| Convert, fit and predict | 4.07 ms | 25.6 ms | 6.3× faster |
| First forecast in a new process | 172 ms | 1.52 s | 8.8× faster |
| Save model to JSON | 22 µs | 733 µs | 33× faster |
| Load model from JSON | 421 µs | 4.02 ms | 9.5× faster |
| Load and predict in a new process | 159 ms | 1.47 s | 9.2× faster |
Settings
The case declaration both libraries ran.
json
{
"kind": "map",
"comparison": {
"kind": "equivalent-objective",
"evidenceId": "country-calendar-public-v1"
},
"configuration": {
"growth": "linear",
"scaling": "absmax",
"seasonalityMode": "additive",
"holidaysMode": "multiplicative",
"changepoints": {
"mode": "auto",
"count": 2,
"range": 0.8
},
"changepointPriorScale": 0.05,
"seasonalities": [],
"events": [
{
"name": "launch",
"date": "2024-01-01",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "launch",
"date": "2024-01-05",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "launch",
"date": "2025-01-01",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "launch",
"date": "2025-01-05",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "New Year's Day",
"date": "2024-01-01",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "Martin Luther King Jr. Day",
"date": "2024-01-15",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "Washington's Birthday",
"date": "2024-02-19",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "Memorial Day",
"date": "2024-05-27",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "Juneteenth National Independence Day",
"date": "2024-06-19",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "Independence Day",
"date": "2024-07-04",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "Labor Day",
"date": "2024-09-02",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "Columbus Day",
"date": "2024-10-14",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "Veterans Day",
"date": "2024-11-11",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "Thanksgiving Day",
"date": "2024-11-28",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "Christmas Day",
"date": "2024-12-25",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "New Year's Day",
"date": "2025-01-01",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "Martin Luther King Jr. Day",
"date": "2025-01-20",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "Washington's Birthday",
"date": "2025-02-17",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "Memorial Day",
"date": "2025-05-26",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "Juneteenth National Independence Day",
"date": "2025-06-19",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "Independence Day",
"date": "2025-07-04",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "Labor Day",
"date": "2025-09-01",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "Columbus Day",
"date": "2025-10-13",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "Veterans Day",
"date": "2025-11-11",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "Thanksgiving Day",
"date": "2025-11-27",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
},
{
"name": "Christmas Day",
"date": "2025-12-25",
"lowerWindowDays": 0,
"upperWindowDays": 0,
"priorScale": 10
}
],
"regressors": []
},
"effectOptimizer": {
"algorithm": "auto",
"maxIterations": 10000,
"fallback": "newton",
"lbfgs": {
"historySize": 5,
"initAlpha": 0.001,
"tolObj": 1e-12,
"tolRelObj": 10000,
"tolGrad": 1e-8,
"tolRelGrad": 10000000,
"tolParam": 1e-8
}
},
"pythonOptimizer": {
"algorithm": "Auto",
"maxIterations": 10000,
"newtonFallback": true,
"sigFigs": 12
}
}