Inspiration

As a postgraduate student living in Singapore, exploring the HDB resale market quickly reveals how difficult it is for first-time buyers to find clear, grounded guidance. With headlines frequently highlighting million-dollar flats, it is easy to feel disoriented. Looking directly at official HDB data over the past 12 months (September 2025 to August 2026), 59.9% of four-room transactions (6,475 out of 10,817) registered above S$600,000.

Rather than building an ungrounded conversational bot or another dashboard overflowing with dozens of complex charts, I wanted to answer a direct, practical question: Given my target budget and flat type, which towns have a proven track record of transactions within reach, and how stable are prices there? FlatFair Lite was born to give buyers a transparent, evidence-based shortlist.

What the prototype does

FlatFair Lite currently delivers a working offline prototype focusing on 3-room and 4-room flats through two focused workflows:

  1. Budget & Town Comparison: Users enter a budget and instantly see Singapore towns ranked by the proportion of registered transactions within that budget over the latest 12 completed months. Selecting any two towns brings up a side-by-side comparison of recent median prices, transaction volumes, and national household income benchmarks. Interactive historical charts allow filtering by year and storey range without altering the core 12-month budget statistics.
  2. Forecast & Reliability: Users can transition directly from their shortlist to a six-month price outlook. Instead of presenting a black-box projection, the tool displays validation errors and holdout test results alongside simple baselines. Where transaction volume is thin (such as Bukit Timah), the app explicitly flags insufficient sample size rather than manufacturing misleading predictions.

How it is built & Databricks roadmap

The initial prototype runs locally using Python, pandas, and NumPy for data cleaning and metric generation, served via a self-contained offline web interface. Time-series candidates include last-value, three-month rolling mean, and a closed-form Ridge trend model.

For the upcoming hackathon sprint, the project will transition to the Databricks Lakehouse platform (Free Edition):

  • Unity Catalog & Delta Lake: Store raw open data in Volumes, transforming it into Bronze (raw ingestion), Silver (type-standardized & validated), and Gold (town/flat-type monthly aggregates and budget match metrics) Delta tables.
  • MLflow: Track rolling backtest experiments, model parameters, and Mean Absolute Error (MAE) across chronological evaluation windows.
  • Databricks AI/BI Dashboards: Recreate the comparison and forecast views as interactive dashboards driven by SQL queries on Gold tables.

Insights and challenges

Working with real public data brought key analytical realities to light:

  • Transaction Mix Shifts: Monthly median prices can fluctuate due to variations in floor level, flat age, or specific blocks sold, rather than pure market-wide price inflation. Surfacing transaction volume helps users interpret these figures sensibly.
  • The Value of Simplicity: In rolling validation across multiple towns, simple heuristics (like the 3-month moving average) frequently matched or outperformed trend regressions over a short 6-month horizon. Transparent backtesting prevents over-engineering and keeps models accountable.
  • Sparse Towns: Towns with low resale volume cannot support reliable statistical models. Clear warnings prevent users from drawing conclusions from noisy data.

Next steps

During the two-week development sprint, I plan to:

  1. Implement the Databricks Lakehouse pipeline across four structured notebooks (ingestion, cleaning, metrics, forecasting).
  2. Deploy the two-page interactive Databricks AI/BI Dashboard.
  3. Conduct usability walk-throughs with peers and prospective first-time buyers to evaluate whether the evidence-based shortlist workflow helps them make quicker, more confident town comparisons.

Data sources & notes

Built With

Share this project:

Updates

Submission history