{"zip":"28203","city":"Charlotte","state":"NC","county":"Mecklenburg County","countySlug":"mecklenburg-county-nc","metro":"Charlotte-Concord-Gastonia, NC-SC","metroSlug":"charlotte-nc","citySlug":"charlotte-nc","rentPeriod":"2026-06","acsPeriod":"ACS 2024 5-year","directRent":2056,"rentYoy":0.0232,"bedroomEstimates":[1788,1877,2056,2535,3218],"hudFmr":[2200,2310,2530,3120,3960],"ladderSource":"safmr","population":18823,"populationMoe":1197,"medianIncome":104696,"medianIncomeMoe":5494,"medianGrossRent":1921,"medianGrossRentMoe":54,"housingUnits":12141,"occupiedUnits":11038,"vacantUnits":1103,"renterOccupied":7792,"rentBurdenTotal":7792,"rentBurden30Plus":2687,"vacantForRent":508,"vacantForSale":0,"vacantSeasonal":81,"structureTotal":12141,"singleFamilyUnits":3705,"largeMultifamilyUnits":7051,"vacancyRate":0.09084918869944815,"renterShare":0.7059249864105817,"rentBurdenShare":0.34484086242299794,"requiredIncome":82240,"askingRentToIncome":0.23565370214716894,"askingVsAcsRent":1.0702758979698075,"askingVsHud2br":0.8126482213438735,"cityRent":1745.7658527125816,"countyRent":1751,"metroRent":1750,"cityGrossRent":1612,"countyGrossRent":1627,"countyListings":4251,"countyListingDom":51,"countyPriceReducedShare":0.2235,"countyListingPeriod":"2026-06","metroMonthsSupply":3.7,"metroMedianDom":53,"metroPriceDrops":0.3162,"metroResalePeriod":"2026-05-01","apartmentVacancy":0.092981787831397,"apartmentTimeOnMarket":35.3,"zipResalePeriodBegin":"2026-04-01","zipResalePeriodEnd":"2026-06-30","zipResaleUpdated":"2026-07-03","zipHomesSold":93,"zipSalePrice":786822,"zipSalePriceYoy":0.102,"zipMedianDom":40,"zipActiveListings":208,"zipActiveListingsYoy":0.2828,"zipInventory":100,"zipInventoryYoy":0.4083,"zipPendingSales":89,"zipMonthsSupply":3.3,"zipSaleToList":0.9851,"zipSoldAboveList":0.2224,"zipOffMarketTwoWeeks":0.4937,"generatedAt":"2026-09-01 14:00:03.373011+00","summaryHtml":"<p>The central measured tension in 28203 is a current asking-rent index of $2,056 per month alongside a 3.14% annualized rent-price screening ratio. That ratio is annualized ZIP ZORI divided by the ZIP median sold price, so it is only a cross-source screen rather than a cap rate, net return, expected return, property yield, or property-level operating result. Zillow ZORI is a typical observed asking-rent index blended across rental types, not a lease-specific quote. Its current level therefore offers a useful market signal, but it cannot establish the rent, expenses, condition, or availability of any particular home.</p><p>The history shows a positive recent direction but a notably uneven longer path. The exact same-month one-year change was 2.32%, compared with just 0.10% annualized across three years and 4.21% annualized across five years. Thus, the latest year confirms that asking rents were rising, breaks from the near-flat three-year result, and remains slower than the five-year pace. History coverage was 99.2%, with 126 observations and 124 consecutive monthly returns. Monthly-return variability reaches 4.72% annualized, limiting confidence in any single current rent snapshot. Separately, the maximum drawdown was 5.13%, showing that the historical index has experienced meaningful reversals. These are backward-looking measurements, not forecasts or investment recommendations.</p><p>The five-digit label 28203 is both Zillow's ZIP market identifier and a Census ZCTA match. A ZCTA is a statistical area and is not identical to a USPS delivery ZIP. The history's transparent national discovery ranks among history-eligible ZIPs were 1,761 for momentum, 2,787 for stability, and 2,562 for the balanced measure, where a lower rank is higher. Those rankings describe the observed historical pattern rather than local prospects. The relatively weak stability placement is consistent with treating the current ZORI reading as an informative benchmark that still requires a wider evidence set and property-level verification.</p><p>The bedroom ladder should be read as a set of modelled estimates, not measured bedroom rents. Scaling ZIP ZORI with the local HUD ladder produces modelled monthly estimates of $1,788 for a studio, $1,877 for one bedroom, $2,056 for two bedrooms, $2,535 for three bedrooms, and $3,218 for four bedrooms. The underlying FY2026 HUD two-bedroom FMR/SAFMR standard is $2,530. HUD FMR/SAFMR is an administrative, bedroom-specific standard and not asking rent; it is used here solely to set relative bedroom proportions. The modelled ladder consequently cannot substitute for live listings, executed leases, concessions, included utilities, or a unit's actual bedroom count.</p><p>The ACS 2024 five-year matched ZCTA survey supplies a different rent universe. Its $1,921 median gross rent reflects occupied renter homes and includes selected utilities, whereas ZORI reflects observed asking rents; the current asking index is 7.0% higher. ZCTA-wide median household income was $104,696. Applying a 30% screen to the current annualized asking-rent index yields $82,240 of required income, while the ZIP asking-rent-to-income comparison is 23.6%. This screen is arithmetic, not advice or an applicant qualification rule. It also does not erase the ACS burden reading: 2,687 renter households, or 34.5%, reported spending 30% or more of income on rent. Household medians and burden shares do not prove affordability for a specific renter or unit.</p><p>Housing composition gives the burden and asking-rent readings important context. ACS estimates 12,141 housing units, including 7,792 renter-occupied homes, making renters 70.6% of occupied homes. Large multifamily structures account for 7,051 units, or 58.1% of the housing stock. The survey counted 1,103 vacant units, for a 9.1% vacancy rate. These are area-level stock and vacancy measures, not evidence that any advertised apartment is vacant, competitively priced, or suitable for a particular household. In particular, vacancy cannot be turned into proof about lease concessions, unit quality, tenant turnover, or the availability of a specific bedroom type.</p><p>Wider geographies provide comparison context but are not substitutes for ZIP evidence: the Charlotte city context has a $1,746 rent benchmark and a 49.0% renter share; the Mecklenburg County context has a $1,751 rent benchmark and a 44.9% renter share; and the Charlotte-Concord-Gastonia, NC-SC metro context has a $1,750 rent benchmark and a 49.8% rent-burden share. These city, county, and metro values describe their respective broader scopes, not 28203 transactions or households. Their lower rent benchmarks frame the ZIP's higher asking-rent index, while the metro burden figure shows why a ZIP-level rent-to-income screen should not be treated as a broad affordability conclusion.</p><p>Redfin's direct rolling-three-month ZIP resale evidence is a for-sale observation, not rental transactions or rental comparables. It records a $786,822 median sold price, up 10.2% year over year, with 93 homes sold and a 40-day median marketing time. Inventory stood at 100 homes and months of supply at 3.3. The average sale-to-list result was 98.51%, while 22.24% of sales closed above list and 49.37% went off market within two weeks. Resale price growth greatly exceeded the one-year asking-rent change, challenging any simple reading of the rent-price screening ratio or income screen as a complete property conclusion. Relevant property-level checks remain the current asking quote, bedroom count, utilities, lease terms, actual availability, comparable sale dates, property type, physical condition, and any sale concessions.</p>","findings":[{"body":"The current $2,056 ZIP asking-rent index rose 2.32% over one year, but its three-year annualized change was only 0.10%. The five-year annualized change was stronger at 4.21%. Combined with 4.72% annualized variability and a 5.13% maximum drawdown, the evidence supports using the current reading as a benchmark rather than assuming a smooth rent path.","title":"Rent snapshot is positive but historically unsettled"},{"body":"Zillow ZORI is a blended observed asking-rent index, ACS median gross rent is a five-year survey measure for occupied renter homes that includes selected utilities, and HUD FMR/SAFMR is an administrative bedroom-specific standard. The $1,921 ACS gross-rent median and $2,056 ZORI level are therefore related but not interchangeable measures of the same rental universe.","title":"Asking rent, gross rent, and HUD standards answer different questions"},{"body":"The studio-through-four-bedroom figures of $1,788 to $3,218 are modelled estimates created by scaling ZIP ZORI through the local HUD bedroom ladder. They are not measured bedroom rents. They can organize a first-pass comparison across bedroom counts, but live listings remain necessary to verify unit size, utilities, concessions, lease duration, condition, and actual quoted rent.","title":"Bedroom figures are a scaling model, not lease evidence"},{"body":"Redfin's direct ZIP resale data show a $786,822 median sold price and 10.2% annual price growth, well above the one-year ZORI change. With 3.3 months of supply and a 98.51% average sale-to-list result, the for-sale evidence supplies useful liquidity context. It does not convert the 3.14% rent-price screen into a property yield or establish rental economics.","title":"Resale momentum is stronger than rent momentum"}],"risks":["The current asking-rent index is historically volatile enough that a single monthly reading should not be treated as a stable lease benchmark, particularly when the three-year rent trend was nearly flat.","ACS gross rent, household income, vacancy, and burden figures are ZCTA-level five-year survey estimates. They cannot identify the finances, utility costs, rent burden, or availability associated with a particular apartment.","The bedroom ladder is modelled from ZIP ZORI and HUD relative standards. It may differ materially from current asking rents for a specific building, floor plan, furnishing level, lease term, or concession package.","Redfin resale observations concern homes sold in the rolling three-month ZIP for-sale market. Sale prices, marketing time, and sale-to-list measures should not be treated as rental comparables or property operating results."],"qa":[{"a":"The measures use different evidence universes. Zillow ZORI tracks a typical observed asking-rent index blended across rental types, while ACS median gross rent is a five-year survey measure of occupied renter homes and includes selected utilities. A higher asking index can therefore coexist with a lower occupied-home gross-rent median without either source contradicting the other.","q":"Why does the asking-rent index exceed the ACS gross-rent median?"},{"a":"The one-year result was positive, but the three-year annualized result was almost flat and the five-year result was materially stronger. High annualized variability and a measurable maximum drawdown indicate that past month-to-month rent-index changes were not uniformly smooth. The current reading is informative, but history supports caution about treating it as a durable path.","q":"What does the rent history say about confidence in the current reading?"},{"a":"No. The bedroom amounts are modelled monthly estimates produced by applying the local HUD bedroom ladder to the ZIP ZORI level. HUD FMR/SAFMR is an administrative standard rather than asking rent, so the resulting bedroom figures are a structured comparison tool. They require confirmation through current unit-specific listings, utilities, lease terms, and concessions.","q":"Are the bedroom rent estimates observed rents for 28203 listings?"},{"a":"It is simply annualized ZIP ZORI divided by Redfin's median sold price in the direct ZIP resale observation. The calculation can compare the scale of a rental asking-rent index with the scale of resale prices, but it excludes operating costs, taxes, insurance, financing, vacancies, repairs, property differences, and actual leases. It is not a cap rate or property yield.","q":"How should the Redfin rent-price screening ratio be interpreted?"}],"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-12-01","rent":1176.385994},{"period":"2016-02-01","rent":1192.914654},{"period":"2016-03-01","rent":1191.402644},{"period":"2016-04-01","rent":1203.228318},{"period":"2016-05-01","rent":1145.262893},{"period":"2016-06-01","rent":1192.153286},{"period":"2016-07-01","rent":1221.5306},{"period":"2016-08-01","rent":1318.22766},{"period":"2016-09-01","rent":1308.485535},{"period":"2016-10-01","rent":1318.773904},{"period":"2016-11-01","rent":1343.720317},{"period":"2016-12-01","rent":1382.113204},{"period":"2017-01-01","rent":1371.934369},{"period":"2017-02-01","rent":1368.20917},{"period":"2017-03-01","rent":1373.157722},{"period":"2017-04-01","rent":1410.90209},{"period":"2017-05-01","rent":1429.091451},{"period":"2017-06-01","rent":1421.499399},{"period":"2017-07-01","rent":1401.002264},{"period":"2017-08-01","rent":1389.398654},{"period":"2017-09-01","rent":1411.496574},{"period":"2017-10-01","rent":1425.283749},{"period":"2017-11-01","rent":1445.338729},{"period":"2017-12-01","rent":1427.431474},{"period":"2018-01-01","rent":1474.868009},{"period":"2018-02-01","rent":1476.03755},{"period":"2018-03-01","rent":1499.097821},{"period":"2018-04-01","rent":1454.138422},{"period":"2018-05-01","rent":1465.269194},{"period":"2018-06-01","rent":1478.59278},{"period":"2018-07-01","rent":1498.129835},{"period":"2018-08-01","rent":1496.773615},{"period":"2018-09-01","rent":1488.297331},{"period":"2018-10-01","rent":1499.361526},{"period":"2018-11-01","rent":1493.03099},{"period":"2018-12-01","rent":1519.555109},{"period":"2019-01-01","rent":1501.852343},{"period":"2019-02-01","rent":1509.706061},{"period":"2019-03-01","rent":1508.28312},{"period":"2019-04-01","rent":1539.136134},{"period":"2019-05-01","rent":1552.129039},{"period":"2019-06-01","rent":1551.401138},{"period":"2019-07-01","rent":1555.54586},{"period":"2019-08-01","rent":1557.007092},{"period":"2019-09-01","rent":1569.775927},{"period":"2019-10-01","rent":1567.583022},{"period":"2019-11-01","rent":1572.716914},{"period":"2019-12-01","rent":1568.630171},{"period":"2020-01-01","rent":1576.053697},{"period":"2020-02-01","rent":1585.089797},{"period":"2020-03-01","rent":1596.40453},{"period":"2020-04-01","rent":1577.383992},{"period":"2020-05-01","rent":1560.493686},{"period":"2020-06-01","rent":1525.63077},{"period":"2020-07-01","rent":1523.061592},{"period":"2020-08-01","rent":1514.591038},{"period":"2020-09-01","rent":1514.570004},{"period":"2020-10-01","rent":1522.994144},{"period":"2020-11-01","rent":1531.907771},{"period":"2020-12-01","rent":1552.126648},{"period":"2021-01-01","rent":1559.804196},{"period":"2021-02-01","rent":1580.878249},{"period":"2021-03-01","rent":1585.618844},{"period":"2021-04-01","rent":1611.352283},{"period":"2021-05-01","rent":1632.337915},{"period":"2021-06-01","rent":1673.294406},{"period":"2021-07-01","rent":1703.392373},{"period":"2021-08-01","rent":1751.647395},{"period":"2021-09-01","rent":1792.160388},{"period":"2021-10-01","rent":1829.630233},{"period":"2021-11-01","rent":1854.949189},{"period":"2021-12-01","rent":1873.453111},{"period":"2022-01-01","rent":1893.870662},{"period":"2022-02-01","rent":1917.801736},{"period":"2022-03-01","rent":1943.026042},{"period":"2022-04-01","rent":1970.294534},{"period":"2022-05-01","rent":1985.249413},{"period":"2022-06-01","rent":2016.512932},{"period":"2022-07-01","rent":2037.524685},{"period":"2022-08-01","rent":2046.717657},{"period":"2022-09-01","rent":2051.743317},{"period":"2022-10-01","rent":2044.142413},{"period":"2022-11-01","rent":2055.059311},{"period":"2022-12-01","rent":2048.279797},{"period":"2023-01-01","rent":2037.162068},{"period":"2023-02-01","rent":2016.68082},{"period":"2023-03-01","rent":2020.674944},{"period":"2023-04-01","rent":2039.056743},{"period":"2023-05-01","rent":2059.116709},{"period":"2023-06-01","rent":2049.963534},{"period":"2023-07-01","rent":2040.754762},{"period":"2023-08-01","rent":2023.507888},{"period":"2023-09-01","rent":2010.742234},{"period":"2023-10-01","rent":2003.919917},{"period":"2023-11-01","rent":1992.873357},{"period":"2023-12-01","rent":2006.143724},{"period":"2024-01-01","rent":2022.122357},{"period":"2024-02-01","rent":2037.561015},{"period":"2024-03-01","rent":2038.322494},{"period":"2024-04-01","rent":2013.654335},{"period":"2024-05-01","rent":2006.31804},{"period":"2024-06-01","rent":1988.848457},{"period":"2024-07-01","rent":1995.492882},{"period":"2024-08-01","rent":1989.003838},{"period":"2024-09-01","rent":1995.338645},{"period":"2024-10-01","rent":1988.518521},{"period":"2024-11-01","rent":1992.250634},{"period":"2024-12-01","rent":1994.271715},{"period":"2025-01-01","rent":1998.107343},{"period":"2025-02-01","rent":2010.398576},{"period":"2025-03-01","rent":1998.134787},{"period":"2025-04-01","rent":1998.813408},{"period":"2025-05-01","rent":1989.812132},{"period":"2025-06-01","rent":2009.552731},{"period":"2025-07-01","rent":2008.054539},{"period":"2025-08-01","rent":2021.510259},{"period":"2025-09-01","rent":2024.074557},{"period":"2025-10-01","rent":2036.214987},{"period":"2025-11-01","rent":2039.186315},{"period":"2025-12-01","rent":2035.673544},{"period":"2026-01-01","rent":2030.429783},{"period":"2026-02-01","rent":2021.248975},{"period":"2026-03-01","rent":2033.180178},{"period":"2026-04-01","rent":2044.989607},{"period":"2026-05-01","rent":2056.549494},{"period":"2026-06-01","rent":2056.214851}],"historySummary":{"pointCount":126,"firstPeriod":"2015-12-01","latestPeriod":"2026-06-01","coverageMonths":127,"coverageRatio":0.9921259842519685,"changes":{"1":{"years":1,"startPeriod":"2025-06-01","endPeriod":"2026-06-01","startRent":2009.552731,"endRent":2056.214851,"change":0.023220152066763644,"cagr":0.023220152066763644},"3":{"years":3,"startPeriod":"2023-06-01","endPeriod":"2026-06-01","startRent":2049.963534,"endRent":2056.214851,"change":0.0030494771718219127,"cagr":0.001015460880772423},"5":{"years":5,"startPeriod":"2021-06-01","endPeriod":"2026-06-01","startRent":1673.294406,"endRent":2056.214851,"change":0.22884224295912703,"cagr":0.042075598502794076}},"maxDrawdown":-0.051261772603464206,"annualizedVolatility":0.04717481105961947,"consecutiveReturnCount":124}}