Seasonal Demand Forecasting for Diwali and Peak Planning
Seasonal demand is rarely a surprise. Diwali, monsoon, and wedding season all leave signals in shipment history, sell-through data, and channel commitments. The hard part is turning those signals into purchase orders, GRN-confirmed stock, and warehouse readiness early enough — and not being left holding excess inventory when the peak passes.

⚡ Key Takeaways
- ✓Honest forecasting beats impressive forecasting: FilFlo's shipped method is LTMA — the last-three-month average of primary shipments per distribution point — set against imported secondary sales and opening stock in the Retail Forecast workbench.
- ✓Replenishment runs on days of cover: safety floor = 2 × inward TAT × daily run-rate; reorder when on-hand + in-transit falls below it, rounded up to MOQ or case size. Counting in-transit stock is what prevents double-buying.
- ✓Seasonality is a run-rate adjustment plus a lead-time adjustment: raise the daily run-rate ahead of Diwali and assume longer inward TATs, and the same formulas produce the festival buy plan.
- ✓Quick-commerce platforms penalise low fill rates during peaks. Per-channel fill-rate scorecards — Ordered → Approved → Fulfilled → GRN with named loss reasons — show exactly where last season's plan missed.
Short Answer
Seasonal demand forecasting for an Indian D2C or FMCG brand is less about predicting the future and more about arithmetic done early. You need three numbers per SKU: a run-rate (how fast it sells, adjusted for the season), an inward TAT (how long your supplier takes to deliver), and a stock position that counts what is on trucks as well as what is on racks. From those, the safety floor, reorder point, and buy quantity follow mechanically.
FilFlo operationalises exactly that: consumption-based Procurement Alerts with days-left and suggested quantities, a Retail Forecast workbench that reconciles primary shipments against secondary sell-through per retailer-SKU, and fill-rate scorecards that grade the plan after the peak. No black-box prediction — a planning canvas where the ops team makes the seasonal call and the system does the bookkeeping.
The Cost of Diwali Inventory Planning That Starts Too Late
For a brand selling into Blinkit, Zepto, Swiggy Instamart, or modern trade, a festival peak compresses a month of demand into roughly two weeks. Channel POs get larger and more frequent, DC appointment slots get scarcer, and every supplier you rely on is simultaneously serving everyone else's festival build. The brands that perform well through it are usually not the ones with the cleverest forecast — they are the ones that converted a rough forecast into supplier POs, confirmed inwards, and allocated warehouse stock weeks before the window opened.
Why festival peaks punish late planners
What goes wrong:
- • Understocking: POs arrive that you cannot fill; every short-shipped line becomes sales loss valued at PO rate
- • Fill-rate penalties: quick-commerce channels track your fill rate and rank you down for repeated short supply during their highest-traffic weeks
- • Overstocking: panic buys land after the peak and sit for months as excess inventory blocking working capital
- • Timing failures: the PO was placed, but the inward TAT stretched and the GRN happened after Diwali
What good looks like:
- • Peak-adjusted run-rates set per SKU weeks in advance
- • Supplier POs placed against stretched festival lead times, receipt confirmed by GRN — not just PO placement
- • Fill rates held through the peak window on your priority channels
- • Minimal excess in the weeks after, because the buy was rounded to demand, not to fear
How FilFlo Actually Forecasts: LTMA and the Retail Forecast Workbench
A lot of software in this category claims machine-learning demand prediction. We'll be precise about what FilFlo ships instead, because operators deserve to know what the number on the screen actually is.
The forecasting method in the product is LTMA — the last-three-month average of primary shipments, computed per distribution point. It is deliberately simple: what you shipped to each retailer or distributor over the past three months, averaged, is the baseline expectation for next month. Simple has a virtue that matters at 6 a.m. on a dispatch dock: everyone on the team can see why the number is what it is, and everyone can argue with it.
The Retail Forecast workbench sets that baseline against two imported data sets: secondary sales — actual sell-through at the retailer, uploaded via the Secondary Sales Import — and opening stock at each distribution point. From primary shipments in, secondary sales out, and opening stock, the workbench computes a projected closing stock per retailer-SKU. That single derived number is the heart of seasonal planning, because it distinguishes two situations that look identical in your own shipment data: a retailer who stopped ordering because demand died, and a retailer who stopped ordering because they are still sitting on your last big shipment.
The Retail Forecast arithmetic, per retailer-SKU
Inputs:
- • Primary shipments (your invoiced dispatches), averaged over the last three months
- • Secondary sales — retailer sell-through, imported as a CSV
- • Opening stock at the distribution point
Output:
- • Projected closing stock per retailer-SKU
- • Which distribution points are draining faster than you are shipping (build there)
- • Which are accumulating stock (throttle there — the demand signal is stale)
Beverage brands like Jimmy's Cocktails, selling through modern trade, quick commerce, and general-trade distributors at once, run exactly this workbench: primary shipments per distribution point, secondary-sales imports for sell-through, and a planner walking the retailer-SKU grid before committing the festival build. It is manual where manual is honest — the seasonal judgement stays with a human who knows that Navratri moves differently in Ahmedabad than in Kolkata — and automated where automation is safe: the arithmetic, the reconciliation, and the flags.
The Days of Cover Formula: Safety Floors, Reorder Points, and MOQ
Forecasting tells you what demand to expect; replenishment math tells you when to buy and how much. FilFlo's replenishment is consumption-based and runs on three rules:
1. Safety floor = 2 × inward TAT × daily run-rate
Hold at least twice your supplier lead time worth of demand. If the SKU sells 150 units/day and the supplier's inward TAT is 12 days, the floor is 2 × 12 × 150 = 3,600 units. The 2× buffer absorbs the two things that always go wrong at once: demand running hot and the truck running late.
2. Reorder when on-hand + in-transit falls below the floor
The stock position that matters includes goods already ordered and moving — otherwise every alert triggers a second PO for stock that is already on a truck, and the "shortage" converts itself into an overstock six weeks later. Counting in-transit is the single cheapest fix for double-buying.
3. Round up to MOQ and case size
Suppliers ship in cases and enforce minimum order quantities, so the theoretically ideal 3,412 units becomes 3,600 in 24-unit cases. FilFlo tracks case size on the product master and quantities in case units (unit items = quantity × case size), so the suggested buy is one a supplier will actually accept.
In the product this shows up as Procurement Alerts: each low-stock SKU appears with a severity (Critical for zero stock, Reorder Soon otherwise), current stock, days left — e.g. "10.5 days left" — and an editable suggested quantity, with the default supplier and last unit price alongside. The buyer multi-selects alerts and creates purchase orders in bulk. Two clicks from "we're going to run out" to a PO the supplier can acknowledge.
Seasonality Is a Run-Rate Adjustment (Plus a Lead-Time Adjustment)
Here is the practical trick that makes the formulas above seasonal: every input is adjustable, and only two of them change with the season. Ahead of Diwali, the planner raises the daily run-rate on festival SKUs — if last October ran 2.5× the trailing average and this year's channel commitments are bigger, set the run-rate accordingly. At the same time, stretch the inward TAT, because every supplier and transporter is slower in the pre-festival crunch. A higher run-rate and a longer TAT both push the safety floor up, and the reorder math produces the festival build automatically — weeks early, because that is when the now-larger floor gets breached.
The same logic runs in reverse after the peak. Drop the run-rates back down in the week the festival window closes and the alerts stop suggesting purchases — which is precisely when the panic-buying instinct is strongest and most expensive. Monsoon works identically for the categories it touches: adjust run-rates for the demand shift and stretch TATs for the logistics reality of August freight.
🎆Festival Season (August – December)
Peak periods:
- • Ganesh Chaturthi: August–September (regional spike, Maharashtra-led)
- • Navratri: September/October (strong regional variation)
- • Diwali: October/November (nearly all FMCG categories peak)
- • Wedding season: November–February (gifting and premium packs)
Operator moves:
- • Raise run-rates on festival SKUs 6–8 weeks out
- • Stretch inward TATs in the reorder math; place POs early
- • Track supplier POs to GRN, not to PO placement
- • Pre-book DC appointments — slots vanish in peak weeks
🌧️Monsoon (June – August)
What changes:
- • Category demand shifts (hot beverages up, some impulse categories down)
- • Freight gets slower and less reliable — effective inward TATs lengthen
- • Damage-received rates rise on GRNs; watch the loss reasons
Operator moves:
- • Stretch TATs in the safety-floor math before the rains, not after the first late truck
- • Rebalance run-rates by category and region
- • Use the monsoon lull to prepare the festival build
☀️Post-Peak and Summer (March – May)
The risk:
- • Festival leftovers ageing into lower shelf-life buckets
- • Run-rates still set to peak values, quietly over-ordering
- • Working capital locked when cash flow is thinnest
Operator moves:
- • Reset run-rates the week the peak ends
- • Push ageing batches to quick commerce while shelf-life windows allow
- • Review per-SKU thresholds via bulk CSV update for the new baseline
After the Peak: Fill-Rate Scorecards Show Where the Plan Missed
A seasonal plan is only as good as the post-mortem it gets. FilFlo grades the season with the fill-rate funnel: every order line is tracked through Ordered → Approved → Fulfilled → GRN Received, and any quantity lost between stages carries a named reason — short supply or out of stock at approval and fulfilment, damage received or short received at GRN. Computed per channel, this becomes a scorecard that answers the only question that matters in November: where exactly did we leak?
The distinctions are actionable. Losses tagged out of stock are a buying failure — the run-rate adjustment was too timid or the PO landed late. Losses tagged short supply with stock on hand are an allocation failure — inventory sat in the wrong warehouse or was held for the wrong channel. Losses tagged damage received are a packaging and freight failure that no forecast improvement will fix. Each line of the scorecard feeds a different next-season correction, and the Sales Loss report attaches the rupee value — short quantity × PO rate — so the corrections get prioritised by money, not by anecdote.
Alongside the funnel, the Sales Flash report (day/week/month channel × period matrix with percentage deltas) shows the peak unfolding in real time, and per-warehouse Days On Hand shows which locations are draining fastest — useful when the mid-peak question becomes "we have stock, but is it in the right city?"
What to Do in Your Operations 6 Weeks Before Peak Season
If you sell into Blinkit, Zepto, Swiggy Instamart, or distributors, peak season planning is not just about having stock — it's about having the operational setup to absorb a surge in channel POs without compliance failures or fill-rate drops.
Review last season's fill-rate scorecards by channel and the Sales Loss report by SKU. The SKUs that leaked the most short revenue are this season's protected list. Raise their run-rates in the replenishment math now.
Convert Procurement Alerts into bulk purchase orders for the peak build, with festival-stretched inward TATs. Track each PO to Vendor Ack, then to GRN — confirmed receipt is the milestone, not PO placement.
Check in-transit ageing on pending supplier POs. Chase overdue deliveries now, not the week before Diwali. Anything still unacknowledged by the vendor gets a call today.
Walk the Retail Forecast workbench: import the latest secondary sales, review projected closing stock per retailer-SKU, and rebalance the build towards distribution points that are draining fastest.
Confirm warehouse readiness: rack locations allocated for peak SKUs, batches with the freshest shelf life reserved for the strictest channels, picklist and dispatch-scan flows tested at volume.
Verify IRN e-invoice and e-way bill generation end to end, and check the Notifications inbox is clear of unresolved failures. A compliance failure mid-peak is the most expensive kind.
Track Your Seasonal Success
Fill Rate by Channel
Ordered → GRN, with per-stage loss reasons
Sales Loss
Short-shipped units valued at PO rate — drive this to zero on priority SKUs
Post-Peak Excess
Days on hand above the upper band in the weeks after the peak
GRN-Confirmed Build
Share of peak POs received and GRN'd before the window opened
Frequently Asked Questions
What is the days of cover formula?
Days of cover = current stock ÷ daily run-rate (average daily consumption). If you hold 3,000 units and sell 150 a day, you have 20 days of cover. FilFlo's Procurement Alerts compute this per SKU and show it as 'days left' — for example '10.5 days left' — alongside current stock and a suggested reorder quantity, so the buying decision starts from consumption, not gut feel.
How do I calculate a reorder point with MOQ and lead time?
Set the safety floor at 2 × inward TAT × daily run-rate — twice the supplier lead time worth of demand. Reorder when on-hand plus in-transit stock falls below that floor, and round the order quantity up to the supplier's MOQ or case size. Counting in-transit stock matters: it is what stops you from double-buying against a PO that is already on a truck.
Does FilFlo use AI or machine learning to forecast demand?
No — and we say so deliberately. The forecasting method shipped in FilFlo is LTMA: the last-three-month average of primary shipments per distribution point, set against imported secondary sales (sell-through) and opening stock to compute a projected closing stock per retailer-SKU. It is a transparent planning workbench, not a black box. Seasonality is handled by planners adjusting run-rates and building stock ahead of known peaks, with the system doing the arithmetic and flagging the gaps.
How early should I start Diwali inventory planning?
Work backwards from your longest inward TAT. If your slowest supplier takes 30 days in normal times and stretches to 45 during the pre-festival crunch, purchase orders for Diwali stock need to be placed 6–8 weeks before the peak window — with GRN-confirmed receipt, not just PO placement, as the milestone. Most festival stockouts are not forecasting failures; they are lead-time failures.
How do I know where my seasonal plan missed?
Per-channel fill-rate scorecards. FilFlo tracks every order line through Ordered → Approved → Fulfilled → GRN with a named loss reason at each stage (short supply, out of stock, damage received), computed per channel. After the peak, the scorecard tells you whether you lost sales to buying too little, allocating to the wrong channel, or shipping damage — three different problems with three different fixes.
Plan Your Next Peak Season Earlier
See how FilFlo connects run-rates, days of cover, secondary sales, supplier POs, and fill-rate scorecards — so the festival build is placed, received, and allocated before the rush begins.