# Prophet

Prophet forecasts time series data using an additive model with non-linear trends. We recommend it for time series that exhibit strong seasonal effects, and contain several cycles of historical data.

Kloudfuse implements the Prophet algorithm as the **agile-robust** option for Anomaly Detection. It supports hourly, daily, and weekly seasonality.

## In Dashboards

To use Prophet operator in a dashboard, apply the following function:

```code
    prophet( \
      ${promql}, \ (1)
      ${seasonality} \ (2)
      ${bound}, \ (3)
      ${band} \ (4)
    )
    ```

|     |     |
| --- | --- |
| **1** | `${promql}`: PromQL query to evaluate |
| **2** | `${seasonality}` 0 = hourly, 1 = daily, 2 = weekly |
| **3** | `${band}`: 4 = lower band, 5 = upper band, 6 = both upper and lower bands |
| **4** | `${bound}`: Number of standard deviations (stdv): 1, 2, or 3 |

## Limitations

If the evaluated metrics do not exhibit true seasonality, Prophet may create incorrect (invalid) alerts, or mask valid alerting conditions.

## Next steps

For an in-depth discussion of the Prophet approach, see these resources:

- [Prophet project](https://facebook.github.io/prophet/) in Facebook

- [Forecasting at scale](https://peerj.com/preprints/3190/) in PeerJ
