Find market-rate rental properties in Fairfax County, Arlington County, Alexandria, Loudoun County and Prince William County, VA with 150 or more units, built before 2000, whose latest sale was between January 2021 and December 2022. For each, show units, year built, renovation year, sale date and price per unit, current occupancy and its 12-month change, retention, and 12-month in-place rent change. Split the list into properties that look stabilized enough for agency takeout financing now and ones that don't yet
"""Agency-takeout stabilization screen for NoVA market-rate rentals
(150+ units, built <2000, latest sale 2021-01-01..2022-12-31).
Inputs transcribed from query_data results toolu_bdrk_01CQoFSuwLJjDjzogYMbXpYK (counties)
and toolu_bdrk_019DKrQwFfZtnANEYqzZKFZU (Alexandria city), rent_type == MARKET only.
Fields: name, juris, units, yb, yr_reno, sale_date, ppu, occ, occ_chg(pts, decimal), retention, ipr_chg(median, decimal), conf
"""
import json, csv
rows = [
("Vistas of Annandale","Fairfax",1065,1973,2022,"2022-07-20",258685,0.9465,-0.0376,0.7277,-0.0508,"EXCELLENT"),
("Monticello Falls Church","Fairfax",794,1964,2015,"2022-02-16",None,0.9723,-0.0050,0.8212,0.0317,"GOOD"),
("Amberleigh","Fairfax",752,1968,2009,"2022-09-29",180851,0.9548,0.0120,0.6835,0.0194,"EXCELLENT"),
("Halstead Fair Oaks","Fairfax",491,1987,2017,"2021-01-21",273117,0.9511,-0.0020,0.6538,-0.0059,"EXCELLENT"),
("Quimby on 23rd","Arlington",455,1971,2014,"2021-10-04",None,0.9516,-0.0022,0.4374,0.0323,"EXCELLENT"),
("Ravens Crest","Prince William",444,1989,2019,"2021-04-30",254505,0.9730,-0.0090,0.7703,0.0006,"EXCELLENT"),
("Huntington Gateway","Fairfax",443,1990,None,"2021-10-14",282167,0.9752,-0.0023,0.7991,0.0204,"EXCELLENT"),
("Arbors on Duke","Alexandria",400,1990,2022,"2021-07-19",None,0.9275,-0.0450,0.7475,0.0012,"EXCELLENT"),
("Avana Fieldstone","Loudoun",384,1987,2013,"2021-09-16",286458,0.8750,-0.0911,0.5781,0.0047,"EXCELLENT"),
("Fairway Apartments","Fairfax",346,1969,2018,"2021-05-04",268786,0.9335,-0.0462,0.8324,0.0362,"EXCELLENT"),
("Crystal Woods","Fairfax",344,1966,2014,"2021-09-01",285174,0.9709,0.0116,0.7471,0.0195,"EXCELLENT"),
("Dominion Plaza","Arlington",318,1956,2015,"2022-04-19",287736,0.9119,-0.0472,0.7736,-0.0018,"EXCELLENT"),
("Waterside at Reston","Fairfax",276,1985,2013,"2022-01-06",305616,0.9457,-0.0254,0.6123,0.0139,"EXCELLENT"),
("2410 Little Current Dr (unnamed)","Fairfax",269,1996,None,"2021-12-20",222454,None,None,None,None,None),
("Avana Stoney Ridge","Prince William",264,1985,2021,"2021-04-30",201515,0.8977,-0.0682,0.6250,0.0351,"EXCELLENT"),
("Colvin Woods","Fairfax",259,1979,2007,"2022-09-06",None,None,None,None,None,None),
("Windsor at Fair Lakes","Fairfax",250,1988,2009,"2022-11-21",320000,0.9520,-0.0040,0.7160,-0.0027,"EXCELLENT"),
("Eagle Rock at Columbia Pike","Arlington",247,1991,2011,"2021-12-28",449292,0.9393,-0.0405,0.6802,0.0006,"EXCELLENT"),
("The Knoll at Fair Oaks","Fairfax",246,1989,2015,"2022-08-02",338211,0.9512,-0.0366,0.6260,0.0107,"EXCELLENT"),
("Chase Heritage","Loudoun",236,1986,2010,"2021-01-29",243644,0.9364,-0.0593,0.8644,0.0197,"EXCELLENT"),
("Windsor Park","Prince William",220,1986,2008,"2021-12-27",284823,0.9682,-0.0136,0.7273,0.0055,"EXCELLENT"),
("Barton House","Arlington",214,1966,None,"2021-12-15",350467,None,None,None,None,None),
("J Harbor Park at North Point","Fairfax",190,1996,2007,"2021-09-14",347105,0.9684,-0.0053,0.7211,0.0146,"EXCELLENT"),
("101 North Ripley","Alexandria",189,1963,2022,"2022-06-09",265079,0.9788,0.0741,0.6138,-0.0298,"EXCELLENT"),
("Cortland Arlington","Arlington",184,1986,None,"2022-07-06",545652,0.9620,0.0707,0.7283,-0.0066,"EXCELLENT"),
("Springwoods at Lake Ridge","Prince William",180,1986,2022,"2021-12-27",285216,0.9667,-0.0111,0.7667,0.0232,"EXCELLENT"),
("Trellis Herndon","Fairfax",168,1988,None,"2022-07-05",136161,0.9821,0.0119,0.4881,0.0174,"EXCELLENT"),
("The Glen","Fairfax",152,1978,None,"2022-10-20",240132,0.9671,-0.0132,0.8158,-0.0262,"GOOD"),
]
# Screen (agency floor is ~90% physical occupancy sustained ~90 days; we require a buffer):
# NOT YET if occ < 93%, OR (occ < 95% AND occupancy fell > 3 pts YoY), OR in-place rent fell > 3% YoY
# Flags (still Ready): retention < 55%; rent down 2-3%; occ up > 5 pts YoY (verify 90-day seasoning);
# occ down > 3 pts but >= 95%; sample confidence below EXCELLENT
out = []
for r in rows:
name,j,u,yb,yr,sd,ppu,occ,dch,ret,ipr,conf = r
flags=[]
if occ is None:
status="No current data"
else:
fail = occ<0.93 or (occ<0.95 and dch<-0.03) or ipr<-0.03
status = "Not yet" if fail else "Ready"
if ret<0.55: flags.append("retention <55%")
if -0.03<=ipr<-0.02: flags.append("in-place rent down 2-3%")
if dch>0.05: flags.append("occupancy just recovered - verify 90-day seasoning")
if dch<-0.03 and occ>=0.95: flags.append("occupancy down >3 pts YoY")
if conf!="EXCELLENT": flags.append(f"{conf} sample confidence")
out.append(dict(name=name,juris=j,units=u,year_built=yb,year_renovated=yr,sale_date=sd,price_per_unit=ppu,
occupancy=occ,occ_chg_pts=None if dch is None else round(dch*100,2),retention=ret,
ipr_t12_chg=ipr,status=status,flags="; ".join(flags)))
with open("extracts/nova_agency_screen.csv","w",newline="") as f:
w=csv.DictWriter(f,fieldnames=out[0].keys()); w.writeheader(); w.writerows(out)
from collections import Counter
print(Counter(o["status"] for o in out))
for s in ["Ready","Not yet","No current data"]:
g=[o for o in out if o["status"]==s]
print(f"\n== {s} ({len(g)}) units={sum(o['units'] for o in g)}")
for o in g: print(o["name"],o["occupancy"],o["occ_chg_pts"],o["ipr_t12_chg"],o["flags"])
rd=[o for o in out if o["status"]=="Ready"]; ny=[o for o in out if o["status"]=="Not yet"]
import statistics as st
print("\nmedian occ ready",st.median(o["occupancy"] for o in rd),"not yet",st.median(o["occupancy"] for o in ny))
print("median occ chg ready",st.median(o["occ_chg_pts"] for o in rd),"not yet",st.median(o["occ_chg_pts"] for o in ny))
mkdir -p extracts && python scripts/nova_agency_screen.py
Of the 28 market-rate properties that meet your filters, 17 look stabilized enough for an agency takeout now, 8 don't yet, and 3 have no current operating data. All figures are as of the 9/26/2026 rent-index read.
The two groups split mainly on whether occupancy is holding, not on rents. The median "ready" property is 96.7% occupied and lost 0.4 points over the year. The median "not yet" property is 93.1% occupied and lost 4.7 points . In-place rents are roughly flat across both groups, so rent levels aren't what holds anyone back.
How I split them: Fannie Mae and Freddie Mac generally want at least 90% physical occupancy held for about 90 days. I added a cushion above that. A property is "not yet" if any of these is true:
What I filtered out and missed:
| Property | Jurisdiction | Units | Year built | Renovated | Latest sale | Price/unit | Occupancy | Occ. 12-mo chg (pts) | Retention | In-place rent 12-mo chg (median) | Flags |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Fairfax Co. | 794 | 1964 | 2015 | 2/16/2022 | n/a | 97.2%1 | -0.5 | 82.1%2 | +3.2%3 | Good (not excellent) sample confidence; no sale price4 | |
| Fairfax Co. | 752 | 1968 | 2009 | 9/29/2022 | $180,851 | 95.5% | +1.2 | 68.4% | +1.9% | — | |
| Fairfax Co. | 491 | 1987 | 2017 | 1/21/2021 | $273,117 | 95.1% | -0.2 | 65.4% | -0.6% | — | |
| Arlington | 455 | 1971 | 2014 | 10/4/2021 | n/a | 95.2% | -0.2 | 43.7% | +3.2% | Low retention; no sale price | |
| Prince William | 444 | 1989 | 2019 | 4/30/2021 | $254,505 | 97.3% | -0.9 | 77.0% | +0.1% | — | |
| Fairfax Co. | 443 | 1990 | — | 10/14/2021 | $282,167 | 97.5% | -0.2 | 79.9% | +2.0% | — | |
| Fairfax Co. | 344 | 1966 | 2014 | 9/1/2021 | $285,174 | 97.1% | +1.2 | 74.7% | +2.0% | — | |
| Fairfax Co. | 276 | 1985 | 2013 | 1/6/2022 | $305,616 | 94.6% | -2.5 | 61.2% | +1.4% | Borderline | |
| Fairfax Co. | 250 | 1988 | 2009 | 11/21/2022 | $320,000 | 95.2% | -0.4 | 71.6% | -0.3% | — | |
| Fairfax Co. | 246 | 1989 | 2015 | 8/2/2022 | $338,211 | 95.1% | -3.7 | 62.6% | +1.1% | Occupancy down >3 pts | |
| Prince William | 220 | 1986 | 2008 | 12/27/2021 | $284,823 | 96.8% | -1.4 | 72.7% | +0.6% | — | |
| Fairfax Co. | 190 | 1996 | 2007 | 9/14/2021 | $347,105 | 96.8% | -0.5 | 72.1% | +1.5% | — | |
| Alexandria | 189 | 1963 | 2022 | 6/9/2022 | $265,079 | 97.9% | +7.4 | 61.4% | -3.0% | Just recovered; rents cut | |
| Arlington | 184 | 1986 | — | 7/6/2022 | $545,652 | 96.2% | +7.1 | 72.8% | -0.7% | Just recovered; verify 90 days | |
| Prince William | 180 | 1986 | 2022 | 12/27/2021 | $285,216 | 96.7% | -1.1 | 76.7% | +2.3% | — | |
| Fairfax Co. | 168 | 1988 | — | 7/5/2022 | $136,161 | 98.2% | +1.2 | 48.8% | +1.7% | Low retention; price/unit looks off | |
| Fairfax Co. | 152 | 1978 | — | 10/20/2022 | $240,132 | 96.7% | -1.3 | 81.6% | -2.6% | Rents slipping; Good sample confidence |
Cleanest of the group: Ravens Crest, Huntington Gateway, Crystal Woods, Windsor Park, J Harbor Park and Springwoods. Each is at least 96.7% occupied, lost no more than 1.4 points over the year, and has in-place rents flat to up.
Ready, but check these first:
| Property | Jurisdiction | Units | Year built | Renovated | Latest sale | Price/unit | Occupancy | Occ. 12-mo chg (pts) | Retention | In-place rent 12-mo chg (median) | Why not yet |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Fairfax Co. | 1,065 | 1973 | 2022 | 7/20/2022 | $258,685 | 94.7%1 | -3.8 | 72.8% | -5.1% | Occupancy and rents both falling | |
| Alexandria | 400 | 1990 | 2022 | 7/19/2021 | n/a | 92.8% | -4.5 | 74.8% | +0.1% | Below 93%, falling | |
| Loudoun | 384 | 1987 | 2013 | 9/16/2021 | $286,458 | 87.5% | -9.1 | 57.8% | +0.5% | Below the 90% agency floor | |
| Fairfax Co. | 346 | 1969 | 2018 | 5/4/2021 | $268,786 | 93.4% | -4.6 | 83.2% | +3.6% | Occupancy sliding | |
| Arlington | 318 | 1956 | 2015 | 4/19/2022 | $287,736 | 91.2% | -4.7 | 77.4% | -0.2% | Barely above floor, falling | |
| Prince William | 264 | 1985 | 2021 | 4/30/2021 | $201,515 | 89.8% | -6.8 | 62.5% | +3.5% | Below the 90% agency floor | |
| Arlington | 247 | 1991 | 2011 | 12/28/2021 | $449,292 | 93.9% | -4.1 | 68.0% | +0.1% | Occupancy sliding | |
| Loudoun | 236 | 1986 | 2010 | 1/29/2021 | $243,644 | 93.6% | -5.9 | 86.4% | +2.0% | Occupancy sliding |
Rent cuts would be the wrong fix for most of these. Fairway, Chase Heritage and Avana Stoney Ridge all lost 4.6–6.8 points of occupancy while raising in-place rents 2.0–3.6% . They look like they pushed rents ahead of demand. Easing renewal increases would probably bring them back to about 95% within a couple of quarters.
Avana Fieldstone is furthest away. It's at 87.5%, down 9.1 points , and would need a bridge extension or a lease-up period first.
Vistas of Annandale is the biggest problem. It's the largest asset on the list at 1,065 units, and it's the only one where occupancy and in-place rent are both falling: down 3.8 points and 5.1% .
The data has no rent or occupancy reads for these, so I couldn't screen them. You'd need a rent roll and T-12 (trailing 12 months of operations) from the owner:
One timing point: the 2021–22 buyers mostly used floating-rate bridge loans, so many of these are in their extension window now. That makes the "not yet" group the likeliest place to find owners under refinancing pressure.
The full screen is saved at extracts/nova_agency_screen.csv.
This is a read-only snapshot of a RealAI analysis.