Journal · Seasonality
Why DAU forecasts fail when you ignore weekday seasonality
A seven-day moving average is a comforting object. It swallows Monday, Tuesday, and the awkward Wednesday after a store release, then presents a single slope that looks like a strategy. Product meetings love that slope. It rarely survives payday Friday in Thailand.
Most “broken” usage forecasts we see in Retention Horizon were never models. They were averages wearing a confidence interval. The underlying series still had a loud weekday pattern: office apps that sleep on Sunday, grocery apps that wake after 21:00, wallets that jump when salaries clear. If you do not name those days, the forecast will invent a trend to explain them.
The check before any library
Before a notebook is opened, plot raw daily actives for eight weeks against weekday labels. Do not smooth. Annotate known holidays and known releases. If Friday is repeatedly higher than Thursday by more than the week-to-week noise, you have a seasonal component that a flat average will misread as growth or decline depending on where your window starts.
We ask students to write one sentence: “If I start this average on a Sunday, do I still believe the slope?” If the answer depends on the start day, the average is not ready to brief leadership.
Payday is not a footnote
In Bangkok desks, payday Fridays (and the Monday after a mid-month cycle) often dwarf feature launches. Treating them as outliers to be removed is a product decision disguised as data cleaning. Sometimes you should remove them from a baseline. Sometimes they are the demand you are staffing for. Write down which one you chose.
What we do instead
Fit a weekday factor first. Then ask whether a holiday calendar for Thailand still leaves residuals that look like a trend. Only then consider a heavier method. The journal note on when not to use Prophet exists because teams skip this order and then blame the library.
If you want the lab version of this check, it is week three of Retention Horizon. Glimpse recordings cover a shorter form of the same exercise.