Our Team

  • Lincoln You Liheng - NUS, Finance & Quantitative Finance, Year 1
  • Park Jungwoo - NUS, Chemical Engineering & Quantitative Finance, Year 1
  • Noriko Khang - NUS, Mathematics & Computer Science, Year 1

Inspiration

Singapore's worst dengue year was 2020: 35,315 cases, after the virus switched to the DENV-3 serotype, which few residents were immune to. In 2026 the same signal is back. DENV-3 rose from 19.1% of cases in January to 59.9% in June.

Meanwhile Project Wolbachia, which cuts dengue risk at release sites by over 70%, reaches half of all households this year. That leaves about 800,000 households unprotected, with no sites announced beyond 2026. Public dengue data shows clusters only after cases appear. We wanted a tool that looks ahead, and that points Singapore's best weapon where it will prevent the most cases.

What it does

DengueRadar forecasts dengue-cluster risk for each of Singapore's 55 planning areas, 2 and 8 weeks ahead. It adjusts for where Wolbachia already protects, and ranks unprotected estates by the cases a release would avert. Six tools sit in one dashboard:

  1. Live cluster map: today's NEA clusters by planning area, with alert level and Wolbachia coverage.
  2. Fortnight risk forecast: Low / Medium / High per area for the next 2 weeks, plus an 8-week outlook.
  3. "Why here?" area brief: the top three drivers behind each score, in plain English.
  4. Wolbachia expansion planner: ranks unprotected areas by expected cases averted per 1,000 households, with a what-if toggle.
  5. Hit list and alerts: a weekly top-10 for source reduction, and an alert when an area turns High.
  6. Trust panel and 2020 replay: forecast vs actual, skill against a naive baseline, and a replay of the record outbreak.

Expected cases averted in area a, where ŷₐ is the forecast cases, E ≈ 0.7 is NEA's reported risk reduction at release sites, and Hₐ is the number of households in the area:

$$\text{averted}_a = E \cdot \hat{y}_a, \qquad \text{per 1,000 households} = \frac{1000 \cdot \text{averted}_a}{H_a}$$

How we're building it

  • Ingest: Lakeflow Jobs pull data.gov.sg dengue clusters daily and rainfall, temperature and humidity hourly. Auto Loader lands them in bronze Delta tables. History is a one-off bulk load: NEA's yearly weather files (about 1.1 GB each) are aggregated to daily station totals on arrival.
  • Transform: Lakeflow Declarative Pipelines take the data from bronze to silver to gold with data-quality expectations. They keep every daily cluster snapshot as history and join stations and clusters to the 55 URA planning areas.
  • Model: gradient-boosted trees on rainfall, temperature and humidity lagged 1–16 weeks, past cluster activity, a DENV-3 flag and Wolbachia status. MLflow tracks every run against recent-history and seasonal baselines in walk-forward backtests. The best model is registered in Unity Catalog and scored weekly.
  • Serve: an AI/BI dashboard, a Genie space for plain-English questions, SQL alerts, and area briefs from a Foundation Model API endpoint.
  • Govern: Unity Catalog for every table and model, with lineage from API to forecast.

Challenges we expect

  • No history in the live feed. The cluster dataset shows only active clusters. We use SGCharts' archive of NEA cluster snapshots (twice weekly, May 2013 to November 2020) for area-level labels, and archive the live feed daily from now on.
  • Network limits on Free Edition. Outbound internet is restricted to trusted domains. If data.gov.sg is blocked, a scheduled external poller drops files into a Unity Catalog Volume for Auto Loader.
  • A quiet year. 2026 had 2,424 cases to 22 September, so our demo replays 2020 to show lead time on real data.
  • Wolbachia isn't an open dataset. We enter release areas by hand from NEA's website and flag them as manual input.

What we've learned so far

  • Serotype switches, not just weather, set up Singapore's biggest outbreaks.
  • Containing an outbreak takes about two months, so a useful warning has to come weeks before cases appear.
  • NEA already forecasts dengue nationally. What's missing in the open is risk by planning area that accounts for Wolbachia and explains itself.

What's next

In the two-week sprint, week 1 covers ingestion, the cluster archive, bronze-to-gold tables, a baseline and model v1. Week 2 adds the Wolbachia layer, the expansion planner, the dashboard, Genie, alerts and the 2020 replay. Our team of three splits into data engineering, modelling, and dashboard and story.

Built With

  • ai-bi-dashboards
  • auto-loader
  • data.gov.sg
  • databricks
  • databricks-sql
  • delta-lake
  • foundation-model-api
  • genie
  • geojson
  • geopandas
  • lakeflow
  • lightgbm
  • mlflow
  • pyspark
  • python
  • shap
  • sql
  • unity-catalog
Share this project:

Updates

Submission history