๐ŸŒ™ Seasonality ยท GCC Retail

Ramadan Demand Planning โ€” Why Your Seasonality Model Breaks Every Year

โœ Vinayak Bhadani ๐Ÿ“… August 2026 โฑ 8 min read ๐Ÿ“ Dubai, UAE

Ramadan moves roughly eleven days earlier every Gregorian year. Almost every forecasting system in commercial use assumes seasonality repeats on a fixed calendar. Those two facts are incompatible, and the gap between them is where GCC planners lose their service levels every spring.

baseline Stock-up Tโˆ’14 to Tโˆ’3 In-month shift categories diverge Eid peak gifting, apparel Trough travel exodus Demand index

Figure 1. The four-phase shape. Note that the peak is not Ramadan itself โ€” it is the fortnight before it, and then Eid. A model fitted on Gregorian months smears all four phases together and reproduces none of them.

The eleven-day problem

The Islamic calendar is lunar. Twelve lunar months run about 354 days against the Gregorian 365, so every Islamic date drifts roughly eleven days earlier each year. Ramadan 2025 began in early March. In 2026 it began in mid-February. In 2027 it will begin around 8 February. Within a decade it will have walked backwards through January and into December.

Now consider what a standard forecasting system does with that. Holt-Winters, SARIMA, and the seasonality components inside most ERP demand modules all work by learning a repeating pattern indexed to a fixed calendar position โ€” month 3 behaves like month 3 did last year, week 11 like week 11. Feed them four years of GCC retail history and they will dutifully learn that March is a high month, because in one of those years Ramadan happened to fall there. The following year, when Ramadan lands in February, the model confidently forecasts a March peak that never arrives and misses a February one that does.

This is not a subtle model deficiency. It is a structural mismatch between the clock the model uses and the clock the demand uses. No amount of parameter tuning fixes it, because the parameters are attached to the wrong axis.

The diagnostic: plot two years of your own weekly demand for a Ramadan-sensitive category, aligned on Gregorian week number. If the peaks do not line up, your seasonality index is being fitted to noise. Then re-plot the same data aligned on days from the start of Ramadan. If the peaks snap into alignment, you have just found several points of forecast accuracy sitting on the table.

The shape is four phases, not one peak

The second mistake is treating Ramadan as a single lift factor โ€” "food goes up 30% in Ramadan" โ€” applied to the whole month. The actual demand signature has four distinct phases, each with different category behaviour, and they do not all move in the same direction.

Phase 1 โ€” The stock-up (roughly Tโˆ’14 to Tโˆ’3)

The largest volume movement usually happens before Ramadan begins. Households buy staples in bulk: rice, oil, flour, sugar, dates, pulses, long-life dairy. Retailers build displays. This is the phase where a distributor either has stock in the right place or spends the next month apologising, because replenishment cycles inside Ramadan are compressed and expedited freight is expensive.

Phase 2 โ€” The in-month divergence

During Ramadan itself, categories split in ways that a blanket uplift factor cannot represent. Iftar and suhoor ingredients, dates, juices and dairy run hot. Daytime impulse categories โ€” soft drinks consumed on the go, snacks, coffee-to-go, quick-service food โ€” fall sharply, because consumption windows have moved to the evening. Total basket value often rises while transaction count falls. Store traffic shifts several hours later, which changes not only what sells but when your deliveries can physically be received.

Phase 3 โ€” Eid al-Fitr

Eid is a separate event with its own category profile: gifting, confectionery, apparel, fragrance, electronics, toys. For non-food retail this is frequently the single largest week of the year. It is also short, sharp and unforgiving โ€” arriving late to Eid means the demand is simply gone, not deferred.

Phase 4 โ€” The post-Eid trough

Then the floor drops out. A meaningful share of the GCC's expatriate population travels immediately after Eid, and the domestic market contracts. Planners who extrapolate the Eid peak forward end up holding the inventory that funded it.

How to actually model it

The fix is conceptually simple and mostly a data engineering exercise rather than a modelling one.

1. Add a Hijri-relative time index. For every historical date, compute days relative to the start of Ramadan for that year โ€” negative before, positive during, and a separate index for days from Eid. This becomes a feature column alongside your Gregorian date. Everything else follows from having this column.

2. Build the profile in relative time, not calendar time. Aggregate history by that relative index rather than by week number. You now get a stable, repeatable curve: the Tโˆ’10 spike, the in-month plateau, the Eid peak, the post-Eid collapse. That curve is genuinely comparable year to year, which the Gregorian version never was.

3. Fit the profile per category group, not per company. One uplift factor across the portfolio is worse than useless because it is directionally wrong for half your SKUs. Group by consumption behaviour โ€” iftar staples, daytime impulse, gifting, apparel โ€” and fit a separate profile per group.

4. Project it forward onto next year's Gregorian dates. Take the relative-time profile, anchor it to next year's Ramadan start date, and map it back onto the calendar your supply chain actually runs on. This is the step that turns the analysis into a plan.

5. Work backwards through lead time. If the stock-up peak is at Tโˆ’10 and your Asia lead time is 60 days door to door, your purchase order needs to be placed around Tโˆ’70. For Ramadan 2027 starting 8 February, that is roughly the first week of December 2026. The planning decision is made a full quarter before the demand appears, which is precisely why this cannot be handled reactively.

Category groupPre-RamadanIn-monthEid weekPost-Eid
Iftar staples (rice, oil, dates)Strong liftSustainedFallingSharp drop
Dairy & juicesModerate liftStrongModerateDrop
Daytime impulse (soft drinks, snacks)FlatDeclineRecoveringNormalising
Gifting & confectioneryBuildingBuildingPeakCollapse
Apparel & fragranceFlatBuildingPeakCollapse

Directional behaviour by category group. The magnitudes are yours to measure โ€” the point is that the signs differ across groups, which is exactly what a single portfolio-wide uplift factor destroys.

Where this breaks

Three honest caveats, because a method presented without its failure modes is a sales pitch.

The start date is not known with certainty far in advance. Ramadan's beginning depends on moon sighting and can move by a day depending on jurisdiction. For planning purposes a day either way is immaterial โ€” your lead times are measured in weeks โ€” but for promotional execution and store-level allocation it matters, and it means your plan needs a one-day tolerance built in rather than a hard date.

Ramadan drifting across seasons changes the answer. A Ramadan falling in July in the Gulf is not the same commercial event as one falling in February: longer fasting hours, higher temperatures, more of the population travelling, different category mix. Because the drift is roughly eleven days a year, history from six or seven years ago describes a meaningfully different event. Recent history is worth more than long history here, which cuts against the usual instinct to use every year you have.

Two Eids, and only one of them is in this profile. Eid al-Adha follows roughly ten weeks after Eid al-Fitr with a different category signature โ€” meat, livestock, travel โ€” and needs its own relative-time index rather than being folded into the same model.

The honest summary: Ramadan planning is not a forecasting-algorithm problem. It is a calendar-alignment problem wearing a forecasting problem's clothes. Fix the time axis and a fairly ordinary model will outperform a sophisticated one fitted to the wrong index.

RamadanSeasonalityGCC RetailDemand PlanningForecast Accuracy

Size the safety stock this implies

Once you have the relative-time profile, the next question is how much buffer the stock-up phase actually requires. The safety stock and reorder point calculators will do that arithmetic.

Open the calculators โ†’

Vinayak Bhadani โ€” Demand planning & S&OP in Dubai, building supply chain tooling for GCC operators. Every model here is public: the code and commit history are on GitHub.