2025-06-24
UNSEEN
Human story
: What data missesNilu went to a pharmacy for Product A.
It was not in stock and the system logs it as
zero demand.
This creates broken trust and leads to create
UNMET DEMAND.
UNSEEN
Analytical reality
: Why this mattersStockouts censor demand.
Observed sales ≠ actual demand.
Inventory decisions based on this false signal?
Understocking → more stockouts.
Forecasts don’t just underperform. They miss the whole story.
A lost sale = a lost opportunity for care.
SUBSTITUTED
BIG PICTURE
In reality…
There are more than
218 million women
like Nilu still have an unmet need for family planning.
Ultimately, this results in dropouts, unwanted pregnancies, and almost 7 million hospitalizations
each year in developing countries.
critical
Stockouts
: Periods when demand is higher than available inventory, leading to censored observations of demand.
Interruptions
: Periods when no products are issued despite available stock, thus artificially recorded as zero demand.
Censored Demand
: Demand occurring during periods when products are unavailable (stockouts or interruptions), thus not fully observable.
True Demand
: Actual demand that would have occurred if sufficient stock was available or if there were no interruptions.
How can a demand forecasting and inventory optimization model that incorporates lost sales estimation and contextual field data enhance contraceptive supply chain performance and reduce stockouts in developing countries?
Figure 1: Censorship scenarios in family planning supply chains.
First stage
: Truncated Conformal Kalman Filter (TCKF)\[ X_t = F X_{t-1} + \eta_t, \quad \eta_t \sim \mathcal{N}(0, Q_t) \]
\[ y_t = \begin{cases} H X_t + \nu_t & \text{if uncensored} \\ 0 & \text{if fully censored} \\ \min(H X_t, s_t) & \text{if partially censored} \end{cases} \]
First stage
: Truncated Conformal Kalman Filter (TCKF)\[ \mu_t = H \hat{X}_{t|t-1}, \quad \sigma_t^2 = H P_{t|t-1} H^T + R \]
\[ \hat{y}_t = \mu_t + \sigma_t \cdot \frac{\phi(z_t)}{1 - \Phi(z_t)}, \quad z_t = \frac{y_t - \mu_t}{\sigma_t} \]
\[ \hat{X}_{t|t} = \hat{X}_{t|t-1} + K_t (\hat{y}_t - \mu_t) \]
First stage
: Truncated Conformal Kalman Filter (TCKF)\[ D_t \in [\max(0, \mu_t - q_\alpha), \mu_t + q_\alpha] \]
Note on Initialization: Initial state vector \(X_0 = [\ell_0, \tau_0, \gamma_0]^T\) is extracted via STL decomposition:
example
Actual vs. observed demand for one representative series per type, with disruptions and censoring shaded.
Policy 1:
order-up-to level (deterministic target)
Method | MASE (mean) | CSL (mean) | Lost Sales Rate (mean) | Inventory Efficiency (mean) | mCPR Loss (mean) |
---|---|---|---|---|---|
TCKF | 1.27 | 0.88 | 0.12 | 3.12 | 0.08 |
Linear Regression | 1.52 | 0.85 | 0.14 | 2.25 | 0.1 |
Moving Average | 1.58 | 0.83 | 0.16 | 3.69 | 0.11 |
Naive | 1.87 | 0.86 | 0.15 | 3.22 | 0.09 |
Policy 2
: quantile-based order-up-to level (uncertainty-aware target) - 1 month leadtime
Policy 2
: quantile-based order-up-to level (uncertainty-aware target) - 1 month leadtime
Add more benchmarking methods → e.g., Censored ETS,...
Extend empirical model with external covariates → Account for special events, disruptions, and policy shifts
Conduct a lab experiment with real demand planners → Measure how model recommendations affect decision-making