The Prophet Baseline model is the most straightforward forecasting approach in the Fini Marketing Intelligence toolkit. It fits Facebook’s Prophet library directly to the aggregated daily revenue series, relying exclusively on the built-in yearly and weekly seasonality components to explain recurring patterns. With no additional regressors and a minimal configuration surface, this model serves as both a reliable production option for stable product lines and a clean benchmark against which the more complex Enriched and XGBoost models can be measured.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/andresshm/fini-marketing-intelligence/llms.txt
Use this file to discover all available pages before exploring further.
Data Preparation
Raw transactions fromdata/raw/sales.csv are aggregated to one row per calendar day before being passed to Prophet. The sale_date and revenue columns are renamed to ds and y — the column names Prophet requires.
Train / Test Split
The hold-out test window covers the final 90 days of the dataset. The cutoff date is derived dynamically from the maximum observed date, so the split remains correct as new data arrives.Model Configuration
The Prophet model is initialised with yearly and weekly seasonality enabled and daily seasonality disabled. Daily seasonality is turned off because candy retail data aggregated at the day level does not exhibit meaningful within-day cycles, and enabling it would introduce noise.Generating the Forecast
After fitting,make_future_dataframe extends the date index 90 days beyond the last training observation. model.predict returns the full posterior predictive distribution, from which the point estimate (yhat) and 80 % uncertainty intervals (yhat_lower, yhat_upper) are extracted.
y) are aligned with predictions on historical dates. Future periods beyond the observed data have y = NaN.
Evaluation
The evaluation DataFrame
eval_df is built by calling results.dropna(). This removes all future periods where y is NaN, leaving only rows where an actual revenue value exists. Metrics are therefore calculated exclusively over historical dates — never over the 90-day forward projection.Metric Definitions
| Metric | Value | Interpretation |
|---|---|---|
| MAE | 54.85 €/day | On average the model’s daily revenue prediction is off by €54.85 |
| RMSE | 77.31 €/day | Penalises large errors more than MAE; useful for spotting outlier days |
| MAPE | 27.56 % | The model’s predictions deviate by roughly 27.56 % from actual revenue on a typical day |
Output Files
Two files are written to theoutputs/ directory on every run.
| File | Columns | Description |
|---|---|---|
outputs/forecast_baseline.csv | ds, yhat, yhat_lower, yhat_upper, y | Full forecast including historical fit and 90-day future window; y is NaN for future rows |
outputs/metrics_baseline.json | MAE, RMSE, MAPE | Scalar evaluation metrics calculated on historical actuals |