Inspiration

We picked C3 because it felt less obvious than the other problem statements. Everyone in Singapore has a favourite hawker centre, but we'd never asked who doesn't have one nearby.

Our first ideas were broad: track food waste, electricity and water use at hawker stalls, predict which stalls would close, and get young people into part-time hawker jobs. When we went looking for data, most of that simply didn't exist at stall level. So we narrowed down to a question the open data could actually answer: where are hawker centres, and where are they missing?

This matters right now because the government has committed up to S$1 billion to upgrade hawker centres and build five new ones, and the locations of those five haven't been announced yet.

What it does

KopilamAI is a planning tool for NEA and town council planners. It maps where hawker coverage is thin (weighting areas with more elderly residents), shows who loses their nearest hawker centre when one closes for months of upgrading, and recommends where the five new centres should go. It also estimates food waste per centre, clearly labelled as an estimate, and planners can ask questions in plain English through a Genie space.

How we built it

For Round 1 we did a first analysis in Python using NEA's hawker centre data (129 centres), SingStat population by planning area, and URA planning area boundaries. We worked out cooked-food stalls per 10,000 residents for every planning area.

In the build sprint we'll move this onto Databricks Free Edition: Lakeflow to ingest the data, Delta tables governed in Unity Catalog, models tracked in MLflow, and an AI/BI dashboard plus Genie space for planners.

Challenges we ran into

Our biggest challenge was finding out our first plan didn't hold up. During a team review we listed six gaps between what we wanted to claim and what the data could support. The closures dataset is mostly cleaning schedules, not permanent closures. Food waste data is national only. SingStat price data shows trends rather than dollar differences, so we couldn't say exactly how much more people pay when a centre closes. We rewrote the idea around what the data actually shows, and it got stronger.

We also had to be upfront about limits: we count NEA hawker centres only, not coffee shops, and population means citizens and PRs.

Accomplishments that we're proud of

Finding real numbers before writing a single slide. Choa Chu Kang has 187,550 residents and no hawker centre at all. Geylang has 56.8 cooked-food stalls for every 10,000 residents, while Bukit Batok has 1.3. Around 44% of residents live in planning areas with fewer than 5 stalls per 10,000.

We're also proud of our back-test. If you rank areas using only 2010 data, 10 of the 12 lowest-coverage areas have since got a new hawker centre, and an 11th (Choa Chu Kang) gets one in 2027. That told us the approach picks up real gaps. The one it still flags is Bishan.

What we learned

Checking every claim against a real dataset is slower, but it changed our idea for the better. A simple test against history ended up being more convincing than any feature we could have added.

What's next for Bare Anatomy

Build the full Databricks pipeline, test the model against the six hawker centres under construction, and add a tool where planners can drop a pin anywhere on the map to see who a new centre would serve.

Built With

Share this project:

Updates

Submission history