Retail · Thailand
How recency–frequency patterns mislead Thai retail teams
Journal · Switch Routehub · reading time about eleven minutes
Classic recency–frequency scoring treats time as smooth. Thai retail time is not smooth. Songkran travel, Chinese New Year gifting, mid-year mid-year promotions, and 11.11 windows shove orders into a few weeks and then go quiet. A model that only asks “how recently” and “how often” will crown festival buyers as a loyalty class and then wonder why May looks like churn.
What the score actually saw
In one Atelier extract, a “high RF” bucket grew 22% in the fortnight after Songkran. Average order value was ordinary. Category mix shifted toward snacks and travel-size personal care — not the retailer’s stated loyalty categories of appliances and mother-and-baby. Frequency rose because households bought for guests, not because a new habit formed. Recency looked excellent because the calendar forced recency.
The CRM team had already written a win-back journey for anyone who failed to repurchase within 45 days. After the festival, that journey fired at people who had never been “loyal” in the commercial sense. Unsubscribe and block rates rose. The RF dashboard still looked healthy because it was scoring the spike, not the route.
Calendar-aware RF
We keep recency and frequency. We stop letting them use a single trailing window. The correction used in Cohort Signal Architecture is simple to state and annoying to implement: compute RF inside comparable calendar slices, then compare this Songkran to last Songkran, this May to last May. A buyer who only appears in festival slices does not inherit a loyalty name, however high the raw RF.
A third axis then has to earn its keep. For that retailer, category retreat — share of spend leaving the stated loyalty categories — predicted silent leaving better than session count. Depth was tried and rejected; it mostly tracked promo browsing.
What not to do
Do not delete festival weeks as outliers. They are the business. Do not build a lookalike from the inflated RF bucket; you will clone guest-host purchasing. Do not rename the bucket “seasonal enthusiasts” and keep the same journeys. If the action does not change, the name is costume.
If your logs cannot tell festival SKUs from everyday SKUs, hygiene week comes first. That limitation is real: calendar-aware RF without a usable product hierarchy is just RF with extra date filters.