A LightGBM (Poisson, h4) forecaster of confirmed malaria cases at district × month, trained on real CAR surveillance + climate indicators, with conformal prediction intervals — chosen by a head-to-head bake-off and evaluated on a 10-month hold-out.
00Deployed
Live forecast — LightGBM (Poisson, h4)
Confirmed OPD malaria cases per district × month. Forecast for 2025-12 (data through 2025-12); ciews-malaria v0.3.0.
WIS
—
MAE
—
median abs. error
MASE
—
95% coverage
—
interval calibration
National forecast · 2025-12
238,158
cases · 95% 0–1,095,575
National reported cases — trailing 24 months
— reported cases
Per-district forecast · 2025-12
District
Forecast
95% interval
Bangassou
13,895
0–38,393
Bangui I
13,321
0–37,819
Bambari
13,130
0–37,628
Bangui Ii
11,495
0–35,993
Carnot-Gadzi
11,395
0–35,892
Alindao-Mingala
11,302
0–35,799
Paoua
10,587
0–35,085
Bossangoa
10,036
0–34,534
Kemo
9,539
0–34,037
Bangui Iii
9,502
0–33,999
Bimbo
8,848
0–33,346
Bouar -Baoro
7,940
0–32,438
Sangha-Mbaere
7,351
0–31,849
Kembe-Satema
6,546
0–31,044
Berberati
6,133
0–30,631
Mbaiki
5,884
0–30,382
Baboua-Abba
5,794
0–30,292
Bossembele
5,747
0–30,245
Bozoum-Bossemptele
5,482
0–29,980
Ouango-Gambo
5,413
0–29,910
Nana-Gribizi
5,391
0–29,888
Haute-Kotto
5,315
0–29,813
Begoua
5,188
0–29,685
Boda
5,031
0–29,528
Mobaye-Zangba
4,922
0–29,419
Kouango-Grimari
4,601
0–29,099
Nanga-Boguila
4,307
0–28,804
Bamingui-Bangoran
4,297
0–28,794
Bocaranga-Koui
3,856
0–28,354
Batangafo-Kabo
3,518
0–28,015
Ngaoundaye
3,163
0–27,661
Haut-Mbomou
2,528
0–27,026
Vakaga
2,376
0–26,873
Gamboula
2,359
0–26,857
Bouca
1,966
0–26,463
01Registry
Every model that's deployed
Straight from CI-EWS Studio's MLflow registry — 5 registered models, one per disease, each with the exact version live right now, when it was trained, and how it scored.
ModelDeployedMASEBeats naiveTrainedStatus
Malaria model — deployed detail
v1
ciews-malaria
lightgbm
21 Jul 2026 · 09:49
ml-engineer
month
1330 train / 340 test rows
14
VersionTrainedMAEWISCoverageAlert F1
v1active21 Jul 2026 · 09:4920731672100%—
02Comparative study
How LightGBM (Poisson, h4) won the bake-off
Every model saw identical features (climate indicators + autoregressive case history) and the same 10-month hold-out. WIS (Weighted Interval Score, lower is better) is the primary metric; skill % is improvement over the seasonal-naive baseline.
Model
WIS
MAE
MASE
95% cov.
Skill vs naive
LightGBM (Poisson, h4)DEPLOYED
1671.5
2073.0
0.345
89%
+45%
Seasonal Naive (baseline)
1963.6
3796.5
0.632
99%
—
WIS lower is better; skill % is the WIS improvement over seasonal-naive. All families were trained by CI-EWS Studio on identical data and hold-out — this table is regenerated from the Studio/MLflow runs, not hand-authored.
03Data profiling
What the model was trained on
Real CAR surveillance + climate indicators at district × month grain. Window 2022-01 → 2025-12.
Observations
1,670
35 districts × 48 months
Geography
35
districts nationwide
Time span
48 mo
2022-01 → 2025-12
Features
14
selected from 23 candidates
Target — confirmed malaria cases / district-month
5,886
median
7,392
mean
393,497
max
0%
zero months
Feature groups (14 total)
autoregressive (case lags)
7
climate
4
calendar / seasonal
3
04Design
Demand forecasting model
A planned model, not a shipped one — this documents what exists today, what's a placeholder, and what's still needed.
ILLUSTRATIVE — DESIGN SPEC
This model does not exist yet. Two of the six pieces below are real and already shipped (the case forecast and current stock feeds); the conversion step and output shape are running as an explicitly-tagged placeholder preview on the Supply Chain page today; the lead-time, safety-stock and uncertainty-propagation logic are not built at all.
Input
Case forecast (real, exists today)
The deployed LightGBM model already produces a per-district, next-month point forecast with a 95% conformal interval — this is the exact input the demand model will consume.
LIVE
Input
Current stock (real, exists today)
RDT on-hand and ACT/AL courses dispensed per district, read live from HMIS — the exact input for a gap calculation.
LIVE
Conversion
Cases → commodity demand (placeholder today)
Supply Chain's preview uses one flat national ratio (RDTs/ACT-AL per case). The real model needs this calibrated per district and per commodity, since consumption per case varies with testing algorithm, referral patterns, and stockage practice.
PLACEHOLDER
Logic
Lead time & safety stock (not built)
Procurement and distribution take weeks. The real model needs a reorder-point policy: order when projected stock will fall below a safety buffer before the next resupply cycle completes — not just a same-month gap.
NOT BUILT
Logic
Uncertainty propagation (not built)
Today's preview uses only the case forecast's point estimate. The real model should propagate the forecast's 95% interval through to a demand range, so a procurement decision reflects how confident the case forecast actually is.
NOT BUILT
Output
District readiness + national summary (preview shipped)
National and per-district readiness gap, refreshed monthly alongside the case forecast — the output shape is already live on Supply Chain, just running on placeholder logic until the pieces above are built.