Zoning and Traffic
September 5, 2014

We left off my series on critiquing zoning with Density Without Zoning. In this blog post I will be talking about traffic and zoning. I will be covering two topics;

  1. Roads are tools - they are a means to an end. We should change our tools to fit our design, not change our design to fit our tools. A good traffic engineer is one that can use their ingenuity to solve the problem at hand, rather than dictate what others can and cannot simply do.
  2. Most congestion we have in our cities is due to zoning separating land uses.
Traffic Projections

I do not know about where you live, but in my small Arkansan city, discussions about rezoning often turn into a discussion over vehicular traffic. For any major project, our traffic engineer will say that the road cannot handle the projected traffic congestion, so we either have to upgrade the road or decline the rezoning request. I usually do not pay much attention to traffic projections. They are often wrong.

If I wanted to rezone my house and turn my garage into a grocery store, I bet my street would not be able to handle the 'projected capacity' even if the purpose of my grocery store was only to serve my neighbours within a 5 minute walk that did not want to drive to the supermarket. Perhaps my zoning request would be declined because they were concerned about delivery trucks (one car trip to the supermarket every second day to restock my garage) congesting the street or waking up my neighbors in the early morning (what about our garbage truck that comes twice a week?) Either way, I guarantee you that, among other things, a request to rezone my house will involve some complaint about traffic.

For the record - I would love it if someone opened a small corner store at the end of my street.

A developer wanted to build apartments next to a school. The rezoning request required to build the apartments was denied, because the city was concerned that the future residents would not be able to commute to work due to the traffic generated by the school in the morning. Perhaps the apartments would have appealed to teachers that would have loved the convenience of being able to walk next door to work, or by parents who wanted to send their kid to that school while themselves telecomuting or working strange hours that the morning traffic would be of no hindrance to them. Whether or not this situation would suit them should be up to the potential residents to decide when they sign the lease.

Maybe the apartments would have been a disaster and nobody wanted to live there, and the developer would have realised that building apartments next to a school was a bad idea. Maybe it would have been a success and similar developments popped up all over the place. The free market tends to work like that - you have many actors individually experimenting and trying new things - if something works, others copy it, and if something fails horribly, others know not to try it again. But the zoning request was denied - traffic was one the main arguments against it - and so we shall never know.

Finding The Best Tools

I think it is a bad idea to let traffic dicate city planning. As a software developer, when I want to make something I close my eyes and envision what the final product will look like. I sketch this design out on paper, then I figure out how I can use my tools to implement my vision. If my tools make accomplishing my vision overly difficult, I evaluate other tools that I can use instead - sometimes a combination of tools. This is the mentality of 'man over machine'. Man uses machine to accomplish his vision. You do not allow your tools to determine what you can and cannot do. Sometimes the machine makes this difficult, but man's role is to mould the machine to make it work. It is when we encounter difficulties that we are forced to change our tools, use our tools in new ways, or come up with new tools that innovation occurs. If the problem we solved was particularly difficult we publish a whitepaper and everyone else can learn from our hard effort.

If we start out by looking at our tools and limit our design to what we are told the tool can do, we will be left with a design full of compromises and we will probably be disappointed at the result.

We can apply the same mentality when we think about our transportation infrastructure. Roads, transit, bicycle lanes, airports are a means to an end. We do not build roads for the sake of building roads, but we use roads as a tool to get people from A to B. We do not build our airports before our cities - planning our cities along strategic flight paths - but instead we build our cities first, and then use airports, railroads, and highways in innovative ways to connect them together. There are towns built around railroads and highways (like the former railroad town that I currently live in) but those railroads and highways were originally built for a purpose - as a tool to connect the existing towns and cities. We did not build railroads and highways into the middle of nowhere hoping towns would pop up along them.

Relating this back to zoning, using the argument of traffic to dictate your zoning is giving in to your tools. A skilled traffic engineer or city planner should be one that is able to mould their tools to solve the problems at hand, rather than placing undue limitations and dictating design on to others - such as the property developer trying to build an apartment block, or the home owner that wants to open a grocery store. Once you adopt the 'man over machine' mentality, a fire department that fights for wide roads simply to accomidate the tools they decide to use (their oversized firetrucks) sounds kind of pathetic. A smart fire department should instead ask how they can adapt or change their tools to suit your new design. Traditional cities with narrow streets all around the world are not burning down, their fire departments are just using different tools.

Given a problem, a traffic engineer's job is to figure out how to use his or her tools in the best way to solve the problem. Some of the tools at hand are shared streets, arterial roads, sidewalks, freeways, buses, streetcars, trains, bicycle lanes, traffic lights, roundabouts, bridges, overpasses and underpasses, tunnels, and others. Sometimes the correct tool for the job is not the one they are used to using, but just as a software developer has to change their tools for different projects, a good traffic engineer occasionally has to change their tools. It is when we have problems that our conventional tools cannot solve, that innovation and creativity come in.

Zoning and Traffic

If you look at a typical zoning map of a town that uses single-use zoning, you will see huge clusters of the same land use;

There are clusters of residential, industrial, educational, and commercial areas. From looking at the map, we get this impression that the people who drew this map decided to stick a cluster of industrial stuff together, drew out some commercial corridors where the shops should go, and everything should be neatly seperated into their own little precincts. Judging by the fact that most of it, except for residential zones, tend to follow the major arterial roads, makes me believe that the land uses were mostly seperated in the name of traffic.

But, what if this seperation was the cause of most of our traffic? Would traffic be much better if land use was shuffled up and a lot more random? What would an 'optimal' city look like?

Traffic Zoning Simulator

Humans are surprisingly dumb at trying to manage complex systems. Complex systems are better solved by a heuristic approach. Wikipedia describes heuristic as;

Heuristic refers to experience-based techniques for problem solving, learning, and discovery that find a solution which is not guaranteed to be optimal, but good enough for a given set of goals.

In simple terms, a heuristic approach is one that uses trial and error, keeping the good solutions and throwing away the bad ones. Do this enough, and we eventually reach a solution that is close to optimal (mathematically it is not guaranteed to be optimal, but we get a progressively better solution, that after long enough should be insignificantly different from an optimal solution.)

With zoning, we are balancing the goals of commute times, traffic, desirability of an area, property prices, density, and amenities. We can describe cities as complex systems where conflicting needs and goals make it near impossible to come up with a perfect solution. When we encounter a complex system like this, we can come up with a pretty good result using a heuristic approach. Fortunately, the free market is heuristic - we have thousands or millions of actors each with their own needs and goals using trial and error to solve this problem. This is chaotic but smart.

Coincidentally, computers are also good at trying to solving heuristic problems. A modern computer can perhaps run hundreds of thousands of simulations per second. It might be difficult to program all of the needs of a resident (amenities, asthetics, cultural needs, distance to family), but if we limit our goals to a small set - such as minimizing traffic or commute distances, we have something that we can simulate. Here is my Zoning Traffic Simulator;

You can run it in your web browser here: http://www.andrewalexanderprice.com/software/zoningtrafficsimulator/

In this tool you are presented with a city. You can click 'Randomize' to get a randomly generated city, or you can draw your own zoning. You are presented with a street grid, and each block is zoned either residential or commercial. Residential blocks are orange and contain residents, commercial blocks are blue and contain jobs. Each block has a density between 1 to 15 that determines how many residents or jobs occupy that block. It looks something like this;

Once you have a city, you can click "Assign Random Jobs" to assign a random job to each resident, and that starts the simulation. On the right, you will see a 'Commute' and 'Congestion' graph. The commutes are measured in block lengths, and the graph shows the distribution of every resident's commute. Congestion is measured by how many people pass a particular segment of a street (between two intersections) on their commute, and the graph shows the distribution of congestion for each street segment.

You can choose to visualise commutes - black lines between residents and their jobs, or to visualise congestion - a line above the street, where the thickness indicates how congested that segment is;

There are two optimization tools. You can optimize jobs, which shuffles around which job is assigned to which resident, without actually moving anybody. You can also optimize zoning, which shuffles around the block's zoning, moving the residents or jobs that are on those blocks. You can also select a goal to optimize for - such as the shortest commute, longest commute, least congestion, or most congestion.

I dislike optimizing jobs, because it assumes people can simply get the closest job avaliable to them (which often is not the case in real life), and optimizing zoning is more fun because you can watch the buildings shuffle around. I seem to get the best performance if I optimize zoning, let it run for a while until it settles down, then optimize jobs. If I do this, I can usually get average commute in a randomized city down to less than 1.3 blocks;

Again, this is unrealistic because when I optimized the jobs, most people were simply assigned the job next door. I find that I get more meaningful results if I just optimize zoning and let people keep their randomly assigned jobs.

Let's start with a randomly generated city with randomly assigned jobs;

The average commute is 21.5 blocks. I am visualizing the congestion, so you can see the green lines all over the road. The lines that are slightly thicker and darker are the streets with the worst congestion.

If we optimize zoning for the shortest commute and let it run for several minutes, we end up with something like this;

The buildings reorganized themselves, and placed the most dense buildings in the middle and the least dense around the outside. It is really interesting how this optimized city looks a lot like real world cites - an urban core surrounded by suburban outskirts. The average commute is 10.6 blocks - the commutes are cut in half of the completely random city.

We start with a random city again, but this time optimize zoning for the longest commute;

There are two noticable features. First, the land uses segregated to their own sides - residential blocks moved to one side and commercial blocks moved to the other side, with the least dense blocks in the middle. Second - look at all of the horrible congestion! Even within the residential and commercial areas on the side, there is still noticable congestion (for some reason the congestion seems more biased in the commercial area, but this may be by random luck.) There is essentially no where you could go to escape the traffic - not even to the vacant blocks in the middle! The average commute is 36.4 blocks, about 1.7x the commute of the random city, and 3.4x the commute of the optimized city.

In this city, I have manually placed all residential blocks on one side, and all commercial blocks on the other side, and assign everyone random jobs;

The average commute is 26.7 blocks, not much worse than the random city.

Let's see what the congestion looks like;

That is horrible. Way worse than in the random city, even if the commutes are not much longer.

I have experimented with four different types of cities in my simulator. I have summarised these results into a table. Click the image to enlarge it;

There are a few conclusions we can get from this;

  1. Seperating land uses generates congestion.
  2. Cities have a tendenacy to order themselves so that the most dense stuff is in the middle, and the least dense stuff is around the outside, and this results in less congestion and shorter average commute times.
  3. A heuristic approach (letting the free market optimize itself through trial and error) works quiet well, and can cut commute times in half and result in less congestion. If this fails and you end up with randomized land use, then you end up with slightly less commute times and significantly less congestion than segregating land use anyway.

I encourage you to play with the simulator and come up with your own experiments and results. With resonable certainty we can say that zoning increases commute times and congestion. But, before you repel your zoning code, you may want to read my other blog post on density without zoning.

However, we should also note that population density also causes congestion (however, the more dense you are, the more viable cycling, transit, and walking becomes.) My simulator does not take that into account because it optimizes zoning by moving whole buildings around. I could add the ability to optimize density by being able to split and merge buildings, however my programmer's intuition tells me that given enough space, every block would divided down into either 1 resident or job, and everyone would work next door, resulting in 1 block commutes and 1 commuter per street segment;

We know this would not work in the real world, because there are more places that we are concerned about traveling to other than our jobs, and people have individual goals such as housing price, minimum and maximum density (the presence or lack of street life), and the variety of urban amenities. These goals vary for each individual and many of these goals may place higher than congestion or commute distance. It would difficult to model these goals on a computer, because they could vary with time, demographics, culture, affluence, past experiences, and individual preference. If we want an accurate representation of these needs, we need a heuristic model that uses real people. Fortunately, we have one - the free market. How would a city look if it were progressively being optimized by people placing things where they wanted them to be placed, instead of by some planner placing things where they think they should be?

That previous sentence is the strongest anti-zoning argument I can come up with.


There is a lot of misunderstanding about traffic and congestion out there. First is the argument by our traffic engineers that we cannot approve a development or rezoning simply due to traffic projections - a weak argument because their job is to use their ingenuity and tools to solve the problems at hand, not to dictate what others can and cannot do. Second, is the argument that somehow seperating land uses reduces traffic and/or congestion. Both of these arguments are untrue.

Zoning often leads us to build places that are car dependent by design. Zoning is not needed for controlling density. Most existing zoning systems do not truly represent the needs of the community, either today or tomorrow and are very much relics of the 20th century.

I would be more accepting of a form-based code that dictates an architectural style. Let's say you are a small town that wants to dictate a certain style;

But in general, I would argue that any system which whitelists what is acceptable is a system that discourages innovation. I would also be more accepting of maximum use zoning, as by setting a maximum usage we still allow the free market to build up to that maximum usage, producing a more optimal result reflective of actual market demand than dictating the exact density and usage.

If you know of any other pro-zoning arguments, please let me know and I will look into them in detail and maybe do something fun like run a simulation.



Optional link


What is 1 * 7 ?

Peter Smit • 09.17.2014 • 23:54 PM (MDT)
Too bad your simulator wont run on Linux :(
Andrew Price • 09.08.2014 • 09:30 AM (MDT)
I have played with a trial of CityEngine a long time ago, but never to do any traffic modelling. Here's the source code for you to do anything you want with: https://github.com/MessiahAndrw/ZoningTrafficOptimizer/
zeph • 09.07.2014 • 23:56 PM (MDT)
That's a neat program! It's nice being a software developer, and being able to use tools to test hypotheses :) Would you be interested in putting this project up on github? Also, have you used CityEngine at all for modeling traffic flow for given layouts? I'm not at all surprised that optimizing for the longest commutes and most congestion yields single-use zoning. I agree strongly with your thesis, that roads are tools for getting people to destinations, and that urban design should be more "destination-oriented". Heuristic software should be used a lot more heavily than I suspect it is, at least in smaller cities and towns. Developers currently tend to optimize for profit generated from the parcel they build on, which seems to me to be orthogonal, an sometimes in opposition, to what makes a place livable or worth visiting. It also has occurred to me the more I think about it that pre-planning communities, the less it makes sense the way it is typically done: laying out places of business, residences, etc. It's hubris to think that we can use top-down designs to plan a place that will be worth living and working in. In the US at least, single-use zoning I think tends to get used as much because it's the status quo as it is easier for developers and planners to deal with in terms of variables. These shortcuts (or 'fiscal prudence') show up in modern town and city designs, but as a town grows, actual organic development sometimes pushes back against these designs. Anecdotally, I'd say this happens more in commercial areas than residential ones.