A Divvy station at Halsted/Roscoe in Boystown, covered in snow after the system was shutdown for the first time to protect workers and members. Photo by Adam Herstein.

In researching for a new Streetsblog Chicago article I’m writing about Divvy, Chicago’s bike-share system, I wanted to know which stations (really, neighborhoods) had the best connectivity. They are nodes in a network and the bike-share network’s quality is based on how well (a measure of time) and how many ways one can move from node to node.

I read Institute for Transportation Development Policy’s (ITDP) report “The Bike-Share Planning Guide” [PDF] says that one station every 300 meters (984 feet) “should be the basis to ensure mostly uniform coverage”. They also say there should be 10 to 16 stations per square kilometer of the coverage area, which has a more qualitative definition. It’s really up to the system designer, but the report says “the coverage area must be large enough to contain a significant set of users’ origins and destinations”. If you make it too small it won’t meaningfully connect places and “the system will have a lower chance of success because its convenience will be compromised”. (I was inspired to research this after reading coverage of the report in Next City by Nancy Scola.)

Since I don’t yet know the coverage area – I lack the city’s planning guide and geodata – I’ll use two datasets to see if Chicago meets the 300 meters/984 feet standard.

Dataset 1

The first dataset I created was a distance matrix in QGIS that measured the straight-line distance between each station and its eight nearest stations. This means I would cover a station in all directions, N, S, E, W, and NW, NE, SE, and SW. Download first dataset, distance matrix.

Each dataset offers multiple ways to gauge connectivity. The first dataset, using a straight-line distance method, gives me mean, standard deviation, maximum value, and minimum value. I sorted the dataset by mean. A station with the lowest mean has the greatest number of nearby stations; in other words, most of its nearby stations are closer to it than the next station in the list.

Sorting the first dataset by lowest mean gives these top five best-connected stations:

  1. Canal St & Monroe St, a block north of Union Station (191), mean of 903.96 feet among nearest 8 stations
  2. Clinton St & Madison St, outside Presidential Towers and across from Northwestern Train Station (77), 964.19 feet
  3. Canal St & Madison St, outside Northwestern Train Station (174), 972.40
  4. Canal St & Adams St, north side of Union Station’s Great Hall (192), 982.02
  5. State St & Randolph St, outside Walgreens and across from Block 37 (44), 1,04.19

The least-connected stations are:

  1. Prairie Ave & Garfield Blvd (204), where the nearest station is 4,521 feet away (straight-line distance), or 8.8x greater than the best-connected station, and the mean of the nearest 8 stations is 6,366.82 feet (straight-line distance)
  2. California Ave & 21st St (348), 6,255.32
  3. Kedzie Ave & Milwaukee Ave (260), 5,575.30
  4. Ellis Ave & 58th St (328), 5,198.72
  5. Shore Drive & 55th St (247), 5,168.26

Dataset 2

The second dataset I manipulated is based on Alex Soble’s DivvyBrags Chrome extension that uses a distance matrix created by Nick Bennett (here’s the file) that estimates the bicycle route distance between each station and every other station. This means 88,341 rows! Download second dataset, distance by bike – I loaded it into MySQL to use its maths function, but you could probably use python or R.

The two datasets had some overlap (in bold), but only when finding the stations with the lowest connectivity. In the second dataset, using the estimated bicycle route distance, ranking by the number of stations within 2.5 miles, or the distance one can bike in 30 minutes (the fee-free period) at 12 MPH average, the following are the top five best-connected stations:

  1. Ogden Ave & Chicago Ave, 133 stations within 2.5 miles
  2. Green St & Milwaukee Ave, 131
  3. Desplaines St & Kinzie St, 129
  4. (tied) Larrabee St & Kingsbury St and Carpenter St & Huron St, 128
  5. (tied) Clinton St & Lake St and Green St & Randolph St, 125

Notice that none of these stations overlap with the best-connected stations and none are downtown. And the least-connected stations (these stations have the fewest nearby stations) are:

  1. Shore Drive & 55th St, 11 stations within 2.5 miles
  2. (tied) Ellis Ave & 58th St and Lake Park Ave & 56th St, 12
  3. (tied) Kimbark Ave & 53rd St and Blackstone Ave & Hyde Park Blvd and Woodlawn Ave & 55th St, 13
  4. Prairie Ave & Garfield Blvd, 14
  5. Cottage Grove Ave & 51st St, 15

This, the second dataset, gives you a lot more options on devising a complex or weighted scoring system. For example, you could weight certain factors slightly higher than the number of stations accessible within 2.5 miles. Or you could multiply or divide some factors to obtain a different score.

I tried another method on the second dataset – ranking by average instead of nearby station quantity – and came up with a completely different “highest connectivity” list. Stations that appeared in the least-connected stations list showed up as having the lowest average distance from that station to every other station that was 2.5 miles or closer. Here’s that list:

  1. Kimbark Ave & 53rd St – 13 stations within 2.5 miles, 1,961.46 meters average distance to those 13 stations
    Blackstone Ave & Hyde Park Blvd – 13 stations, 2,009.31 meters average
    Woodlawn Ave & 55th St – 13 stations, 2,027.54 meters average
  2. Cottage Grove Ave & 51st St – 15 stations, 2,087.73 meters average
  3. State St & Kinzie St – 101 stations, 2,181.64 meters average
  4. Clark St & Randolph St – 111 stations, 2,195.10 meters average
  5. State St & Wacker Dr – 97 stations, 2,207.10 meters average

Back to 300 meters

The original question was to see if there’s a Divvy station every 300 meters (or 500 meters in outlying areas and areas of lower demand). Nope. Only 34 of 300 stations, 11.3%, have a nearby station no more than 300 meters away. 183 stations have a nearby station no further than 500 meters – 61.0%. (You can duplicate these findings by looking at the second dataset.)

Concluding thoughts

ITDP’s bike-share planning guide says that “residential population density is often used as a proxy to identify those places where there will be greater demand”. Job density and the cluster of amenities should also be used, but for the purposes of my analysis, residential density is an easy datum to grab.

It appears that stations in Woodlawn, Washington Park, and Hyde Park west of the Metra Electric line fare the worst in station connectivity. The 60637 ZIP code (representing those neighborhoods) contains half of the least-connected stations and has a residential density of 10,468.9 people per square mile while 60642, containing 3 of the 7 best-connected stations, has a residential density of 11,025.3 people per square mile. There’s a small difference in density but an enormous difference in station connectivity.

However, I haven’t looked at the number of stations per square mile (again, I don’t know the originally planned coverage area), nor the rise or drop in residential density in adjacent ZIP codes.

There are myriad other factors to consider, as well, including – according to ITDP’s report – current bike mode share, transit and bikeway networks, and major attractions. It recommends using these to create a “demand profile”.

Station density is important for user convenience, “to ensure users can bike and park anywhere” in the coverage area, and to increase market penetration (the number of people who will use the bike-share system). When Divvy and the Chicago Department of Transportation add 175 stations this year – some for infill and others to expand the coverage area – they should explore the areas around and between the stations that were ranked with the lowest connectivity to decrease the average distance to its nearby stations and to increase the number of stations within 2.5 miles (the 12 MPH average, 30-minute riding distance).

N.B. I was going to make a map, but I didn’t feel like spending more time combining the datasets (I needed to get the geographic data from one dataset to the other in order to create a symbolized map).