Today's replenishment run across the network. Each distributor gets a suggested order built from secondary-sales forecasts, safety stock by service level, and case, shelf-life, credit and truck constraints. Planners review exceptions, not every line.
Distributor plans
Exceptions that need a decision
Days of cover by category
Current stock at distributors divided by forecast daily sales, against the policy's target cover.
Plan history
Demand, forecast and projected stock
Why this quantity
Replays the next 8 weeks of (simulated) real demand and supplier lead times against two policies: the typical manual norm of ordering up to a fixed number of days of average sales, and Stock IQ's forecast-driven policy. Same demand, same lead times, same starting stock.
Stock value held at the distributor
Sales lost to stockouts
Every number the engine uses is a setting a planning lead can own. Changes re-run all plans immediately.
Service level and cover by ABC class
A items are the SKUs making up the first 80% of a distributor's sales value, B the next 15%, C the rest.
Rules
SKU priority and MOQ
Used when the order has to be cut to fit what the distributor can pay. Lower rank numbers are served first within a tier. A line is ordered either not at all or at least at its MOQ. Pick the distributor at the top of the page.
Distributors
Events and promotions
Planned uplifts are multiplied onto the baseline forecast for dates inside the window.
Stock IQ, from Iqlytics Solutions Pvt Ltd, is a distributor auto replenishment system for FMCG general trade. It replaces the salesman-and-norms way of placing primary orders with a daily, explainable, constraint-aware suggested order that planners approve by exception.
What problem it solves
In general trade, most primary orders are still built from fixed norms like "keep 15 days of stock", adjusted by the sales team at month end. That produces the familiar pattern: stockouts on fast movers during festive build-up, piles of slow movers and near-expiry stock, half-empty trucks, and month-end loading that distorts the demand signal. ARS turns replenishment into a pull system driven by what distributors actually sell to retailers.
How a daily run works
- Ingest. Pull closing stock and secondary sales from the distributor DMS, in-transit and credit from ERP, retailer orders from the sales app, and the promo and event calendar.
- Cleanse. Cap spikes (scheme loading, bulk institutional orders) at median + 4 MAD so they don't inflate the baseline. In production, also correct for days the SKU was out of stock, when recorded sales understate demand.
- Classify. Segment each SKU at each distributor by value (ABC) and by demand pattern using ADI and CV² (smooth, erratic, intermittent, lumpy).
- Forecast. Smooth and erratic items use damped Holt smoothing with weekday indices. Intermittent and lumpy items use Croston with the SBA correction. Planned events multiply on top. Accuracy is measured in weekly buckets on a 2-week holdout against a flat 28-day average so the team can see forecast value added.
- Set policy. Periodic review with order-up-to level, protecting demand over review period plus lead time, including lead-time variability.
- Apply constraints. Round to case multiples, cap cover by shelf life, trim to the distributor's credit headroom by priority, and optionally fill or trim the last truck.
- Review and release. Planners work the exception list, override with a reason code, approve, and the plan is posted to ERP as a sales order.
The core maths
For each SKU at each distributor, with review period R, mean lead time L, lead-time standard deviation σL, forecast error σd and service-level factor z:
Protection period P = R + L Safety stock SS = z × √( P·σd² + D̄²·σL² ) Reorder point ROP = forecast over L + SS Order-up-to S = min( forecast over P + SS , D̄ × max cover days ) Net position NP = on hand + in transit Suggested order Q = round_to_case_multiple( S − NP )Max cover days is the smaller of the class limit and the shelf-life share, so a 120-day-life snack can never be ordered beyond about 30 days of cover at the default settings.
Architecture
flowchart LR DMS["Distributor DMS
stock, secondary sales"] --> ING ERP["ERP
in-transit, credit, prices"] --> ING APP["Retailer app and SFA
orders, outlet coverage"] --> ING CAL["Promo and event calendar"] --> ING ING["Ingestion and data quality"] --> CLN["Cleansing and classification"] CLN --> FC["Forecast engine"] FC --> POL["Policy engine
safety stock, order-up-to"] POL --> CON["Constraint solver
case, shelf life, credit, truck"] CON --> WB["Planner workbench
exceptions, overrides, approval"] WB --> OUT["Sales order to ERP
and distributor notification"] OUT -.-> ING
What a production build adds
The prototype runs in the browser on synthetic data. A production system would run the engine as a scheduled service (Python with statsmodels or a gradient-boosted model for high-volume SKUs, or a planning platform such as SAP IBP or o9 if the company already licenses one), store history in a warehouse, integrate with the DMS and ERP through APIs, and push approved orders back as ERP sales orders. Distributors would see and confirm their suggested order in the distributor app. Role-based access separates planners, area sales managers who approve, and distributors who can request changes.
Rollout
- Pilot in suggest-only mode, 8 to 10 weeks. 10 to 15 distributors of mixed size and region. Orders still placed manually, but compared line by line with the ARS suggestion.
- Approve-and-release. ARS orders become the default, planners approve by exception, overrides require a reason code. Tune service levels and cover caps from pilot results.
- Touchless for clean lines. Plans with no critical exceptions release automatically. Scale region by region.
- Extend downstream. Use the same engine for retailer-level suggested orders in the sales app and for depot-to-distributor stock allocation during supply shortages.
When the distributor can't pay for the full order
The system first calculates what each SKU needs, then checks it against the smaller of the distributor's credit headroom and the amount they can pay now. If the order doesn't fit, it is redistributed using the distributor's own SKU priority list (tier and rank) and minimum order quantities, so a line is either skipped or ordered at least at its MOQ. Four methods are offered side by side with their effect on stockout risk and cover, and the planner picks one. Held-back quantity isn't lost: it stays in the need and comes back automatically in the next run.
What to measure
Distributor fill rate and out-of-stock SKU-days on must-stock lines, inventory days at distributors, forecast WMAPE and bias, share of order lines released without edits, override rate and the accuracy of overrides versus the system, truck utilisation, and near-expiry and damage write-offs. Measure against the pilot's control distributors, not against last year, so seasonality doesn't flatter the result.