Compare residents at Palm Valley Apartments (Round Rock, TX) to the Round Rock – east submarket: average FICO, past-due rate and its 12-month change, share of accounts above 75% utilization, and median household income. Then show Palm Valley's occupancy and in-place rent trend. If we held a pref position here, what would you be watching?
mkdir -p work && cat > work/palm_valley_compare.py <<'EOF'
pv = dict(fico=644.44, fico_lo=631.37, fico_hi=657.52, fico_n=38, pdr=0.0947, pdr_chg=0.0223, util75=0.33, util75_chg=-0.0491, hhi=76863)
sm = dict(fico=684.36, pdr=0.0634, pdr_chg=0.0044, util75=0.34, util75_chg=-0.0113, hhi=156894)
print("FICO gap (pts):", round(pv['fico']-sm['fico']))
print("Past-due gap (pp):", round((pv['pdr']-sm['pdr'])*100,1), " ratio:", round(pv['pdr']/sm['pdr'],2))
print("PDR 1yr ago PV/SM (%):", round((pv['pdr']-pv['pdr_chg'])*100,1), round((sm['pdr']-sm['pdr_chg'])*100,1))
print("PDR chg ratio PV/SM:", round(pv['pdr_chg']/sm['pdr_chg'],1))
print("Util75 gap (pp):", round((pv['util75']-sm['util75'])*100,1), " util75 1yr ago PV/SM:", round((pv['util75']-pv['util75_chg'])*100,1), round((sm['util75']-sm['util75_chg'])*100,1))
print("HHI gap %:", round((pv['hhi']/sm['hhi']-1)*100,1))
# rent trend
ip = {'2024-09':1350.04,'2025-03':1315.49,'2025-09':1288.90,'2026-03':1263.85,'2026-08':1261.44,'2026-09wk20':1255.50}
print("In-place 24mo chg %:", round((1255.50/1350.04-1)*100,1), " 12mo chg %:", round((1255.50/1288.90-1)*100,1))
tr = [-0.077160,-0.041044,-0.051063,-0.108412,-0.104342,-0.027876,-0.063625,-0.021251,-0.028040,-0.070101,-0.052299] # Oct25-Aug26
n = [12,9,14,11,14,13,16,11,9,12,12]
print("Wtd avg new-lease tradeout Oct25-Aug26 %:", round(sum(a*b for a,b in zip(tr,n))/sum(n)*100,1), " leases:", sum(n))
print("Rent-to-income (in-place*12/HHI) %:", round(1255.50*12/76863*100,1))
print("Exposure: unleased 43/340 %:", round(43/340*100,1), " vacant 26/340 %:", round(26/340*100,1))
print("Occupancy wk 9/6 -> 9/20 (pp):", round((0.923529-0.985294)*100,1))
print("Asking vs in-place gap %:", round((1265.42/1255.50-1)*100,1))
EOF
python3 work/palm_valley_compare.pyPalm Valley's residents are clearly weaker credit than the Round Rock – east submarket, and their credit is getting worse faster. Rent has been falling for two years, and occupancy dropped sharply in September. If we held a pref here, the September move-outs and how quickly those units re-lease would be the first thing to track.
| Metric | Palm Valley | Round Rock – east | What it means |
|---|---|---|---|
| Average FICO | 644 | 684 | 40 points lower |
| Past-due rate | 9.5% | 6.3% | About 1.5 times the submarket |
| Past-due change, last 12 months | +2.2 pts | +0.4 pts | Rising about 5 times as fast |
| Accounts above 75% utilization | 33% | 34% | Roughly equal |
| Median household income | $76,863 | $156,894 | About 51% lower, but overstated (see below) |
These gaps come from one calculation .
The sponsor bought in January 2022 for $67.25M, or about $198K per unit . That was near the peak, and rents have been falling since. With revenue shrinking and resident credit weakening, our cushion beneath the senior loan is getting thinner. I haven't seen the actual debt, the pref terms or the property financials. The estimated NOI margin is a modeled benchmark of 40% of effective gross income, not reported results .
Next step: get the T12 and the latest delinquency report. The key open question is whether rising resident past-dues are already hitting collections. That decides whether this is a weak market we can wait out or a credit problem developing at the property.
<br>This is a read-only snapshot of a RealAI analysis.