Brussels open-data lakehouse

Is STIB on time?

Every 5 minutes this page's pipeline records when the next metro, tram and bus will arrive at about 900 Brussels stops, and compares that with the official timetable.

Right now

–

Colour key minutes longer than the timetable promises:

Hour by hour

Each bar is one hour. Taller bar = longer extra wait. Bars below the line mean vehicles came sooner than scheduled.

Metro

Tram

Bus

When in the day is it worst?

All lines together, by hour of the day (Brussels time), over every day collected so far.

Where is it worst?

Every dot is a stop, coloured by its typical extra wait. Pick a line on the right to see only its stops.

Which lines?

Typical extra wait per line. Click a line to see which of its stops are late.

Most behind schedule

    Closest to schedule

      Air quality in Brussels

      Pollution in µg/m³, average of 13 measuring stations. Below the dashed line is within the WHO daily guideline for NO₂.

      Electricity use in Belgium

      Total power demand on the national grid, in megawatts. Elia publishes it about a day late.

      All the numbers

      Every hour collected so far: extra wait, typical wait, air quality and grid load.

      About this project

      An open-data pipeline that checks how well Brussels public transport keeps to its timetable, built on Azure with dbt. Everything here comes from public sources and is recomputed every hour.

      What "extra wait" means

      If you walk up to a stop at a random moment, how long until the next vehicle? We measure that from STIB's live data, work out the same thing from the official timetable, and show the difference. Transport for London uses this measure ("excess wait time") for frequent services.

      How it works

      1. Every 5 minutes an Azure Function saves STIB's live waiting times for about 900 stops. Air quality (IRCEL) and grid load (Elia) are saved every 15 minutes.
      2. The raw files land untouched in an Azure data lake.
      3. dbt cleans them and builds hourly tables, with data tests on every model.
      4. Every hour GitHub Actions rebuilds this page.

      Limits

      • Arrival times are STIB's own predictions, not measured arrivals.
      • About a quarter of stops can't be matched to the timetable and are left out, as are Noctis night buses.
      • STIB keeps no history, so the record starts when this pipeline did.

      Data: STIB-MIVB, IRCEL-CELINE, Elia, map © OpenStreetMap contributors · Source code on GitHub

      Hourly data (Brussels time, newest first)