Vacant Residential Land in the Twin Cities, by City
Published August 26, 2026 · Parcel data as of April 1, 2026 · 92 municipalities · Method and sources
Across the seven-county metro, the share of residential parcels sitting vacant runs from 0.08% in Richfield to 24.52% in Corcoran — roughly a 307-fold difference between two cities about twenty-five miles apart. The median city is at 3.28%. 22 of these 92 cities are below 1%; 11 are above 10%.
Those figures come from applying one consistent test to every municipality in the regional parcel dataset. The test is stated in full below, and it is deliberately narrow: it finds parcels the county assessor records as residential land carrying no building. It does not find buildable lots, and the gap between those two things is wide enough that we would rather lead with it than bury it.
What this measures
A parcel is counted as vacant residential land when all of the following are true in the county assessor's own record:
- No meaningful building value. The assessor records no building value on the parcel, or less than $1,000 of it.
- Land value above zero. It is a real taxable parcel, which excludes most road right-of-way, open water and public land.
- A residential or undeveloped use class. The assessor's use classification reads as residential, vacant, agricultural, rural or lakeshore.
- Not classed as something else. Parcels classed commercial, industrial, apartment, church, charitable, common area, utility or railroad are excluded.
That is the whole test. It runs identically on all 186 municipalities in the dataset, from a single extract dated April 1, 2026.
What this is not
Specifically, the measure:
- Cannot see land that could become buildable. Assembling neighbouring parcels, subdividing an oversized one, and taking down an existing house are how most new homes appear in a built-out city. None of them are visible here, which is why a city near 0% is not a city that has stopped building.
- Counts a farm field and an infill lot the same. One parcel is one parcel whether it is a fifth of an acre or forty acres. The outer-edge cities at the top of this table hold larger parcels on average, so their share overstates how many individual homes the land represents relative to a city of small lots.
- Includes platted outlots. An outlot is the drainage pond, wetland buffer or common area a developer plats alongside the buildable lots, and it usually cannot be built on. In the 40 cities where we have checked parcel by parcel, about 7% of these vacant parcels carry an outlot designation.
- Is a snapshot. Parcel records change continuously. Treat one city's number as of April 1, 2026, not as a live count.
We do run a further buildability screen — checking geometry, frontage, flood and wetland indicators and a setback envelope — but only in the 40 cities we have ingested in detail. There it retains 72% of these vacant parcels (14,138 of 19,643), removing about a quarter. That screen has not run on the other cities in this table, so its result is reported here as its own scoped figure and is never mixed into the comparison.
The pattern the ordering shows
The ranking is not random, and that is the main reason it is worth publishing. The cities at the tight end are the fully built-out post-war suburbs of the first ring — Richfield, New Hope, Saint Louis Park, Brooklyn Center, Robbinsdale — where the residential land was platted decades ago. The cities at the loose end sit on the developing edge, where agricultural parcels have not yet been converted: Dayton, Rogers, Linwood Township, Nowthen, Corcoran.
For anyone planning a build, that ordering is the practical finding. It says where buying a lot is likely to mean competing for a scarce one, and where it is more likely to mean choosing among several — without claiming to know how many of either exist.
All 92 cities
Sorted by vacant share, lowest first. Choose a column heading to re-sort. Cities with a link have individual lot pages in our lot finder (37 of 92). Municipalities under 2,000 parcels are left out: with a denominator that small a single new plat moves the percentage several points, and a number that unstable is not worth quoting.
| Richfield | Hennepin | 9 | 11,927 | 0.08% |
| New Hope | Hennepin | 12 | 6,145 | 0.20% |
| Saint Louis Park | Hennepin | 53 | 17,662 | 0.30% |
| Brooklyn Center | Hennepin | 35 | 8,913 | 0.39% |
| Robbinsdale | Hennepin | 21 | 5,284 | 0.40% |
| Champlin | Hennepin | 37 | 8,978 | 0.41% |
| Bloomington | Hennepin | 139 | 31,131 | 0.45% |
| Brooklyn Park | Hennepin | 113 | 24,812 | 0.46% |
| New Brighton | Ramsey | 42 | 7,625 | 0.55% |
| Spring Lake Park | Anoka + Ramsey | 14 | 2,471 | 0.57% |
| Minneapolis | Hennepin | 832 | 131,129 | 0.63% |
| Circle Pines | Anoka | 14 | 2,083 | 0.67% |
| Mounds View | Ramsey | 29 | 4,236 | 0.68% |
| Hopkins | Hennepin | 37 | 5,252 | 0.70% |
| Apple Valley | Dakota | 125 | 16,019 | 0.78% |
| Edina | Hennepin | 166 | 21,372 | 0.78% |
| Columbia Heights | Anoka | 60 | 7,564 | 0.79% |
| Eden Prairie | Hennepin | 211 | 23,019 | 0.92% |
| Coon Rapids | Anoka | 209 | 22,583 | 0.93% |
| Golden Valley | Hennepin | 82 | 8,771 | 0.93% |
| Oak Park Heights | Washington | 20 | 2,084 | 0.96% |
| North Saint Paul | Ramsey | 41 | 4,245 | 0.97% |
| Eagan | Dakota | 208 | 20,299 | 1.02% |
| Stillwater | Washington | 91 | 8,622 | 1.06% |
| Crystal | Hennepin | 91 | 8,286 | 1.10% |
| Shoreview | Ramsey | 119 | 10,779 | 1.10% |
| Burnsville | Dakota | 187 | 16,568 | 1.13% |
| White Bear Lake | Ramsey + Washington | 102 | 9,025 | 1.13% |
| Plymouth | Hennepin | 378 | 29,201 | 1.29% |
| Anoka | Anoka | 82 | 5,985 | 1.37% |
| Roseville | Ramsey | 182 | 13,097 | 1.39% |
| Saint Anthony | Hennepin + Ramsey | 45 | 3,019 | 1.49% |
| Maplewood | Ramsey | 218 | 13,967 | 1.56% |
| Savage | Scott | 193 | 11,689 | 1.65% |
| Minnetonka | Hennepin | 352 | 20,971 | 1.68% |
| Arden Hills | Ramsey | 57 | 3,378 | 1.69% |
| Saint Paul | Ramsey | 1,475 | 84,950 | 1.74% |
| Oakdale | Washington | 196 | 11,055 | 1.77% |
| Chanhassen | Carver + Hennepin | 202 | 10,854 | 1.86% |
| Vadnais Heights | Ramsey | 113 | 5,571 | 2.03% |
| White Bear Township | Ramsey | 113 | 5,270 | 2.14% |
| Woodbury | Washington | 631 | 29,433 | 2.14% |
| Mahtomedi | Washington | 73 | 3,339 | 2.19% |
| Blaine | Anoka + Ramsey | 664 | 26,342 | 2.52% |
| Maple Grove | Hennepin | 909 | 28,405 | 3.20% |
| Mendota Heights | Dakota | 142 | 4,382 | 3.24% |
| Chaska | Carver | 342 | 10,437 | 3.28% |
| Prior Lake | Scott | 386 | 11,667 | 3.31% |
| Fridley | Anoka | 343 | 9,917 | 3.46% |
| West Saint Paul | Dakota | 210 | 5,996 | 3.50% |
| South Saint Paul | Dakota | 281 | 7,959 | 3.53% |
| Mound | Hennepin | 171 | 4,802 | 3.56% |
| Hastings | Dakota + Washington | 295 | 7,742 | 3.81% |
| Andover | Anoka | 521 | 12,339 | 4.22% |
| Shorewood | Carver + Hennepin | 147 | 3,329 | 4.42% |
| Shakopee | Scott | 706 | 15,869 | 4.45% |
| Cottage Grove | Washington | 773 | 16,494 | 4.69% |
| Ramsey | Anoka | 561 | 11,503 | 4.88% |
| Forest Lake | Washington | 446 | 8,958 | 4.98% |
| Victoria | Carver | 262 | 5,229 | 5.01% |
| Inver Grove Heights | Dakota | 598 | 11,000 | 5.44% |
| Hugo | Washington | 427 | 7,757 | 5.50% |
| Little Canada | Ramsey | 246 | 4,130 | 5.96% |
| Lake Elmo | Washington | 373 | 6,107 | 6.11% |
| Lakeville | Dakota | 1,651 | 26,088 | 6.33% |
| Waconia | Carver | 369 | 5,658 | 6.52% |
| Farmington | Dakota | 577 | 8,440 | 6.84% |
| Saint Paul Park | Washington | 165 | 2,364 | 6.98% |
| Lino Lakes | Anoka | 664 | 9,289 | 7.15% |
| Jordan | Scott | 182 | 2,443 | 7.45% |
| Orono | Hennepin | 341 | 4,477 | 7.62% |
| Grant | Washington | 168 | 2,166 | 7.76% |
| Saint Francis | Anoka | 245 | 3,135 | 7.81% |
| Ham Lake | Anoka | 583 | 6,900 | 8.45% |
| North Oaks | Ramsey | 204 | 2,364 | 8.63% |
| Belle Plaine | Scott | 270 | 3,070 | 8.79% |
| Carver | Carver | 258 | 2,790 | 9.25% |
| Minnetrista | Hennepin | 436 | 4,700 | 9.28% |
| Columbus | Anoka | 231 | 2,421 | 9.54% |
| Oak Grove | Anoka | 395 | 4,092 | 9.65% |
| Elko New Market | Scott | 202 | 2,083 | 9.70% |
| Credit River | Scott | 254 | 2,421 | 10.49% |
| East Bethel | Anoka | 629 | 5,564 | 11.30% |
| Rosemount | Dakota | 1,210 | 10,642 | 11.37% |
| Medina | Hennepin | 440 | 3,751 | 11.73% |
| May Township | Washington | 275 | 2,045 | 13.45% |
| Scandia | Washington | 403 | 2,907 | 13.86% |
| Dayton | Hennepin | 705 | 4,911 | 14.36% |
| Rogers | Hennepin | 1,083 | 6,862 | 15.78% |
| Linwood Township | Anoka | 471 | 2,833 | 16.63% |
| Nowthen | Anoka | 382 | 2,142 | 17.83% |
| Corcoran | Hennepin | 1,173 | 4,784 | 24.52% |
Method, and where every number comes from
The source is the regional parcel dataset, which aggregates the seven metro counties' assessor and GIS records. We applied the test in What this measures to every municipality in one pass from a single extract dated April 1, 2026, so no city's figure is computed differently from another's.
Two things are worth stating because they would otherwise be invisible. Seven cities cross a county line — Blaine, Chanhassen, Hastings, Saint Anthony, Shorewood, Spring Lake Park and White Bear Lake — and appear in the source data once per county. Their rows here are combined, because reporting only the larger half understates the denominator: Saint Anthony reads 1.96% split and 1.49% whole. Seven other pairs share a name with a neighbouring township — Waconia and Waconia Township, and similar — and those are genuinely different places, kept apart here.
| Claim on this page | Where it comes from |
|---|---|
| Richfield 0.08%, Corcoran 24.52%, and every row of the table | Parcel and vacant-parcel counts per municipality, regional parcel dataset extract dated April 1, 2026, grouped by municipality name. |
| 92 municipalities shown, of 186 in the dataset | Those with at least 2,000 residential parcels, the stated floor. |
| Median 3.28%, 22 cities below 1%, 11 above 10% | Computed from the table on this page at build time, not entered separately. |
| Buildability screen retains 72% | 14,138 retained of 19,643 screened across the 40 cities where the screen has run. Not applied to the rest of the table. |
| About 7% of vacant parcels are platted outlots | Plat designation on screened parcels in the same 40 cities. Not measured for cities outside that set. |
| Saint Anthony 1.96% split, 1.49% combined | 45 vacant parcels against 2,295 in Hennepin alone, versus 3,019 across Hennepin and Ramsey. |
If you are checking a figure and it does not reconcile, we would rather hear about it than not — get in touch.
Where to go from here
Our lot finder maps individual candidate parcels in 37 of the cities above, with what we know and what we do not stated on each one. If you are further along, our cost-to-build guide covers what land scarcity does to a Twin Cities budget, and the builder directory lists builders by the cities they actually work in.
If you would rather see finished new construction in the outer-edge cities that still have land, the Fall 2026 Parade of Homes runs September 11–27, and several cities at the loose end of this table have homes on the tour.
Frequently Asked Questions
Does this mean Richfield has only 9 buildable lots left?
No, and that is the most important thing on this page. 9 is the number of Richfield parcels the county assessor records as residential land carrying no building. Whether any of them can actually be built on depends on setbacks, zoning, easements, wetlands, access and utility service, none of which this measure checks. It also cannot see the land that produces most infill housing in a built-out city: teardowns, splitting an oversized lot, or assembling neighbours. A fully built-out city can keep producing new homes for decades with a number like this.
Why compare cities if the absolute numbers are limited?
Because the same test is applied to every city, from one dataset, on one date. Whatever the measure misses, it misses everywhere at roughly the same rate, so the ordering carries information the individual counts do not. Richfield at 0.08% and Corcoran at 24.52% is a real 307-fold difference in how much undeveloped residential land the assessor sees.
What counts as a parcel here?
A tax parcel in the regional parcel dataset, which is the assessor record rather than a lot on a plat. One parcel can be a quarter-acre city lot or a forty-acre farm field, and this measure counts each as one. That is why the share is expressed as a percentage of a city’s own residential parcels rather than as acreage, and why the two are not interchangeable.
How current is this?
The parcel extract is dated April 1, 2026 and covers all seven metro counties. Parcel records change continuously as land is platted, sold and built on, so treat any single city’s figure as a snapshot rather than a live count.
Can I cite or reuse this?
Yes. Please link to this page and state the measurement date, and please carry the distinction between vacant residential parcels and buildable lots with it — that distinction is the reason the numbers are trustworthy enough to quote.