{"zip":"80229","city":"Thornton","state":"CO","county":"Adams County","countySlug":"adams-county-co","metro":"Denver-Aurora-Lakewood, CO","metroSlug":"denver-co","citySlug":"thornton-co","rentPeriod":"2026-06","acsPeriod":"ACS 2024 5-year","directRent":1697,"rentYoy":-0.0103,"bedroomEstimates":[1335,1425,1697,2221,2477],"hudFmr":[1643,1754,2089,2734,3049],"ladderSource":"county","population":55092,"populationMoe":2212,"medianIncome":84203,"medianIncomeMoe":5210,"medianGrossRent":1769,"medianGrossRentMoe":51,"housingUnits":20134,"occupiedUnits":19434,"vacantUnits":700,"renterOccupied":6670,"rentBurdenTotal":6670,"rentBurden30Plus":3718,"vacantForRent":197,"vacantForSale":101,"vacantSeasonal":0,"structureTotal":20134,"singleFamilyUnits":12865,"largeMultifamilyUnits":1711,"vacancyRate":0.03476706069335452,"renterShare":0.34321292580014406,"rentBurdenShare":0.5574212893553223,"requiredIncome":67880,"askingRentToIncome":0.24184411481776183,"askingVsAcsRent":0.9592990390050876,"askingVsHud2br":0.8123504068932503,"cityRent":1909.9450536062377,"countyRent":1856,"metroRent":1930,"cityGrossRent":1895,"countyGrossRent":1781,"countyListings":1755,"countyListingDom":46,"countyPriceReducedShare":0.2829,"countyListingPeriod":"2026-06","metroMonthsSupply":2.9,"metroMedianDom":21,"metroPriceDrops":0.4178,"metroResalePeriod":"2026-05-01","apartmentVacancy":0.0828854486172294,"apartmentTimeOnMarket":32.7,"zipResalePeriodBegin":"2026-04-01","zipResalePeriodEnd":"2026-06-30","zipResaleUpdated":"2026-07-03","zipHomesSold":136,"zipSalePrice":424904,"zipSalePriceYoy":0.0239,"zipMedianDom":19,"zipActiveListings":293,"zipActiveListingsYoy":-0.0519,"zipInventory":145,"zipInventoryYoy":0.001,"zipPendingSales":141,"zipMonthsSupply":3.2,"zipSaleToList":0.999,"zipSoldAboveList":0.2502,"zipOffMarketTwoWeeks":0.4725,"generatedAt":"2026-08-12 17:55:38.023396+00","summaryHtml":"<p>Rent and resale are moving in different directions in this ZIP. At the June 2026 Zillow reading, the typical observed asking-rent index blended across rental types is $1,697 per month, down 1.0% from the same month a year earlier. Redfin’s direct rolling three-month ZIP resale observation reports a $424,904 median sold price, 2.4% higher year over year. This is the central tension: the measures concern distinct rental and for-sale universes, so their divergence does not establish causation, a forecast, or a reason to use a rent change as a proxy for resale conditions.</p><p>The five-digit label 80229 is both Zillow’s ZIP market identifier and the match for the Census ZCTA used here. A ZCTA is a statistical area and is not identical to a USPS delivery ZIP, a difference that matters when datasets are matched. The ACS 2024 five-year survey puts median gross rent at $1,769 for occupied renter homes; gross rent includes selected utilities. That is 4.1% above current ZORI, but it is not a current asking-rent series. HUD’s FY2026 FMR/SAFMR is a separate administrative, bedroom-specific standard rather than an asking-rent observation.</p><p>The bedroom view is a scaling exercise, not a set of bedroom rent observations. The local HUD ladder supplies the proportional structure. Scaling ZIP ZORI by the local HUD ladder produces modelled monthly ZIP estimates of $1,335 for a studio, $1,425 for one bedroom, the ZIP index for two bedrooms, $2,221 for three bedrooms, and $2,477 for four bedrooms. Those are modelled estimates, never measured bedroom rents; neither they nor HUD FMR/SAFMR should be substituted for a particular landlord’s advertised rent.</p><p>Backward-looking history confirms cooling in the short intervals but breaks from the longer path. Exact same-month ZORI changes through the Zillow endpoint were −1.0% over one year, −1.0% annualized over three years, and +2.3% annualized over five years. Annualized monthly-return variability was 2.5%, maximum drawdown was −7.0%, and coverage was 100%. The transparent national discovery ranks among history-eligible ZIPs were 2,667 for momentum, 671 for stability, and 2,142 for balanced history, with a lower rank being higher. The negative short and medium intervals contrast with the five-year gain; this is a backward-looking measurement, not a forecast or investment recommendation. The documented variability and drawdown support confidence that the history is complete, while limiting confidence that one current rent snapshot defines a durable direction.</p><p>The 30% required-income screen is arithmetic rather than advice or an applicant qualification rule. At the current monthly index, the annual income required by that screen is $67,880. Against the ZCTA median household income of $84,203, annualized asking rent equals 24.2% of income, placing the aggregate screen 5.8 percentage points below its boundary. The ACS burden distribution gives a different comparison: 55.7% of occupied renter households paid at least 30% of income toward gross rent. The lower current asking-rent screen therefore does not negate the burden result, because the survey concerns occupied renters over five years and gross rent, while ZORI is a current typical asking-rent index. Neither result proves affordability, burden, or utility expense for a specific available unit.</p><p>Household composition and stock also come from the matched ACS ZCTA, not a live availability feed. It counted 20,134 housing units, a 3.5% vacancy rate, and a 34.3% renter share. The stock included 12,865 single-family units and 1,711 units in large multifamily structures. These measures neither confirm that a particular home is empty nor establish its lease terms. For wider context only, Thornton city context’s asking rent is $1,910, Adams County context’s asking rent is $1,856, and Denver-Aurora-Lakewood, CO metro context’s asking rent is $1,930. Those city, county, and metro figures are broader-geography context, not ZIP rental comparables.</p><p>Redfin’s direct rolling three-month ZIP resale observation covers for-sale activity, not rental transactions. It recorded 136 homes sold, a median marketing time of 19 days, 145 homes of inventory, and 3.2 months of supply. Its sale-to-list signals were a 99.9% average sale-to-list ratio and a 25.0% sold-above-list share. The annualized ZIP ZORI divided by the median sold price is a 4.8% cross-source screening ratio only; it is not a cap rate, net return, expected return, or property yield. Higher ZIP resale price alongside the falling asking-rent index challenges a simple reading that rent cooling and resale conditions must move together. It also cannot convert sales liquidity into evidence about actual rental demand or a particular property’s economics.</p><p>Timing and scope are material limits: Zillow’s June reading, the Redfin resale endpoint, the ACS five-year survey, and HUD’s fiscal-year standards do not observe the same households, units, or contract terms. Decision-relevant property-level checks are the live advertised rent, any concessions and fees, bedroom count, lease term, included utilities, property type, current availability, and the actual sale or listing record. The ZIP index and modelled ladder cannot establish any of those unit facts. Does the specific property’s live listing and lease information align with the ZIP-level rental and resale screens?</p>","findings":[{"body":"Zillow shows current ZIP ZORI at $1,697, down 1.0% from the same month a year earlier, while Redfin reports a $424,904 ZIP median sold price, up 2.4%. The evidence is a tension, not proof that one market caused the other. Zillow addresses asking rent; Redfin records a rolling three-month for-sale/resale observation.","title":"Rent cooling and resale appreciation diverge"},{"body":"The 30% income screen calculates $67,880 required annual income for the current ZIP index, below the ZCTA median household income of $84,203. Yet 55.7% of ACS occupied renter households paid at least 30% toward gross rent. The apparent conflict reflects different populations, periods, and utility treatment; it is not a household-level affordability finding.","title":"Income screen and renter burden are different tests"},{"body":"Matched ACS ZCTA data show a 3.5% vacancy rate and a housing stock led in count by 12,865 single-family units versus 1,711 large multifamily units. Those are survey aggregates, not a leasing inventory. The ZIP’s $1,697 asking-rent index is below the broader Thornton city, Adams County, and Denver-Aurora-Lakewood metro context rents.","title":"Housing aggregates are not current leasing inventory"},{"body":"Bedroom figures from $1,335 for a studio to $2,477 for four bedrooms are modelled by scaling ZIP ZORI with the local HUD ladder. They are not observed rents. The 4.8% annualized-rent-to-median-sale-price figure likewise is a cross-source screen only, not a cap rate, net return, expected return, or property yield.","title":"Bedroom and resale ratios require strict scope control"}],"risks":["Survey precision and matching risk: ACS is a 2024 five-year ZCTA survey, while current rent is a Zillow ZIP index. A ZCTA is statistical and not the same as a USPS delivery ZIP, so geographic and timing differences can matter.","The history has complete reported coverage but includes a 7.0% maximum drawdown. Recent same-month declines could persist, reverse, or fluctuate; the series documents past observations only and cannot establish a future rent path.","Vacancy, renter share, and rent-burden figures are aggregates rather than unit records. They cannot verify whether a particular property is available, vacant, utility-inclusive, leased at the index level, or occupied by a burdened household.","Redfin’s sale information records direct ZIP resale conditions, not rental transactions. The rent-price screen lacks property-specific contract and operating information, so it cannot establish a cap rate, cash flow, property economics, or expected performance."],"qa":[{"a":"The ACS figure is the 2024 five-year median gross rent among occupied renter homes in the matched ZCTA and includes selected utilities. ZORI is a June ZIP-level typical observed asking-rent index blended across rental types. They sample different conditions and timing, so the figures should be compared for context, not treated as interchangeable rents.","q":"Why is the ACS rent not the same as current ZORI?"},{"a":"No. The studio through four-bedroom amounts are modelled monthly ZIP estimates derived by scaling the overall ZIP ZORI with the local HUD FMR/SAFMR bedroom ladder. HUD is an administrative bedroom-specific standard rather than asking-rent data, and the estimates do not measure an actual advertised bedroom rent or lease.","q":"Are the bedroom amounts observed ZIP rents?"},{"a":"It establishes only arithmetic: annualized current ZIP asking rent is 24.2% of the published ZCTA median household income, which lies below the 30% comparison boundary. It does not advise an applicant, define a qualification rule, or overcome the separate ACS result that many occupied renter households reported larger gross-rent burdens.","q":"What does being below the 30% screen boundary establish?"},{"a":"Redfin reports a direct rolling-three-month ZIP for-sale/resale observation: sales, price, marketing time, inventory, supply, and sale-to-list behavior. It is not evidence about rental transactions. Dividing annualized ZORI by median sold price creates the stated cross-source ratio only; it does not establish a cap rate, net return, or property-level economics.","q":"How should the resale screen be read?"}],"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":"2017-05-01","rent":1260.960297},{"period":"2017-06-01","rent":1271.819132},{"period":"2017-07-01","rent":1279.856877},{"period":"2017-08-01","rent":1289.517356},{"period":"2017-09-01","rent":1302.357793},{"period":"2017-10-01","rent":1301.457091},{"period":"2017-11-01","rent":1310.88468},{"period":"2017-12-01","rent":1292.016997},{"period":"2018-01-01","rent":1299.195581},{"period":"2018-02-01","rent":1293.247561},{"period":"2018-03-01","rent":1308.795161},{"period":"2018-04-01","rent":1315.333046},{"period":"2018-05-01","rent":1314.478565},{"period":"2018-06-01","rent":1318.354648},{"period":"2018-07-01","rent":1323.41819},{"period":"2018-08-01","rent":1335.177742},{"period":"2018-09-01","rent":1342.194875},{"period":"2018-10-01","rent":1347.17334},{"period":"2018-11-01","rent":1346.39389},{"period":"2018-12-01","rent":1355.301466},{"period":"2019-01-01","rent":1355.670803},{"period":"2019-02-01","rent":1361.766677},{"period":"2019-03-01","rent":1364.844716},{"period":"2019-04-01","rent":1363.535614},{"period":"2019-05-01","rent":1365.809797},{"period":"2019-06-01","rent":1364.741879},{"period":"2019-07-01","rent":1370.588791},{"period":"2019-08-01","rent":1371.887717},{"period":"2019-09-01","rent":1376.465905},{"period":"2019-10-01","rent":1386.085536},{"period":"2019-11-01","rent":1390.112957},{"period":"2019-12-01","rent":1402.699461},{"period":"2020-01-01","rent":1413.796838},{"period":"2020-02-01","rent":1431.207627},{"period":"2020-03-01","rent":1404.162017},{"period":"2020-04-01","rent":1399.927741},{"period":"2020-05-01","rent":1383.418702},{"period":"2020-06-01","rent":1382.198651},{"period":"2020-07-01","rent":1398.320167},{"period":"2020-08-01","rent":1413.351186},{"period":"2020-09-01","rent":1425.752326},{"period":"2020-10-01","rent":1428.02507},{"period":"2020-11-01","rent":1447.176379},{"period":"2020-12-01","rent":1444.887597},{"period":"2021-01-01","rent":1465.480748},{"period":"2021-02-01","rent":1460.658534},{"period":"2021-03-01","rent":1472.657598},{"period":"2021-04-01","rent":1472.741337},{"period":"2021-05-01","rent":1492.100127},{"period":"2021-06-01","rent":1516.894621},{"period":"2021-07-01","rent":1546.627073},{"period":"2021-08-01","rent":1569.624016},{"period":"2021-09-01","rent":1597.428373},{"period":"2021-10-01","rent":1616.549088},{"period":"2021-11-01","rent":1625.523677},{"period":"2021-12-01","rent":1642.264699},{"period":"2022-01-01","rent":1649.365785},{"period":"2022-02-01","rent":1676.670562},{"period":"2022-03-01","rent":1688.225519},{"period":"2022-04-01","rent":1710.676003},{"period":"2022-05-01","rent":1728.690024},{"period":"2022-06-01","rent":1744.397954},{"period":"2022-07-01","rent":1737.038555},{"period":"2022-08-01","rent":1729.316976},{"period":"2022-09-01","rent":1720.657824},{"period":"2022-10-01","rent":1735.598443},{"period":"2022-11-01","rent":1733.110788},{"period":"2022-12-01","rent":1741.329658},{"period":"2023-01-01","rent":1743.930876},{"period":"2023-02-01","rent":1747.249053},{"period":"2023-03-01","rent":1749.929723},{"period":"2023-04-01","rent":1746.065158},{"period":"2023-05-01","rent":1748.933426},{"period":"2023-06-01","rent":1751.130276},{"period":"2023-07-01","rent":1763.311314},{"period":"2023-08-01","rent":1768.03731},{"period":"2023-09-01","rent":1767.477198},{"period":"2023-10-01","rent":1767.10721},{"period":"2023-11-01","rent":1792.777068},{"period":"2023-12-01","rent":1789.712706},{"period":"2024-01-01","rent":1791.380039},{"period":"2024-02-01","rent":1787.51512},{"period":"2024-03-01","rent":1804.733942},{"period":"2024-04-01","rent":1817.114664},{"period":"2024-05-01","rent":1815.011097},{"period":"2024-06-01","rent":1813.511463},{"period":"2024-07-01","rent":1803.220618},{"period":"2024-08-01","rent":1792.624885},{"period":"2024-09-01","rent":1785.284374},{"period":"2024-10-01","rent":1780.898316},{"period":"2024-11-01","rent":1783.880276},{"period":"2024-12-01","rent":1778.601752},{"period":"2025-01-01","rent":1759.151136},{"period":"2025-02-01","rent":1738.148545},{"period":"2025-03-01","rent":1727.598159},{"period":"2025-04-01","rent":1732.957486},{"period":"2025-05-01","rent":1731.04193},{"period":"2025-06-01","rent":1714.944076},{"period":"2025-07-01","rent":1714.133891},{"period":"2025-08-01","rent":1716.68202},{"period":"2025-09-01","rent":1718.897705},{"period":"2025-10-01","rent":1714.315027},{"period":"2025-11-01","rent":1696.029611},{"period":"2025-12-01","rent":1694.094522},{"period":"2026-01-01","rent":1701.564315},{"period":"2026-02-01","rent":1712.102986},{"period":"2026-03-01","rent":1706.627633},{"period":"2026-04-01","rent":1692.707562},{"period":"2026-05-01","rent":1689.747859},{"period":"2026-06-01","rent":1697.283693}],"historySummary":{"pointCount":110,"firstPeriod":"2017-05-01","latestPeriod":"2026-06-01","coverageMonths":110,"coverageRatio":1,"changes":{"1":{"years":1,"startPeriod":"2025-06-01","endPeriod":"2026-06-01","startRent":1714.944076,"endRent":1697.283693,"change":-0.010297935219667154,"cagr":-0.010297935219667154},"3":{"years":3,"startPeriod":"2023-06-01","endPeriod":"2026-06-01","startRent":1751.130276,"endRent":1697.283693,"change":-0.030749615684218856,"cagr":-0.010356764160932341},"5":{"years":5,"startPeriod":"2021-06-01","endPeriod":"2026-06-01","startRent":1516.894621,"endRent":1697.283693,"change":0.11891997605020199,"cagr":0.022727197803394494}},"maxDrawdown":-0.07009288270209013,"annualizedVolatility":0.02486374674014266,"consecutiveReturnCount":109}}