Data and ML · Real estate

A price model built from 71,000 real listings

Advisors needed a fair price estimate before visiting a property. We built the whole chain: scrapers across several property portals, a cleaning and deduplication pipeline, and a model served as an API that answers with a range and an honest reliability rating.

Book a free callBuilt for SAAFKA

Illustration
Data and ML · Real estate
  1. Collect
  2. Clean and deduplicate
  3. Place on the map
  4. Train
  5. Serve the estimate

The situation

Listing prices vary wildly between portals, the same flat appears three times under different names, and neighbourhood names are spelled ten ways. A model trained on that raw mess learns the mess.

What changed

The pipeline collects, cleans and deduplicates listings across sources and maps them to a curated list of neighbourhoods. The model returns a price range, a probable sale price after negotiation, and a reliability rating that drops where data is thin.

How it works

5 steps, end to end

  1. 01

    Collect

    Scrapers gather listings from 7 sources across several property portals.

  2. 02

    Clean and deduplicate

    Exact and cross-source duplicates are removed; prices and surfaces are normalised.

  3. 03

    Place on the map

    Each listing is matched to a curated gazetteer of 410 neighbourhoods in 6 cities.

  4. 04

    Train

    A gradient-boosted model learns from the 22,371 listings kept.

  5. 05

    Serve the estimate

    A stateless API returns a range, a likely sale price and a reliability rating.

Where the AI stops

The model writes. The code decides.

The model

  • Learns price patterns from cleaned listings
  • Estimates a range and a likely sale price

The code

  • Deduplicates across portals before training
  • Maps every listing to a known neighbourhood
  • Lowers the reliability rating where data is thin

By the numbers

Counts read in the code we shipped. No invented results.

~71k
listings collected
22,371
kept after cleaning
410
neighbourhoods in the gazetteer
7
sources scraped

Built with

  • Web scraping
  • Data cleaning and dedup
  • Gradient boosting (CatBoost)
  • Stateless price API

Built for

The client behind it

Real estateSaafkaA network of real-estate advisors: buy, sell, rent and appraise anywhere in Morocco.Read the client story

More use cases

All use cases

All use cases

Contact

let's talk about your project

  • Where we areMorocco, working worldwide
  • Writehello@kaishift.com
  • LanguagesFrench, Arabic, English
Prefer a call? Book 30 minutes

Write to usWe answer the same working day.