Plan
Forecast
Hourly demand per site, and the baseline it has to beat. A forecast that loses to “the same hour last week” is worse than no forecast, because it looks like knowledge.
Next 28 days at Marina Walk
The band is the 80% prediction interval, fitted as two quantile models rather than derived from a residual standard deviation. Demand is bounded below by zero and its spread grows with its level, so a symmetric interval would be too wide at 04:00 and too narrow at the evening peak — which is exactly when a planner needs it.
All four sites, one scale
Forecast daily footfall over the horizon · all four drawn to one scale, so the cards are read against each other
What moves it
Gain-based importance from the median model. The lag terms dominate because an hourly retail series is mostly its own past — which is exactly why the seasonal-naive baseline is hard to beat, and why beating it means the exogenous drivers are earning their place.
Week by week against the baseline
Reported per week rather than as one aggregate, because a single mean hides a model that wins on average by being spectacular once and worse every other week.
| week | hours | model MAE | naive MAE | result |
|---|---|---|---|---|
| 31 | 120 | 8.51 | 11.12 | beat |
| 32 | 168 | 9.25 | 11.03 | beat |
| 33 | 168 | 8.49 | 10.49 | beat |
| 34 | 168 | 8.04 | 10.70 | beat |
| 35 | 168 | 11.32 | 15.11 | beat |
| 36 | 168 | 7.64 | 16.30 | beat |
| 37 | 168 | 7.22 | 9.97 | beat |
| 38 | 168 | 7.72 | 9.91 | beat |
| 39 | 48 | 6.61 | 8.88 | beat |
Where the model is worse, and why that is reported
sMAPE is higher for the model than for the baseline on every site, and MAE is lower. Both are correct. Seasonal naive returns the exact integer count from the same hour last week, which on the many low-count hours is often exactly right and therefore proportionally perfect, while being further away in absolute terms. For staffing a cafe the absolute error is the decision-relevant one, so MAE is the gate and sMAPE is reported rather than optimised.