Explicit US control, additive
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.8e-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 | 6.8e-12 |
| 2025-01-01 | 23.1577 | 23.1577 | 6.0e-12 |
| 2025-01-02 | 20.1232 | 20.1232 | 6.8e-12 |
| 2025-01-05 | 21.5688 | 21.5688 | 5.7e-12 |
Timing
Median of all measured repetitions.
| Step | Effect Prophet | Python Prophet | Effect Prophet is |
|---|---|---|---|
| Convert input rows | 13 µs | 493 µs | 39× faster |
| Fit | 4.55 ms | 18.8 ms | 4.1× faster |
| Predict | 190 µs | 4.80 ms | 25× faster |
| Fit and predict | 3.97 ms | 22.4 ms | 5.6× faster |
| Convert, fit and predict | 3.80 ms | 22.8 ms | 6.0× faster |
| First forecast in a new process | 175 ms | 1.51 s | 8.7× faster |
| Save model to JSON | 25 µs | 709 µs | 29× faster |
| Load model from JSON | 395 µs | 4.16 ms | 11× faster |
| Load and predict in a new process | 156 ms | 1.48 s | 9.5× 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": "additive",
"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
}
}