Travel times on Willy Street

transportation Madison (WI)

A preliminary look at the data during the rush hour lane closure trial


Author

Affiliation

Harald Kliems ORCID ID for Harald Kliems

 

Published

Sept. 29, 2025

Citation

Kliems, 2025


It’s September 29 and we are several weeks into the Willy Street rush hour lane removal trial. As described in a previous post, I have been collecting travel time estimates from the Google Routes API. It’s time to take a closer look at the data.

Willy Street travel times

This post will only analyze data for the most directly affected route: Going from the “Hairball Intersection” of Williamson, Wilson, Blount, and John Nolen to where Williamson splits into Eastwood and Winnebago, and vice versa. This is the section where the rush hour lanes were converted into parking lanes and one would expect the largest impact. Because we don’t have data from before the start of the trial, everything that follows is descriptive and we can’t say that what we’re seeing is or isn’t associated with or caused by the trial.

The first data point for this route was collected on 2025-09-12; the last one was on 2025-09-29, and we have request route data 730 times.

First, we do a quick data check. We want to make sure that all routes were indeed routed via Willy Street. Under normal circumstances, there is little reason for Google to propose a different route, especially since the route includes a via point on Willy and Ingersoll. But it’s better to confirm this.

Leaflet | Tiles © Esri — Esri, DeLorme, NAVTEQ

Indeed, we find a few trips via E Wash, Jenifer, and Main St. These all happened during the weekend of the Willy Street Fair, when several blocks of the street were shut down to motor vehicles. We will exclude these from the analysis.

Overall travel times

Let’s start with some numbers for the EB and WB direction overall. This number gives us a good sense of what typical travel times look like and how much they vary.

Estimated travel times on Willy St (minutes)
Direction Mean Median Minimum Maximum 90% of trips
EB 4.4 4.3 3.2 7.7 3.5-5.5
WB 4.7 4.6 3.2 8.4 3.7-5.9

On average, it takes 4.4 minutes to make the eastbound trip and 4.4 minutes for the westbound one. At best, you can make it in 3.2 minutes EB and 3.2 minutes WB. And at worst, the trip takes 7.7 minutes EB and 8.4 minutes WB. The rightmost column shows the range of how long 90% of all trips take. So for the WB direction, 90% of all trips take between 3.7-5.9 minutes; EB you can expect your trips to take between 3.5-5.5 most of the time.

When was travel the fastest? Here are the dates for the 10 shortes and longest trips:

10 shortest travel times
Travel time (minutes) Time/date Direction
3.2 Sep 29 1:22 AM EB
3.2 Sep 22 1:21 AM EB
3.2 Sep 15 1:22 AM EB
3.2 Sep 22 1:21 AM WB
3.3 Sep 16 1:21 AM EB
3.3 Sep 23 1:21 AM EB
10 longest travel times
Travel time (minutes) Time/date Direction
8.4 Sep 16 8:31 AM WB
7.7 Sep 26 11:16 AM EB
7.1 Sep 18 6:09 PM EB
7.0 Sep 26 9:41 AM WB
7.0 Sep 20 3:18 PM WB
6.9 Sep 18 6:40 PM EB

So traveling on Willy Street is fastest in the middle of the night. And the outliers for slow times tend to be in the morning and evening peak, but not exclusively so.

A closer look at rush hour data

Of course what we’re most interested in are the times during rush hour, when previously there would have been two lanes of traffic and now there is only one. Are the longer travel times during those periods? Graphically, this chart gives a good flavor:

The graph shows the estimated travel times, separated into eastbound and westbound and whether the estimates are for times when the rush hour lanes would or wouldn’t have been in effect. The thick line in the middle of the box is the median duration; the edges of the box are the 25th and 75th percentile. For the eastbound direction, we see that the median during evening and morning rush hour is similar, whereas it is lower during non-rush hour. Westbound, the evening rush hour has by far the longest median duration, whereas the morning rush hour actually is faster than non-rush hour times. We also see a lot of variability in the non-rush times.

If we want to compare eastbound and westbound times, this chart makes that easier:

In the morning, EB and WB times are similar. Outside of rush hour, WB trips generally take a little longer. And in the afternoon rush hour, WB trips are noticeably slower than EB.

During the morning rush hour, the rush hour travel lane used to be in effect only for westbound travel. What we see here is that westbound travel, now without the rush travel lane, generally is a little faster than eastbound traffic. But the difference isn’t large, and we also see that there is more variability in westbound than in eastbound travel.

What about the evening?

Here it gets interesting. Remember, in the evening, the rush hour lanes used to be in effect for EB traffic! But now that they no longer exist, EB traffic is noticeably faster than WB traffic—about one minute difference for the median time. Maybe if we bring back the rush hour lanes, they should be reversed, with a WB rush hour lane in the afternoon…

I don’t think there is a whole lot more to be done for analysis unless I get access to travel time data from before the start of the trial. Or the trial ends and I can collect post-trial data. I’ll share this report with city staff and see if it’s helpful to them.

Footnotes

    Reuse

    Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".

    Citation

    For attribution, please cite this work as

    Kliems (2025, Sept. 29). Harald Kliems: Travel times on Willy Street. Retrieved from https://haraldkliems.netlify.app/posts/travel-times-on-willy-street/

    BibTeX citation

    @misc{kliems2025travel,
      author = {Kliems, Harald},
      title = {Harald Kliems: Travel times on Willy Street},
      url = {https://haraldkliems.netlify.app/posts/travel-times-on-willy-street/},
      year = {2025}
    }