Compare cap rates for Class A multifamily in Nashville versus Raleigh versus Austin. Which market offers the best relative value?
Now query cap rate history for each of the three markets, and national metrics for rate environment signal.
Now get the current fed funds rate (latest monthly value).
mkdir -p /vercel/sandbox/caprate && cat > /vercel/sandbox/caprate/build_payloads.py << 'EOF'
import json
nashville = [
("2005-01-01",0.0714),("2005-04-01",0.0693),("2005-07-01",0.0670),("2005-10-01",0.0659),
("2006-01-01",0.0658),("2006-04-01",0.0691),("2006-07-01",0.0695),("2006-10-01",0.0701),
("2007-01-01",0.0700),("2007-04-01",0.0682),("2007-07-01",0.0665),("2007-10-01",0.0687),
("2008-01-01",0.0686),("2008-04-01",0.0686),("2008-07-01",0.0795),("2008-10-01",0.0839),
("2009-01-01",0.0851),("2009-04-01",0.0852),("2009-07-01",0.0798),("2009-10-01",0.0744),
("2010-01-01",0.0745),("2010-04-01",0.0706),("2010-07-01",0.0656),("2010-10-01",0.0644),
("2011-01-01",0.0675),("2011-04-01",0.0660),("2011-07-01",0.0638),("2011-10-01",0.0637),
("2012-01-01",0.0659),("2012-04-01",0.0658),("2012-07-01",0.0669),("2012-10-01",0.0668),
("2013-01-01",0.0662),("2013-04-01",0.0650),("2013-07-01",0.0663),("2013-10-01",0.0676),
("2014-01-01",0.0675),("2014-04-01",0.0674),("2014-07-01",0.0653),("2014-10-01",0.0642),
("2015-01-01",0.0632),("2015-04-01",0.0618),("2015-07-01",0.0608),("2015-10-01",0.0581),
("2016-01-01",0.0571),("2016-04-01",0.0571),("2016-07-01",0.0571),("2016-10-01",0.0571),
("2017-01-01",0.0571),("2017-04-01",0.0569),("2017-07-01",0.0569),("2017-10-01",0.0568),
("2018-01-01",0.0567),("2018-04-01",0.0557),("2018-07-01",0.0557),("2018-10-01",0.0557),
("2019-01-01",0.0540),("2019-04-01",0.0540),("2019-07-01",0.0498),("2019-10-01",0.0498),
("2020-01-01",0.0471),("2020-04-01",0.0496),("2020-07-01",0.0455),("2020-10-01",0.0434),
("2021-01-01",0.0434),("2021-04-01",0.0382),("2021-07-01",0.0355),("2021-10-01",0.0343),
("2022-01-01",0.0358),("2022-04-01",0.0390),("2022-07-01",0.0399),("2022-10-01",0.0475),
("2023-01-01",0.0490),("2023-04-01",0.0490),("2023-07-01",0.0554),("2023-10-01",0.0523),
("2024-01-01",0.0523),("2024-04-01",0.0498),("2024-07-01",0.0482),("2024-10-01",0.0492),
("2025-01-01",0.0492),("2025-04-01",0.0517),("2025-07-01",0.0518),("2025-10-01",0.0518),
("2026-01-01",0.0518),("2026-04-01",0.0518),
]
raleigh = [
("2005-01-01",0.0710),("2005-04-01",0.0689),("2005-07-01",0.0667),("2005-10-01",0.0639),
("2006-01-01",0.0639),("2006-04-01",0.0644),("2006-07-01",0.0644),("2006-10-01",0.0654),
("2007-01-01",0.0653),("2007-04-01",0.0631),("2007-07-01",0.0615),("2007-10-01",0.0635),
("2008-01-01",0.0635),("2008-04-01",0.0699),("2008-07-01",0.0807),("2008-10-01",0.0850),
("2009-01-01",0.0845),("2009-04-01",0.0846),("2009-07-01",0.0836),("2009-10-01",0.0783),
("2010-01-01",0.0756),("2010-04-01",0.0718),("2010-07-01",0.0647),("2010-10-01",0.0657),
("2011-01-01",0.0645),("2011-04-01",0.0634),("2011-07-01",0.0633),("2011-10-01",0.0633),
("2012-01-01",0.0616),("2012-04-01",0.0621),("2012-07-01",0.0622),("2012-10-01",0.0621),
("2013-01-01",0.0626),("2013-04-01",0.0615),("2013-07-01",0.0628),("2013-10-01",0.0641),
("2014-01-01",0.0641),("2014-04-01",0.0641),("2014-07-01",0.0623),("2014-10-01",0.0614),
("2015-01-01",0.0604),("2015-04-01",0.0592),("2015-07-01",0.0582),("2015-10-01",0.0566),
("2016-01-01",0.0566),("2016-04-01",0.0563),("2016-07-01",0.0563),("2016-10-01",0.0563),
("2017-01-01",0.0563),("2017-04-01",0.0561),("2017-07-01",0.0561),("2017-10-01",0.0561),
("2018-01-01",0.0559),("2018-04-01",0.0560),("2018-07-01",0.0555),("2018-10-01",0.0554),
("2019-01-01",0.0542),("2019-04-01",0.0542),("2019-07-01",0.0489),("2019-10-01",0.0489),
("2020-01-01",0.0467),("2020-04-01",0.0493),("2020-07-01",0.0451),("2020-10-01",0.0441),
("2021-01-01",0.0441),("2021-04-01",0.0398),("2021-07-01",0.0382),("2021-10-01",0.0369),
("2022-01-01",0.0385),("2022-04-01",0.0416),("2022-07-01",0.0425),("2022-10-01",0.0501),
("2023-01-01",0.0517),("2023-04-01",0.0517),("2023-07-01",0.0581),("2023-10-01",0.0545),
("2024-01-01",0.0546),("2024-04-01",0.0521),("2024-07-01",0.0506),("2024-10-01",0.0507),
("2025-01-01",0.0507),("2025-04-01",0.0507),("2025-07-01",0.0507),("2025-10-01",0.0507),
("2026-01-01",0.0507),("2026-04-01",0.0507),
]
austin = [
("2005-01-01",0.0659),("2005-04-01",0.0638),("2005-07-01",0.0616),("2005-10-01",0.0604),
("2006-01-01",0.0603),("2006-04-01",0.0597),("2006-07-01",0.0597),("2006-10-01",0.0607),
("2007-01-01",0.0606),("2007-04-01",0.0605),("2007-07-01",0.0589),("2007-10-01",0.0588),
("2008-01-01",0.0588),("2008-04-01",0.0631),("2008-07-01",0.0729),("2008-10-01",0.0791),
("2009-01-01",0.0824),("2009-04-01",0.0825),("2009-07-01",0.0804),("2009-10-01",0.0725),
("2010-01-01",0.0720),("2010-04-01",0.0687),("2010-07-01",0.0665),("2010-10-01",0.0654),
("2011-01-01",0.0642),("2011-04-01",0.0630),("2011-07-01",0.0608),("2011-10-01",0.0618),
("2012-01-01",0.0628),("2012-04-01",0.0638),("2012-07-01",0.0627),("2012-10-01",0.0627),
("2013-01-01",0.0626),("2013-04-01",0.0615),("2013-07-01",0.0615),("2013-10-01",0.0617),
("2014-01-01",0.0601),("2014-04-01",0.0580),("2014-07-01",0.0559),("2014-10-01",0.0564),
("2015-01-01",0.0554),("2015-04-01",0.0544),("2015-07-01",0.0534),("2015-10-01",0.0534),
("2016-01-01",0.0534),("2016-04-01",0.0532),("2016-07-01",0.0532),("2016-10-01",0.0532),
("2017-01-01",0.0558),("2017-04-01",0.0557),("2017-07-01",0.0557),("2017-10-01",0.0556),
("2018-01-01",0.0555),("2018-04-01",0.0533),("2018-07-01",0.0533),("2018-10-01",0.0533),
("2019-01-01",0.0529),("2019-04-01",0.0529),("2019-07-01",0.0486),("2019-10-01",0.0486),
("2020-01-01",0.0449),("2020-04-01",0.0475),("2020-07-01",0.0433),("2020-10-01",0.0413),
("2021-01-01",0.0413),("2021-04-01",0.0360),("2021-07-01",0.0354),("2021-10-01",0.0343),
("2022-01-01",0.0358),("2022-04-01",0.0389),("2022-07-01",0.0398),("2022-10-01",0.0473),
("2023-01-01",0.0489),("2023-04-01",0.0489),("2023-07-01",0.0554),("2023-10-01",0.0528),
("2024-01-01",0.0529),("2024-04-01",0.0493),("2024-07-01",0.0477),("2024-10-01",0.0480),
("2025-01-01",0.0480),("2025-04-01",0.0500),("2025-07-01",0.0500),("2025-10-01",0.0500),
("2026-01-01",0.0490),("2026-04-01",0.0490),
]
def build(market_label, entity_id, series):
history = [{"period": p, "value": v, "source": "datamart"} for p, v in series]
hc = {"count": len(series), "sum": round(sum(v for _, v in series), 6), "last_value": series[-1][1]}
payload = {
"metric": {"name": "caprate_ts.multifamily", "units": "%", "family": "capital_markets"},
"subject": {"entity_type": "market", "entity_id": entity_id, "label": market_label},
"horizon": {"years": 3, "intervals": "annual"},
"as_of": "2026-09-11",
"caller_disclosures": {
"rate_instrument": "fed_funds"
},
"history": history,
"history_check": hc,
"context_signals": {
"rate_environment": {
"current_rate": 3.63,
"projected_rate": 3.4,
"projected_as_of": "2028",
"note": "Fed funds actual (Aug 2026) vs. FOMC median projection for 2028, the furthest available point"
}
},
"scenarios": []
}
with open(f"/vercel/sandbox/caprate/payload_{entity_id}.json", "w") as f:
json.dump(payload, f, indent=2)
print(entity_id, "written", len(series), "points")
build("Nashville, TN", "34980", nashville)
build("Raleigh, NC", "39580", raleigh)
build("Austin, TX", "12420", austin)
EOF
python3 /vercel/sandbox/caprate/build_payloads.pycd /vercel/sandbox && python skills/forecasting/scripts/forecast.py --version
for id in 34980 39580 12420; do
echo "=== $id ===";
python skills/forecasting/scripts/forecast.py --file caprate/payload_${id}.json > caprate/result_${id}.json;
cat caprate/result_${id}.json;
echo;
doneNashville prices the best going-in yield of the three — Austin's cap rate is tightest despite the worst fundamentals
Austin's Class A multifamily cap rate sits at 4.90% today — the tightest (most expensive) pricing of the three markets — even though Austin is the one still working through a genuine rent correction, not a stale print . Nashville trades at 5.18%, the widest of the group and roughly 20 bps above its own trailing-decade average, while Raleigh sits at 5.07%, almost exactly on its ten-year norm .
| Market | Current Cap Rate | Position in 21-Yr Band | Position in Trailing 10-Yr Band | Cap Rate vs. Own 10-Yr Avg | Asking Rent, 12-Mo Chg | Occupancy | Occupancy, 12-Mo Chg |
|---|---|---|---|---|---|---|---|
| 5.18%2 | 34% / mid1 | 77% / rich1 | +20 bps | +3.0% | 92.0% | -3.6 pp | |
| 5.07%2 | 29% / tight pricing1 | 65% / mid1 | +3 bps | -1.5% | 92.8% | -2.1 pp | |
| 4.90%2 | 31% / tight pricing1 | 68% / rich1 | +5 bps | -3.5% | 92.4% | -2.0 pp |
Why Austin is the one to be careful with. Its cap rate is the lowest of the three — tightest pricing, most dollars paid per dollar of NOI — yet its rents are down 3.5% over the trailing 12 months and occupancy has slipped to 92.4% , the legacy of the supply wave that hit Austin harder than almost any other Sun Belt market. Pricing hasn't caught up to fundamentals there; a buyer today is paying a premium multiple for a market still absorbing new units.
Nashville is the opposite story. It has the highest cap rate of the group (best going-in yield) and rents are still growing (+3.0% T12) — the combination of cheaper pricing and healthier top-line that "relative value" is supposed to mean. The one soft spot: occupancy fell 3.6 points over the year, the steepest of the three, so some of that rent growth is being bought with lease-up pressure rather than pure pricing power — worth underwriting carefully rather than extrapolating flat.
Raleigh is the balanced, unremarkable middle. Cap rate sits almost exactly at its own decade average, rents are down modestly (-1.5%), and it holds the best occupancy of the three (92.8%) — the safest read of the group, but not the one offering incremental yield.
One caveat that applies to all three: cap rates are still 70-80 bps below their full 21-year structural mean (5.6%-6.0% across these markets, spanning the GFC, ZIRP, and hiking-cycle regimes) , so none of the three is "cheap" against full-cycle history — they're cheap only relative to the ultra-compressed 2021 lows. And the rate backdrop is a wash across all three: fed funds sits at 3.63% today against a 2028 median FOMC projection of 3.4% — modest easing, but under the engine's 25 bp threshold for a directional call, so it reads "stable" and doesn't differentiate the three markets.
Bottom line: if forced to rank on relative value, Nashville > Raleigh > Austin — best yield, best rent trajectory, versus Austin carrying the most pricing risk relative to where its fundamentals actually are. What would change this: if Austin's absorption turns and rent growth reaccelerates before the next print, its tight cap rate would suddenly look justified rather than premature.
This is a read-only snapshot of a RealAI analysis.