A Map of the Running Season
A recent request from my coworkers at ASICS spawned some data visualizations that were just too cool not to share.
These heat maps represent when Runkeeper users most commonly started their runs in the United States during 2015. Dark blue regions represent times when high numbers of users started runs, while dark red regions represent times when few or no users started any runs. The heat maps are broken out separately for weekday and weekend runs, as there are substantial differences in behavior between the two categories.
There are a few fascinating patterns that can be seen for our U.S. runners:
- Weekday morning runners pretty consistently get up around 6am to start their runs, more or less regardless of when the sun rises.
- Evening runners, however, push later and later into the evening during the summer months, out to 9pm during mid summer. I suspect that this is either to beat the heat or to avoid getting blinded by the sun.
- See those funny weekend spikes in March and November? Those are Sundays where the schedule is offset by an hour… because most runners haven’t adjusted to the start/end of Daylight Savings Time yet.
- There are several weekdays throughout the year that look more like weekends, with later starts and early ends. These are holidays! Thanksgiving in particular stands out; mid-morning Turkey Trots make Thanksgiving one of the most popular running days of the year.
But the really fascinating things that I saw came from looking into the patterns of other countries. Below you can see the same heat maps rendered with Brazilian user data:
Where we saw a lot of daytime runners in the U.S., particularly around lunch time, this is almost entirely absent in Brazil. This pattern holds over the weekends, which suggests that the behavior is a reaction to weather and temperature conditions rather than workday norms. We also see that:
- Seasonal patterns are inverted in Brazil (and for other Southern Hemisphere countries). These patterns aren’t very pronounced, however, as most of Brazil remains fairly warm throughout the year.
- Many Brazilian runners choose to run in the mid-morning on weekends. This pattern — favoring morning runs on the weekend — seems fairly common globally.
Here are heat maps from a few more countries that caught my eye:
Swedish runners limit their weekday running during the chilly Swedish wintertime. When summer comes, they take full advantage, particularly during the vacation month of July.
Two interesting patterns I see in Japan: one, we have a cohort of weekday runners that start at noon on the dot every day. Lunch-time runs are fairly common, but rarely have this degree of punctuality. Two, there are occasional weekends — particularly in November — where very few users go running. I’m curious to know if there is a cultural- or weather-related reason behind this behavior.
Runners in the U.K. heavily favor evening running during the week; those who do run in the morning seem to come in three waves, at 6am, 9am, and noon. We see a lot of Saturday runs starting at 9am, which as Lee Cherry pointed out in the comments is likely due to the popular weekly parkrun 5K races. Thanks for the tip, Lee! (Originally: On the Sundays, we see a large number of users who consistently start running at 9am on the dot.)
Spanish runners dramatically change up their habits during the warm late summer months. They avoid running in the early evening hours, and some even switch their routines to run on weekday mornings in August.
Got a country request? Leave me a note in the comments and I’ll see what I can come up with!
By request from Gabriele, here is a map generated from our Italian users:
Our Italian runners favor the morning even more heavily than our Spanish users during the summer months. I also seem some interesting weekday morning patterns near the start of April, May, and June — can anyone comment on what these might be? I see holidays (Easter, International Workers’ Day, and Republic Day) that might correspond with these dates.
Some methodological notes for the curious:
- These heat maps were generated using matplotlib in a Jupyter notebook. I used Seaborn to tweak some of the visual stylings.
- I chose the RbBu ColorBrewer palette as a relatively nice-looking and colorblind-friendly palette.
- All start times shown are in the user’s local time at the time the activity was logged.