Canton of St. Gallen: observed built density
Canton · 74 municipalities with parcel data · Parcel data as of July 2025
- Parcels
- 189’426
5 % of Switzerland
- Municipal zones
- 1’647
- Median utilization
- 58 %
Switzerland: 10 %
- Median GFZ
- 0.28
Switzerland: 0.09
- Median height
- 9.6 m
Switzerland: 9.5 m
- Median floors
- 2.4
Switzerland: 2.3
About Canton of St. Gallen
The parcel data covers 74 municipalities of the canton of St. Gallen: 189’426 parcels in 1’647 municipal zone records. The municipalities with the most parcels are St. Gallen, Altstätten and Oberriet (SG).
The median parcel is built to a volume utilization of 58 %; half of the parcels lie between 7 % and 104 %. The Swiss median is 10 %, so St. Gallen sits above it.
The median building height is 9.6 m at 2.4 floors, and the median floor-area ratio (GFZ) is 0.28. Parcels built in the last 20 years reach a mean volume utilization of 330 % (20’529 parcels), higher than the 142 % across all building years.
Parcels by municipal zone
| Zone | Parcels |
|---|---|
| BauG Landwirtschaftszone | 33’546 |
| BauG Wohnzone W2 | 21’013 |
| Hinweis.Wald | 15’239 |
| BauG Wohnzone WE | 8’763 |
| BauG Wohnzone W2a | 8’754 |
| BauG Wohn-Gewerbezone WG3 | 7’056 |
| Hinweis.Verkehrsflaeche iB | 7’013 |
| BauG Wohnzone W2b | 6’587 |
| BauG Wohn-Gewerbezone WG2 | 6’204 |
| BauG Wohnzone W3 | 5’945 |
| Landwirtschaftszone | 5’942 |
| Hinweis.Verkehrsflaeche aB | 3’631 |
| Other zones (226) | 59’733 |
Zone labels are municipal spellings, so one zone type can appear under several names.
Volume utilization (ratioV)
Of the 187’262 parcels with a value, half lie between 7 % and 104 %. The median is 58 % and the mean 96 %.
Share of parcels by range
- below 50 %46 %
- 50 % to below 100 %26 %
- 100 % to below 150 %16 %
- 150 % and above12 %
Floor-area ratio (GFZ)
Of the 187’240 parcels with a value, half lie between 0.06 and 0.58. The median is 0.28 and the mean 0.40.
Share of parcels by range
- below 0.5069 %
- 0.50 to below 1.0021 %
- 1.00 to below 1.505 %
- 1.50 and above4 %
Building height
Of the 118’534 parcels with a value, half lie between 8.1 m and 11.6 m. The median is 9.6 m and the mean 10.1 m.
Share of parcels by range
- below 8 m23 %
- 8 m to below 12 m57 %
- 12 m to below 20 m18 %
- 20 m and above2 %
Number of floors
Of the 87’452 parcels with a value, half lie between 1.9 and 3.1. The median is 2.4 and the mean 2.6.
Share of parcels by range
- below 27 %
- 2 to below 349 %
- 3 to below 540 %
- 5 and above4 %
Building age cohorts
Mean volume utilization of the parcels built inside each window, from all years on record down to the last five. The windows overlap: the last 20 years include the last 5.
| Built in | Parcels | Mean utilization |
|---|---|---|
| All years | 189’426 | 142 % |
| Last 60 years | 76’989 | 212 % |
| Last 40 years | 50’784 | 216 % |
| Last 20 years | 20’529 | 330 % |
| Last 15 years | 14’039 | 139 % |
| Last 10 years | 8’397 | 147 % |
| Last 5 years | 3’730 | 154 % |
Municipalities of the canton of St. Gallen
| Name | Parcels | Zones | Median utilization | Median height | Median floors |
|---|---|---|---|---|---|
| St. Gallen | 11’898 | 32 | 72 % | 13.4 m | 3.4 |
| Altstätten | 6’326 | 24 | 45 % | 9.4 m | 2.3 |
| Oberriet (SG) | 6’114 | 26 | 10 % | 8.8 m | 2.1 |
| Rapperswil-Jona | 5’679 | 34 | 58 % | 10.3 m | 2.6 |
| Wil (SG) | 5’496 | 27 | 71 % | 10.3 m | 2.6 |
| Mels | 4’672 | 23 | 45 % | 9.0 m | 2.2 |
| Eschenbach (SG) | 4’620 | 19 | 52 % | 10.1 m | 2.4 |
| Grabs | 4’539 | 24 | 33 % | 9.1 m | 2.2 |
| Wildhaus-Alt St. Johann | 4’500 | 27 | 19 % | 9.1 m | 2.2 |
| Gossau (SG) | 4’448 | 26 | 58 % | 10.3 m | 2.7 |
| Kirchberg (SG) | 4’390 | 27 | 32 % | 10.2 m | 2.3 |
| Uzwil | 4’006 | 24 | 76 % | 9.5 m | 2.3 |
| Nesslau | 3’937 | 27 | 17 % | 9.4 m | 2.5 |
| Sennwald | 3’882 | 24 | 10 % | 9.0 m | 2.1 |
| Flums | 3’680 | 29 | 40 % | 9.3 m | 2.3 |
| Wartau | 3’534 | 24 | 18 % | 9.1 m | 2.2 |
| Wattwil | 3’502 | 25 | 57 % | 10.3 m | 2.6 |
| Buchs (SG) | 3’373 | 27 | 68 % | 9.1 m | 2.4 |
| Ebnat-Kappel | 3’200 | 22 | 53 % | 9.6 m | 2.4 |
| Flawil | 3’160 | 23 | 69 % | 10.1 m | 2.7 |
| Widnau | 2’975 | 25 | 75 % | 8.6 m | 2.1 |
| Vilters-Wangs | 2’822 | 22 | 51 % | 8.9 m | 2.2 |
| Sevelen | 2’793 | 22 | 35 % | 8.9 m | 2.2 |
| Thal | 2’791 | 27 | 61 % | 9.4 m | 2.3 |
| Walenstadt | 2’662 | 25 | 62 % | 9.0 m | 2.3 |
| Gommiswald | 2’603 | 21 | 69 % | 9.6 m | 2.5 |
| Diepoldsau | 2’587 | 22 | 70 % | 8.6 m | 2.2 |
| Bütschwil-Ganterschwil | 2’487 | 19 | 50 % | 9.9 m | 2.3 |
| Quarten | 2’477 | 29 | 43 % | 9.1 m | 2.2 |
| Oberuzwil | 2’408 | 17 | 61 % | 9.7 m | 2.5 |
| Gaiserwald | 2’353 | 22 | 65 % | 9.4 m | 2.2 |
| Waldkirch | 2’314 | 21 | 10 % | 10.4 m | 2.2 |
| Au (SG) | 2’278 | 23 | 70 % | 9.2 m | 2.2 |
| Berneck | 2’248 | 18 | 39 % | 9.5 m | 2.4 |
| Gams | 2’204 | 22 | 40 % | 9.3 m | 2.1 |
| Bad Ragaz | 2’183 | 29 | 69 % | 8.8 m | 2.2 |
| Balgach | 2’159 | 26 | 56 % | 9.2 m | 2.2 |
| Sargans | 2’089 | 25 | 58 % | 9.2 m | 2.4 |
| Goldach | 2’079 | 22 | 77 % | 9.9 m | 2.2 |
| Mosnang | 2’061 | 20 | 29 % | 10.0 m | 2.4 |
| Zuzwil (SG) | 1’972 | 19 | 67 % | 9.1 m | 2.3 |
| St. Margrethen | 1’960 | 27 | 67 % | 9.5 m | 2.4 |
| Pfäfers | 1’947 | 22 | 10 % | 8.8 m | 2.2 |
| Oberbüren | 1’945 | 25 | 54 % | 9.2 m | 2.2 |
| Wittenbach | 1’936 | 21 | 69 % | 9.7 m | 2.3 |
| Schänis | 1’903 | 26 | 65 % | 9.2 m | 2.2 |
| Rebstein | 1’831 | 20 | 74 % | 9.4 m | 2.4 |
| Niederhelfenschwil | 1’768 | 19 | 47 % | 9.8 m | 2.4 |
| Amden | 1’756 | 22 | 48 % | 9.3 m | 2.3 |
| Rorschacherberg | 1’753 | 22 | 64 % | 10.5 m | 2.4 |
| Jonschwil | 1’725 | 23 | 67 % | 9.6 m | 2.3 |
| Rüthi (SG) | 1’715 | 23 | 10 % | 9.1 m | 2.2 |
| Degersheim | 1’649 | 17 | 74 % | 10.1 m | 2.6 |
| Uznach | 1’625 | 25 | 72 % | 9.6 m | 2.6 |
| Kaltbrunn | 1’615 | 20 | 69 % | 10.0 m | 2.4 |
| Rorschach | 1’512 | 21 | 86 % | 13.5 m | 3.5 |
| Mörschwil | 1’404 | 20 | 62 % | 9.8 m | 2.4 |
| Eggersriet | 1’339 | 20 | 49 % | 9.6 m | 2.4 |
| Benken (SG) | 1’313 | 20 | 55 % | 9.5 m | 2.3 |
| Marbach (SG) | 1’290 | 18 | 47 % | 9.5 m | 2.2 |
| Schmerikon | 1’104 | 21 | 66 % | 10.4 m | 2.7 |
| Niederbüren | 1’094 | 15 | 9 % | 9.8 m | 2.3 |
| Eichberg | 1’084 | 20 | 20 % | 9.3 m | 2.2 |
| Rheineck | 1’066 | 19 | 85 % | 10.2 m | 2.5 |
| Lütisburg | 982 | 20 | 44 % | 10.1 m | 2.4 |
| Steinach | 954 | 19 | 68 % | 9.6 m | 2.3 |
| Muolen | 894 | 13 | 9 % | 10.3 m | 2.3 |
| Andwil (SG) | 833 | 16 | 67 % | 9.6 m | 2.2 |
| Weesen | 753 | 17 | 62 % | 10.0 m | 2.6 |
| Häggenschwil | 749 | 17 | 18 % | 10.1 m | 2.5 |
| Untereggen | 729 | 11 | 26 % | 10.5 m | 2.4 |
| Lichtensteig | 705 | 20 | 80 % | 11.4 m | 2.8 |
| Tübach | 508 | 24 | 64 % | 9.7 m | 2.5 |
| Berg (SG) | 484 | 14 | 56 % | 9.3 m | 2.2 |
How to read this page
room shows observed built density: what has been built on the parcels, not what the zoning permits. Volume utilization (ratioV) compares the built volume of a parcel with the reference volume of its municipal zone type. The floor-area ratio (GFZ) is floor area divided by parcel area; building height and number of floors are taken from the buildings on a parcel. Figures pool all municipal zones of the area. Medians and quartiles are read from bins 10 points (ratioV), 0.1 (GFZ), 2 m (height) and 1 floor wide, so they are exact to within one bin; means are exact. A parcel counts in a distribution only when the parcel data has a value for it. The floors distribution leaves out parcels without a building (0 floors).