---
url: >-
  https://jer-k.github.io/effect-prophet/benchmarks/flat/map-training-zero-span-flat-varied.md
---

# Every row on the same date, different values

&#x20;[← All flat growth benchmarks](/benchmarks/flat)

Three rows sharing one timestamp. A flat trend needs no time range, so both libraries fit it.

## Input

[`benchmark/inputs/v1/training-zero-span-varied.json`](https://github.com/jer-k/effect-prophet/blob/main/benchmark/inputs/v1/training-zero-span-varied.json): 3 history rows and 2 forecast rows.

## Output

Largest difference: **0.00029** (0.0059% of the input's range).

Every forecast row from both libraries.

| Date | Effect Prophet | Python Prophet | Difference |
| --- | ---: | ---: | ---: |
| 2020-01-01 | 4.3286 | 4.3289 | 0.00029 |
| 2020-01-02 | 4.3286 | 4.3289 | 0.00029 |

## Timing

Median of all measured repetitions.

| Step | Effect Prophet | Python Prophet | Effect Prophet is |
| --- | ---: | ---: | --- |
| Fit | 937 µs | 5.39 ms | 5.7× faster |
| Predict | 177 µs | 2.68 ms | 15× faster |
| Save model to JSON | 18 µs | 314 µs | 17× faster |
| Load model from JSON | 167 µs | 1.95 ms | 12× faster |
| Load and predict in a new process | 164 ms | 1.43 s | 8.7× faster |

## Settings

The case declaration both libraries ran.

```json
{
  "kind": "map",
  "comparison": {
    "kind": "equivalent-objective",
    "evidenceId": "training-row-map-v1"
  },
  "configuration": {
    "growth": "flat",
    "scaling": "absmax",
    "seasonalityMode": "additive",
    "holidaysMode": "additive",
    "changepoints": {
      "mode": "explicit",
      "timestamps": []
    },
    "changepointPriorScale": 0.05,
    "seasonalities": [],
    "events": [],
    "regressors": []
  },
  "pythonOptimizer": {
    "algorithm": "Auto",
    "maxIterations": 10000,
    "newtonFallback": true,
    "sigFigs": 12
  }
}
```
