Inspiration

Singapore became a super-aged society in 2026: 21.4% of citizens are now 65 or older. Lacking social connection carries a mortality risk comparable to smoking and greater than obesity, yet outreach by the Silver Generation Office and Active Ageing Centres (AACs) is still planned largely by hand.

What struck us was a blind spot. Singapore knows where its seniors live, but not where they are alone and out of reach. A headcount map sends outreach to the biggest towns, which are not necessarily the towns where support is missing. SilverWatch exists to close that gap: outreach where support is missing.

How we built it

For Round 1 we built the evidence base and the design. The platform itself gets built in the two-week sprint.

Evidence base. We pulled Census 2020 household-size data through the data.gov.sg API and computed the one-person household share for each planning area. We then joined it to the 55 URA planning-area boundaries to produce a real choropleth map.

The index. Each area i gets a normalised need score Nᵢ (senior density, share aged 75+, living-alone rate, ComCare rate, all as rates) and an access-gap score Gᵢ. Access comes from a two-step floating catchment area (2SFCA), where Sⱼ is the capacity of AAC j, Pₖ is the senior population in cell k, and d₀ is walking distance:

$$R_j = \frac{S_j}{\sum_{k:\, d_{kj} \le d_0} P_k}, \qquad A_k = \sum_{j:\, d_{kj} \le d_0} R_j$$

Accessibility is computed per H3 cell, aggregated to each planning area, then min–max normalised to a 0–1 score Ãᵢ. The gap is its complement, Gᵢ = 1 − Ãᵢ, so areas with no AAC in walking reach score the maximum gap. Priority is the geometric mean:

$$\text{Priority}_i = \sqrt{N_i \cdot G_i}$$

so an area ranks high only when both need and gap are high. Well-served high-need areas are sustained, not duplicated.

Planned Databricks architecture. data.gov.sg → Lakeflow ingestion into Delta (Bronze) → cleaning and H3 geocoding (Silver, Gold) → index and living-alone estimate versioned in MLflow → AI/BI dashboard with Genie for coordinators. Unity Catalog governs lineage and access. It is sized for Free Edition: one pipeline, one SQL warehouse.

What we learned

  • Headcount is not need. In Census 2020, 24–35% of households in Outram, Kallang, Toa Payoh, Geylang and Bukit Merah are one person living alone, against 16% nationally. Bedok has the most households of any planning area, yet sits close to the national rate.
  • Verify every statistic, even the famous ones. "1 in 5 aged 65+" refers to citizens, not residents. The often-quoted social-connection finding says comparable to smoking, not worse than it. We rewrote our claims to match the primary sources.
  • Without ground truth, be honest about what a model does. No dataset labels who is lonely, so SilverWatch prioritises areas for outreach; it does not predict loneliness.
  • Data engineering is mostly about geography. Agency datasets use blocks, towns, planning areas and service areas. Reconciling them is harder than loading them.

Challenges we faced

  • Missing granularity. A senior living-alone rate may not be published at planning-area level, so our map uses one-person households (all ages) as a clearly labelled proxy. Smaller areas grouped as "Others" in the census appear grey.
  • A circular impact metric. Measuring success by "isolated seniors reached" partly reuses the index's own inputs. So we plan an independent check: comparing our top 10 with a blind ranking from outreach practitioners. If historical AAC data allows, we will also backtest an index built on 2015 data against 2020 outcomes.
  • Scope discipline. We split our seven datasets into five core datasets, loaded in week one, and two context benchmarks that are never joined, keeping the build achievable in two weeks.
  • Geocoding risk. Block-level HDB data needs coordinates for the catchment model, which could consume much of week one. We flagged it as our first task.

Built With

Share this project:

Updates

Submission history