{"zip":"78247","city":"San Antonio","state":"TX","county":"Bexar County","countySlug":"bexar-county-tx","metro":"San Antonio-New Braunfels, TX","metroSlug":"san-antonio-tx","citySlug":"san-antonio-tx","rentPeriod":"2026-06","acsPeriod":"ACS 2024 5-year","directRent":1487,"rentYoy":-0.0128,"bedroomEstimates":[1124,1224,1487,1904,2221],"hudFmr":[1240,1350,1640,2100,2450],"ladderSource":"safmr","population":51933,"populationMoe":2382,"medianIncome":91013,"medianIncomeMoe":5957,"medianGrossRent":1563,"medianGrossRentMoe":86,"housingUnits":20359,"occupiedUnits":19615,"vacantUnits":744,"renterOccupied":4497,"rentBurdenTotal":4497,"rentBurden30Plus":2218,"vacantForRent":334,"vacantForSale":68,"vacantSeasonal":48,"structureTotal":20359,"singleFamilyUnits":17531,"largeMultifamilyUnits":953,"vacancyRate":0.03654403457930154,"renterShare":0.22926331888860565,"rentBurdenShare":0.49321770068934845,"requiredIncome":59480,"askingRentToIncome":0.1960599035302649,"askingVsAcsRent":0.9513755598208573,"askingVsHud2br":0.9067073170731708,"cityRent":1381.6424039371357,"countyRent":1389,"metroRent":1416,"cityGrossRent":1324,"countyGrossRent":1354,"countyListings":9069,"countyListingDom":57,"countyPriceReducedShare":0.2741,"countyListingPeriod":"2026-06","metroMonthsSupply":5.4,"metroMedianDom":72,"metroPriceDrops":0.3804,"metroResalePeriod":"2026-05-01","apartmentVacancy":0.089082261488219,"apartmentTimeOnMarket":37.3,"zipResalePeriodBegin":"2026-04-01","zipResalePeriodEnd":"2026-06-30","zipResaleUpdated":"2026-07-03","zipHomesSold":153,"zipSalePrice":289934,"zipSalePriceYoy":-0.0525,"zipMedianDom":42,"zipActiveListings":406,"zipActiveListingsYoy":-0.1277,"zipInventory":206,"zipInventoryYoy":-0.1141,"zipPendingSales":177,"zipMonthsSupply":4.1,"zipSaleToList":0.9804,"zipSoldAboveList":0.1747,"zipOffMarketTwoWeeks":0.3329,"generatedAt":"2026-09-01 10:01:22.480915+00","summaryHtml":"<p>ZIP 78247 is both a Zillow ZIP market identifier and a matched Census ZCTA. A ZCTA is a statistical area used for Census reporting, not an area identical to a USPS delivery ZIP. In June 2026, Zillow’s typical observed asking-rent index, which blends rental types, was $1,487. That index was down 1.3% on the same month a year earlier. The backward-looking path breaks from its longer rise: the same-month change was negative over 1 year and 3 years at 1.8% annually, yet positive over 5 years at 2.0% annually. Annualized monthly-return variability was 2.1%, so one current reading should not be treated as a fixed market level. The historical decline from a prior high reached 5.4%, reinforcing the cooling classification rather than providing a forecast. Coverage was 100%; transparent national discovery ranks placed momentum at 2,737 and stability at 228, with lower ranks representing stronger placement.</p><p>The current asking-rent index should not be merged with ACS rent evidence. The ACS 2024 five-year ZCTA survey reports a $1,563 median gross rent for occupied renter homes, and gross rent includes selected utilities; Zillow’s asking-rent index was therefore 95.1% of that survey median. Neither figure is a lease quote for a particular home, and their difference can reflect timing, tenant occupancy, utilities, and source design. For wider context only, the San Antonio city rent context was $1,382, the Bexar County rent context was $1,389, and the San Antonio-New Braunfels metro rent context was $1,416. Those city, county, and metro values are not substitutes for ZIP-level rent evidence.</p><p>The bedroom ladder is a modelling device, not a set of measured bedroom rents. It scales the ZIP Zillow asking-rent index by the local HUD ladder to produce modelled monthly estimates of $1,124 for a studio, $1,224 for a one-bedroom, $1,487 for a two-bedroom, $1,904 for a three-bedroom, and $2,221 for a four-bedroom. HUD’s FY2026 ladder runs from $1,240 for a studio to $2,450 for a four-bedroom. HUD FMR or SAFMR is an administrative bedroom-specific standard, not asking rent, so the ladder helps maintain local bedroom spacing but does not establish what a particular available unit is being marketed for.</p><p>The income screen is arithmetic rather than advice, an applicant qualification rule, or a claim about household finances. Applying a 30% rent-to-income calculation to the ZIP asking-rent index produces required annual income of $59,480. That is below the ZCTA’s $91,013 median household income, and the index equals 19.6% of that median when annualized. Yet ACS burden evidence introduces a separate household-level tension: 2,218 of 4,497 occupied renter households, or 49.3%, reported spending at least 30% of income on gross rent. Because ACS estimates are survey measures with stated uncertainty, the burden share describes the renter population rather than proving that any specific available property is affordable or unaffordable.</p><p>Housing composition offers another boundary on interpretation. The matched ZCTA contained 20,359 housing units, with renter-occupied homes representing 22.9% of occupied units. Its reported vacancy rate was 3.7%, materially narrower than the wider city and county context rates supplied in the packet, while 334 units were classified as vacant for rent. The stock was predominantly single-family rather than large multifamily. These counts and shares describe Census housing stock, not real-time availability, lease concessions, property condition, or the number of comparable homes competing for a tenant at a given moment. A vacant-for-rent classification also cannot establish vacancy at a particular address.</p><p>Direct resale evidence shows a distinct for-sale market rather than rental transactions. In Redfin’s rolling ZIP resale observation, the median sold price was $289,934, down 5.3% year over year. There were 153 homes sold, median marketing time was 42 days, and inventory stood at 206 homes with 4.1 months of supply. Sale-to-list conditions were below full list price on average at 98.0%; 17.5% of sales closed above list, while 33.3% of listings went off market within two weeks. These measures describe resale liquidity and pricing signals only. Annualized ZIP Zillow asking rent divided by median sold price produces a 6.2% cross-source screening ratio, not a cap rate, net return, expected return, property yield, or measure of property economics.</p><p>The main decision tension is that asking rents have cooled only modestly over the latest year while ZIP resale prices fell more sharply, even as the longer five-year rent history remains positive. The resale picture therefore challenges any simple reading that a historical rent gain alone characterizes current market conditions. Conversely, the ZIP asking-rent index sits below ACS median gross rent and the arithmetic income screen is below the area median household income, but the substantial ACS gross-rent burden share prevents those aggregate comparisons from being treated as household outcomes. The relatively strong stability rank supports confidence that the historical series is consistently observed; it does not convert past rent movement into a prediction or investment conclusion.</p><p>Several limits remain material. Zillow ZORI is a blended asking-rent index rather than a unit-level rent roll, ACS is a five-year survey of occupied homes rather than current listings, HUD is an administrative standard, and Redfin is direct ZIP resale evidence rather than rental evidence. Property-level review should verify the advertised rent, lease term, included and excluded utilities, bedroom count, unit type, concessions, move-in charges, condition, occupancy status, and whether the address is actually within the relevant ZIP and ZCTA match. It should also compare the specific property’s list and sale history separately from rental evidence. Does the individual unit’s documented lease package support the broad ZIP screens without assuming that any aggregate measure applies directly to it?</p>","findings":[{"body":"The ZIP asking-rent index is currently below its prior-year level, and the same-month three-year measure is also negative. That recent direction breaks from the positive five-year record. The complete history coverage and strong stability discovery placement improve confidence that the series was consistently observed, but measured variability and drawdown still argue against relying on one monthly index reading as a permanent level.","title":"Cooling rent path with stable series coverage"},{"body":"Studio through four-bedroom figures are modelled estimates created by scaling the ZIP Zillow asking-rent index with the local HUD bedroom ladder. They are useful for preserving the relative spacing implied by that administrative ladder, but they are not observed asking rents by bedroom count. Actual advertised rents can differ because the source does not identify a specific unit’s features, utilities, lease terms, or condition.","title":"Bedroom figures are scaled estimates"},{"body":"The arithmetic income threshold associated with the ZIP asking-rent index is below the ZCTA median household income, which can make the broad index appear manageable relative to the area median. ACS renter evidence points in a different direction: nearly half of occupied renter households report gross-rent burdens at or above the threshold. That burden statistic is population context, not proof about any household or listing.","title":"Aggregate affordability indicators conflict"},{"body":"Redfin’s direct ZIP resale data show a year-over-year decline in median sold price alongside measurable inventory, marketing time, and below-list average sale-to-list results. Those signals belong exclusively to the for-sale market. They create tension with the longer positive rent history and prevent the annualized-rent-to-price calculation from being interpreted as property income, investment performance, or a forecast.","title":"Resale softness complicates the rent screen"}],"risks":["Zillow ZORI is a blended ZIP asking-rent index across rental types, so it may not match a particular unit’s advertised price, utility treatment, bedroom count, lease duration, concessions, or condition.","ACS ZCTA estimates summarize occupied renter households over a five-year survey period and include selected utilities in gross rent. They cannot establish current availability, tenant income, or burden for a specific address.","HUD bedroom standards are administrative benchmarks rather than observed asking rents. The modelled bedroom ladder should not be substituted for direct listing research or treated as proof of market rent by unit size.","Redfin resale statistics describe ZIP for-sale transactions and listing conditions, not rental transactions. The rent-to-price screen combines separate sources and should not be treated as a cap rate, yield, net return, or valuation conclusion."],"qa":[{"a":"The measures cover different universes. Zillow ZORI is a typical observed asking-rent index that blends rental types and reflects current market asking-rent conditions. ACS median gross rent is a five-year survey measure for occupied renter homes and includes selected utilities. Timing, tenant occupancy, utility inclusion, and survey design can all create differences without showing an error.","q":"Why does the current asking-rent index differ from ACS median gross rent?"},{"a":"No. The studio through four-bedroom figures are modelled monthly ZIP estimates. They begin with the ZIP Zillow asking-rent index and apply proportions from the local HUD ladder. Because HUD is an administrative bedroom-specific standard rather than asking-rent evidence, the resulting figures are structured estimates and require listing-level verification before use for a particular property.","q":"Are the bedroom estimates direct observed rents?"},{"a":"It reports the share of ACS-surveyed occupied renter households whose gross rent consumed at least the stated share of household income. It provides population-level context that may differ from a comparison between area median income and a current asking-rent index. It does not determine whether a particular renter qualifies, whether a unit is affordable, or whether utilities and concessions are comparable.","q":"What does the burden statistic say about affordability?"},{"a":"Use the direct ZIP resale observations to understand the for-sale market’s recent price, inventory, marketing-time, supply, and sale-to-list conditions. Keep those observations separate from rental-market evidence. The annualized asking-rent-to-sold-price calculation is only a cross-source screen; it excludes operating costs, financing, taxes, repairs, vacancy experience, and property-specific characteristics.","q":"How should the resale data be used alongside rent data?"}],"sources":[{"key":"apartment_list_time_on_market","name":"Apartment List Time on Market — listing liquidity","release":"Apartment List 2026-07","pulledAt":"2026-08-08","url":"https://www.apartmentlist.com/research/category/data-rent-estimates"},{"key":"apartment_list_vacancy","name":"Apartment List Vacancy Index — rental vacancy","release":"Apartment List 2026-07","pulledAt":"2026-08-08","url":"https://www.apartmentlist.com/research/apartment-list-vacancy-index-methodology"},{"key":"census_zcta_facts","name":"Census ACS five-year — ZCTA housing and income","release":"ACS 2024 5-year ZCTA","pulledAt":"2026-08-08","url":"https://api.census.gov/data/2024/acs/acs5.html"},{"key":"hud_zip","name":"HUD USPS crosswalk and Small Area FMRs — ZIP rent fallback","release":"ZIP-CBSA 2025Q4 + SAFMR FY2026","pulledAt":"2026-07-26","url":"https://www.huduser.gov/portal/datasets/usps_crosswalk.html"},{"key":"realtor_county","name":"Realtor.com Economic Research — county listing inventory","release":"county inventory 2026-06","pulledAt":"2026-07-28","url":"https://www.realtor.com/research/data/"},{"key":"redfin","name":"Redfin Data Center — inventory, days on market, and price cuts","release":"metro tracker through 2026-05-01","pulledAt":"2026-07-26","url":"https://www.redfin.com/news/data-center/"},{"key":"redfin_zip","name":"Redfin Data Center — ZIP resale activity and supply","release":"ZIP rolling 3 months through 2026-06-30; updated 2026-07-03","pulledAt":"2026-08-12","url":"https://www.redfin.com/news/data-center/"},{"key":"zillow_county","name":"Zillow ZHVI and ZORI — county values and rents","release":"county ZHVI/ZORI 2026-06","pulledAt":"2026-07-26","url":"https://www.zillow.com/research/data/"},{"key":"zillow_zori","name":"Zillow ZORI — metro market rents","release":"Metro_zori_uc_sfrcondomfr_sm_sa_month.csv","pulledAt":"2026-07-26","url":"https://www.zillow.com/research/data/"},{"key":"zillow_zori_city","name":"Zillow ZORI — city market rents","release":"zillow_zori_city.csv","pulledAt":"2026-07-29","url":"https://www.zillow.com/research/data/"},{"key":"zillow_zori_zip","name":"Zillow ZORI — ZIP market rents","release":"ZORI ZIP 2026-06","pulledAt":"2026-08-08","url":"https://www.zillow.com/research/data/"}],"history":[{"period":"2015-01-01","rent":1074.228982},{"period":"2015-02-01","rent":1078.788105},{"period":"2015-03-01","rent":1081.898334},{"period":"2015-04-01","rent":1088.95699},{"period":"2015-05-01","rent":1097.813536},{"period":"2015-06-01","rent":1098.883133},{"period":"2015-07-01","rent":1102.019858},{"period":"2015-08-01","rent":1100.966854},{"period":"2015-09-01","rent":1108.814546},{"period":"2015-10-01","rent":1113.99723},{"period":"2015-11-01","rent":1119.572921},{"period":"2015-12-01","rent":1114.559565},{"period":"2016-01-01","rent":1116.770055},{"period":"2016-02-01","rent":1123.620492},{"period":"2016-03-01","rent":1126.829705},{"period":"2016-04-01","rent":1131.624026},{"period":"2016-05-01","rent":1129.348396},{"period":"2016-06-01","rent":1135.127742},{"period":"2016-07-01","rent":1133.645336},{"period":"2016-08-01","rent":1135.037018},{"period":"2016-09-01","rent":1142.30422},{"period":"2016-10-01","rent":1158.32269},{"period":"2016-11-01","rent":1169.446228},{"period":"2016-12-01","rent":1172.331155},{"period":"2017-01-01","rent":1173.936495},{"period":"2017-02-01","rent":1167.26067},{"period":"2017-03-01","rent":1169.306846},{"period":"2017-04-01","rent":1163.241263},{"period":"2017-05-01","rent":1170.673653},{"period":"2017-06-01","rent":1175.030984},{"period":"2017-07-01","rent":1185.952741},{"period":"2017-08-01","rent":1187.154159},{"period":"2017-09-01","rent":1180.830276},{"period":"2017-10-01","rent":1173.962095},{"period":"2017-11-01","rent":1179.233765},{"period":"2017-12-01","rent":1189.225037},{"period":"2018-01-01","rent":1190.798505},{"period":"2018-02-01","rent":1195.473058},{"period":"2018-03-01","rent":1197.882073},{"period":"2018-04-01","rent":1196.791876},{"period":"2018-05-01","rent":1194.201369},{"period":"2018-06-01","rent":1194.372059},{"period":"2018-07-01","rent":1200.238552},{"period":"2018-08-01","rent":1211.85733},{"period":"2018-09-01","rent":1227.780512},{"period":"2018-10-01","rent":1232.880818},{"period":"2018-11-01","rent":1227.384623},{"period":"2018-12-01","rent":1216.313284},{"period":"2019-01-01","rent":1214.966635},{"period":"2019-02-01","rent":1227.822941},{"period":"2019-03-01","rent":1231.119146},{"period":"2019-04-01","rent":1240.50729},{"period":"2019-05-01","rent":1245.693294},{"period":"2019-06-01","rent":1248.702759},{"period":"2019-07-01","rent":1245.261334},{"period":"2019-08-01","rent":1241.53599},{"period":"2019-09-01","rent":1236.644873},{"period":"2019-10-01","rent":1238.650074},{"period":"2019-11-01","rent":1243.679769},{"period":"2019-12-01","rent":1252.574222},{"period":"2020-01-01","rent":1258.037486},{"period":"2020-02-01","rent":1252.248729},{"period":"2020-03-01","rent":1254.292995},{"period":"2020-04-01","rent":1259.589562},{"period":"2020-05-01","rent":1273.3062},{"period":"2020-06-01","rent":1282.782446},{"period":"2020-07-01","rent":1278.177884},{"period":"2020-08-01","rent":1275.495779},{"period":"2020-09-01","rent":1278.015719},{"period":"2020-10-01","rent":1285.942865},{"period":"2020-11-01","rent":1292.75842},{"period":"2020-12-01","rent":1304.737144},{"period":"2021-01-01","rent":1303.70679},{"period":"2021-02-01","rent":1311.106204},{"period":"2021-03-01","rent":1312.59258},{"period":"2021-04-01","rent":1329.103009},{"period":"2021-05-01","rent":1333.836605},{"period":"2021-06-01","rent":1346.451959},{"period":"2021-07-01","rent":1358.300456},{"period":"2021-08-01","rent":1378.668952},{"period":"2021-09-01","rent":1390.270264},{"period":"2021-10-01","rent":1405.159563},{"period":"2021-11-01","rent":1427.04064},{"period":"2021-12-01","rent":1434.325199},{"period":"2022-01-01","rent":1462.374415},{"period":"2022-02-01","rent":1475.054206},{"period":"2022-03-01","rent":1498.069926},{"period":"2022-04-01","rent":1482.922086},{"period":"2022-05-01","rent":1489.436182},{"period":"2022-06-01","rent":1490.568803},{"period":"2022-07-01","rent":1514.028101},{"period":"2022-08-01","rent":1523.183986},{"period":"2022-09-01","rent":1534.664235},{"period":"2022-10-01","rent":1543.338631},{"period":"2022-11-01","rent":1538.910409},{"period":"2022-12-01","rent":1542.101747},{"period":"2023-01-01","rent":1523.77352},{"period":"2023-02-01","rent":1527.510926},{"period":"2023-03-01","rent":1531.265876},{"period":"2023-04-01","rent":1563.755457},{"period":"2023-05-01","rent":1571.120681},{"period":"2023-06-01","rent":1572.014252},{"period":"2023-07-01","rent":1549.202864},{"period":"2023-08-01","rent":1544.524104},{"period":"2023-09-01","rent":1540.868278},{"period":"2023-10-01","rent":1538.945638},{"period":"2023-11-01","rent":1535.807704},{"period":"2023-12-01","rent":1532.413354},{"period":"2024-01-01","rent":1545.726189},{"period":"2024-02-01","rent":1549.836403},{"period":"2024-03-01","rent":1555.773132},{"period":"2024-04-01","rent":1540.270312},{"period":"2024-05-01","rent":1537.540699},{"period":"2024-06-01","rent":1542.22062},{"period":"2024-07-01","rent":1552.348017},{"period":"2024-08-01","rent":1544.190361},{"period":"2024-09-01","rent":1540.510105},{"period":"2024-10-01","rent":1536.100374},{"period":"2024-11-01","rent":1546.946969},{"period":"2024-12-01","rent":1534.231039},{"period":"2025-01-01","rent":1528.438493},{"period":"2025-02-01","rent":1519.757198},{"period":"2025-03-01","rent":1520.561589},{"period":"2025-04-01","rent":1513.74856},{"period":"2025-05-01","rent":1514.183452},{"period":"2025-06-01","rent":1505.9537},{"period":"2025-07-01","rent":1502.181189},{"period":"2025-08-01","rent":1505.826777},{"period":"2025-09-01","rent":1505.19715},{"period":"2025-10-01","rent":1504.371487},{"period":"2025-11-01","rent":1494.738953},{"period":"2025-12-01","rent":1501.088282},{"period":"2026-01-01","rent":1498.04445},{"period":"2026-02-01","rent":1497.65568},{"period":"2026-03-01","rent":1489.149941},{"period":"2026-04-01","rent":1491.514869},{"period":"2026-05-01","rent":1486.915387},{"period":"2026-06-01","rent":1486.685931}],"historySummary":{"pointCount":138,"firstPeriod":"2015-01-01","latestPeriod":"2026-06-01","coverageMonths":138,"coverageRatio":1,"changes":{"1":{"years":1,"startPeriod":"2025-06-01","endPeriod":"2026-06-01","startRent":1505.9537,"endRent":1486.685931,"change":-0.012794396667042296,"cagr":-0.012794396667042296},"3":{"years":3,"startPeriod":"2023-06-01","endPeriod":"2026-06-01","startRent":1572.014252,"endRent":1486.685931,"change":-0.05427961030979256,"cagr":-0.018430811291166527},"5":{"years":5,"startPeriod":"2021-06-01","endPeriod":"2026-06-01","startRent":1346.451959,"endRent":1486.685931,"change":0.10415074304184668,"cagr":0.020012922393165322}},"maxDrawdown":-0.05427961030979256,"annualizedVolatility":0.021364322393079532,"consecutiveReturnCount":137}}