Where Does the Washington DC Metropolitan Area End?

What can we learn from travel times from central DC?

The greater Washington, DC area has a great metro, bus, and bike system. It also has horrible traffic and an increasing number of checkpoints and traffic control structures. With all of that, how far can you go on the surface level streets in a limited amount of time? I can’t answer that. Conditions change minute to minute and not every problem is known. However, I can answer a related question: in perfect conditions how far could you go? As a geographer, this is a much easier question and the results are interesting. From this data, you can see how urban areas fade into rural ones.

All of the calculations were done from 1600 Constitution Avenue NW. The address is right in front of the White House and near the national mall. It felt like a decent starting point due to how close it is to both the job centers and tourist centers in DC.

Under perfect conditions, It is possible to reach all parts of the District of Columbia in 20 minutes. In an hour, you can get to the most rural parts of Montgomery County, Maryland. The furthest parts Fairfax County, Virginia are accessible within 40 minutes. At first blush this is pretty, but not very useful. The utility rises when you layer the metro stations over the distances. All of the currently active metro stations are within a 25 minute drive of central Washington, DC.

These bands of time from central DC correspond to how I think about where the city ends and the suburbs begin. The “city” is the 5 and 10 minute bands and the “suburbs” start with the 15 minute band. At 25 minutes, you hit the edge of what I think about as the “exurbs.” By the time you get to the 40 minute band, you have hit places that can be thought of as “rural.”

Much like my last post on this subject, I am amazed by how travel times can be used to define urban areas. I think that everything within the roughly 20 minute area is the DC metro area. Everything outside of it is not.

The painful details

If you are a normal person, this part is rather uninteresting. You can stop reading and live in blissful ignorance of where the data comes from, how it was processed, and the implications of these decisions. If you are a pedant who wants to either send me screen shots from Google Maps or argue about how my numbers are unreasonable, please read this whole section.


The street data was downloaded from the geofabrik exports from the Open Street Map database. The state extracts were merged together and then queried to only include the kinds of streets that are accessible by a car — removing stairs, bike trails, walking paths, etc. That streets data was clipped to the county equivalents that I considered as part of the DC Metropolitan Area:

  • Washington, DC

  • Prince George’s County, Maryland

  • Montgomery County, Maryland

  • Arlington County, Virginia

  • Fairfax County, Virginia

  • Alexandria City, Virginia

  • Falls Church, Virginia

  • Fairfax City, Virginia

The streets data still had a fatal problem: the speed limit, maxspeed in the OSM database, had zero values when the speed limit is unknown or had not been recorded. This causes the routing to fail. To solve this problem, all 0 values were set to 32 kph (about 20 mph) or Washington DC’s default speed limit. This is not perfect, less urban areas have higher speed limits and urban residential streets have a lower speed limit, but I needed a reasonable default and this was the chosen one.

The OSM data only includes whether or not a street is one way and does not break down forward vs backwards. Because of this, all streets were assumed to be two way. Again, I understand that this makes my results fall out of sync with reality. This is just a part of ingesting existing data.


The routing was done in QGIS using the service area tool. For each of the runs the target maximum time was entered in the TRAVEL_COST field as fractions of a day.1 This was increased by 5 minute increments up to 65 minutes of travel time. The service area algorithm makes several assumptions

  • The traveler never stops for any reason until the time limit is reached

  • The traveler moves at exactly the speed limit until the time limit is reach, then their speed falls exactly to zero

Because of this

  • Traffic is not accounted for

  • Stoplights, stop signs, and other traffic control devices are not accounted for

Because of these assumptions and the data issues outlined above, Google Maps routings will never line up with the maps. This is okay and a fact of life when doing simple geospatial models.


All of the documentation talked about this being in seconds, but 0.000694 came out to be roughly 1 minute. The more you know about your tools.