The right product, to the right distributor, at the right time.
Forecasting and stock allocation for Kokuyo Camlin, redesigned around real demand instead of a flat budget. Built by dataeze, the team already running your Camlin BI.
Every night the engine plans roughly 89,200 distributor-SKU lines. The fill rate, the share of needed units the depots can actually cover, sits at 60.5% in the Mar to Jul peak. It is mis-targeted, not just under-supplied.
A third of lines are auto-zeroed because billing has crossed the monthly budget which, in a back-to-school ramp, usually means the budget was set too low, not that the distributor is stocked. The same run over-orders for distributors already overstocked and starves the ones about to run dry. It is a decision-logic problem, not a warehouse problem.
Monthly budget − billed so far = gap to budget. That single signal splits depot stock pro-rata to the gap. Transparent and cheap, but blind to the four things that actually cause stock-outs:
requirement = max(month_budget − billed_so_far, 0); each depot's stock for a SKU is split across active distributors in proportion to that requirement, capped at it, zeroed if the depot is empty. It is a fair-share rationer, not a stock-out-prevention system.
Same data to start. Different question. Today the system answers "who is behind budget?" Tomorrow it answers "who is about to stock out at peak, and which truck stops it."
Knows why demand moves: season, school calendar, NPD curves, and ships its own confidence.
Protect stock-outs first, then right product to right distributor, executable to the carton.
Never out of stock at peak. Less overstock. NPDs protected.
A forecasting brain turns history, seasonality and the school calendar into a demand signal with an explicit confidence band. That feeds an allocation engine that sizes a target (cycle + safety stock), nets off what is already on the way, and under scarcity protects the distributors most likely to stock out before chasing budget attainment. The output is cartons to ship, not a chart of the old plan.
A forecast is only as trustworthy as the data and definitions beneath it. This is the pipeline we run before a single carton is ever recommended, on the very same SQL you already have.
Primary billing, depot stock, in-transit, budget, masters, reconciled into one model.
One governed definition of demand, cover, run-rate, fill rate, so every number agrees.
The demand brain and allocation engine on top, traceable and back-tested.
The semantic layer is why the forecast answers like your best planner, not a black box.
Sparse distributor-SKU cells borrow the depot's clean seasonal shape (MinT reconciliation).
A model tournament per series (ETS, SARIMAX, Croston/TSB, gradient boosting). Must beat seasonal-naive to ship.
State-wise reopening, exams and festivals encoded as demand drivers.
Analog + Bass-diffusion models forecast new SKUs with zero history.
P50 for planning, P90 sizes safety stock. The budget stays until the model measurably wins.
Runs on SQL plus Python, no server change needed to produce and validate it. Every cell is probabilistic, so the safety buffer is derived, not guessed.
A 1/12 flat budget structurally under-feeds the Mar to Jul back-to-school peak, where the money is, and over-feeds the trough. Our engine rides the curve.
The engine de-seasonalises history to a clean base rate, then re-applies a seasonality index at ruling level for the planning month, so the signal rises and falls with real demand instead of a calendar-blind twelfth.
A single national budget smears the country's reopening regimes together. A region-keyed reopening signal sharpens each depot's curve to its own calendar.
School-reopening windows, board/exam schedules, festivals and monsoon onset are encoded as learnable regressors at region-by-ruling level, refreshed annually from public board, IMD and tender sources in a short calendar-update ritual. This is the moat a generic time-series vendor will not build.
The budget is the champion. The statistical and ML forecast is the challenger, scored each month on a rolling back-test, against the budget and against seasonal-naive. It earns allocation weight only where it measurably beats both.
A model is never adopted where it cannot beat your own plan.
Accuracy and bias monitored by A/B/C class and NPD.
Planner & sales overrides are logged and scored next cycle.
Under scarcity, the norm at 60.5% fill, pure pro-rata spreads the shortage evenly and silently manufactures stock-outs. The waterfall changes the objective:
Fill every active distributor to a minimum days-of-cover, so nobody goes dark.
NPDs and A-class SKUs get the next units.
Weighted by genuine run-rate, not vanity budget gap.
Whatever remains, split fairly.
Plus executable guard-rails: case-lot rounding, an over-stock cap (no channel-loading), inter-depot balancing and same-family substitution.
MOCK / illustrative, primary data only. Scaled to the 16,542 starved lines, this redistribution is the crore-level prize, with zero extra production. Actuals on go-ahead.
| Distributor | Profile | Current | Demand-to-Shelf | Action |
|---|---|---|---|---|
| DBR-1142 · Pune | Fast A-class, low cover | 120 | 410 | Filled to cover |
| DBR-0876 · Surat | Overstocked, 60d cover | 340 | 90 | Capped, freed |
| DBR-2031 · Coimbatore | Ahead of budget, dry | 0 | 260 | Protected |
| DBR-1490 · Indore | Slow mover, ample cover | 180 | 60 | Deferred |
| DBR-0455 · Nagpur | NPD launch, zero history | 20 | 180 | Seeded |
How to read it: dry / at-risk distributors get filled; the overstocked get capped and freed. The full filterable view ships in the companion Excel. MOCK, primary billing only. Real distributor numbers produced on your live run, on go-ahead.
Conservative assumptions, all anchored to your real 22-Jun run. Calibrated against Camlin actuals in week 1.
Recovered sales and fill-rate need no extra inventory at all, won by landing existing depot stock in the right godown.
Where we say days-of-cover or run-rate today, it is an estimate inferred from primary, made precise once secondary is captured. Missing ground data is a roadmap, not a blocker.
Shadow-run on closed books. No server change.
Priority + seasonality + rounding on today's data.
Add closing-stock, true days-of-cover.
Secondary / DMS, sell-through replenishment.
Raw material, what to produce.
Today's pro-rata logic stays as the cold-start fallback throughout. Nothing is ripped out, capability is layered on.
This is not a cold vendor learning your business from scratch. We built and maintain your Camlin BI model on your own SQL, so the demand-to-shelf engine starts from data we already know.
Built on your SQL, behind your network. Your data never leaves your environment.
20 years building decision systems across FMCG, retail and D2C, now AI-first.
Every number maps back to a query that ran. No black box.
The forecasting brain plugs into the same model, no new pipeline to build before we start.
Walk the engine end to end with your sales, supply-chain and IT leads. Align on priorities and the season ahead. We come to you.
Shadow / offline, read-only, no server change. Real distributor-by-distributor lift, the forecast back-tested against your budget, a clear go / no-go readout. Your data never leaves your environment.
"Give us one month and a nominal fee, and we will show you the lift on Camlin's own run, before a single line changes on your server."