The Mithai Shop Challenge
Diwali shifted from 20 October 2025 to 8 November 2026. Would a forecast follow the new date—or repeat the old pattern?
A plain-language guide to a synthetic study of festival demand, forecast timing, and production decisions. Discussion brief; not peer-reviewed or based on retailer sales.
The Mithai Shop Challenge
Diwali shifted from 20 October 2025 to 8 November 2026. Would a forecast follow the new date—or repeat the old pattern?
A forecast trained on the past may remember last year’s date more strongly than next year’s calendar.
The study tests these questions in a controlled simulation. It does not measure a real shop.
Realistic ingredients. Artificial transactions.
The simulator includes weekdays, seasonal patterns, festival lifts, advance corporate orders, weddings, bulk orders, noise, and stock limits.
When stock runs out, the till only records what the shop could sell.
The missing 50 kg disappears from sales history.
The study tests models that account for this censoring—sales capped by available inventory—because learning from sales alone can make real demand look smaller.
Three model families, statistical baselines, and a practical shopkeeper rule.
Yug-1
TimesFM 2.5
Chronos-Bolt
Seasonal naive
ETS
Calendar regression
Shopkeeper multiplier
Calibrated shopkeeper
Inventory-aware regression
Some methods also received the same external festival-calendar adjustment.
Each method forecast 56 days ahead, with up to 2,048 days of history.
Festival correction used known future event dates and patterns in past observed sales. It was an added application step—not a built-in feature of Yug-1, TimesFM, or Chronos.
When Diwali moved 19 days, history-only forecasts often leaned toward the previous festival date.
| Method | Distinct peak | Median timing error | Phantom surge |
|---|---|---|---|
| Yug-1 | 48% | −17 days | +29% |
| TimesFM 2.5 | 33% | −16 days | +15% |
| Chronos-Bolt | 23% | −19 days | +17% |
| Seasonal naive | 100% | −20 days | +45% |
Negative timing error means early. “Distinct peak” is the share with a clear peak; timing is reported only for those cases. Phantom surge means excess forecast weight near the old festival date, adjusted for overall bias.
Across tested calendar-informed methods, distinct peaks appeared in 88–96% of cases.
Explicit festival dates helped Yug-1, TimesFM, Chronos, and ETS in the tested scenarios.
These findings are specific to the simulated 19-day shift and simulator assumptions.
Improvements were positive in the base setting and all three stress scenarios.
| With calendar | Base | R1 | R2 | R3 |
|---|---|---|---|---|
| Yug-1 | 10.3 | 5.6 | 9.4 | 4.7 |
| TimesFM 2.5 | 6.2 | 2.9 | 6.0 | 2.6 |
| Chronos-Bolt | 8.0 | 4.2 | 7.3 | 3.7 |
| ETS | 10.4 | 6.7 | 9.6 | 5.9 |
Values are percentage-point reductions in WAPE—not final WAPE scores. R1 changes festival shape year to year; R2 adds local shocks; R3 combines both.
The decision layer has its own trade-offs: waste, lost sales, capacity, and shelf life.
| Method | Simulated regret / 56-day plan |
|---|---|
| Censor-aware calendar regression | ₹47,602 |
| Calendar regression | ₹50,855 |
| TimesFM + calendar | ₹52,847 |
| Yug-1 + calendar | ₹52,882 |
| Yug-1 history only | ₹87,051 |
| TimesFM history only | ₹82,656 |
Lower regret is better. Simulated INR per product plan; not actual revenue, profit, or savings. Yug-1 + calendar versus TimesFM + calendar differed by ₹35; paired 95% interval −₹1,914 to +₹1,603, so that comparison is inconclusive.
Repeated samples revealed meaningful variation in forecast quality.
The original seed was unusually favorable. That is a reason to report seed sensitivity—not proof of a software defect.
Independent verification recomputed the released metrics.
The verification record found no non-finite or crossed-quantile rows. Code, notebooks, pinned model revisions, result summaries, and audit scripts are public. The raw forecast archives (about 367 MB) are not included in the public repository.
The result depends on assumptions about customers, prices, stock, and festival effects.
No retailer transactions or realized savings.
Intervals describe simulated shops and model seeds.
Test native calendar inputs, more seeds, real consented data, and different planning policies.
This is a controlled demonstration of how calendar knowledge and inventory rules can change forecast evaluation.
In this simulation, festival dates mattered. Stockouts hid demand. Repeated runs changed the picture. And the lowest-error forecast did not automatically make the best production decision.
One practical next step
Compare the calendar correction with native event inputs—and validate against consented real shop data.
No model winner should be inferred beyond the scenarios and policies tested here.
A pretrained model designed to forecast values over time.
Forecasting without training the model on this shop’s history.
Total absolute error divided by total demand. Lower is better.
When stock runs out, sales stop showing how much customers still wanted.
How often actual demand falls within a forecast’s stated range.
The simulated gap from a feasible plan made with perfect hindsight. Lower is better.