I've got a problem with stable housing.
When I first build an area, then new couples move into the houses, so you only need N/2 (where N is the number of useful jobs) houses. Then you have a local food supply for N people and you're done. But as time goes on, this becomes distorted- spouses die, for example, in a famine that was totally not my fault.
But now you have N jobs, but only N/2 people live in the village, alone without children. So unless you want your people to trek literally all the way across the biggest map size (which is what I had), you have to make more houses.
But when they die, and young people move in, you end up with way more people and available workers than you need or can feed, so the population over-grows and you get a famine and the population crashes.
You could manage this problem if you could stagger the stages to occur in a couple houses at a time- that way one house being 80-year-old widow only can be countered by another house being fresh young couple. But you can't seem to stagger them and the villager intelligence does not seem to spread them out appropriately.
How can I avoid this boom-and-bust cycle?
Edit:
Not to mention that if you want to build a new structure, the builders need to live locally, but once it's done, they don't, which introduces more temporary but potentially severe housing pressure and often seems to lead to severe delays in constructing new structures even if you have all the resources available and proximate. Labourers harvesting nearby resources such as stone or iron also seem to have a similar problem.
Best Answer
Managing population fluctuations, both local and city-wide, is one of the biggest challenges of Banished. But with the right technique, it isn't one which can't be overcome.
When you need some household to migrate to another location, build a new house for them in the new location and just before the new house is finished, order their old house to get removed. They will then become homeless and migrate to the new house the moment it is finished.
Single households are in fact quite handy in this regard, because they give you a higher flexibility (you can move a single worker and don't have to move two at the same time). The downside is, of course, that more houses require more resources to build and more fuel to keep warm.
As a result of population fluctuations you will soon notice that workers who used to live close to their jobs will switch jobs and have suddenly a new job which is far more remote. To solve this issue you should regularly (every couple years) unassign all jobs by making everyone laborers and then reassign the desired number of workers to each occupation, starting with those where you consider proximity most critical. When you add a worker to an occupation, the laborer closest to an open job of that occupation will be converted, so by reassigning regularly you can re-optimize who does which job.