dataezedataeze×Kokuyo Camlin
Confidential · Prepared for Kokuyo Camlin
Proposal · Demand Forecasting & Stock Allocation · 2026

Demand-to-Shelf.

Never out of stock at peak.

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.

The problem, in one number

Today, 6 in 10 demand lines are filled. At peak.

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.

16,542
distributor-SKU lines needed stock but got zero
33%
of lines auto-zeroed as "ahead of budget", blind to ground stock-out
~1.12M
units of peak demand the depots could not cover

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.

Why it happens

One blunt rule decides every depot's split.

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:

No real demand
Budget is treated as demand. No run-rate, no seasonality, just a flat 1/12 split.
No ground stock
Never sees the distributor's godown or days-of-cover. The shelf is invisible.
No safety buffer
Allocates exactly the gap, zero cushion for a demand surge.
No priority
Under shortage, a dead SKU and a fast NPD compete equally for the last carton.

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.

The shift

From Budget-to-Depot, to Demand-to-Shelf.

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."

1 · Forecasting brain

Knows why demand moves: season, school calendar, NPD curves, and ships its own confidence.

The engine

2 · Allocation engine

Protect stock-outs first, then right product to right distributor, executable to the carton.

3 · The shelf

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.

How dataeze builds it · the layer underneath

We don't drop a model on messy data.
We earn the accuracy first.

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.

Consolidate & clean

Primary billing, depot stock, in-transit, budget, masters, reconciled into one model.

Our specialty

Semantic layer

One governed definition of demand, cover, run-rate, fill rate, so every number agrees.

Forecast + allocation

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.

The forecasting brain · the showpiece

A forecast that earns its place, every month.

1
Hierarchical & sparse-aware

Sparse distributor-SKU cells borrow the depot's clean seasonal shape (MinT reconciliation).

2
Best-fit ensemble

A model tournament per series (ETS, SARIMAX, Croston/TSB, gradient boosting). Must beat seasonal-naive to ship.

3
School-calendar aware

State-wise reopening, exams and festivals encoded as demand drivers.

4
NPD launch curves

Analog + Bass-diffusion models forecast new SKUs with zero history.

5
Probabilistic + FVA

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.

Seasonality

The budget is flat. Demand is not.

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.

Flat budget split Real demand (back-to-school)
JanAprJunSepDec flat budget peak demand

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.

The differentiator

We know when the school bell rings.

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.

April-start
MH · GJ · MP · UP, ramps mid-March to April
June-start
TN · KA · KL · AP, ramps late-May to mid-June
Post-monsoon
Hill & NE pockets, shifted later still
~3.8×
demand in the reopening week versus the off-season trough. The model anticipates the surge instead of reacting a fortnight late.

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.

Forecast you can defend

The model only takes over where it wins.

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.

Never silently worse

A model is never adopted where it cannot beat your own plan.

Tracked by segment

Accuracy and bias monitored by A/B/C class and NPD.

Overrides learn

Planner & sales overrides are logged and scored next cycle.

So the risk is governed
Champion-challenger loop, no big-bang cutover
WMAPE & tracking-signal bias by segment
The day it cannot beat your budget, we keep your budget
"We do not ask you to trust the model. We make it earn its place, and the day it cannot beat your budget, we keep your budget."
The allocation engine

Scarce stock goes where it prevents the most stock-outs.

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:

Tier 0
Protect stock-outs first

Fill every active distributor to a minimum days-of-cover, so nobody goes dark.

Tier 1
Product priority

NPDs and A-class SKUs get the next units.

Tier 2
Velocity & value

Weighted by genuine run-rate, not vanity budget gap.

Tier 3
Residual pro-rata

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.

Before & after

Same depot stock. Better landed.

10 → 0
stock-out-risk lines removed (illustrative sample)
3,230
units freed from over-stocked distributors
5,030
units redirected to dry / at-risk distributors
Ahead but empty
Budget zeros it. We ship.
Behind but overstocked
We cap it, free the stock.
Depot scarcity
Pro-rata → priority waterfall.
Seasonal ramp
Flat budget → ride the curve.

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 by distributor · mock

The decision, made visible per distributor.

DistributorProfileCurrentDemand-to-ShelfAction
DBR-1142 · PuneFast A-class, low cover120410Filled to cover
DBR-0876 · SuratOverstocked, 60d cover34090Capped, freed
DBR-2031 · CoimbatoreAhead of budget, dry0260Protected
DBR-1490 · IndoreSlow mover, ample cover18060Deferred
DBR-0455 · NagpurNPD launch, zero history20180Seeded

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.

The prize

What this is worth, per peak season.

₹5.5 – 8.5 Cr
Total annual value, from reallocating stock you already hold. No extra production.

Conservative assumptions, all anchored to your real 22-Jun run. Calibrated against Camlin actuals in week 1.

Five value levers
Recovered peak sales
Lower returns & dead-stock
Working capital released
NPD launch uplift
Fill-rate / OTIF gain

Recovered sales and fill-rate need no extra inventory at all, won by landing existing depot stock in the right godown.

Honest by design

We use primary data today. Secondary is the accelerant.

What we use now
Primary billing (Camlin to distributor)
Depot stock, in-transit, open orders
Budget & sales plan
Product, distributor, depot masters
What unlocks even more · Phase 2
+Secondary sell-out (distributor to retailer)
+Distributor on-hand / closing stock
+True days-of-cover & service levels
+Lightweight SR app / WhatsApp capture

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.

Phased & de-risked

A roadmap that proves value before it touches your server.

Phase 0 · Prove it

Shadow-run on closed books. No server change.

Phase 1 · Quick wins

Priority + seasonality + rounding on today's data.

Phase 2 · Calibrate

Add closing-stock, true days-of-cover.

Phase 3 · Full DRP

Secondary / DMS, sell-through replenishment.

Phase 4 · Demand-to-Make

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.

Why dataeze

We already run your Camlin BI.

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.

Your data, your environment

Built on your SQL, behind your network. Your data never leaves your environment.

Operators, not researchers

20 years building decision systems across FMCG, retail and D2C, now AI-first.

Traceable, every figure

Every number maps back to a query that ran. No black box.

7,956
billing distributors already in your BI model
431
NPD billing distributors tracked
Live
primary, budget & stock on SQL views

The forecasting brain plugs into the same model, no new pipeline to build before we start.

Let's take this forward

One month. Your own run.

A · A working session, in person

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.

B · A one-month POC, nominal cost

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."

hello@dataeze.ai·+91 99103 55559·dataeze.ai
1 / 17