What the plan changes
Days without stock before routine resupply arrives, if nothing is done vs if the transfers go out today
Each medicine line is simulated day by day over its own resupply window (7 to 14 days) against its forecast. A transfer arrives the day after dispatch at the earliest; the donor gives up the stock today. Demand that cannot be met on a day is counted as lost, because patients go without rather than wait. Warehouse indents arrive with routine resupply, so they are not counted here.
Early warnings
Vital medicines first, then by stock-out probability
District risk
Medicine lines at critical or warning level
Field report intake
SMS / WhatsApp / IVR transcripts from PHC pharmacists
How to read this console
Every number comes from the same pipeline: clinic visit counts are screened for outbreaks, each PHC's stock history is cleaned, demand is forecast 14 days ahead, and a transfer planner moves stock before it runs out or expires. Change the Demand scenario or District at the top and every view recalculates. Click any PHC on the map to open its forecast.
If an emergency hit tomorrow
Stress test: each district is hit by each emergency in turn, for 14 days, with supply lines cut
Stress-test matrix
Share of demand for vital and outbreak medicines that the district's PHCs could still meet
| District | Dengue | Diarrhoea | Heatwave | Worst case: today → pre-positioned → shared shelf → hub buffer |
|---|
Starts from today's stock after today's transfers. Demand for the medicines each emergency drives rises to its peak over 3 days, the same ramp the forecast uses. Unmet demand is lost, because patients go without. Red is under 60%, amber under 85%.
Worst case by district
Each layer adds to the one before
Pre-positioning orders
Moved in calm times, before any alert, so the stock is on the shelf when the surge starts. The weakest district and scenario are served first. A donor gives only what it would not need in its own worst emergency, so no donor becomes less prepared. Moves stay within 150 road km, and cold-chain items only move between working fridges.
| Prepares for | Medicine | From | To | Qty | Distance | Demand met in that emergency |
|---|
Shared cluster shelves
The PHCs of a district act as one shelf, stocked through a hub
Today each PHC holds its own safety stock against its own bad days. When the district's PHCs share one virtual shelf, a surge at one PHC is covered by quiet shelves nearby, delivered the same day by the district vehicle from the hub. The same availability then needs far less safety stock, because bad days rarely hit every PHC at once (square-root law, 95% service). Where even a shared shelf falls short of 90% in some emergency, the hub holds a buffer that it issues oldest-first into routine use, so the buffer rotates instead of expiring.
| District | Hub PHC | Spokes | Furthest spoke | Safety stock, separate shelves | Shared shelf | Saving | Hub buffer for 90% in any emergency | Value |
|---|
Syndromic OPD surveillance
Daily outpatient cases by syndrome, all PHCs in the district
Detection uses the CDC EARS C2 method: today's count is compared with the mean and spread of a 7-day baseline that ends 2 days earlier, so a slow rise cannot hide itself. Three standard deviations above baseline on 2 of the last 3 days raises an alert. An alert can switch the demand forecast into outbreak mode for exactly the districts affected, days before an outbreak is officially declared.
| District | Syndrome | Today | Baseline | Ratio | C2 score | Days | Status |
|---|
Signal
How accurate is the forecast?
The last 14 days of history are hidden, forecast from the 106 days before, then compared with what was actually used
Medicine stock and demand forecast
Forecast: Holt linear smoothing on day-of-week adjusted consumption (120 days). Before fitting, days when the PHC had run out are replaced with estimated true demand (a stock-out records zero use, which would teach the model that demand is low), and data-entry spikes are capped. Where a PHC's report is overdue, today's stock is estimated from forecast use since the last report and the uncertainty is widened.
Forecast
Select a row to see its forecast.
| PHC | Medicine | Stock | Daily forecast | Days cover / lead | P(stock-out) | Status |
|---|
Batches that will expire before use
First-expiry-first-out simulation against each PHC's own forecast
| PHC | Medicine | Lot | Expires | In lot | Used in time | Will expire | Value | Action |
|---|
Projected loss by medicine
₹ value, and how much transfers recover
A lot that a quiet PHC cannot use before its expiry date is sent to a busier PHC that will use it in time. That PHC then draws on this stock first, and its own later-expiring stock lasts longer.
Recommended cross-PHC transfers
Two kinds of transfer. Prevent stock-out moves surplus to PHCs that would run out before resupply. Vital medicines are served first, nearest donor first, and donors with expiring stock are preferred. Rescue expiring stock moves lots that would expire unused to PHCs that will use them in time. Cold-chain items (2–8 °C) move only between PHCs with a working ice-lined refrigerator, within 150 km.
| Type | Medicine | From (donor) | To (receiver) | Qty | Distance | ETA | Impact | Status |
|---|
State warehouse indents
Need no nearby PHC can cover, Vital first (WHO VEN priority)
| Priority | Medicine | PHC | District | Qty to indent | Cost | Note |
|---|
Vehicle runs
Each district vehicle leaves its headquarters, collects from donor PHCs, delivers to receivers and returns. A transfer joins a run only if that costs no more road km than a separate trip, and a run stays within an 8-hour day (35 km/h plus 15 minutes a stop). Runs carrying vaccines, insulin or oxytocin need a cold box.
| Run | Route (collect ↑, deliver ↓) | Items | Road km | Hours | Carry | Status |
|---|
Work orders for PHC pharmacists
One SMS per PHC, in the same medicine codes pharmacists already use to report stock, so it works on any phone. PHCs whose last report is 3 or more days old are asked to count their stock before anything moves, so nobody drives stock around on stale numbers.
| PHC | Send | Receive | Indent | SMS |
|---|
Bed occupancy by district
Occupied / total, today
Staff attendance, last 14 days
Share of sanctioned staff marked present
Referral finder
Nearest PHCs with a free bed and a medical officer on duty today
| Refer to | District | Distance | Travel | Free beds | Medical officer | Stock of vital medicines |
|---|
PHC capacity register
| PHC | District | Beds | Occupied | Medical officer | Nurses present | Attendance 7d | Cold chain | Flag |
|---|
Overdue stock reports
Today's stock is estimated until the PHC reports
| PHC | District | Last report | Critical | Action |
|---|
Automatic history corrections
Applied before the forecast model is fitted
| PHC | Medicine | Issue | When | Recorded → model |
|---|
Bring your own data
Load a real stock ledger, or export the current one
CSV columns: phc_id,medicine_code,stock, with optional expiry_days (days until the lot expires). Medicine codes: . Rows replace the stock on hand and mark the PHC as reported today.
Shared demand model across BRICS health systems
Each national node trains the demand model on its own PHC data. Only model weights leave the country; patient and facility records stay local. The coordinator averages weights by sample count (FedAvg) and sends the global model back. Nodes with little data, and little outbreak history, gain the most.
Test error per training round
Mean absolute error, units/day, averaged over nodes
Local-only vs federated
Held-out error per national node
Situation brief for the District Health Officer
Gemini connection
With a Gemini API key the brief is written by Gemini from the live dashboard data, in any language. Without one, a built-in template writes it in English, Hindi or Portuguese. The key stays in this browser.