Skip to content
← All projects

Aqar Rent Price Predictor — End-to-End ML System

Predicts fair market rent for Riyadh apartments with a confidence range, from daily-scraped live listings to a deployed app.

Problem

Renters and landlords in Riyadh have no fair-price reference. Listed prices vary wildly for similar apartments in the same district, and there's no public benchmark to check whether a price is reasonable.

Approach

  1. 01

    Built a rate-limited daily scraper of sa.aqar.fm, scheduled on GitHub Actions (free CI), with a multi-day detail backlog design to fit ~22K listings into the available time budget.

  2. 02

    Cleaned the data with Arabic-text normalization and ran exploratory data analysis.

  3. 03

    Engineered features including Nominatim geocoding of 146 Arabic district names — resolution went from 41% to 98% after diagnosing the query format that was silently failing most lookups.

  4. 04

    Trained three LightGBM quantile-regression models (p10 / p50 / p90) to produce a price range rather than a single point estimate, evaluated on a temporal holdout split by listing date.

Results

  • MAE ~12.2K SAR/yr (~29% of median rent) — 37% better than a district-median baseline.

  • Caught and fixed a temporal-split bug that had silently biased evaluation before the real holdout numbers could be trusted.

  • Served via a FastAPI /predict endpoint with a Streamlit front end for interactive use.

What I'd improve

  • Widen the quantile targets to fix interval under-coverage (69.8% vs an 80% target).

  • Accumulate more daily snapshots to unlock trend features over time.