How are rent spreads trending in Orlando at the unit type level?
cat << 'EOF' > /vercel/sandbox/spread_analysis.py
import json
data = [
("2026-08",0,1516.948396,1435.044593,-0.003632,101),
("2026-08",1,1674.873804,1558.335389,-0.007167,1553),
("2026-08",2,1990.335636,1865.600534,-0.007665,1738),
("2026-08",3,2257.313668,2090.322398,-0.008191,620),
("2026-08",4,2315.481159,1988.029515,0.014552,88),
("2025-08",0,1503.841390,1482.557490,-0.024772,61),
("2025-08",1,1648.345878,1552.259558,-0.001658,882),
("2025-08",2,2000.164191,1869.548331,-0.007113,954),
("2025-08",3,2312.514957,2052.588331,-0.003089,287),
("2025-08",4,2323.617284,1903.837563,0.051888,24),
("2026-02",0,1488.752113,1460.415857,-0.026342,60),
("2026-02",1,1622.109118,1552.182408,-0.021924,1120),
("2026-02",2,1953.302258,1864.542033,-0.025000,1209),
("2026-02",3,2262.497968,2063.418324,-0.018584,394),
("2026-02",4,2374.688976,1937.638983,0.046737,28),
]
beds = {0:"Studio",1:"1BR",2:"2BR",3:"3BR",4:"4BR+"}
def spread(ask,inplace):
return (ask-inplace)/inplace*100
rows = {}
for month,b,ask,ip,tr,n in data:
rows.setdefault(b,{})[month] = {"ask":ask,"ip":ip,"spread":spread(ask,ip),"tradeout":tr*100,"n":n}
print(f"{'Unit':6} {'Spread Aug25':>13} {'Spread Feb26':>13} {'Spread Aug26':>13} {'Chg T12 (pp)':>13} {'Tradeout Aug26':>15} {'N(tradeout)':>12}")
for b in [0,1,2,3,4]:
r = rows[b]
s25 = r["2025-08"]["spread"]
s26feb = r["2026-02"]["spread"]
s26aug = r["2026-08"]["spread"]
chg = s26aug - s25
to = r["2026-08"]["tradeout"]
n = r["2026-08"]["n"]
print(f"{beds[b]:6} {s25:12.1f}% {s26feb:12.1f}% {s26aug:12.1f}% {chg:12.1f} {to:14.2f}% {n:12}")
EOF
python3 /vercel/sandbox/spread_analysis.pyOrlando's rent story is bifurcating by unit type: the spread between asking and in-place rents is widening on studios and one-beds while compressing hard on three- and four-bedrooms — and tradeouts confirm none of it is landing yet.
Market-wide, the asking-vs-in-place gap actually widened slightly over the past year (7.2% → 7.7%) , which reads as pricing power until you check tradeouts: new-lease trade-outs are running essentially flat to negative on every bedroom count except the thin-sample 4BR+ segment . That's the tell — asking rents are aspirational, not confirmed.
The split by unit type is the real finding:
| Unit Type | Spread Aug 2025 | Spread Feb 2026 | Spread Aug 2026 | 12-Month Change (pp) | Latest Tradeout % | Tradeout Sample Size |
|---|---|---|---|---|---|---|
| Studio | 1.4% | 1.9% | 5.7% | +4.3pp | -0.4% | 101 |
| 1BR | 6.2% | 4.5% | 7.5% | +1.3pp | -0.7% | 1,553 |
| 2BR | 7.0% | 4.8% | 6.7% | -0.3pp | -0.8% | 1,738 |
| 3BR | 12.7% | 9.6% | 8.0% | -4.7pp | -0.8% | 620 |
| 4BR+ | 22.0% | 22.6% | 16.5% | -5.6pp | +1.5% | 881 |
Small units: landlords are stretching, not confirming. Studio spread nearly quadrupled (1.4% → 5.7%) and 1BR widened (6.2% → 7.5%) , but both segments are signing new leases below the prior tenant's rent (-0.4% and -0.7% tradeouts) . That combination — rising asking premium, negative tradeout — is the classic sign of sticker-shock pricing that isn't clearing the market. Occupancy market-wide has fallen from 96.0% to 92.3% over the same 12 months , consistent with renters resisting the ask.
Large units are the opposite story — and the more interesting one. The 3BR spread compressed from 12.7% to 8.0% and 4BR+ from 22.0% to 16.5% — operators are pulling asking rents down toward what large units actually lease for, the healthier form of price discovery. 3BR tradeouts are still slightly negative (-0.8%, on a solid 620-lease sample), so even the correction hasn't fully caught up, but the direction is right-sizing rather than stretching.
2BR — the largest, most liquid unit type (1,738 leases) — is the bellwether and it's flat-to-softening: spread roughly steady around 6.7-7.0% but tradeout at -0.8%, meaning new leases are still signing below expiring rents even as asking barely moves. That's the segment to watch for market direction, not the studio/4BR extremes.
I'd act on this now: push asking rents on 3BR/4BR listings is over — that gap has been closing for two straight quarters and further asking increases there will just extend days-on-market. On studios and 1BRs, the growing spread is not supportable at current occupancy; underwriting rent growth off asking rates in the small-unit segment will overstate what's actually collectible. The one number that would flip this read: two consecutive months of positive tradeouts on 1BR/2BR — that would confirm the asking premium is finally clearing rather than just sitting on the market.
This is a read-only snapshot of a RealAI analysis.