Explicit US control, additive
match ← All logistic 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-logistic-96.json: 96 history rows and 4 forecast rows.
Output
Largest difference: 1.5e-11 (< 0.0001% of the input's range).
Every forecast row from both libraries.
| Date | Effect Prophet | Python Prophet | Difference |
|---|---|---|---|
| 2024-12-25 | 78.6444 | 78.6444 | 1.5e-11 |
| 2025-01-01 | 82.3589 | 82.3589 | 1.4e-11 |
| 2025-01-02 | 78.7702 | 78.7702 | 1.1e-11 |
| 2025-01-05 | 80.5727 | 80.5727 | 1.1e-11 |
Timing
Median of all measured repetitions.
| Step | Effect Prophet | Python Prophet | Effect Prophet is |
|---|---|---|---|
| Convert input rows | 16 µs | 478 µs | 30× faster |
| Fit | 31.1 ms | 50.0 ms | 1.6× faster |
| Predict | 177 µs | 4.84 ms | 27× faster |
| Fit and predict | 30.7 ms | 54.4 ms | 1.8× faster |
| Convert, fit and predict | 30.5 ms | 55.4 ms | 1.8× faster |
| First forecast in a new process | 199 ms | 1.49 s | 7.5× faster |
| Save model to JSON | 27 µs | 684 µs | 25× faster |
| Load model from JSON | 333 µs | 4.00 ms | 12× faster |
| Load and predict in a new process | 152 ms | 1.44 s | 9.4× faster |
Settings
The case declaration both libraries ran.
json
{
"kind": "map",
"comparison": {
"kind": "equivalent-objective",
"evidenceId": "country-calendar-public-v1"
},
"configuration": {
"growth": "logistic",
"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
}
}