Place guide
Planting zones in San Antonio-New Braunfels, TX
This metro spans USDA zones 8a to 9a, so there is no single zone for San Antonio-New Braunfels, TX and anyone who gives you one is rounding. 86% of its ZIP codes are zone 9a; the rest are not.
Your ZIP code
Get the exact answer for your address
Everything above describes San Antonio-New Braunfels, TX as a whole. Hardiness zones and freeze dates are published per ZIP code, so yours is exact — enter it and this page will tell you your zone, which NOAA station it comes from and how far away that station is.
San Antonio-New Braunfels, TX does not have one planting answer
Its own weather stations disagree about 11 of the 32 crops in this table right now, so any single list would be wrong for part of the metro area. That is not a gap in the data — it is what the data says.
- Shortest season
- 212 days
PRADE RCH, TX US (USC00417232) - Longest season
- 302 days
CHOKE CANYON DAM, TX US (USC00411720)
90 days of growing season separate those two stations, and both serve ZIP codes in San Antonio-New Braunfels, TX. The ZIP lookup above answers for one address instead of averaging a place that has no average.
Why the hardiness zone does not settle this
A USDA zone is a winter-minimum statistic. It was never a growing-season one, and it does not behave like one: within a single zone the growing season runs a median 54 days wider at the 10th–90th percentile, and annual growing degree days vary by 2.02×.
The zones also overlap rather than stack — 30% of zone 6b freezes before the median zone 6a station. The zone tells you what survives your winter; the station tells you what finishes before your autumn.
All 27 stations agreeAt least one station
Every one of the 27 NOAA stations serving this metro area counts April 5 – November 2 as growing season (211 days). Widening to any single station gives February 8 – December 9 (304 days).
That is a 93-day difference inside one metro area — which is why this page gives ranges rather than a single planting date. The ZIP lookup above resolves it to one station.
Which zone you are in depends where you are
San Antonio-New Braunfels, TX covers 3 hardiness zones. A guide that gives the metro one zone has picked whichever is largest and rounded everyone else into it — which is fine for the 86% in zone 9a and wrong for the other 14%. Here is the actual split.
| Zone | ZIP codes | Share | |
|---|---|---|---|
| 9a | 103 | 86% | |
| 8b | 16 | 13% | |
| 8a | 1 | 1% |
Zones are published per ZIP code, so yours is exact even though the metro's is not. The hardiness tool will tell you which one you are in.
Your freeze dates
Those are the earliest and latest medians among the 27 stations serving this metro — not an average, and not one station standing in for the rest. Half of years freeze later than a station's own median.
The spread is the point. Even in a metro that is one hardiness zone throughout, its stations disagree about the last spring freeze. Hardiness zone and frost date measure different things — a zone is the average annual coldest night, a freeze date is when the season turns — and a place can be uniform in one and varied in the other. Use the tools below with your own ZIP rather than the ends of this range.
Your growing season
NOAA publishes a growing-season length for each station, and across the 27 stations serving San Antonio-New Braunfels, TX it runs 212–302 days . That figure is published, not computed from the two freeze dates — subtracting one from the other gives the wrong answer wherever a season crosses New Year. Mean summer high (June–August) runs 91–98 °F , at or above the 90 °F point where cool-season crops bolt and tomato and pepper pollen fails — so midsummer sowings of lettuce and its relatives are worth holding here. Summer rain over the same months runs 6.9–9.4" across those 25 stations, against the rough inch a week — about 13 inches over the same 92 days — that a vegetable garden is usually reckoned to want. The middle station covers about 60% of it, so expect to make up the rest. The inches are NOAA's published normals; the inch a week is a rule of thumb, and it takes no account of a 95 °F summer afternoon drying the soil faster than a cool one.
When to start seeds in San Antonio-New Braunfels, TX
Every spring job for 63 crop dates, counted from this metro's own last spring freeze. Each is a range across all 27 stations — the earliest and latest that job falls anywhere in the metro — because no one station speaks for the whole area.
| Crop | Job | When | Offset |
|---|---|---|---|
| Green Onions | Start indoors | January 1 – December 31 | 8 weeks before |
| Peppers | Start indoors | January 1 – December 31 | 8 weeks before |
| Bok Choy | Start indoors | January 4 – March 1 | 5 weeks before |
| Kohlrabi | Start indoors | January 4 – March 1 | 5 weeks before |
| Swiss Chard | Start indoors | January 4 – March 1 | 5 weeks before |
| Broccoli | Start indoors | January 7 – December 28 | 6 weeks before |
| Cabbage | Start indoors | January 7 – December 28 | 6 weeks before |
| Collards | Start indoors | January 7 – December 28 | 6 weeks before |
| Kale | Start indoors | January 7 – December 28 | 6 weeks before |
| Leaf Lettuce | Start indoors | January 7 – December 28 | 6 weeks before |
| Peas | Direct sow | January 7 – December 28 | 6 weeks before |
| Spinach | Direct sow | January 7 – December 28 | 6 weeks before |
| Sweet Potato | Start indoors | January 7 – December 28 | 6 weeks before |
| Tomatoes | Start indoors | January 7 – December 28 | 6 weeks before |
| Arugula | Direct sow | January 11 – March 8 | 4 weeks before |
| Baby Salad Greens | Direct sow | January 11 – March 8 | 4 weeks before |
| Beets | Direct sow | January 11 – March 8 | 4 weeks before |
| Green Onions | Direct sow | January 11 – March 8 | 4 weeks before |
| Mustard Greens | Direct sow | January 11 – March 8 | 4 weeks before |
| Okra | Start indoors | January 11 – March 8 | 4 weeks before |
| Radishes | Direct sow | January 11 – March 8 | 4 weeks before |
| Turnips | Direct sow | January 11 – March 8 | 4 weeks before |
| Cabbage | Set out | January 18 – March 15 | 3 weeks before |
| Carrots | Direct sow | January 18 – March 15 | 3 weeks before |
| Collards | Direct sow | January 18 – March 15 | 3 weeks before |
| Collards | Set out | January 18 – March 15 | 3 weeks before |
| Cucumbers | Start indoors | January 18 – March 15 | 3 weeks before |
| Green Onions | Set out | January 18 – March 15 | 3 weeks before |
| Kale | Direct sow | January 18 – March 15 | 3 weeks before |
| Kale | Set out | January 18 – March 15 | 3 weeks before |
| Kohlrabi | Direct sow | January 18 – March 15 | 3 weeks before |
| Kohlrabi | Set out | January 18 – March 15 | 3 weeks before |
| Leaf Lettuce | Direct sow | January 18 – March 15 | 3 weeks before |
| Pumpkins | Start indoors | January 18 – March 15 | 3 weeks before |
| Summer Squash | Start indoors | January 18 – March 15 | 3 weeks before |
| Winter Squash | Start indoors | January 18 – March 15 | 3 weeks before |
| Zucchini | Start indoors | January 18 – March 15 | 3 weeks before |
| Bok Choy | Direct sow | January 25 – March 22 | 2 weeks before |
| Bok Choy | Set out | January 25 – March 22 | 2 weeks before |
| Broccoli | Set out | January 25 – March 22 | 2 weeks before |
| Cilantro | Direct sow | January 25 – March 22 | 2 weeks before |
| Leaf Lettuce | Set out | January 25 – March 22 | 2 weeks before |
| Swiss Chard | Direct sow | January 25 – March 22 | 2 weeks before |
| Swiss Chard | Set out | January 25 – March 22 | 2 weeks before |
| Dill | Direct sow | February 1 – March 29 | 1 week before |
| Bush Beans | Direct sow | February 15 – April 12 | 1 week after |
| Cucumbers | Set out | February 15 – April 12 | 1 week after |
| Pumpkins | Direct sow | February 15 – April 12 | 1 week after |
| Pumpkins | Set out | February 15 – April 12 | 1 week after |
| Summer Squash | Direct sow | February 15 – April 12 | 1 week after |
| Summer Squash | Set out | February 15 – April 12 | 1 week after |
| Sweet Corn | Direct sow | February 15 – April 12 | 1 week after |
| Tomatoes | Set out | February 15 – April 12 | 1 week after |
| Winter Squash | Direct sow | February 15 – April 12 | 1 week after |
| Winter Squash | Set out | February 15 – April 12 | 1 week after |
| Zucchini | Direct sow | February 15 – April 12 | 1 week after |
| Zucchini | Set out | February 15 – April 12 | 1 week after |
| Cucumbers | Direct sow | February 22 – April 19 | 2 weeks after |
| Okra | Direct sow | February 22 – April 19 | 2 weeks after |
| Okra | Set out | February 22 – April 19 | 2 weeks after |
| Peppers | Set out | February 22 – April 19 | 2 weeks after |
| Southern Peas | Direct sow | February 22 – April 19 | 2 weeks after |
| Sweet Potato | Set out | February 22 – April 19 | 2 weeks after |
The week offsets are conventional extension guidance and vary by variety; the freeze dates they are counted from are measured. For a single date rather than a range, run when do I start my seeds? with your own ZIP code.
What survives the winter changes across San Antonio-New Braunfels, TX
Of 74 perennial fruits, nuts, berries, vegetables and herbs, 57 come through the winter in zone 8a and only 46 in zone 9a. That is a different garden at each end of the same metro.
| Zone | ZIPs | Survive | Fail for being too warm |
|---|---|---|---|
| 8a | 1 | 57 of 74 | 8 |
| 8b | 16 | 54 of 74 | 11 |
| 9a | 103 | 46 of 74 | 25 |
The last column is the counterintuitive one, and it is why the totals do not simply rise as the winters get milder. Most temperate fruit needs a documented number of hours below about 45 °F to break dormancy and set a crop, so an apple fails in a winter that is too warm; currants and rhubarb cook in the summer heat that comes with it. See the full list with reasons.
At least one station here freezes across the new year, which puts the two ends of a spread on opposite sides of the calendar. Drawing it would produce a bar spanning almost the whole year and meaning nothing, so none is drawn.
The 27 stations behind these numbers
All 27 NOAA stations whose normals this page quotes, spanning about 181 km north to south. Every one is named with its identifier in the station list below — this page does not single one out, because no one station speaks for a whole metro area.
A relative sketch, not a map with a projection: longitude is adjusted for latitude so the shape is not stretched, and there is no basemap. For the one station nearest a specific address, with its real distance, use the ZIP lookup above.
Every figure above comes from these, and each is named so you can check it. Which station serves a given ZIP code, and how far away it is, varies across the metro — the table below gives it per ZIP code rather than this page averaging it.
| Station | NOAA ID | Last spring freeze | First fall freeze | Season |
|---|---|---|---|---|
| Austin San Antonio, TX | USW00012971 | March 1 | November 26 | 273 days |
| Blanco, TX | USC00410832 | March 20 | November 10 | 236 days |
| Boerne, TX | USC00410902 | March 15 | November 13 | 243 days |
| Canyon Dam, TX | USC00411429 | March 1 | December 1 | 276 days |
| Charlotte 5 Nnw, TX | USC00411663 | February 26 | November 28 | 278 days |
| Choke Canyon Dam, TX | USC00411720 | February 8 | December 6 | 302 days |
| Cross, TX | USC00412125 | March 8 | November 17 | 254 days |
| Floresville, TX | USC00413201 | March 6 | November 20 | 261 days |
| Hondo Muni AP, TX | USW00012962 | March 6 | November 20 | 263 days |
| Hondo, TX | USC00414254 | February 28 | November 27 | 274 days |
| Kerrville 3 Nne, TX | USC00414782 | March 27 | November 7 | 226 days |
| Luling, TX | USC00415429 | March 5 | November 23 | 263 days |
| Lytle 3W, TX | USC00415454 | February 24 | December 2 | 283 days |
| Medina 1Ne, TX | USC00415742 | March 16 | November 15 | 244 days |
| New Braunfels Wfo, TX | USC00416273 | February 25 | November 25 | 274 days |
| New Braunfels, TX | USC00416276 | March 8 | November 18 | 253 days |
| Nixon, TX | USC00416368 | March 7 | November 22 | 260 days |
| Pleasanton, TX | USC00417111 | February 27 | November 28 | 274 days |
| Poteet, TX | USC00417215 | February 22 | December 1 | 281 days |
| Prade Rch, TX | USC00417232 | April 5 | November 2 | 212 days |
| Randolph Afb, TX | USW00012911 | February 21 | December 5 | 289 days |
| San Antonio Incarnate Word, TX | USC00417947 | February 25 | November 28 | 277 days |
| San Antonio INTL AP, TX | USW00012921 | February 26 | November 28 | 277 days |
| San Antonio Kelly Afb, TX | USW00012909 | February 22 | December 2 | 284 days |
| San Antonio Stinson AP, TX | USW00012970 | February 20 | December 3 | 291 days |
| San Antonio/Seaworld, TX | USC00418169 | February 18 | December 9 | 296 days |
| San Marcos, TX | USC00417983 | February 28 | November 29 | 273 days |
These are medians, not averages — NOAA publishes freeze dates as a probability distribution, and half of years freeze later than the date shown.
Every ZIP code in San Antonio-New Braunfels, TX
Zones are published per ZIP code, not per metro area, so this is the exact answer rather than the metro area's average. The station column is the nearest one to that ZIP code's centroid and how far away it is — the same figure the tools use, shown here so you can see which ZIP codes are well covered and which are reaching.
| ZIP code | USDA zone | Nearest NOAA station | Distance |
|---|---|---|---|
| 78002 | 9a | Lytle 3W, TX | 11.5 km |
| 78003 | 8b | Medina 1Ne, TX | 18.1 km |
| 78004 | 8b | Boerne, TX | 20.2 km |
| 78006 | 8b | Boerne, TX | 7.3 km |
| 78008 | 9a | Choke Canyon Dam, TX | 28.9 km |
| 78009 | 9a | Lytle 3W, TX | 15.3 km |
| 78011 | 9a | Charlotte 5 Nnw, TX | 12.9 km |
| 78012 | 9a | Pleasanton, TX | 21.1 km |
| 78013 | 8b | Kerrville 3 Nne, TX | 22.4 km |
| 78015 | 8b | Boerne, TX | 10.2 km |
| 78016 | 9a | Lytle 3W, TX | 12.1 km |
| 78023 | 8b | San Antonio/Seaworld, TX | 19.7 km |
| 78026 | 9a | Cross, TX | 16.6 km |
| 78027 | 8b | Blanco, TX | 16.8 km |
| 78039 | 9a | Lytle 3W, TX | 8.5 km |
| 78050 | 9a | Poteet, TX | 9.3 km |
| 78052 | 9a | Lytle 3W, TX | 7.2 km |
| 78055 | 8b | Medina 1Ne, TX | 8.2 km |
| 78056 | 9a | San Antonio/Seaworld, TX | 25.3 km |
| 78059 | 9a | Lytle 3W, TX | 5.2 km |
| 78062 | 9a | Choke Canyon Dam, TX | 31.7 km |
| 78063 | 8b | Boerne, TX | 20.9 km |
| 78064 | 9a | Pleasanton, TX | 6.2 km |
| 78065 | 9a | Poteet, TX | 9.2 km |
| 78066 | 9a | San Antonio/Seaworld, TX | 18.9 km |
| 78069 | 9a | Lytle 3W, TX | 17.5 km |
| 78070 | 8b | Canyon Dam, TX | 20.8 km |
| 78073 | 9a | San Antonio Kelly Afb, TX | 16.0 km |
| 78074 | 8b | Boerne, TX | 16.9 km |
| 78101 | 9a | Randolph Afb, TX | 21.4 km |
| 78108 | 9a | Randolph Afb, TX | 6.1 km |
| 78109 | 9a | Randolph Afb, TX | 7.6 km |
| 78112 | 9a | San Antonio Stinson AP, TX | 18.6 km |
| 78113 | 9a | Floresville, TX | 21.1 km |
| 78114 | 9a | Floresville, TX | 3.5 km |
| 78121 | 9a | Floresville, TX | 25.3 km |
| 78123 | 9a | Austin San Antonio, TX | 11.0 km |
| 78124 | 9a | New Braunfels, TX | 11.5 km |
| 78130 | 9a | New Braunfels Wfo, TX | 4.0 km |
| 78132 | 9a | New Braunfels, TX | 11.3 km |
| 78133 | 9a | Canyon Dam, TX | 6.0 km |
| 78143 | 9a | Nixon, TX | 8.6 km |
| 78147 | 9a | Floresville, TX | 10.4 km |
| 78148 | 9a | Randolph Afb, TX | 2.2 km |
| 78152 | 9a | Randolph Afb, TX | 14.4 km |
| 78154 | 9a | Randolph Afb, TX | 1.1 km |
| 78155 | 9a | Austin San Antonio, TX | 20.5 km |
| 78160 | 9a | Nixon, TX | 14.3 km |
| 78161 | 9a | Floresville, TX | 20.2 km |
| 78163 | 8b | San Antonio INTL AP, TX | 25.3 km |
| 78201 | 9a | San Antonio Incarnate Word, TX | 5.4 km |
| 78202 | 9a | San Antonio Incarnate Word, TX | 4.8 km |
| 78203 | 9a | San Antonio Incarnate Word, TX | 6.3 km |
| 78204 | 9a | San Antonio Kelly Afb, TX | 7.9 km |
| 78205 | 9a | San Antonio Incarnate Word, TX | 5.3 km |
| 78207 | 9a | San Antonio Kelly Afb, TX | 7.0 km |
| 78208 | 9a | San Antonio Incarnate Word, TX | 3.7 km |
| 78209 | 9a | San Antonio Incarnate Word, TX | 2.6 km |
| 78210 | 9a | San Antonio Stinson AP, TX | 6.4 km |
| 78211 | 9a | San Antonio Kelly Afb, TX | 4.7 km |
| 78212 | 9a | San Antonio Incarnate Word, TX | 2.1 km |
| 78213 | 9a | San Antonio INTL AP, TX | 4.9 km |
| 78214 | 9a | San Antonio Stinson AP, TX | 1.3 km |
| 78215 | 9a | San Antonio Incarnate Word, TX | 3.4 km |
| 78216 | 9a | San Antonio INTL AP, TX | 0.9 km |
| 78217 | 9a | San Antonio INTL AP, TX | 6.2 km |
| 78218 | 9a | San Antonio Incarnate Word, TX | 7.9 km |
| 78219 | 9a | San Antonio Incarnate Word, TX | 9.2 km |
| 78220 | 9a | San Antonio Incarnate Word, TX | 9.7 km |
| 78221 | 9a | San Antonio Stinson AP, TX | 4.6 km |
| 78222 | 9a | San Antonio Stinson AP, TX | 8.5 km |
| 78223 | 9a | San Antonio Stinson AP, TX | 8.8 km |
| 78224 | 9a | San Antonio Stinson AP, TX | 7.9 km |
| 78225 | 9a | San Antonio Kelly Afb, TX | 5.6 km |
| 78226 | 9a | San Antonio Kelly Afb, TX | 1.3 km |
| 78227 | 9a | San Antonio Kelly Afb, TX | 5.5 km |
| 78228 | 9a | San Antonio Kelly Afb, TX | 8.7 km |
| 78229 | 9a | San Antonio INTL AP, TX | 10.0 km |
| 78230 | 9a | San Antonio INTL AP, TX | 7.1 km |
| 78231 | 9a | San Antonio INTL AP, TX | 7.0 km |
| 78232 | 9a | San Antonio INTL AP, TX | 5.2 km |
| 78233 | 9a | Randolph Afb, TX | 8.8 km |
| 78234 | 9a | San Antonio Incarnate Word, TX | 3.5 km |
| 78235 | 9a | San Antonio Stinson AP, TX | 3.2 km |
| 78236 | 9a | San Antonio Kelly Afb, TX | 3.8 km |
| 78237 | 9a | San Antonio Kelly Afb, TX | 4.5 km |
| 78238 | 9a | San Antonio/Seaworld, TX | 8.6 km |
| 78239 | 9a | Randolph Afb, TX | 9.1 km |
| 78240 | 9a | San Antonio INTL AP, TX | 11.8 km |
| 78242 | 9a | San Antonio Kelly Afb, TX | 4.3 km |
| 78243 | 9a | San Antonio Kelly Afb, TX | 1.7 km |
| 78244 | 9a | Randolph Afb, TX | 10.5 km |
| 78245 | 9a | San Antonio/Seaworld, TX | 7.4 km |
| 78247 | 9a | San Antonio INTL AP, TX | 8.4 km |
| 78248 | 9a | San Antonio INTL AP, TX | 6.5 km |
| 78249 | 9a | San Antonio INTL AP, TX | 13.0 km |
| 78250 | 9a | San Antonio/Seaworld, TX | 6.8 km |
| 78251 | 9a | San Antonio/Seaworld, TX | 2.8 km |
| 78252 | 9a | San Antonio Kelly Afb, TX | 11.7 km |
| 78253 | 9a | San Antonio/Seaworld, TX | 8.5 km |
| 78254 | 9a | San Antonio/Seaworld, TX | 9.2 km |
| 78255 | 8b | Boerne, TX | 17.9 km |
| 78256 | 9a | San Antonio INTL AP, TX | 16.3 km |
| 78257 | 9a | San Antonio INTL AP, TX | 14.8 km |
| 78258 | 9a | San Antonio INTL AP, TX | 10.0 km |
| 78259 | 9a | San Antonio INTL AP, TX | 10.8 km |
| 78260 | 8b | San Antonio INTL AP, TX | 17.2 km |
| 78261 | 9a | San Antonio INTL AP, TX | 18.0 km |
| 78263 | 9a | San Antonio Stinson AP, TX | 15.5 km |
| 78264 | 9a | San Antonio Stinson AP, TX | 15.7 km |
| 78266 | 9a | Randolph Afb, TX | 13.4 km |
| 78623 | 9a | Canyon Dam, TX | 10.7 km |
| 78638 | 9a | Luling, TX | 12.4 km |
| 78670 | 9a | San Marcos, TX | 16.4 km |
| 78850 | 9a | Hondo Muni AP, TX | 17.2 km |
| 78861 | 9a | Hondo Muni AP, TX | 6.3 km |
| 78883 | 8b | Medina 1Ne, TX | 16.5 km |
| 78884 | 8b | Medina 1Ne, TX | 31.4 km |
| 78885 | 8a | Prade Rch, TX | 24.2 km |
| 78886 | 9a | Hondo, TX | 20.7 km |
ZIP-code positions are area centroids, so a large rural ZIP code's listed distance is measured from the middle of its area rather than from any particular address in it.
Your own ZIP
Work out your own dates
Each of these takes a ZIP code and answers for that ZIP alone, citing the station it used and how far away it is. There is a ZIP box in the header of every page.
-
What survives my winter?
Runs on the hardiness zone, so it answers for all of San Antonio-New Braunfels, TX at once — zone across 74 perennial fruits, berries, vegetables and herbs.
- When do I start my seeds?
Dates every spring job from your own last freeze — sow indoors, set out, direct sow.
- When do I sow the next round?
How often each crop is worth re-sowing, and when the next sowing is due.
- What can I still plant?
Counts the growing days left before your first fall freeze, crop by crop.
Other places to compare
Gardening in Texas — zones 6b– 10b covers the whole state: how its 1,979 ZIP codes divide between 9 hardiness zones, and the freeze dates across every NOAA station in it.
Other metro areas in TX:
- Austin-Round Rock-San Marcos, TX Zones 8b–9a
- Lubbock, TX Zones 7b–8a
- Corpus Christi, TX Zones 9b–10a
- Longview, TX Zone 8b
- Waco, TX Zones 8b–9a
- El Paso, TX Zones 8a–8b
- Beaumont-Port Arthur, TX Zones 9a–9b
- Killeen-Temple, TX Zones 8b–9a
- McAllen-Edinburg-Mission, TX Zones 9b–10a
- Amarillo, TX Zone 7a
- Abilene, TX Zone 8a
- College Station-Bryan, TX Zones 8b–9a
Gear
If you want to act on this
Each link opens an Amazon search rather than a product we picked. We have not tested these and do not rank them — the search is the honest version, and you choose.
- Shade clothSummer highs here average 95 °F, at or above the 90 °F point where lettuce and spinach bolt and tomato pollen fails.
- Row cover and frost clothThe season here closes at the first fall freeze dated above — a cover buys back some of those days at the end.
- MulchFor the perennials nearest their cold limit in zone 8a, where an insulated crown is what decides whether they come back.
As an Amazon Associate we earn from qualifying purchases. That costs you nothing extra, and it buys no influence over anything on this site: the dates come from NOAA normals and the zones from the USDA, and no product affects either.
Sources
Where these numbers come from
The hardiness zone is the USDA 2023 Plant Hardiness Zone Map, published per ZIP code by PRISM at Oregon State. The freeze dates are NOAA's 1991–2020 Climate Normals, read from every station whose normals cover a ZIP code in this metro. Nothing here is estimated, and no station stands in for another.
This page names no single station on purpose. Picking one to represent a metro sounds reasonable and is not: the station serving the most ZIP codes is an artifact of where ZIP centroids happen to fall, and it selects a lock on the Monongahela for Pittsburgh and a far southern suburb for Chicago. A range across every station is true; a single cited date for a whole metro is not.