This report asks a simple question about a city famous for its weather: when it rains in Melbourne, who actually stays home? It combines City of Melbourne pedestrian sensors with Bureau of Meteorology rainfall for November 2024 to September 2026, a period with 118 wet days (1 mm of rain or more).

Across the whole city, a wet day costs about 9% of normal foot traffic. That average hides the real story: some places shrug off the rain, while others empty out.

1. A map of rain-proof and fair-weather Melbourne

On wet days Birrarung Marr - COM - Pole 1109 loses 37% of its foot traffic, while Spencer St-Collins St (North) is almost unchanged.

How to read it: each circle is a pedestrian sensor. Size shows how busy it is; colour shows the rain penalty, the drop in foot traffic on wet days compared with similar dry days. Hover over a circle for its numbers, zoom with the mouse wheel, and use the boxes at the top right to show only the rain-sensitive or only the rain-proof places.

2. Who loses the most?

The biggest wet-day losses are at Birrarung Marr - COM - Pole 1109, St Kilda Rd-Alexandra Gardens and Harbour Esplanade (West) - Pedestrian path. The most rain-proof places are Spencer St-Collins St (North), Lonsdale St-Spring St (West) and Queen St (West).

How to read it: the gap between the purple circle (dry day) and the orange diamond (wet day) is the number of people who don’t turn up when it rains. Hover for exact numbers, and click a legend item to hide it. A log scale lets quiet and busy places share the same chart.

3. When does the rain bite?

At weekday commute times (8 am and 5 pm) wet days change foot traffic by -6%. On weekend evenings the change is -13%.

How to read it: rows are days of the week and columns are hours. Orange cells are times that empty out on wet days. Use the buttons above the chart to switch to the actual number of people on dry and wet days, which shows the city’s normal daily rhythm. BoM rainfall is recorded per day, not per hour, so a “wet day” was not necessarily wet at every hour. The true hourly effect is probably stronger than shown.

4. Does a drizzle matter, or only a downpour?

Days with 1–5 mm of rain lose about 5% of foot traffic. Days with 10 mm or more (25 of them) lose about 17%.

How to read it: each dot is one day. The higher the dot, the busier the city was compared with a normal dry day. Purple dots are weekdays, orange are weekends, and each line shows the trend. Click “Weekday” or “Weekend” in the legend to show one at a time, drag a box to zoom into the wet days, and double-click to zoom back out.

5. The twist: it’s not the rain, it’s the cold

A cold wet day (under 15°C) costs the city 17% of its foot traffic. A wet day at 15°C or warmer costs 7%.

How to read it: each bar is the typical rain penalty for wet days in that temperature range, split into weekdays (purple) and weekends (orange). Hover to see how many wet days each bar is based on; bars built on fewer days are less certain. Click the legend to compare weekdays and weekends on their own.

What it adds up to

Melbourne doesn’t stop when it rains, but it does sort itself. Trips people must make, like commuting through the station and office corridors, mostly carry on. Trips people choose to make, to the river, the gardens and the waterfront, are the ones that disappear, and they disappear most when the rain is cold. A warm summer shower barely changes the city; a cold winter downpour empties its open spaces. The rain penalty is really a measure of how optional a place, or a trip, is to the people who make it.


Data and methods

  • Pedestrian counts: hourly counts from the City of Melbourne Pedestrian Counting System, November 2024 to September 2026. The file omits hours when nobody passed a sensor, so sensor-days with at least 18 hourly records were kept and the missing hours treated as zero. Sensor names and coordinates come from the Sensor Locations dataset; only outdoor sensors averaging 200+ people a day and with 30+ wet days were mapped and ranked.
  • Weather: daily rainfall and maximum temperature from the Bureau of Meteorology, Melbourne (Olympic Park), station 086338. Rainfall is measured over the 24 hours to 9 am, so each total was assigned to the previous day. Wet day = 1 mm or more; dry day = less than 0.2 mm; days in between were left out of the comparisons.
  • Rain penalty: each day’s count at a sensor divided by the average dry-day count at the same sensor, on the same weekday, in the same month. The penalty is 1 minus the median of this ratio across wet days. Comparing like with like removes weekly and seasonal patterns.
  • Limitations: one weather station stands in for the whole city; daily rainfall can’t show what hour it rained; sensors are concentrated in the CBD; events and public holidays add noise; some temperature groups contain only a few wet days.
  • All data were downloaded as files and loaded locally. All processing and visualisation were done in R.

Acknowledgements

Generative AI (Claude, Anthropic) was used to clarify concepts and provide guidance when needed. The project concept, data source selection, analysis, R code, debugging, figures, and written content were completed by the author. All work was reviewed and checked by the author to ensure accuracy and consistency with the data.

The data were obtained from the City of Melbourne Open Data portal (Pedestrian Counting System) and the Bureau of Meteorology’s Climate Data Online service. The visualisations were created using the plotly and leaflet packages in R. Sievert (2020) was a useful reference for learning about plotly in R.


References

Bureau of Meteorology. (2026a). Daily maximum temperature: Melbourne (Olympic Park), station 086338 (Product IDCJAC0010) [Data set]. Commonwealth of Australia. Retrieved October 27, 2026, from http://www.bom.gov.au/climate/data/

Bureau of Meteorology. (2026b). Daily rainfall: Melbourne (Olympic Park), station 086338 (Product IDCJAC0009) [Data set]. Commonwealth of Australia. Retrieved October 27, 2026, from http://www.bom.gov.au/climate/data/

Cheng, J., Schloerke, B., Karambelkar, B., & Xie, Y. (2024). leaflet: Create interactive web maps with the JavaScript ‘Leaflet’ library (R package) [Computer software]. https://CRAN.R-project.org/package=leaflet

City of Melbourne. (2026a). Pedestrian Counting System: Monthly (counts per hour) [Data set]. City of Melbourne Open Data. Retrieved October 27, 2026, from https://data.melbourne.vic.gov.au/explore/dataset/pedestrian-counting-system-monthly-counts-per-hour/

City of Melbourne. (2026b). Pedestrian Counting System: Sensor locations [Data set]. City of Melbourne Open Data. Retrieved October 27, 2026, from https://data.melbourne.vic.gov.au/explore/dataset/pedestrian-counting-system-sensor-locations/

R Core Team. (2026). R: A language and environment for statistical computing [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/

Sievert, C. (2020). Interactive web-based data visualization with R, plotly, and shiny. Chapman and Hall/CRC. https://plotly-r.com

Wickham, H., Averick, M., Bryan, J., Chang, W., McGowan, L. D., François, R., Grolemund, G., Hayes, A., Henry, L., Hester, J., Kuhn, M., Pedersen, T. L., Miller, E., Bache, S. M., Müller, K., Ooms, J., Robinson, D., Seidel, D. P., Spinu, V., … Yutani, H. (2019). Welcome to the tidyverse. Journal of Open Source Software, 4(43), 1686. https://doi.org/10.21105/joss.01686

Anthropic. (2026). Claude (Opus 5.5) [Large language model]. https://claude.ai