Forecasting admissions from outbreaks and weather
IIB Board AI Pack, page 24. Second phase. Built here on mock and synthetic data.
Today. The government publishes a weekly report of disease outbreaks by district, and weather and air quality data are public. These sit apart from insurance claims.
What would change. AI reads each weekly outbreak report and pulls out the district, disease and case numbers. Combined with rainfall, heat and air quality, it forecasts hospital admissions two to four weeks ahead, so insurers and hospitals can prepare.
1. Where admissions are likely to rise
Over the three weeks from 5 October 2026, no state passes the rise rule for dengue. The largest rise forecast is in Assam: 3.2 admissions in the week of 12 Oct, against 1.2 a week over the last four weeks. Across the country the radar expects about 117 dengue admissions over the three weeks, against 286 in the last three.
| State | Last 4 weeks, a week | Forecast, week of 5 October 2026 | Forecast, week of 12 October 2026 | Forecast, week of 19 October 2026 | Call | Districts called |
|---|---|---|---|---|---|---|
| Assam | 1.2 | 2.9 | 3.2 | 1.2 | No rise expected | 0 |
| Karnataka | 11.8 | 12.3 | 1.5 | 1.7 | No rise expected | 0 |
| Tripura | 0.0 | 0.1 | 0.1 | 0.1 | No rise expected | 0 |
| Arunachal Pradesh | 0.0 | 0.1 | 0.1 | 0.1 | No rise expected | 0 |
| Lakshadweep | 0.0 | 0.0 | 0.1 | 0.0 | No rise expected | 0 |
| Jammu and Kashmir | 0.0 | 0.0 | 0.1 | 0.1 | No rise expected | 0 |
| Manipur | 0.0 | 0.0 | 0.0 | 0.0 | No rise expected | 0 |
| Mizoram | 0.0 | 0.0 | 0.0 | 0.0 | No rise expected | 0 |
| Meghalaya | 0.0 | 0.0 | 0.0 | 0.0 | No rise expected | 0 |
| Sikkim | 0.0 | 0.0 | 0.0 | 0.0 | No rise expected | 0 |
| Odisha | 0.8 | 0.8 | 0.7 | 0.6 | No rise expected | 0 |
| Nagaland | 0.0 | 0.0 | 0.0 | 0.0 | No rise expected | 0 |
Likely to rise means a forecast week at least 2 times the last four weeks' average and at least 6 admissions more. The table shows the 12 states with the largest forecast rise. Pick an earlier week to see what the radar said then, and what happened.
The forecast reads admissions, mock rain, heat and air quality, and the outbreak reports as the rules reader read them. No personal data is used.
2. One state: forecast against what happened
Lines are weekly dengue admissions. Bars are rain in millimetres (mock). The dashed line is the forecast for the next four weeks.
Loading
The chart loads here.
3. The outbreak report, and what was read from itmock
One mock report a week, 104 in all, in the style of the Integrated Disease Surveillance Programme (IDSP), the government's weekly list of outbreaks by district. They hold 1,067 outbreak entries, written the way real reports vary: labelled lines, short lines and prose, older district names, numbers in words. Every outbreak is fictional.
WEEKLY OUTBREAK REPORT (MOCK) In the style of the Integrated Disease Surveillance Programme. Made up for the IIB demo. Week 40 of 2026: 28 September 2026 to 4 October 2026. Every outbreak below is fictional. District names are real places used for illustration only. Summary. 19 outbreaks reported this week. 1 reported late. 3 earlier outbreaks followed up. PART A. OUTBREAKS REPORTED THIS WEEK 1. Visakhapatnam (Andhra Pradesh). Viral hepatitis A. 45 cases, no deaths. Started 27 Sep 2026. Under surveillance. Samples sent to the regional laboratory in Chennai. 2. Assam, Morigaon. ADD. 65 cases, 1 death. Started 26 Sep 2026. Under surveillance. Cases treated at the community health centre. 3. Ref AS/BAR/2026/40/003 | State: Assam | District: Barpeta | Disease: Diarrhoea and vomiting | Cases: 61 | Deaths: 1 | Date of start: 24.09.26 | Status: Under surveillance Comment: Health education given in schools and markets. 4. Ref AS/KMR/2026/40/004 | State: Assam | District: Kamrup | Disease: Diarrhoea and vomiting | Cases: 59 | Deaths: 2 | Date of start: 26-09-2026 | Status: Under surveillance Comment: Chlorine tablets and ORS given to 325 families. 5. Ref AS/KMM/2026/40/005 | State: Assam | District: Guwahati (Kamrup Metro) | Disease: ADD | Cases: 31 | Deaths: 1 | Date of start: 25.09.26 | Status: Under surveillance Comment: Water samples from 8 sources found unfit to drink. 6. Barpeta (Assam). Suspected leptospirosis. 17 cases, 2 deaths. Started 27 September 2026. Under surveillance. Water samples from 39 sources found unfit to drink. 7. Ref AS/MOR/2026/40/007 | State: Assam | District: Morigaon | Disease: Leptospirosis | Cases: 17 | Deaths: 1 | Date of start: 24/09/2026 | Status: Under surveillance Comment: Health education given in schools and markets. 8. Ref AS/MOR/2026/40/008 | State: Assam | District: Morigaon | Disease: Acute diarrhoeal disease, cholera confirmed | Cases: 14 (9 lab confirmed) | Deaths: Nil | Date of start: 25.09.26 | Status: Under surveillance Comment: Water samples from 24 sources found unfit to drink. 9. A cluster of leptospirosis was reported from Kamrup, Assam. Since 24 September, eight cases have been found and none died. Surveillance continues. A leaking pipeline near the market was repaired. 10. Ref CG/BSP/2026/40/010 | State: Chhattisgarh | District: Bilaspur | Disease: Acute diarrhoeal disease | Cases: 44 (22 lab confirmed) | Deaths: Nil | Date of start: 27.09.26 | Status: Under surveillance Comment: Water samples from 33 sources found unfit to drink. 11. Ref JK/SRI/2026/40/011 | State: Jammu and Kashmir | District: Srinagar | Disease: Food poisoning | Cases: 23 (7 lab confirmed) | Deaths: Nil | Date of start: 23.09.26 | Status: Under surveillance Comment: Health education given in schools and markets. 12. Ref JK/SRI/2026/40/012 | State: Jammu and Kashmir | District: Srinagar | Disease: Varicella (chickenpox) | Cases: 21 (10 lab confirmed) | Deaths: 0 | Date of start: 27-09-2026 | Status: Under surveillance Comment: Health education given in schools and markets. 13. A cluster of hepatitis A was reported from Belagavi, Karnataka. Since 24 September 2026, 21 cases have been found and none died. The outbreak is under surveillance. Cases treated at the community health centre. 14. Ref KA/BEL/2026/40/014 | State: Karnataka | District: Belagavi | Disease: Leptospirosis | Cases: 7 | Deaths: 1 | Date of start: 22-09-2026 | Status: Under surveillance Comment: Active case search in 32 villages and wards. 15. Ref LD/KAV/2026/40/015 | State: Lakshadweep | District: Lakshadweep | Disease: Jaundice (hepatitis A) | Cases: 20 | Deaths: 0 | Date of start: 22-09-2026 | Status: Under surveillance Comment: Chlorine tablets and ORS given to 241 families. 16. Ref NL/KOH/2026/40/016 | State: Nagaland | District: Kohima | Disease: Acute diarrhoeal disease (ADD) | Cases: 22 | Deaths: 1 | Date of start: 22-09-2026 | Status: Under surveillance Comment: Samples sent to the regional laboratory in Hyderabad. 17. Punjab, Ludhiana. ADD. 44 cases, 1 death. Started 26.09.26. Under surveillance. Active case search in 52 villages and wards. 18. Rajasthan, Udaipur. Food poisoning. 48 cases, no deaths. Started 26.09.26. Under surveillance. Active case search in 48 villages and wards. 19. Ref UP/AGR/2026/40/019 | State: Uttar Pradesh | District: Agra | Disease: Acute encephalitis syndrome (AES) | Cases: 14 | Deaths: 2 | Date of start: 23.09.26 | Status: Under surveillance Comment: Fogging and source reduction done in 423 houses. PART B. OUTBREAKS REPORTED LATE 20. Delhi, North West Delhi. Diarrhoea and vomiting. 35 cases, 1 death. Started 15 Aug 2026. Under control. Water samples from 26 sources found unfit to drink. PART C. FOLLOW-UP OF EARLIER OUTBREAKS 21. Karnataka / Bangalore Urban / Dengue (NS1 positive): earlier outbreak, started 17.09.26. Total cases now 264, deaths 3. Under surveillance. 22. Karnataka / Bengaluru Urban / Malaria: earlier outbreak, started 20/09/2026. Total cases now 56, deaths 0. Under surveillance. 23. Follow-up. Greater Mumbai, Maharashtra. Falciparum malaria. First reported in week 37. 22 new cases this week, 130 in all since 4 September. No deaths so far. Under surveillance. End of report.
23 entries, read by the AI reader
The AI read 23 of 23 entries right. The rules read 23 right.
| No. | State | Illness | Cases | Deaths | Started | Check |
|---|---|---|---|---|---|---|
| 1 | Andhra Pradesh | Hepatitis A | 45 | 0 | 27 Sep 2026 | Right |
| 2 | Assam | Acute diarrhoeal disease | 65 | 1 | 26 Sep 2026 | Right |
| 3 | Assam | Acute diarrhoeal disease | 61 | 1 | 24 Sep 2026 | Right |
| 4 | Assam | Acute diarrhoeal disease | 59 | 2 | 26 Sep 2026 | Right |
| 5 | Assam | Acute diarrhoeal disease | 31 | 1 | 25 Sep 2026 | Right |
| 6 | Assam | Leptospirosis | 17 | 2 | 27 Sep 2026 | Right |
| 7 | Assam | Leptospirosis | 17 | 1 | 24 Sep 2026 | Right |
| 8 | Assam | Cholera | 14 | 0 | 25 Sep 2026 | Right |
| 9 | Assam | Leptospirosis | 8 | 0 | 24 Sep 2026 | Right |
| 10 | Chhattisgarh | Acute diarrhoeal disease | 44 | 0 | 27 Sep 2026 | Right |
| 11 | Jammu and Kashmir | Food poisoning | 23 | 0 | 23 Sep 2026 | Right |
| 12 | Jammu and Kashmir | Chickenpox | 21 | 0 | 27 Sep 2026 | Right |
| 13 | Karnataka | Hepatitis A | 21 | 0 | 24 Sep 2026 | Right |
| 14 | Karnataka | Leptospirosis | 7 | 1 | 22 Sep 2026 | Right |
| 15 | Lakshadweep | Hepatitis A | 20 | 0 | 22 Sep 2026 | Right |
| 16 | Nagaland | Acute diarrhoeal disease | 22 | 1 | 22 Sep 2026 | Right |
| 17 | Punjab | Acute diarrhoeal disease | 44 | 1 | 26 Sep 2026 | Right |
| 18 | Rajasthan | Food poisoning | 48 | 0 | 26 Sep 2026 | Right |
| 19 | Uttar Pradesh | Acute encephalitis syndrome | 14 | 2 | 23 Sep 2026 | Right |
| 20 | Delhi | Acute diarrhoeal disease | 35 | 1 | 15 Aug 2026 | Right |
| 21 | Karnataka | Dengue | 264 | 3 | 17 Sep 2026 | Right |
| 22 | Karnataka | Malaria | 56 | 0 | 20 Sep 2026 | Right |
| 23 | Maharashtra | Malaria | 130 | 0 | 4 Sep 2026 | Right |
The AI reads one report per call and the answer is kept, so a report is never sent twice. The rules reader has read every report, and the forecast always uses the rules reader's rows.
The AI is given only the report text, with the lists of district codes and illnesses to choose from. It returns rows, which are checked before use.
4. How we would measure it
The surges, the outbreak reports and the rain were built into the test data, so these scores show the method works as designed. The real test is a pilot on real reports and real claims. Rise calls are counted over 12 forecast weeks and every district, so a call is one district in one week. The rule is the same for forecasts and for what happened. Two weeks ahead, the forecasts added up to 1,332 admissions against 1,548 that happened, 14% low. 187 of the 216 missing admissions were in the 6 cities with planted surges, which were larger than their forecasts.
Error by how far ahead
| Forecast made | Weeks scored | Radar error | Simple rule error | Radar better by |
|---|---|---|---|---|
| 1 week before | 12 | 0.78 | 1.03 | 24% |
| 2 weeks before | 11 | 0.86 | 1.11 | 23% |
| 3 weeks before | 10 | 0.90 | 1.11 | 19% |
| 4 weeks before | 9 | 0.96 | 1.13 | 16% |
Error is the average gap between forecast and actual dengue admissions, per district and week. Further ahead the radar knows less: rain that has not fallen and outbreaks not yet reported.
The planted dengue surges
| State | Week of heavy rain | Rain, mm | Surge, weeks of | Called |
|---|---|---|---|---|
| Uttar Pradesh | 6 July 2026 | 267 | 20 Jul and 27 Jul | Missed |
| Maharashtra | 20 July 2026 | 643 | 3 Aug and 10 Aug | Two weeks ahead |
| Telangana | 3 August 2026 | 243 | 17 Aug and 24 Aug | Two weeks ahead |
| Delhi | 10 August 2026 | 232 | 24 Aug and 31 Aug | One week ahead |
| West Bengal | 24 August 2026 | 241 | 7 Sep and 14 Sep | One week ahead |
| Karnataka | 7 September 2026 | 228 | 21 Sep and 28 Sep | One week ahead |
Story H3: dengue admissions surge two and three weeks after heavy rain in six cities. Called means the radar said "likely to rise" in the week of the rain (two weeks ahead) or the week after (one week ahead), before the first surge week. Uttar Pradesh was missed: its forecast stayed under the bar. The calls one week ahead had that week's outbreak report to go on. In the test data those reports were drawn from the next week's admissions, so real reports would give less warning.
Forecast error state by state
The radar was closer than the simple rule in 21 of the 32 states with any dengue admission in the weeks scored. Largest states first.
| State | Admissions | Forecast | Radar error | Simple rule error | Closer |
|---|---|---|---|---|---|
| Maharashtra | 350 | 338.2 | 8.41 | 19.30 | Radar |
| Delhi | 157 | 80.6 | 6.95 | 10.52 | Radar |
| Telangana | 152 | 111.0 | 5.70 | 12.16 | Radar |
| Uttar Pradesh | 135 | 121.1 | 6.39 | 10.57 | Radar |
| Karnataka | 100 | 71.0 | 3.09 | 5.50 | Radar |
| West Bengal | 96 | 66.8 | 5.21 | 6.07 | Radar |
| Gujarat | 89 | 70.4 | 3.01 | 4.02 | Radar |
| Kerala | 77 | 90.6 | 3.09 | 3.09 | Simple rule |
| Madhya Pradesh | 70 | 57.3 | 1.67 | 3.39 | Radar |
| Tamil Nadu | 56 | 46.0 | 1.68 | 2.23 | Radar |
| Haryana | 32 | 24.3 | 1.69 | 2.16 | Radar |
| Rajasthan | 31 | 27.8 | 1.11 | 1.41 | Radar |
| Bihar | 30 | 31.5 | 1.41 | 1.05 | Simple rule |
| Andhra Pradesh | 29 | 23.8 | 1.41 | 1.93 | Radar |
| Chandigarh | 22 | 17.1 | 1.41 | 1.59 | Radar |
| Assam | 20 | 28.6 | 1.06 | 1.00 | Simple rule |
| Jharkhand | 16 | 18.9 | 1.01 | 1.11 | Radar |
| Chhattisgarh | 15 | 17.3 | 0.85 | 1.07 | Radar |
| Odisha | 15 | 23.3 | 1.15 | 0.95 | Simple rule |
| Uttarakhand | 13 | 20.4 | 0.98 | 1.00 | Radar |
| Punjab | 12 | 10.0 | 0.67 | 0.86 | Radar |
| Goa | 11 | 7.2 | 0.87 | 0.75 | Simple rule |
| Dadra and Nagar Haveli and Daman and Diu | 7 | 4.4 | 0.73 | 0.68 | Simple rule |
| Andaman and Nicobar Islands | 4 | 5.7 | 0.56 | 0.52 | Simple rule |
| Himachal Pradesh | 2 | 0.6 | 0.22 | 0.30 | Radar |
Reading the reports, field by field
| Field | Rules reader, all 104 reports | Rules reader, the 11 the AI read | AI reader, same reports |
|---|---|---|---|
| District | 97.3% | 95.7% | 99.6% |
| Disease | 100.0% | 100.0% | 100.0% |
| Cases | 100.0% | 100.0% | 100.0% |
| Deaths | 100.0% | 100.0% | 100.0% |
| Start date | 100.0% | 100.0% | 100.0% |
| Status | 100.0% | 100.0% | 100.0% |
| Whole entry right | 97.3% | 95.7% | 99.6% |
The AI has read 11 of the 104 reports so far. Both readers are scored on the same reports. The rules reader was written for this one report format. All 29 of its mistakes are district names written in a way it was not given: North Twenty Four Parganas, Gautam Budh Nagar, South Twenty Four Parganas, Dehra Dun, Ranga Reddy, Kamrup (Metro). A person writing rules cannot think of every spelling. The AI matches names on meaning, which is why it did better on the reports it read.
How the radar works, and what to keep in mind
What it reads. Weekly admissions for dengue and malaria by district from IIB's health claims (synthetic here), rain, top temperature and air quality by district and week (mock, standing in for IMD and CPCB), and the weekly outbreak reports (mock).
How it forecasts. Gradient boosted decision trees (scikit-learn HistGradientBoostingRegressor) with a Poisson loss, which suits counts. Every district is in one model, so a lesson from one district's outbreak carries to others. One model for each horizon, one to four weeks ahead, dengue and malaria together.
How it was tested. Each of the last 12 weeks with data was taken in turn as "today". The forecast used only what was known that week. The model was retrained every 2 weeks on everything known by then, 28 models in all. Those forecasts were then compared with the admissions that happened, and with the simple rule "the same as the last four weeks". The whole run took 13.6 seconds and is kept until the data changes.
What moves the forecast most, two weeks ahead. The rise in error when one input is shuffled.
| Input | Error added |
|---|---|
| The district's usual week so far | 0.096 |
| Rain this week | 0.043 |
| Rain a week earlier | 0.041 |
| Average of the last 4 weeks | 0.031 |
| Time of year | 0.019 |
| Air quality index | 0.011 |
| Dengue or malaria | 0.009 |
| Top temperature | 0.009 |
Keep in mind. The mock reports were drawn from the synthetic admissions about a week later, so they lead admissions by design. Real reports would lead by less, and less reliably. Real IDSP reports often come out a week or more late, which cuts the warning time. The surges planted in story H3 have no earlier example in the two years of data, so the radar can learn them only from the first surges in the test weeks. 278 of the 320 dengue and malaria entries follow the admissions this way. The rest are small outbreaks that never reach insured patients, as happens in real life. The flood in lower Assam (story P2) adds 15 water-borne outbreak entries to the last two reports.
Personal data is masked before any person or the AI sees it. The AI flags and drafts. A person decides. Mock data stands in for outside sources that need an agreement.