Showcase · Data layers · City of Melbourne open data
Kerbside parking through a day
In 2019 the City of Melbourne’s in-ground sensors recorded 42,672,743 arrivals and departures. On the 257 streets matched to a council outline (5,492 bays), the kerb was 56% occupied between 8 am and 8 pm on weekdays and 59% at weekends. Even at the busiest weekday hour, 11 am, about two thirds of bays were taken. A car stayed 59 minutes on average, and each bay took 10.8 cars a day.

The kerb through a day
Weekday kerbs fill through the morning to 66% at 11 am and hold there over lunch. Then they empty: 46% at 5 pm, before filling again to 62% at 7 pm, when the evening crowd arrives. The data can’t say why the 5 pm dip happens. Many city bays become clearways or loading zones in the evening peak, and a bay that can’t be used reads as empty. At weekends the kerb fills later and stays fuller into the evening: 65% at 7 pm. On 130 of the 257 streets the kerb was fuller at weekends than on weekdays (8 am to 8 pm).

The map
Each street coloured by the share of its bays occupied at the hour on the slider, weekdays or weekends; or by how long cars stayed, or by how many cars used each bay in a day. Press Play to watch the day go round. Hover over a street, or tap it on a phone, for its numbers and its day as a small chart.
Where the kerb fills, and who stays
The fullest streets with 10 bays or more were Clarendon St, Albert St to Grey St (87% between 8 am and 8 pm on weekdays), Queen St, Little Collins St to Collins St (81%) and Mackenzie St, Russell St to Victoria St (80%).
How long cars stay follows the signs. On Collins St, Queen St to Elizabeth St, with half-hour bays, a car stayed 13 minutes on average and each bay took 45 cars a day. The longest stays were in streets where residents with permits are exempt from the time limit: Airlie St, Clowes St to The Righi averaged 217 minutes, with 2.9 cars a bay a day. 9% of stays ran past the sign’s limit, as the council’s records mark them.

The same city on foot: Melbourne pedestrians: how much footpath each person gets, hour by hour from the council’s pedestrian sensors.
How it was made in Plotlay
The sensors record each bay’s arrivals and departures, naming the street and the cross streets, with no outline to put on a map. The council’s road corridors are outlines with no parking in them. One Plotlay project joined them:
- Summarise the 2019 file (in Python, before Plotlay): 42,672,743 events, each sensor read at half past every hour, added up by street segment and hour of the day, weekdays and weekends apart.
- Pick from a layer, Take all. The council’s road corridors that held a sensor, matched by street name: all 257 in one step, keyed by their seg_id.
- Link a CSV, keyed by
seg_id: each street’s bays, average stay, cars a bay a day and overstays; and how full it was at each hour, weekdays and weekends, with the hour as the time axis. - Formula columns: the hours of a day at 85% or fuller (
count(occupied_wd >= 85)) and weekend over weekday. - Colour by bays occupied for the hour on the slider; then by average stay and cars a bay a day.
- Charts and map pictures in the Analysis workspace, exported as PNG; the layer exported as GeoJSON, TopoJSON and CSV with WKT.


Nothing here comes from OpenStreetMap, and no imagery was traced. Only summaries per street are published, never the event records.
More about Data layers · Make a data layer of your own · Melbourne pedestrians
Power BI


The same streets and tables as a Power BI Project (.pbip): the kerb through a day, weekdays against weekends, a Shape Map with an hour slicer, the fullest and the longest-stay streets. It reads the data straight from the GitHub repository, so it refreshes with no gateway.
The Power BI project is in the plotlay-melbourne-kerbside repository on GitHub, with steps to open it in Power BI Desktop.
Python
A narrated Jupyter notebook recomputes the kerb’s day, the streets and the stays from the summary tables, and checks them against Plotlay’s export.
Download the notebook (with its outputs) and the data. It is also in the plotlay-melbourne-kerbside repository on GitHub.
Read it carefully
- This is 2019, the last full year the council published, before the pandemic. The sensors have since been replaced, and the live feed has no history.
- 5,492 of the 6,625 sensor bays sit on a street matched to a council outline by name; the rest are left out.
- How full is read at half past each hour. A sensor that sent nothing at that moment counts for nothing; a bay closed to parking (a clearway, a loading zone in force) reads as empty.
- A stay is a car present for 2 minutes or more and under 24 hours. Shorter events, 27% of them, are mostly the sensor flickering or a car passing over it; they still count in how full.
- Residents with permits are exempt from the time limits in their streets, so long stays there are not overstays. Public holidays count as weekdays. The sign shown for a street is the one most of its bays had.
Sources and licences
On-street Car Parking Sensor Data 2019 and road corridors: City of Melbourne Open Data, data.melbourne.vic.gov.au, licensed under CC BY 4.0. Changes: the events summarised by street and hour, weekdays and weekends apart; streets matched by name to the corridors. Base map: © Commonwealth of Australia (Geoscience Australia), CC BY 4.0.
Our shapes, tables and charts are CC BY 4.0 and the code is MIT: see the licence files in the data download and the plotlay-melbourne-kerbside repository on GitHub. Map: Leaflet. Charts and map pictures made in Plotlay. This is independent work using open data, not endorsed by the City of Melbourne.
Put your sensors on the map
Plotlay is free to start: every tool, three cloud projects.
Create free accountThen open Data layers in any map project