Where should you buy rental property in the US? This page ranks 3803 cities by investment metrics derived from Zillow’s public home value and rent indices plus Census demand signals – and a few unconventional ones like Trader Joe’s adjacency, a classic real-estate proxy for walkable, amenity-rich neighborhoods with strong demographics.
Jump to: Does Yield Work? · Glossary · Cash Flow Calculator · Trader Joe’s Adjacency · Unicorn Leaderboard · TJ Map · Listing Activity · Rent vs FMR Reality Check · Job Market · Hottest Counties · ZIP Drill-Down · Leveraged Returns · Hidden Gems · Composite Score
The price-to-rent ratio is the standard cash-flow benchmark:
Every term used on this page, translated. If you only read one section, read this one.
| Plain-English Glossary + What’s a Good Number | ||
| Every metric on this page, in normal words, with target ranges | ||
| Term | What it means | Good numbers + how to use it |
|---|---|---|
| Prices and rents | ||
| ZHVI (home value) | Zillow’s estimate of the typical home price in a city. Think “middle of the market” – not the cheapest, not a mansion. | Neither high nor low is good on its own – it’s an input. Pair it with rent. Rule of thumb for rentals: look for ZHVI under ~$400K in markets where monthly ZORI is above 0.6% of ZHVI. High ZHVI + low rent = bad rental. |
| ZORI (rent index) | Zillow’s estimate of the typical asking rent for a new lease in a city. Similar to a Zestimate but for rent. | Higher is better, but only relative to ZHVI. A ZORI of $1,800/mo on a $180K home is a dream; the same $1,800 on a $900K home is a money pit. Target: monthly ZORI / ZHVI ≥ 0.7%. |
| YoY (year-over-year) | How much a number has changed vs the same month one year ago. +5% YoY = 5% higher than last year. | For rent YoY: +3-6% is healthy. Above 10% often reverts. For price YoY: +2-5% supports appreciation; <-5% is a warning sign about demand. |
| Price-to-rent ratio (P/R) | Home price ÷ annual rent. Low P/R = rent is high relative to price (good for landlords). High P/R = the home is expensive relative to the rent it earns. | Cash flow land: P/R < 15. Balanced: 15-20. Appreciation play only: 20-25. Avoid for cash flow: > 25. Coastal superstar cities routinely sit at 30-40. |
| Returns | ||
| Gross yield | Annual rent ÷ home price, as a percent. Ignores costs and financing. Quick first-pass return number. | Great: 8%+. Good: 6-8%. Marginal: 5-6%. Avoid for income: < 5%. Remember 35% gets eaten by expenses, so 8% gross ≈ 5% net. |
| Cap rate | Gross yield after subtracting 35% for expected operating expenses (taxes, insurance, maintenance, vacancy, property management). On this page: cap rate = gross yield × 0.65. | Strong: 6%+. Okay: 4-6%. Weak: < 4%. Cap rate needs to beat the 10-yr Treasury (~4-5%) by a couple points to be worth the risk and hassle. |
| Operating expenses (opex) | Ongoing costs of owning the rental: property taxes, insurance, repairs, vacancy losses, property management. Rule of thumb: ~35% of rent. | 35% is the default here. Higher (45%+) in old buildings, HOA properties, or high-tax states (NJ, IL, TX). Lower (25-30%) for turnkey new builds with low taxes. If you self-manage, knock ~8-10% off. |
| Leverage | ||
| Leverage | Using borrowed money (a mortgage) to buy the property. Amplifies returns both up and down. | 25% down on a rental is standard. More down = safer but lower cash-on-cash return. Less down = higher upside and higher risk. Only lever up markets with positive cash flow – never finance a negative-cash-flow property. |
| PITI | Principal + Interest + Taxes + Insurance. The four pieces of a typical monthly mortgage payment. | Your monthly PITI should be less than 75% of monthly rent. If PITI is 90%+ of rent, a single vacancy or repair wipes out a year of profit. |
| Monthly cash flow | Rent received minus PITI minus operating expenses, per month. Positive = the tenant covers the mortgage and you pocket the difference. | Great: +$300/mo per unit or more. Okay: +$100-300. Break-even: $0-100. Avoid: negative. Anything under $200/mo is fragile – one $5K repair wipes out 2+ years of profit. |
| Cash-on-cash return (CoC) | Annual cash flow ÷ the cash you actually put in (down payment + closing costs). Tells you what your own money is earning. | Strong: 8%+. Good: 5-8%. Weak: < 5%. Should beat what cash earns in a high-yield savings account (~4-5%) since real estate is less liquid and more work. |
| 1% rule / 2% rule | Quick sanity checks. 1% rule: monthly rent is at least 1% of the purchase price. 2% is twice that bar – rare, mostly distressed markets. | If a market passes the 1% rule with today’s rates, it’s almost certainly cash-flow positive. Most US cities fail this rule at 2026 prices. 2% rule passes are almost always in very low-priced, higher-risk markets. |
| Yield spread | Gross yield minus the current mortgage rate. Positive spread = rent covers the loan with room to spare. Negative = you’re subsidizing the mortgage and betting on price growth. | Positive spread = safer, cash-flow market. Negative spread = you need appreciation to bail you out. With ~7.25% mortgage rates, you want gross yield of 8%+ for a real margin of safety. |
| Demand | ||
| Vacancy rate | Share of rental units sitting empty. High vacancy = harder to find tenants and more rent concessions. | Healthy: < 8%. Okay: 8-12%. Warning: 12%+. A cheap market with 20% vacancy is cheap for a reason. Pair low vacancy with a strong cap rate – that’s the Vacancy-vs-Cap-Rate chart. |
| Net migration | People moving in minus people moving out. Positive = growing demand; negative = shrinking. | Green flag: consistently positive, especially in a small metro. Red flag: negative three years in a row. Shrinking places can stay cheap forever (hi, parts of the Rust Belt). |
| Population growth | Total population change over a period, as a percent. Includes births, deaths, and migration. | Strong: +1%/yr or more. Okay: 0 to +1%. Declining: negative. Sunbelt cities often run +2-4%/yr; that sustains rent growth. |
| Unemployment rate (BLS LAUS) | Share of the local workforce that’s unemployed. Low + falling = healthy job market = tenants who can pay rent. | Strong: < 4%. Okay: 4-5%. Weak: 5%+. Also watch the 12-month change: rising unemployment is a leading indicator of rent softness. |
| Listing health | ||
| DOM (days on market) | Median days it takes a listing to go under contract. Low DOM = hot market; high DOM = stale. | Hot: < 20 days (sellers’ market, hard to get a deal). Balanced: 20-45. Stale / buyer’s market: 60+. For investors, 30-60 is the sweet spot – motivated sellers, not panic. |
| Sale-to-list ratio | Final sale price ÷ original list price. Above 100% = bidding wars; below 100% = buyers have leverage. | Above 100%: sellers winning, pay up or walk. 97-100%: balanced. Below 97%: buyers can negotiate 3-5% off. As a buyer you want this number lower. |
| Price drops | Share of listings that had at least one price reduction. High = sellers are chasing the market down. | > 30% of listings cutting prices = strong buyer’s market. 10-30% = balanced. < 10% = hot seller’s market. High price-drop share is a green light to negotiate hard. |
| Hotness score (Realtor.com) | Realtor.com’s 0-100 composite ranking demand vs supply. Higher = more competitive for buyers. | > 80: very competitive, overpay risk. 50-80: balanced. < 50: cool, room to negotiate. As an investor, hot + cash-flow-positive is the unicorn combo (see the Hot Markets table). |
| Benchmarks | ||
| HUD FMR (Fair Market Rent) | The government’s official rent benchmark per bedroom count per metro/county. Used to set housing voucher caps; we use it to flag cities where market rent (ZORI) looks off. | If market rent (ZORI) is way above HUD FMR, the market may be frothy. Way below = potentially undervalued, room to raise rents. The Rent-vs-FMR Reality Check section finds both. |
| SAFMR | Small-Area FMR – same concept as FMR but at the ZIP level. Lets you spot neighborhood-level outliers. | Same use as FMR but more granular – great for finding individual ZIPs priced way off trend inside an otherwise expensive metro. |
| Proximity | ||
| Trader Joe's adjacency | Distance (in miles) from the city center to the nearest Trader Joe’s. Used as a quick proxy for walkable, amenity-rich neighborhoods with strong demographics – places where demand tends to be durable. | < 5 mi: in-the-bubble, premium demand. 5-15 mi: outer suburbs, typical. > 30 mi: rural, thinner tenant pool. TJ proximity is a tiebreaker, not a primary filter. |
| Unicorn | A market that clears multiple bars at once – positive cash flow, strong yield, and close to a Trader Joe’s. Rare on purpose. | Unicorns are the shortlist – high confidence that demographics, demand, and math all line up. Worth the deepest due diligence time. |
| Composite | ||
| Composite investment score | A 0-100 rank-based score blending cap rate, population growth, net migration, vacancy, YoY price appreciation, and the new listing-market and job-market signals. Each factor is converted to a percentile so one extreme number can’t dominate. | > 70: top quartile, worth a deep look. 50-70: above average. < 30: bottom, probably skip unless you have local knowledge. Don’t buy on score alone – use it to narrow from thousands to dozens. |
| Tier (Strong Buy / Moderate / Lean Rent / Rent Favored) | Bucket assigned by price-to-rent ratio. Strong Buy = cheap relative to rent; Rent Favored = expensive, only works if prices keep rising. | Strong Buy: rental-first, cash-flow markets. Moderate: balanced. Lean Rent: appreciation-biased. Rent Favored: live there or speculate, don’t buy to rent out. |
If you’re evaluating a single market, work top-down – any red flag kills the deal:
If items 1-5 check out, it’s worth a real due-diligence pass. If any of them fail, move on – there are 3803 cities in this dataset.
All data is traceable and reproducible. Run
Rscript scripts/us_rental_markets_data.R to refresh.
| Data Sources | ||
| All public, no API key required | ||
| Source | Description | Updated |
|---|---|---|
| Zillow ZHVI | Typical home values (city level, SFR+condo, 35th–65th percentile) | 2026-02-28 |
| Zillow ZORI | Typical observed rents (city level, SFR+condo+MFR) | 2026-02-28 |
| Zillow ZIP ZHVI+ZORI | Same indices at ZIP granularity for neighborhood drill-down | 2026-02-28 |
| Census Pop Estimates | City + county population (2020–2024), net migration | V2024 |
| Census ACS 5-Year | Vacancy rates, renter %, housing counts (county level) | 2019–2023 |
| Census Places + ZCTA Gazetteer | Lat/lon for every incorporated place + ZIP (distance calcs) | 2024 |
| Redfin Data Center | Listing activity: DOM, price drops, sale-to-list, new listings (county) | Monthly |
| HUD Fair Market Rents (FY26) | Government rent benchmark by bedroom count; flags ZORI outliers | FY2026 |
| BLS LAUS | Monthly metro + county unemployment rate and 12-month change | Latest month |
| Realtor.com RDC | Active/new/pending listings, hotness score, median DOM (county + ZIP) | Monthly |
| Trader Joe’s Store Locator | All 464 US stores, scraped from locations.traderjoes.com | 2026 |
| CBRE Cap Rate Survey | Multifamily cap rate ranges by metro (benchmark only) | H2 2025 |
| Cap rate = gross yield × (1 − 35% expense ratio). Raw data: us_rental_markets.csv · us_rental_markets_zip.csv | ||
Florida vs. Missouri: A higher modeled yield in Florida may be offset by higher windstorm or flood coverage, deductibles, taxes, or maintenance. Missouri may avoid coastal hurricane exposure, but hail, tornado, river flood, and other risks still vary by address. Do not interpret the rankings below as insurance-adjusted.
The existing est_cap_rate_pct uses gross yield ×
0.65, i.e. one 35% flat expense assumption for every
city. It does not model each property’s
insurance quote, tax bill, flood zone, HOA, repairs, property
management, or financing. A more realistic underwriting model is:
\[ \text{Property-level cap rate} = \frac{\text{Annual rent} - \text{vacancy} - \text{operating expenses}}{\text{purchase price}} \]
Operating expenses should include location-specific insurance premiums, property tax, management, maintenance, utilities paid by the owner, and HOA where applicable. Debt service is excluded from cap rate; use cash-on-cash return separately for leveraged deals. Get actual quotes and inspect exclusions and deductibles before buying.
How do these Zillow-modeled cap rates compare with what professional investors actually pay? CBRE’s semiannual U.S. Cap Rate Survey publishes the cap rate ranges at which CBRE Capital Markets and Valuation professionals expect assets to trade in each metro. Below, the H2 2025 Multifamily Suburban, Class A Stabilized ranges for the South and West regions (the latest survey with public metro tables) are compared against the median modeled cap rate of the cities in each matching Zillow metro.

Reading the chart: in all 26 metros, the typical city’s modeled cap rate falls below CBRE’s Class A apartment range. The implied expense ratio in the table asks: what expense ratio would make the metro’s median Zillow gross yield equal CBRE’s midpoint cap rate? The highest is 26% (Atlanta), below the 35% assumed on this page, and in 10 metros it is negative: there, even a rental with zero operating expenses would not match an institutional apartment yield.
The gap is mostly about price, not rent. ZHVI values single-family homes and condos at owner-occupier prices, which include the value of owning, school districts, and appreciation expectations. Apartment buildings trade on income, at a much lower price per unit relative to rent. The practical read: a city that looks attractive on this page is being compared with other small residential rentals, not with the yields institutional capital demands. The gap is currently narrowest in Houston, Miami, Atlanta and widest in Portland, Salt Lake City, San Jose; the widest gaps are where single-family prices sit furthest above rental value.
| Zillow-Modeled vs CBRE Multifamily Cap Rates | ||||||||
| CBRE H2 2025, Multifamily Suburban, Class A Stabilized (South and West) | ||||||||
| Market | Region | CBRE Range | Zillow Median Gross Yield | Zillow Median Est Cap Rate | Gap vs CBRE Midpoint (pp) | Implied Expense Ratio | Cities | Position |
|---|---|---|---|---|---|---|---|---|
| Atlanta | South | 4.50% - 5.00% | 6.44% | 4.19% | -0.56 | 26% | 80 | Below CBRE range |
| Miami | South | 4.75% - 5.00% | 6.59% | 4.29% | -0.59 | 26% | 80 | Below CBRE range |
| Houston | South | 5.00% - 5.50% | 6.77% | 4.40% | -0.85 | 22% | 57 | Below CBRE range |
| Tampa | South | 5.00% - 5.50% | 6.64% | 4.32% | -0.93 | 21% | 51 | Below CBRE range |
| Charleston, SC | South | 4.75% - 5.25% | 6.14% | 3.99% | -1.01 | 19% | 8 | Below CBRE range |
| Austin | South | 4.25% - 5.00% | 5.52% | 3.58% | -1.04 | 16% | 24 | Below CBRE range |
| Dallas | South | 4.50% - 5.25% | 5.87% | 3.82% | -1.06 | 17% | 91 | Below CBRE range |
| Memphis | South | 5.50% - 6.00% | 7.09% | 4.61% | -1.14 | 19% | 16 | Below CBRE range |
| Orlando | South | 4.75% - 5.75% | 6.14% | 3.99% | -1.26 | 15% | 32 | Below CBRE range |
| San Antonio | South | 4.75% - 5.25% | 5.63% | 3.66% | -1.34 | 11% | 17 | Below CBRE range |
| Charlotte | South | 4.75% - 5.25% | 5.50% | 3.58% | -1.42 | 9% | 30 | Below CBRE range |
| Nashville | South | 4.50% - 5.00% | 4.90% | 3.19% | -1.56 | 3% | 20 | Below CBRE range |
| Las Vegas | West | 4.75% - 5.00% | 4.98% | 3.23% | -1.64 | 2% | 6 | Below CBRE range |
| Phoenix | West | 4.75% - 5.25% | 5.10% | 3.31% | -1.69 | 2% | 32 | Below CBRE range |
| Raleigh-Durham | South | 4.75% - 5.25% | 5.04% | 3.28% | -1.72 | 1% | 23 | Below CBRE range |
| Tucson | West | 5.50% - 5.75% | 5.88% | 3.82% | -1.81 | 4% | 7 | Below CBRE range |
| Boise | West | 4.75% - 5.00% | 4.49% | 2.92% | -1.96 | -9% | 9 | Below CBRE range |
| Sacramento | West | 4.75% - 5.25% | 4.55% | 2.96% | -2.04 | -10% | 22 | Below CBRE range |
| Jacksonville | South | 5.00% - 5.50% | 4.78% | 3.11% | -2.14 | -10% | 14 | Below CBRE range |
| Denver | West | 4.75% - 5.25% | 3.96% | 2.57% | -2.43 | -26% | 30 | Below CBRE range |
| Los Angeles | West | 4.75% - 5.25% | 3.54% | 2.30% | -2.70 | -41% | 107 | Below CBRE range |
| Seattle | West | 5.00% - 5.50% | 3.74% | 2.43% | -2.82 | -41% | 60 | Below CBRE range |
| San Francisco | West | 4.50% - 5.00% | 2.92% | 1.90% | -2.85 | -63% | 53 | Below CBRE range |
| San Jose | West | 4.25% - 4.75% | 2.48% | 1.61% | -2.89 | -81% | 12 | Below CBRE range |
| Salt Lake City | West | 5.00% - 5.50% | 3.50% | 2.28% | -2.97 | -50% | 19 | Below CBRE range |
| Portland | West | 5.00% - 6.50% | 4.00% | 2.60% | -3.15 | -44% | 38 | Below CBRE range |
| Implied expense ratio = 1 − CBRE midpoint ÷ Zillow median gross yield. CBRE ranges transcribed from the public H2 2025 U.S. Cap Rate Survey; data: cbre_multifamily_cap_rates.csv. | ||||||||
Caveats. CBRE’s figures are professional estimates for institutional apartment complexes (stabilized NOI over acquisition price), not single-family rentals, and they are ranges, not transaction averages. Market definitions differ: CBRE uses Census metro divisions (Miami, Fort Lauderdale, and West Palm Beach are separate), so where Zillow reports one combined metro only the core CBRE market is used. The East and Midwest tables, Inland Empire, and Orange County are omitted because they could not be matched or transcribed reliably.
Where cap rates may be heading. In the H1 2026 survey (fielded late June 2026), the all-property average cap rate held roughly flat even as the 10-year Treasury rose, and roughly 60% of respondents expected no change over the next six months. More respondents now expect increases than in December, and infill multifamily was the most bearish subtype. Respondents put the 10-year yield that would trigger a notable uptick in sales volume at a median of 3.75%. For a rental buyer, the practical read is that cap rate compression (price appreciation from falling yields) is not the base case; underwrite on income. CBRE’s H1 2026 metro-level ranges are in the full report and are not yet reflected in the table above.
Before trusting a list like the one below, it’s worth asking whether ranking by yield picks better investments. I tested it with a team of AI agents (full write-up). They only got Zillow data through September 2023, and their job was to find a rule that beats a plain “top 25 cities by gross yield” screen. Their picks were then graded on the real 2023 to 2026 returns (price appreciation plus half of gross rent, to cover expenses).
What that means for this page:
Short instead of dropping them.Seasonal.
Plug in your financing assumptions and rerank every market by monthly cash flow, cash-on-cash return, and whether it actually clears the mortgage. Defaults are 25% down, 7.25% 30-yr fixed, 35% operating expenses, 3% closing costs.
| # | City | State | Price | Rent/mo | Mortgage | Cash flow/mo | CoC % | Cap rate | Pop | TJ mi | Vacancy | Tier |
|---|
The holy grail: a rental market that’s cash-flow positive at 25% down and 7.25% rates AND within 10 miles of a Trader Joe’s. These are rare because TJ tends to pick areas where home prices have already outrun rents. But they exist.
## **62unicorn cities** found across 15 states, 19 metros.
Every US Trader Joe’s (purple dots) with the top rental-investment cities overlaid, colored by composite score. Click a marker for the full stats. The map loads live tiles, so it’ll only render online.
ZHVI and ZORI are index values — smoothed, interpolated estimates of what a typical home is worth. But actual buyers face an actual market: listings with actual days-on-market, actual bidding activity, actual price drops. Redfin’s Data Center publishes county-level statistics for every listed home in the US. That tells us whether a given market is hot or cold independent of the index level.

| Summary by days-on-market bucket | |||||
| DOM bucket | Cities | Median cap % | Sale / list % | Sold above list % | With price drops % |
|---|---|---|---|---|---|
| <= 15 days | 136 | 2.40 | 100.3 | 41.3 | 27.7 |
| 16-30 days | 419 | 3.10 | 100.3 | 41.6 | 25.2 |
| 31-45 days | 911 | 3.42 | 99.5 | 36.3 | 23.6 |
| 46-60 days | 753 | 3.73 | 98.6 | 23.5 | 25.1 |
| 61-90 days | 851 | 4.03 | 97.7 | 14.4 | 27.5 |
| > 90 days | 437 | 3.94 | 96.9 | 11.3 | 24.7 |
Reading this: higher DOM bucket = slower market = more price drops, fewer bids over ask. The tradeoff for the investor is that slower markets also tend to have higher cap rates — because cash flow is what saves you when there’s no easy flip. Fast markets are often appreciation plays where you’re buying momentum.
These meet three conditions simultaneously: cash-flow positive at our default assumptions, median DOM <= 25 days, and sale-to-list ratio >= 1.0 (bidding wars). That’s rare — most hot markets are overpriced. When they coexist, it’s a signal worth a second look.
## No cities currently qualify.
HUD Fair Market Rents are the government-published benchmark rent used for Section 8 vouchers and affordable-housing programs. HUD sets them at roughly the 40th percentile of standard-quality rentals in each county. That makes them a useful ground-truth check on Zillow’s ZORI: if the index disagrees with HUD by a huge margin, it’s often either a data glitch or a signal that your city has a genuine luxury market (think: Napa, Aspen, parts of the Hamptons).

Most cities cluster slightly above the parity line — ZORI’s typical-rent is higher than HUD’s 40th-percentile FMR, as expected. Cities that shoot above the 2x FMR line are either (a) legitimately upscale rental markets or (b) index glitches.
If Zillow’s ZORI is meaningfully below the HUD 40th-percentile benchmark, that’s either a new listing with room to raise rent or a market where tenants are under-paying for the property quality. Either way it’s an interesting signal.
Rental demand ultimately depends on jobs — tenants need income to pay rent. BLS Local Area Unemployment Statistics publishes monthly unemployment rates for every US metro and county. Low unemployment = strong local economy = reliable tenant base, but usually also = expensive real estate. The sweet spot is a market with below-average unemployment and above-average cap rate.

Realtor.com’s hotness score is a composite of supply (how quickly listings sell) and demand (how many unique shoppers view each listing). It’s computed at the county level, monthly, and ranks every US county from 1 (hottest) to ~1,600. Independent from price — a hot market can be cheap. Combined with our composite score, it surfaces counties where listing velocity agrees with the fundamentals.
City-level Zillow data averages the whole city — great for comparing Austin to Nashville, useless for comparing East Austin to West Austin. This drill-down uses Zillow’s ZIP-level ZHVI + ZORI (~8,100 ZIPs with both), re-runs the same leverage math, and attaches each ZIP’s nearest Trader Joe’s distance.
ZIPs within 5 miles of a Trader Joe’s and cash-flow positive — the ZIP-level version of the “unicorn” leaderboard.

Cap rate ignores financing. For the leveraged buyer the two numbers that matter are monthly cash flow (does the tenant cover the mortgage?) and cash-on-cash return (what does my out-of-pocket cash actually earn?). Both are computed at the default assumptions printed above – use the calculator for your own numbers.


High cap rate means nothing if the town is emptying out. This chart cross-references cap rate with population growth – the sweet spot is the upper-right quadrant: strong cash flow and growing population.

Two rent-to-price benchmarks investors use as a quick smell test:

Markets with high vacancy rates are risky – your rental sits empty longer. Cities in the lower-right have strong cap rates and low vacancy.

Search, filter, and sort all 3803 cities.
A rank-based composite (0–100) that blends the signals investors actually care about: cap rate (35%), population growth (20%), net migration (15%), low vacancy (15%), and YoY price appreciation (15%). Each factor is converted to a percentile so outliers can’t dominate.

Best cash-flow city per state (highest monthly cash flow at default assumptions), plus state-level medians.

Gross rental yield minus the current mortgage rate (7.25%). Positive spread means the rent covers debt service with room to spare; negative means you’re subsidizing the mortgage and relying on appreciation.

Home value growth and rent growth tell different stories. When home prices outrun rents, cap rates compress (bad for investors); when rents outrun prices, cap rates expand.

Search for any city to see the full investor profile in one place.

Average metrics across cities within each metro area (metros with 5+ cities).
How to update this data: Run
Rscript scripts/us_rental_markets_data.R to download Zillow
ZHVI + ZORI. Then run
Rscript scripts/us_rental_demand_data.R to merge Census
population / vacancy / migration and compute leverage metrics (mortgage
payment, cash flow, cash-on-cash, composite score). Then re-render this
page.