Explicit US control, multiplicative
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: 5.3e-9 (< 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 | 2.7e-9 |
| 2025-01-01 | 94.6730 | 94.6730 | 5.3e-9 |
| 2025-01-02 | 78.7702 | 78.7702 | 2.5e-9 |
| 2025-01-05 | 86.0085 | 86.0085 | 4.1e-9 |
Timing
Median of all measured repetitions.
| Step | Effect Prophet | Python Prophet | Effect Prophet is |
|---|---|---|---|
| Convert input rows | 16 µs | 477 µs | 30× faster |
| Fit | 44.4 ms | 57.9 ms | 1.3× faster |
| Predict | 213 µs | 4.91 ms | 23× faster |
| Fit and predict | 43.3 ms | 62.9 ms | 1.5× faster |
| Convert, fit and predict | 43.0 ms | 63.3 ms | 1.5× faster |
| First forecast in a new process | 220 ms | 1.47 s | 6.7× faster |
| Save model to JSON | 27 µs | 692 µs | 25× faster |
| Load model from JSON | 345 µs | 4.13 ms | 12× faster |
| Load and predict in a new process | 155 ms | 1.41 s | 9.1× 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": "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
}
}