Time series and forecasting · insight-1208
Align the seasonal benchmark to moving holidays, not to the same weekday last year
- Evidence type
- practitioner heuristic
- Difficulty
- medium
- Roles
- Data scientist, Data analyst
- Industries
- aviation, retail, e-commerce
Summary: situation, action, reason, boundary
Situation
A seasonal naive forecast (value 364 days ago) is the benchmark for daily demand around religious holidays whose date moves about 10 to 11 days earlier each Gregorian year.
Action
Define a calendar-aligned benchmark: the value on the same position relative to the holiday last year, and the lag-364 value elsewhere. Report model skill against both, split by holiday windows.
Reason
The seasonal naive assumes a fixed date-to-demand mapping. Lunar-calendar holidays break it, so a fair baseline must move with the holiday.
Boundary
Daily or weekly demand with moving holidays: Eid drifts about 10 to 11 days earlier a year, while Easter and Chinese New Year move within a window of weeks.
Symptom or risk
The benchmark lands a normal day on the holiday peak and the holiday on a normal day, so it fails exactly where the model must be judged and beating it proves little.
Exceptions
Series with no holiday sensitivity (B2B subscriptions) are fine with lag-364.
Trade-offs
More benchmark logic to maintain, and a holiday window has only a few instances per year.
Pitfalls
Computing holiday windows from a package without checking the provider's coverage for the year range.