Inspiration
In 2020, Singapore recorded its worst dengue year on record: 35,315 cases and 32 deaths. The deaths reported by June that year were all aged 56 to 80. Yet the response still starts after clusters have formed. NEA already runs island-wide forecasts, but officers lack an area-level, 2-week view of where risk will rise, why, and where to send inspection teams first.
Climate makes this harder. Warmer temperatures and erratic rainfall stretch the Aedes breeding season, so a model trained once goes stale. We wanted a forecast that stays accurate without a data science team maintaining it, and that protects the people at greatest risk first.
What it does
DengueRadar is an autonomous AI agent that forecasts Low / Medium / High dengue risk for every Singapore planning area, 2 weeks ahead. It combines live NEA cluster, rainfall and temperature data with PUB flood-prone areas and SingStat age data.
It serves two groups through separate logins:
- Residents get a live risk map, a plain-English reason for the risk, and alerts in Singapore's four official languages.
- NEA officers get a 2-week forecast (Now / +1 / +2 weeks) with an overlay of cases, rainfall, temperature and senior population. Whenever risk turns High, the agent automatically writes an intervention report covering what happened, why risk rose, the key drivers, and recommended actions.
What sets it apart:
- Autonomous but supervised. The agent retrains on new data, tests new feature sets, and proposes a model only if it beats both the recent-history baseline and the live model. An officer approves every change, and one-click rollback is available.
- Senior-weighted priority. Risk is weighted by each area's share of elderly residents, for example $\text{priority} = \text{risk} \times (1 + s)$, where $s$ is the senior share.
- It learns from the field. Officers log inspection results (breeding found or not), and the agent feeds them into the next retrain.
- It plans, not just predicts. Given this week's inspection teams, it suggests where they cut the most risk.
How we built it
Everything runs on the Databricks Lakehouse:
- Lakeflow Pipelines poll the NEA APIs every 5 minutes into a Volume, and Auto Loader appends to Bronze.
- Delta Lake holds Bronze (raw), Silver (cleaned and mapped to planning areas) and Gold (by area and week).
- PySpark builds lagged rainfall and heat, past cases, density, age mix and flood exposure features, with quality checks.
- MLflow tracks every run (LightGBM, walk-forward cross-validation) and registers the best model.
- An agent on Lakeflow Jobs runs weekly: retrain, test against the baseline, and propose. An officer approves.
- Foundation Model APIs turn the stored SHAP drivers into the plain-English officer report.
- Unity Catalog governs everything, including resident vs officer access, lineage and audit.
- Databricks Apps serve the Resident and Officer dashboards.
Challenges
- Letting an agent improve itself without letting it cheat. We designed safeguards so the agent never grades itself. Test data and scoring code are read-only to it, every model is tested on past outbreaks in time order, and missed High-risk areas weigh most, so a model that misses more of them is rejected even if its overall score is higher. Sanity checks require, for example, that more rain cannot lower risk.
- Small areas, noisy data. Planning-area counts are small and uneven, so we aggregate by area and week and judge the model against a simple baseline.
- Making it usable for non-technical officers. Every forecast has to come with a reason and an action, not just a colour on a map.
What we learned
- Forecast accuracy matters, but trust matters more. Explainable drivers, human approval and an audit trail in MLflow are what let officers rely on an automated system.
- Governance on the data platform (Unity Catalog) is what makes a two-persona product practical.
- A weather and cases model is a solved problem. The gap is turning it into a maintained, actionable, equity-aware tool.
What's next
- Backtest on the 2020 outbreak and report how many weeks early each area would have been flagged.
- Add what-if scenarios, such as heavy rain next week, and optional environmental proxies like hawker-centre density.
- Pilot with town councils so resident alerts and drain and construction-site checks happen earlier.
Log in or sign up for Devpost to join the conversation.