What are the fastest growing neighborhoods in Denver? Please include household income time series, rent growth, and new construction supply as important measures.
import json, re
data = json.load(open('raw.json'))['data']
records = []
for d in data:
dem = d.get('demographic_basics', {}) or {}
hh = d.get('household_financials_snapshot', {}) or {}
rent = d.get('mf_rent_and_occupancy_detail', {}) or {}
# parse sample sizes from confidence JSON strings
def sample_size(conf_str):
if not conf_str:
return None
try:
j = json.loads(conf_str)
return j.get('sample_size')
except Exception:
return None
hhi_n = sample_size(hh.get('hhi_conf'))
asking_n = sample_size(rent.get('asking_rent_latest_conf'))
def fnum(x):
try:
return float(x)
except (TypeError, ValueError):
return None
rec = {
"entity": d["name"],
"id": d["id"],
"hhi_median": fnum(hh.get("hhi_median")),
"hhi_t12": fnum(hh.get("hhi_median_t12_pct_chg")),
"hhi_t6": fnum(hh.get("hhi_median_t6_pct_chg")),
"hhi_n": hhi_n,
"in_place_rent_t12": fnum(rent.get("in_place_rent_t12_pct_chg_median")),
"asking_rent_t12": fnum(rent.get("asking_rent_t12_pct_chg_median")),
"asking_n": asking_n,
"occupancy_latest": fnum(rent.get("occupancy_latest")),
"occupancy_t12_chg": fnum(rent.get("occupancy_t12_pct_chg")),
"supply_growth_1yr": fnum(dem.get("housing_supply_growth_1_year")),
"supply_growth_5yr": fnum(dem.get("housing_supply_growth_5_year")),
"population_growth_5yr": fnum(dem.get("population_growth_5_year")),
"population_growth_1yr": fnum(dem.get("population_growth")),
"total_population_est": fnum(dem.get("total_population_est")),
}
records.append(rec)
json.dump(records, open('records.json', 'w'), indent=2)
print(len(records), "records written")
print("Missing hhi_t12:", sum(1 for r in records if r["hhi_t12"] is None))
print("Missing in_place_rent_t12:", sum(1 for r in records if r["in_place_rent_t12"] is None))
print("Missing supply_growth_1yr:", sum(1 for r in records if r["supply_growth_1yr"] is None))
cat > /vercel/sandbox/save_raw.py << 'PYEOF' # placeholder, will write raw.json directly via python with embedded data - too large to embed manually. PYEOF echo done
{"data":[{"id":"02b58c8e116a1f710cd644c79fa50f24","name":"Cole","demographic_basics":{"housing_supply_growth_1_year":0.0415,"housing_supply_growth_5_year":0.2205,"population_growth":0.0211,"population_growth_5_year":-0.0138,"total_population_est":34571},"household_financials_snapshot":{"hhi_median":137913,"hhi_conf":"{\"sample_size\":1645}","hhi_median_t6_pct_chg":0.0417,"hhi_median_t12_pct_chg":0.0689},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":206}","asking_rent_t12_pct_chg_median":"-0.0265","in_place_rent_t12_pct_chg_median":"0.0089","occupancy_latest":0.8573,"occupancy_t12_pct_chg":-0.0338}},
{"id":"099cb212bb40ab9ae589f85225317f74","name":"Westwood","demographic_basics":{"housing_supply_growth_1_year":0.015,"housing_supply_growth_5_year":-0.0246,"population_growth":-0.0095,"population_growth_5_year":-0.1574,"total_population_est":59523},"household_financials_snapshot":{"hhi_median":71590,"hhi_conf":"{\"sample_size\":3442}","hhi_median_t6_pct_chg":0.0284,"hhi_median_t12_pct_chg":0.0464},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":18}","asking_rent_t12_pct_chg_median":"-0.0430","in_place_rent_t12_pct_chg_median":"0.0000","occupancy_latest":0.9547,"occupancy_t12_pct_chg":0.0453}},
{"id":"0e19afeef8e81080bdc900c26021d023","name":"Jefferson Park","demographic_basics":{"housing_supply_growth_1_year":0.039,"housing_supply_growth_5_year":0.2003,"population_growth":0.0197,"population_growth_5_year":0.0716,"total_population_est":38177},"household_financials_snapshot":{"hhi_median":160517,"hhi_conf":"{\"sample_size\":2267}","hhi_median_t6_pct_chg":0.0008,"hhi_median_t12_pct_chg":0.0466},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":286}","asking_rent_t12_pct_chg_median":"-0.0140","in_place_rent_t12_pct_chg_median":"-0.0136","occupancy_latest":0.8961,"occupancy_t12_pct_chg":-0.0427}},
{"id":"0e55483ad6d74a775e4720541afe7d06","name":"Hilltop","demographic_basics":{"housing_supply_growth_1_year":0.0105,"housing_supply_growth_5_year":0.0371,"population_growth":0.0246,"population_growth_5_year":0.0197,"total_population_est":37203},"household_financials_snapshot":{"hhi_median":355611,"hhi_conf":"{\"sample_size\":3095}","hhi_median_t6_pct_chg":-0.014,"hhi_median_t12_pct_chg":-0.0256},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":69}","asking_rent_t12_pct_chg_median":"-0.1064","in_place_rent_t12_pct_chg_median":"-0.0847","occupancy_latest":0.9451,"occupancy_t12_pct_chg":0.0014}},
{"id":"0e86c79f025adae39a6823366e4152b4","name":"DIA","demographic_basics":{"housing_supply_growth_1_year":0.0615,"housing_supply_growth_5_year":0.3468,"population_growth":0.0092,"population_growth_5_year":0.2782,"total_population_est":41590},"household_financials_snapshot":{"hhi_median":114899,"hhi_conf":"{\"sample_size\":1520}","hhi_median_t6_pct_chg":0.0316,"hhi_median_t12_pct_chg":0.0808},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":415}","asking_rent_t12_pct_chg_median":"-0.0284","in_place_rent_t12_pct_chg_median":"0.0280","occupancy_latest":0.9037,"occupancy_t12_pct_chg":-0.0526}},
{"id":"0fa88b782a2817c6551079375bac1048","name":"Southmoor Park","demographic_basics":{"housing_supply_growth_1_year":0.0202,"housing_supply_growth_5_year":0.1111,"population_growth":0.0272,"population_growth_5_year":0.0683,"total_population_est":23384},"household_financials_snapshot":{"hhi_median":103022,"hhi_conf":"{\"sample_size\":2303}","hhi_median_t6_pct_chg":-0.0373,"hhi_median_t12_pct_chg":-0.012},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":407}","asking_rent_t12_pct_chg_median":"-0.0154","in_place_rent_t12_pct_chg_median":"-0.0040","occupancy_latest":0.9082,"occupancy_t12_pct_chg":-0.0512}},
{"id":"0fd2d8a4e6576cf1bd4c805cc4bbc8fc","name":"Civic Center","demographic_basics":{"housing_supply_growth_1_year":0.0344,"housing_supply_growth_5_year":0.2939,"population_growth":-0.0056,"population_growth_5_year":0.0378,"total_population_est":35318},"household_financials_snapshot":{"hhi_median":111226,"hhi_conf":"{\"sample_size\":1864}","hhi_median_t6_pct_chg":-0.0174,"hhi_median_t12_pct_chg":-0.0155},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":1123}","asking_rent_t12_pct_chg_median":"0.0602","in_place_rent_t12_pct_chg_median":"0.0018","occupancy_latest":0.7755,"occupancy_t12_pct_chg":-0.1724}},
{"id":"1ba4f44c04afadaa72f7e27e04025849","name":"Sun Valley","demographic_basics":{"housing_supply_growth_1_year":0.0344,"housing_supply_growth_5_year":0.2939,"population_growth":-0.0056,"population_growth_5_year":0.0378,"total_population_est":35318},"household_financials_snapshot":{"hhi_median":37728,"hhi_conf":"{\"sample_size\":515}","hhi_median_t6_pct_chg":0.0407,"hhi_median_t12_pct_chg":0.0838},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":82}","asking_rent_t12_pct_chg_median":"-0.1046","in_place_rent_t12_pct_chg_median":"-0.0310","occupancy_latest":0.8357,"occupancy_t12_pct_chg":0.3813}},
{"id":"1fd9ebfce37df82b054763bc15c416b6","name":"North Capitol Hill","demographic_basics":{"housing_supply_growth_1_year":0.0163,"housing_supply_growth_5_year":0.0863,"population_growth":0.0038,"population_growth_5_year":0.049,"total_population_est":22441},"household_financials_snapshot":{"hhi_median":89556,"hhi_conf":"{\"sample_size\":2871}","hhi_median_t6_pct_chg":-0.096,"hhi_median_t12_pct_chg":-0.0977},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":599}","asking_rent_t12_pct_chg_median":"-0.0256","in_place_rent_t12_pct_chg_median":"-0.0202","occupancy_latest":0.8996,"occupancy_t12_pct_chg":-0.0278}},
{"id":"22794a1180f617b3f3b0a90ec5b2b4a4","name":"Washington Park West","demographic_basics":{"housing_supply_growth_1_year":0.0198,"housing_supply_growth_5_year":0.0807,"population_growth":0.0287,"population_growth_5_year":0.0866,"total_population_est":27564},"household_financials_snapshot":{"hhi_median":245735,"hhi_conf":"{\"sample_size\":3096}","hhi_median_t6_pct_chg":-0.0045,"hhi_median_t12_pct_chg":0.01},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":62}","asking_rent_t12_pct_chg_median":"-0.0028","in_place_rent_t12_pct_chg_median":"0.0424","occupancy_latest":0.9386,"occupancy_t12_pct_chg":-0.0068}},
{"id":"247f54163b44555c44d66c7c6da39552","name":"North Park Hill","demographic_basics":{"housing_supply_growth_1_year":-0.0288,"housing_supply_growth_5_year":-0.1659,"population_growth":-0.0375,"population_growth_5_year":-0.1934,"total_population_est":21542},"household_financials_snapshot":{"hhi_median":223573,"hhi_conf":"{\"sample_size\":3935}","hhi_median_t6_pct_chg":0.0083,"hhi_median_t12_pct_chg":-0.0091},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":0}","asking_rent_t12_pct_chg_median":"0.0000","in_place_rent_t12_pct_chg_median":"0.0000","occupancy_latest":1,"occupancy_t12_pct_chg":0.0361}},
{"id":"27cf32e0b8c53ccb12fe31ea93d2faff","name":"East Colfax","demographic_basics":{"housing_supply_growth_1_year":0.0105,"housing_supply_growth_5_year":0.0371,"population_growth":0.0246,"population_growth_5_year":0.0197,"total_population_est":37203},"household_financials_snapshot":{"hhi_median":87068,"hhi_conf":"{\"sample_size\":2847}","hhi_median_t6_pct_chg":-0.0138,"hhi_median_t12_pct_chg":0.0003},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":92}","asking_rent_t12_pct_chg_median":"-0.1177","in_place_rent_t12_pct_chg_median":"-0.1141","occupancy_latest":0.9321,"occupancy_t12_pct_chg":-0.0273}},
{"id":"2cf0af6d98e002e1416b67e4d61ee63c","name":"Regis","demographic_basics":{"housing_supply_growth_1_year":-0.0124,"housing_supply_growth_5_year":0.1246,"population_growth":0.0157,"population_growth_5_year":0.0611,"total_population_est":20746},"household_financials_snapshot":{"hhi_median":155891,"hhi_conf":"{\"sample_size\":1551}","hhi_median_t6_pct_chg":-0.0227,"hhi_median_t12_pct_chg":0.0046},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":1}","asking_rent_t12_pct_chg_median":"0.1893","in_place_rent_t12_pct_chg_median":"0.0141","occupancy_latest":1,"occupancy_t12_pct_chg":0}},
{"id":"2d5d8430ca869516e3b5fcca06d1af04","name":"Athmar Park","demographic_basics":{"housing_supply_growth_1_year":0.012,"housing_supply_growth_5_year":0.1415,"population_growth":-0.0193,"population_growth_5_year":-0.0364,"total_population_est":19246},"household_financials_snapshot":{"hhi_median":125441,"hhi_conf":"{\"sample_size\":2334}","hhi_median_t6_pct_chg":0.035,"hhi_median_t12_pct_chg":0.0792},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":2}","asking_rent_t12_pct_chg_median":"0.0279","in_place_rent_t12_pct_chg_median":"-0.0579","occupancy_latest":0.9943,"occupancy_t12_pct_chg":0.0028}},
{"id":"2e0ec66e131ecfd20d86564e8f0d5a56","name":"Rosedale","demographic_basics":{"housing_supply_growth_1_year":0.0195,"housing_supply_growth_5_year":0.1226,"population_growth":-0.0011,"population_growth_5_year":0.0546,"total_population_est":39113},"household_financials_snapshot":{"hhi_median":163202,"hhi_conf":"{\"sample_size\":1073}","hhi_median_t6_pct_chg":0.0313,"hhi_median_t12_pct_chg":0.046},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":0}","asking_rent_t12_pct_chg_median":null,"in_place_rent_t12_pct_chg_median":null,"occupancy_latest":null,"occupancy_t12_pct_chg":null}},
{"id":"3372a35bbcb36809425417fdcdec82e0","name":"Hampden South","demographic_basics":{"housing_supply_growth_1_year":0.0202,"housing_supply_growth_5_year":0.1111,"population_growth":0.0272,"population_growth_5_year":0.0683,"total_population_est":23384},"household_financials_snapshot":{"hhi_median":101742,"hhi_conf":"{\"sample_size\":6042}","hhi_median_t6_pct_chg":-0.0105,"hhi_median_t12_pct_chg":0.0213},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":326}","asking_rent_t12_pct_chg_median":"-0.0045","in_place_rent_t12_pct_chg_median":"0.0042","occupancy_latest":0.9389,"occupancy_t12_pct_chg":-0.0021}},
{"id":"33e8a16d666d9fae56045f13c149e26a","name":"Elyria Swansea","demographic_basics":{"housing_supply_growth_1_year":0.0937,"housing_supply_growth_5_year":0.5787,"population_growth":0.0433,"population_growth_5_year":0.2685,"total_population_est":17330},"household_financials_snapshot":{"hhi_median":97758,"hhi_conf":"{\"sample_size\":1749}","hhi_median_t6_pct_chg":0.0669,"hhi_median_t12_pct_chg":0.0882},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":189}","asking_rent_t12_pct_chg_median":"-0.0647","in_place_rent_t12_pct_chg_median":"-0.0159","occupancy_latest":0.9049,"occupancy_t12_pct_chg":-0.0076}},
{"id":"34957bc4f06c2291839904ea55696fba","name":"Northeast Park Hill","demographic_basics":{"housing_supply_growth_1_year":0.0937,"housing_supply_growth_5_year":0.5787,"population_growth":0.0433,"population_growth_5_year":0.2685,"total_population_est":17330},"household_financials_snapshot":{"hhi_median":108174,"hhi_conf":"{\"sample_size\":2812}","hhi_median_t6_pct_chg":0.0466,"hhi_median_t12_pct_chg":0.0592},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":70}","asking_rent_t12_pct_chg_median":"0.0123","in_place_rent_t12_pct_chg_median":"0.0354","occupancy_latest":0.9592,"occupancy_t12_pct_chg":0.0198}},
{"id":"376b0861da051482e3c3eb0d27ba34c5","name":"Villa Park","demographic_basics":{"housing_supply_growth_1_year":0.0344,"housing_supply_growth_5_year":0.2939,"population_growth":-0.0056,"population_growth_5_year":0.0378,"total_population_est":35318},"household_financials_snapshot":{"hhi_median":94096,"hhi_conf":"{\"sample_size\":2326}","hhi_median_t6_pct_chg":0.0545,"hhi_median_t12_pct_chg":0.0825},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":25}","asking_rent_t12_pct_chg_median":"-0.0633","in_place_rent_t12_pct_chg_median":"-0.1001","occupancy_latest":0.945,"occupancy_t12_pct_chg":0}},
{"id":"39b502972e75ae5ce95c99a313b0f711","name":"Barnum","demographic_basics":{"housing_supply_growth_1_year":0.015,"housing_supply_growth_5_year":-0.0246,"population_growth":-0.0095,"population_growth_5_year":-0.1574,"total_population_est":59523},"household_financials_snapshot":{"hhi_median":108565,"hhi_conf":"{\"sample_size\":1546}","hhi_median_t6_pct_chg":-0.0314,"hhi_median_t12_pct_chg":-0.0206},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":8}","asking_rent_t12_pct_chg_median":"0.0073","in_place_rent_t12_pct_chg_median":"0.0000","occupancy_latest":0.8596,"occupancy_t12_pct_chg":-0.0526}},
{"id":"39eb662a96ae57acafe66b10f640590f","name":"Indian Creek","demographic_basics":{"housing_supply_growth_1_year":0.0009,"housing_supply_growth_5_year":-0.0015,"population_growth":0.0166,"population_growth_5_year":-0.0265,"total_population_est":35883},"household_financials_snapshot":{"hhi_median":109480,"hhi_conf":"{\"sample_size\":1486}","hhi_median_t6_pct_chg":0.0101,"hhi_median_t12_pct_chg":0.0375},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":68}","asking_rent_t12_pct_chg_median":"-0.0595","in_place_rent_t12_pct_chg_median":"-0.0409","occupancy_latest":0.7934,"occupancy_t12_pct_chg":-0.1033}},
{"id":"400e34d16cd614454e4716e55bcbdcc6","name":"Sunnyside","demographic_basics":{"housing_supply_growth_1_year":0.039,"housing_supply_growth_5_year":0.2003,"population_growth":0.0197,"population_growth_5_year":0.0716,"total_population_est":38177},"household_financials_snapshot":{"hhi_median":161697,"hhi_conf":"{\"sample_size\":3978}","hhi_median_t6_pct_chg":0.0555,"hhi_median_t12_pct_chg":0.0805},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":84}","asking_rent_t12_pct_chg_median":"-0.0322","in_place_rent_t12_pct_chg_median":"-0.0154","occupancy_latest":0.9461,"occupancy_t12_pct_chg":-0.0035}},
{"id":"40b4cf58563fdf3328be320641b3a35c","name":"College View - South Platte","demographic_basics":{"housing_supply_growth_1_year":0.012,"housing_supply_growth_5_year":0.1415,"population_growth":-0.0193,"population_growth_5_year":-0.0364,"total_population_est":19246},"household_financials_snapshot":{"hhi_median":97743,"hhi_conf":"{\"sample_size\":1416}","hhi_median_t6_pct_chg":0.0352,"hhi_median_t12_pct_chg":0.0229},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":65}","asking_rent_t12_pct_chg_median":"-0.1240","in_place_rent_t12_pct_chg_median":"-0.1079","occupancy_latest":0.951,"occupancy_t12_pct_chg":0.0356}},
{"id":"4589da10254bbeb593c5c26c1829acdd","name":"Platt Park","demographic_basics":{"housing_supply_growth_1_year":0.0195,"housing_supply_growth_5_year":0.1226,"population_growth":-0.0011,"population_growth_5_year":0.0546,"total_population_est":39113},"household_financials_snapshot":{"hhi_median":241613,"hhi_conf":"{\"sample_size\":3130}","hhi_median_t6_pct_chg":-0.0183,"hhi_median_t12_pct_chg":-0.0132},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":27}","asking_rent_t12_pct_chg_median":"-0.0294","in_place_rent_t12_pct_chg_median":"-0.0296","occupancy_latest":0.9656,"occupancy_t12_pct_chg":0.0289}},
{"id":"4c7582122743f76daabc23d211a757cb","name":"City Park West","demographic_basics":{"housing_supply_growth_1_year":0.0163,"housing_supply_growth_5_year":0.0707,"population_growth":-0.0111,"population_growth_5_year":-0.0122,"total_population_est":19149},"household_financials_snapshot":{"hhi_median":104103,"hhi_conf":"{\"sample_size\":2485}","hhi_median_t6_pct_chg":0.0105,"hhi_median_t12_pct_chg":0.0262},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":88}","asking_rent_t12_pct_chg_median":"-0.0649","in_place_rent_t12_pct_chg_median":"-0.0296","occupancy_latest":0.9606,"occupancy_t12_pct_chg":0.026}},
{"id":"4c84249b6858b41bdcfc25de1249d18c","name":"Kennedy","demographic_basics":{"housing_supply_growth_1_year":-0.0023,"housing_supply_growth_5_year":0.0479,"population_growth":0.0056,"population_growth_5_year":0.0041,"total_population_est":39496},"household_financials_snapshot":{"hhi_median":60292,"hhi_conf":"{\"sample_size\":753}","hhi_median_t6_pct_chg":-0.038,"hhi_median_t12_pct_chg":-0.044},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":196}","asking_rent_t12_pct_chg_median":"-0.0291","in_place_rent_t12_pct_chg_median":"-0.0305","occupancy_latest":0.9551,"occupancy_t12_pct_chg":0.011}},
{"id":"4fc19291f20b7f9ffc7f2f4503113230","name":"Washington Virginia Vale","demographic_basics":{"housing_supply_growth_1_year":0.0253,"housing_supply_growth_5_year":0.1042,"population_growth":0.0045,"population_growth_5_year":0.0217,"total_population_est":19352},"household_financials_snapshot":{"hhi_median":92986,"hhi_conf":"{\"sample_size\":4470}","hhi_median_t6_pct_chg":-0.051,"hhi_median_t12_pct_chg":-0.0132},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":574}","asking_rent_t12_pct_chg_median":"-0.0785","in_place_rent_t12_pct_chg_median":"-0.0375","occupancy_latest":0.8881,"occupancy_t12_pct_chg":-0.046}},
{"id":"51e8d816336107d9ec1c4fe9050633dc","name":"Five Points","demographic_basics":{"housing_supply_growth_1_year":0.0415,"housing_supply_growth_5_year":0.2205,"population_growth":0.0211,"population_growth_5_year":-0.0138,"total_population_est":34571},"household_financials_snapshot":{"hhi_median":131001,"hhi_conf":"{\"sample_size\":9069}","hhi_median_t6_pct_chg":0.0138,"hhi_median_t12_pct_chg":0.0345},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":1470}","asking_rent_t12_pct_chg_median":"-0.0179","in_place_rent_t12_pct_chg_median":"-0.0166","occupancy_latest":0.9222,"occupancy_t12_pct_chg":-0.0122}},
{"id":"528f33cdb78df0f645eb0642d9b51a0b","name":"Central Business District","demographic_basics":{"housing_supply_growth_1_year":0.0226,"housing_supply_growth_5_year":0.2445,"population_growth":0.0195,"population_growth_5_year":0.216,"total_population_est":18589},"household_financials_snapshot":{"hhi_median":121681,"hhi_conf":"{\"sample_size\":1385}","hhi_median_t6_pct_chg":-0.0713,"hhi_median_t12_pct_chg":-0.0647},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":141}","asking_rent_t12_pct_chg_median":"-0.1380","in_place_rent_t12_pct_chg_median":"-0.0551","occupancy_latest":0.9703,"occupancy_t12_pct_chg":-0.0067}},
{"id":"55b90dcce61cf8f1a289f769cba9b1eb","name":"Skyland","demographic_basics":{"housing_supply_growth_1_year":0.0415,"housing_supply_growth_5_year":0.2205,"population_growth":0.0211,"population_growth_5_year":-0.0138,"total_population_est":34571},"household_financials_snapshot":{"hhi_median":151905,"hhi_conf":"{\"sample_size\":1441}","hhi_median_t6_pct_chg":0.0283,"hhi_median_t12_pct_chg":0.0364},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":1}","asking_rent_t12_pct_chg_median":"0.0135","in_place_rent_t12_pct_chg_median":"-0.0662","occupancy_latest":0.9565,"occupancy_t12_pct_chg":0}},
{"id":"566dc4bd3d4dd2e01550cc6aeb47096c","name":"Country Club","demographic_basics":{"housing_supply_growth_1_year":0.0163,"housing_supply_growth_5_year":0.0707,"population_growth":-0.0111,"population_growth_5_year":-0.0122,"total_population_est":19149},"household_financials_snapshot":{"hhi_median":406783,"hhi_conf":"{\"sample_size\":1233}","hhi_median_t6_pct_chg":-0.0139,"hhi_median_t12_pct_chg":-0.0172},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":1}","asking_rent_t12_pct_chg_median":"0.0466","in_place_rent_t12_pct_chg_median":"-0.0132","occupancy_latest":0.9091,"occupancy_t12_pct_chg":-0.0909}},
{"id":"5d5a3749a1f9371e4e85bdac1453bba6","name":"Gateway - Green Valley Ranch","demographic_basics":{"housing_supply_growth_1_year":0.0615,"housing_supply_growth_5_year":0.3468,"population_growth":0.0092,"population_growth_5_year":0.2782,"total_population_est":41590},"household_financials_snapshot":{"hhi_median":138584,"hhi_conf":"{\"sample_size\":11707}","hhi_median_t6_pct_chg":0.0395,"hhi_median_t12_pct_chg":0.0789},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":820}","asking_rent_t12_pct_chg_median":"-0.0628","in_place_rent_t12_pct_chg_median":"-0.0437","occupancy_latest":0.9184,"occupancy_t12_pct_chg":-0.0261}},
{"id":"62e47de3c688e10c763279f8893eac1f","name":"Marston","demographic_basics":{"housing_supply_growth_1_year":0.0098,"housing_supply_growth_5_year":-0.0172,"population_growth":-0.018,"population_growth_5_year":-0.0684,"total_population_est":44549},"household_financials_snapshot":{"hhi_median":101677,"hhi_conf":"{\"sample_size\":3734}","hhi_median_t6_pct_chg":-0.0022,"hhi_median_t12_pct_chg":0.0417},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":210}","asking_rent_t12_pct_chg_median":"0.0233","in_place_rent_t12_pct_chg_median":"0.0020","occupancy_latest":0.9317,"occupancy_t12_pct_chg":-0.0263}},
{"id":"64bcc763347328bf009f695aac3cb577","name":"Congress Park","demographic_basics":{"housing_supply_growth_1_year":-0.0171,"housing_supply_growth_5_year":0.0468,"population_growth":-0.007,"population_growth_5_year":-0.0272,"total_population_est":24383},"household_financials_snapshot":{"hhi_median":126693,"hhi_conf":"{\"sample_size\":4685}","hhi_median_t6_pct_chg":-0.0036,"hhi_median_t12_pct_chg":0.0191},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":126}","asking_rent_t12_pct_chg_median":"-0.0661","in_place_rent_t12_pct_chg_median":"-0.0150","occupancy_latest":0.9349,"occupancy_t12_pct_chg":0.0043}},
{"id":"73f639f1f80ef19ea70414ec6ae9c261","name":"Wellshire","demographic_basics":{"housing_supply_growth_1_year":0.0195,"housing_supply_growth_5_year":0.1226,"population_growth":-0.0011,"population_growth_5_year":0.0546,"total_population_est":39113},"household_financials_snapshot":{"hhi_median":346739,"hhi_conf":"{\"sample_size\":1214}","hhi_median_t6_pct_chg":-0.0419,"hhi_median_t12_pct_chg":-0.037},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":null,"asking_rent_t12_pct_chg_median":null,"in_place_rent_t12_pct_chg_median":null,"occupancy_latest":null,"occupancy_t12_pct_chg":null}},
{"id":"74bd13ba83e4ea8685f5c61bbd7e7af1","name":"Bear Valley","demographic_basics":{"housing_supply_growth_1_year":-0.0034,"housing_supply_growth_5_year":0.0533,"population_growth":-0.0011,"population_growth_5_year":0.0008,"total_population_est":34907},"household_financials_snapshot":{"hhi_median":104440,"hhi_conf":"{\"sample_size\":2620}","hhi_median_t6_pct_chg":-0.0079,"hhi_median_t12_pct_chg":0.0182},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":128}","asking_rent_t12_pct_chg_median":"-0.0967","in_place_rent_t12_pct_chg_median":"-0.0533","occupancy_latest":0.9416,"occupancy_t12_pct_chg":-0.0269}},
{"id":"7513c4deebe38e3cf1f73bc6387590fd","name":"South Park Hill","demographic_basics":{"housing_supply_growth_1_year":0.0105,"housing_supply_growth_5_year":0.0371,"population_growth":0.0246,"population_growth_5_year":0.0197,"total_population_est":37203},"household_financials_snapshot":{"hhi_median":275236,"hhi_conf":"{\"sample_size\":3267}","hhi_median_t6_pct_chg":-0.0222,"hhi_median_t12_pct_chg":-0.0441},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":160}","asking_rent_t12_pct_chg_median":"0.8523","in_place_rent_t12_pct_chg_median":"0.1955","occupancy_latest":0.5164,"occupancy_t12_pct_chg":-0.4638}},
{"id":"7569a8eddf74158b7b42999ecf9d2360","name":"Virginia Village","demographic_basics":{"housing_supply_growth_1_year":0.0247,"housing_supply_growth_5_year":0.0369,"population_growth":0.0232,"population_growth_5_year":0.0237,"total_population_est":23838},"household_financials_snapshot":{"hhi_median":105435,"hhi_conf":"{\"sample_size\":4830}","hhi_median_t6_pct_chg":0.0039,"hhi_median_t12_pct_chg":0.0212},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":194}","asking_rent_t12_pct_chg_median":"-0.0495","in_place_rent_t12_pct_chg_median":"-0.0702","occupancy_latest":0.9339,"occupancy_t12_pct_chg":-0.0117}},
{"id":"7960085b4f4928c2adc1d242634ba38c","name":"Montclair","demographic_basics":{"housing_supply_growth_1_year":0.0105,"housing_supply_growth_5_year":0.0371,"population_growth":0.0246,"population_growth_5_year":0.0197,"total_population_est":37203},"household_financials_snapshot":{"hhi_median":211927,"hhi_conf":"{\"sample_size\":2836}","hhi_median_t6_pct_chg":0.0257,"hhi_median_t12_pct_chg":0.0205},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":22}","asking_rent_t12_pct_chg_median":"-0.0459","in_place_rent_t12_pct_chg_median":"-0.0427","occupancy_latest":0.9119,"occupancy_t12_pct_chg":-0.0155}},
{"id":"7c040db7ce63f85515ba6978499efa55","name":"City Park","demographic_basics":{"housing_supply_growth_1_year":0.0415,"housing_supply_growth_5_year":0.2205,"population_growth":0.0211,"population_growth_5_year":-0.0138,"total_population_est":34571},"household_financials_snapshot":{"hhi_median":106110,"hhi_conf":"{\"sample_size\":1359}","hhi_median_t6_pct_chg":-0.0291,"hhi_median_t12_pct_chg":-0.006},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":57}","asking_rent_t12_pct_chg_median":"-0.0014","in_place_rent_t12_pct_chg_median":"0.0503","occupancy_latest":0.948,"occupancy_t12_pct_chg":-0.0205}},
{"id":"7c6c2e40c6f51a52f5b91bb0bf841822","name":"Cheesman Park","demographic_basics":{"housing_supply_growth_1_year":0.0163,"housing_supply_growth_5_year":0.0707,"population_growth":-0.0111,"population_growth_5_year":-0.0122,"total_population_est":19149},"household_financials_snapshot":{"hhi_median":106809,"hhi_conf":"{\"sample_size\":3935}","hhi_median_t6_pct_chg":-0.0005,"hhi_median_t12_pct_chg":0.0221},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":146}","asking_rent_t12_pct_chg_median":"0.0538","in_place_rent_t12_pct_chg_median":"0.0060","occupancy_latest":0.955,"occupancy_t12_pct_chg":0.0072}},
{"id":"7ed61bc6e3237f70d46da7a7acf9650a","name":"University Park","demographic_basics":{"housing_supply_growth_1_year":0.0195,"housing_supply_growth_5_year":0.1226,"population_growth":-0.0011,"population_growth_5_year":0.0546,"total_population_est":39113},"household_financials_snapshot":{"hhi_median":87453,"hhi_conf":"{\"sample_size\":3249}","hhi_median_t6_pct_chg":-0.008,"hhi_median_t12_pct_chg":0.0167},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":217}","asking_rent_t12_pct_chg_median":"-0.0313","in_place_rent_t12_pct_chg_median":"-0.0279","occupancy_latest":0.8831,"occupancy_t12_pct_chg":-0.0605}},
{"id":"80531467383732238a1ea65556857174","name":"Globeville","demographic_basics":{"housing_supply_growth_1_year":0.0937,"housing_supply_growth_5_year":0.5787,"population_growth":0.0433,"population_growth_5_year":0.2685,"total_population_est":17330},"household_financials_snapshot":{"hhi_median":79028,"hhi_conf":"{\"sample_size\":1240}","hhi_median_t6_pct_chg":0.0061,"hhi_median_t12_pct_chg":0.0249},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":95}","asking_rent_t12_pct_chg_median":"0.0155","in_place_rent_t12_pct_chg_median":"-0.0199","occupancy_latest":0.9629,"occupancy_t12_pct_chg":-0.0046}},
{"id":"81e9267d18eb22dea00376e1e2cc3295","name":"University Hills","demographic_basics":{"housing_supply_growth_1_year":0.0247,"housing_supply_growth_5_year":0.0369,"population_growth":0.0232,"population_growth_5_year":0.0237,"total_population_est":23838},"household_financials_snapshot":{"hhi_median":163370,"hhi_conf":"{\"sample_size\":2851}","hhi_median_t6_pct_chg":0.0171,"hhi_median_t12_pct_chg":0.0555},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":114}","asking_rent_t12_pct_chg_median":"-0.0178","in_place_rent_t12_pct_chg_median":"-0.0202","occupancy_latest":0.9002,"occupancy_t12_pct_chg":-0.0377}},
{"id":"849c8c543de7486652225c8e9f1f4c0d","name":"Highland","demographic_basics":{"housing_supply_growth_1_year":0.039,"housing_supply_growth_5_year":0.2003,"population_growth":0.0197,"population_growth_5_year":0.0716,"total_population_est":38177},"household_financials_snapshot":{"hhi_median":169747,"hhi_conf":"{\"sample_size\":4847}","hhi_median_t6_pct_chg":0.0265,"hhi_median_t12_pct_chg":0.0553},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":234}","asking_rent_t12_pct_chg_median":"-0.0168","in_place_rent_t12_pct_chg_median":"-0.0244","occupancy_latest":0.9406,"occupancy_t12_pct_chg":0.0129}},
{"id":"8926361b21c8a9d2146c6e86bfe572d9","name":"Overland","demographic_basics":{"housing_supply_growth_1_year":0.012,"housing_supply_growth_5_year":0.1415,"population_growth":-0.0193,"population_growth_5_year":-0.0364,"total_population_est":19246},"household_financials_snapshot":{"hhi_median":137664,"hhi_conf":"{\"sample_size\":1681}","hhi_median_t6_pct_chg":0.0395,"hhi_median_t12_pct_chg":0.0849},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":170}","asking_rent_t12_pct_chg_median":"-0.0272","in_place_rent_t12_pct_chg_median":"-0.0220","occupancy_latest":0.9266,"occupancy_t12_pct_chg":-0.0232}},
{"id":"8cbc7a8f87b4c9c0b2acf60e18d91a09","name":"Speer","demographic_basics":{"housing_supply_growth_1_year":0.012,"housing_supply_growth_5_year":0.1415,"population_growth":-0.0193,"population_growth_5_year":-0.0364,"total_population_est":19246},"household_financials_snapshot":{"hhi_median":130232,"hhi_conf":"{\"sample_size\":6079}","hhi_median_t6_pct_chg":-0.0092,"hhi_median_t12_pct_chg":0.0104},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":426}","asking_rent_t12_pct_chg_median":"-0.0951","in_place_rent_t12_pct_chg_median":"0.0142","occupancy_latest":0.9529,"occupancy_t12_pct_chg":0.0007}},
{"id":"8e0f586249fbcce9d7ea8bd0511ae4e3","name":"Auraria","demographic_basics":{"housing_supply_growth_1_year":0.0344,"housing_supply_growth_5_year":0.2939,"population_growth":-0.0056,"population_growth_5_year":0.0378,"total_population_est":35318},"household_financials_snapshot":{"hhi_median":150271,"hhi_conf":"{\"sample_size\":191}","hhi_median_t6_pct_chg":0.0304,"hhi_median_t12_pct_chg":0.043},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":null,"asking_rent_t12_pct_chg_median":null,"in_place_rent_t12_pct_chg_median":null,"occupancy_latest":null,"occupancy_t12_pct_chg":null}},
{"id":"8f0ad89ed455c8124cc6c58b59a7ea69","name":"Harvey Park South","demographic_basics":{"housing_supply_growth_1_year":-0.0075,"housing_supply_growth_5_year":-0.034,"population_growth":-0.02,"population_growth_5_year":-0.1231,"total_population_est":16863},"household_financials_snapshot":{"hhi_median":122098,"hhi_conf":"{\"sample_size\":2526}","hhi_median_t6_pct_chg":0.0397,"hhi_median_t12_pct_chg":0.0427},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":110}","asking_rent_t12_pct_chg_median":"-0.0814","in_place_rent_t12_pct_chg_median":"0.0160","occupancy_latest":0.9135,"occupancy_t12_pct_chg":-0.0736}},
{"id":"91d0dba201b1f4abf6dc4a5ef2edc2f1","name":"Montbello","demographic_basics":{"housing_supply_growth_1_year":0.0037,"housing_supply_growth_5_year":0.0843,"population_growth":0.0199,"population_growth_5_year":-0.0601,"total_population_est":44956},"household_financials_snapshot":{"hhi_median":115855,"hhi_conf":"{\"sample_size\":7225}","hhi_median_t6_pct_chg":0.0049,"hhi_median_t12_pct_chg":0.0249},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":74}","asking_rent_t12_pct_chg_median":"0.0007","in_place_rent_t12_pct_chg_median":"-0.0180","occupancy_latest":0.9799,"occupancy_t12_pct_chg":0.062}},
{"id":"97666f35da1948bb452233730861861b","name":"West Colfax","demographic_basics":{"housing_supply_growth_1_year":0.0344,"housing_supply_growth_5_year":0.2939,"population_growth":-0.0056,"population_growth_5_year":0.0378,"total_population_est":35318},"household_financials_snapshot":{"hhi_median":141380,"hhi_conf":"{\"sample_size\":4967}","hhi_median_t6_pct_chg":-0.0091,"hhi_median_t12_pct_chg":0.0151},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":335}","asking_rent_t12_pct_chg_median":"-0.0571","in_place_rent_t12_pct_chg_median":"-0.0429","occupancy_latest":0.935,"occupancy_t12_pct_chg":0.0211}},
{"id":"97fb417d0e7df3ac40bb17f7e6920b3c","name":"Berkeley","demographic_basics":{"housing_supply_growth_1_year":-0.0124,"housing_supply_growth_5_year":0.1246,"population_growth":0.0157,"population_growth_5_year":0.0611,"total_population_est":20746},"household_financials_snapshot":{"hhi_median":220634,"hhi_conf":"{\"sample_size\":4059}","hhi_median_t6_pct_chg":0.0303,"hhi_median_t12_pct_chg":0.0273},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":58}","asking_rent_t12_pct_chg_median":"-0.0685","in_place_rent_t12_pct_chg_median":"-0.0458","occupancy_latest":0.9265,"occupancy_t12_pct_chg":-0.0131}},
{"id":"9d279c2429eff79ba0de06aef4d51674","name":"University","demographic_basics":{"housing_supply_growth_1_year":0.0195,"housing_supply_growth_5_year":0.1226,"population_growth":-0.0011,"population_growth_5_year":0.0546,"total_population_est":39113},"household_financials_snapshot":{"hhi_median":152935,"hhi_conf":"{\"sample_size\":2813}","hhi_median_t6_pct_chg":-0.0315,"hhi_median_t12_pct_chg":-0.0263},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":107}","asking_rent_t12_pct_chg_median":"0.3082","in_place_rent_t12_pct_chg_median":"0.0656","occupancy_latest":0.8742,"occupancy_t12_pct_chg":-0.0173}},
{"id":"a4bd445e76296cda9266f3d4bed026c6","name":"Barnum West","demographic_basics":{"housing_supply_growth_1_year":0.015,"housing_supply_growth_5_year":-0.0246,"population_growth":-0.0095,"population_growth_5_year":-0.1574,"total_population_est":59523},"household_financials_snapshot":{"hhi_median":111483,"hhi_conf":"{\"sample_size\":1588}","hhi_median_t6_pct_chg":0.0578,"hhi_median_t12_pct_chg":0.071},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":0}","asking_rent_t12_pct_chg_median":"-0.1839","in_place_rent_t12_pct_chg_median":"-0.1163","occupancy_latest":null,"occupancy_t12_pct_chg":null}},
{"id":"abdb5b28b9be56aa2842582e00fb32ea","name":"Cory - Merrill","demographic_basics":{"housing_supply_growth_1_year":0.0195,"housing_supply_growth_5_year":0.1226,"population_growth":-0.0011,"population_growth_5_year":0.0546,"total_population_est":39113},"household_financials_snapshot":{"hhi_median":336050,"hhi_conf":"{\"sample_size\":1671}","hhi_median_t6_pct_chg":0.0277,"hhi_median_t12_pct_chg":0.0283},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":0}","asking_rent_t12_pct_chg_median":"0.2941","in_place_rent_t12_pct_chg_median":null,"occupancy_latest":null,"occupancy_t12_pct_chg":null}},
{"id":"b644b2d0ff2e7bd6fbe7b62bc48f21ef","name":"Windsor","demographic_basics":{"housing_supply_growth_1_year":0.0166,"housing_supply_growth_5_year":0.029,"population_growth":0.0104,"population_growth_5_year":0.0169,"total_population_est":29760},"household_financials_snapshot":{"hhi_median":71461,"hhi_conf":"{\"sample_size\":3938}","hhi_median_t6_pct_chg":0.0027,"hhi_median_t12_pct_chg":0.0128},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":198}","asking_rent_t12_pct_chg_median":"-0.2037","in_place_rent_t12_pct_chg_median":"-0.0417","occupancy_latest":0.9688,"occupancy_t12_pct_chg":-0.0094}},
{"id":"baed1b8dbb34896d9a960ef4be4d2dba","name":"Cherry Creek","demographic_basics":{"housing_supply_growth_1_year":-0.0171,"housing_supply_growth_5_year":0.0468,"population_growth":-0.007,"population_growth_5_year":-0.0272,"total_population_est":24383},"household_financials_snapshot":{"hhi_median":151764,"hhi_conf":"{\"sample_size\":3344}","hhi_median_t6_pct_chg":-0.021,"hhi_median_t12_pct_chg":-0.011},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":107}","asking_rent_t12_pct_chg_median":"-0.1171","in_place_rent_t12_pct_chg_median":"0.0182","occupancy_latest":0.9544,"occupancy_t12_pct_chg":-0.0131}},
{"id":"bb19e7968624fe744ea5505db46aaac7","name":"Clayton","demographic_basics":{"housing_supply_growth_1_year":0.0415,"housing_supply_growth_5_year":0.2205,"population_growth":0.0211,"population_growth_5_year":-0.0138,"total_population_est":34571},"household_financials_snapshot":{"hhi_median":119035,"hhi_conf":"{\"sample_size\":1417}","hhi_median_t6_pct_chg":-0.0245,"hhi_median_t12_pct_chg":-0.002},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":1}","asking_rent_t12_pct_chg_median":"0.0571","in_place_rent_t12_pct_chg_median":null,"occupancy_latest":0.3333,"occupancy_t12_pct_chg":-0.6667}},
{"id":"bbde1fcaa3980bd45e48dd113f8ba0d3","name":"Baker","demographic_basics":{"housing_supply_growth_1_year":0.012,"housing_supply_growth_5_year":0.1415,"population_growth":-0.0193,"population_growth_5_year":-0.0364,"total_population_est":19246},"household_financials_snapshot":{"hhi_median":146033,"hhi_conf":"{\"sample_size\":2973}","hhi_median_t6_pct_chg":0.0579,"hhi_median_t12_pct_chg":0.0795},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":243}","asking_rent_t12_pct_chg_median":"-0.0464","in_place_rent_t12_pct_chg_median":"-0.0140","occupancy_latest":0.9315,"occupancy_t12_pct_chg":-0.0046}},
{"id":"beae07d67370cc0c49772e2659852e4b","name":"Lowry Field","demographic_basics":{"housing_supply_growth_1_year":0.0145,"housing_supply_growth_5_year":0.2965,"population_growth":-0.0335,"population_growth_5_year":0.0947,"total_population_est":10449},"household_financials_snapshot":{"hhi_median":145230,"hhi_conf":"{\"sample_size\":3553}","hhi_median_t6_pct_chg":0.0103,"hhi_median_t12_pct_chg":0.0208},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":158}","asking_rent_t12_pct_chg_median":"-0.0087","in_place_rent_t12_pct_chg_median":"-0.0203","occupancy_latest":0.9396,"occupancy_t12_pct_chg":-0.0194}},
{"id":"c065ae98eb6eda9dae3546bac3fd62c1","name":"Whittier","demographic_basics":{"housing_supply_growth_1_year":0.0415,"housing_supply_growth_5_year":0.2205,"population_growth":0.0211,"population_growth_5_year":-0.0138,"total_population_est":34571},"household_financials_snapshot":{"hhi_median":265567,"hhi_conf":"{\"sample_size\":1807}","hhi_median_t6_pct_chg":-0.0176,"hhi_median_t12_pct_chg":-0.0064},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":9}","asking_rent_t12_pct_chg_median":"0.1544","in_place_rent_t12_pct_chg_median":"0.0000","occupancy_latest":0.9238,"occupancy_t12_pct_chg":-0.0476}},
{"id":"c0e2e1fc56ba67318aa246a32b177d0a","name":"Capitol Hill","demographic_basics":{"housing_supply_growth_1_year":0.0163,"housing_supply_growth_5_year":0.0863,"population_growth":0.0038,"population_growth_5_year":0.049,"total_population_est":22441},"household_financials_snapshot":{"hhi_median":80685,"hhi_conf":"{\"sample_size\":6895}","hhi_median_t6_pct_chg":-0.0441,"hhi_median_t12_pct_chg":-0.0464},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":699}","asking_rent_t12_pct_chg_median":"-0.0590","in_place_rent_t12_pct_chg_median":"-0.0231","occupancy_latest":0.9221,"occupancy_t12_pct_chg":-0.023}},
{"id":"c8c0744e7d17b57433babad4f89a19c5","name":"Union Station","demographic_basics":{"housing_supply_growth_1_year":0.0226,"housing_supply_growth_5_year":0.2445,"population_growth":0.0195,"population_growth_5_year":0.216,"total_population_est":18589},"household_financials_snapshot":{"hhi_median":157076,"hhi_conf":"{\"sample_size\":3476}","hhi_median_t6_pct_chg":0.0149,"hhi_median_t12_pct_chg":0.0223},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":589}","asking_rent_t12_pct_chg_median":"-0.0188","in_place_rent_t12_pct_chg_median":"-0.0229","occupancy_latest":0.9338,"occupancy_t12_pct_chg":-0.0222}},
{"id":"cb278612844467f38618dc09ce985a8f","name":"Fort Logan","demographic_basics":{"housing_supply_growth_1_year":-0.0075,"housing_supply_growth_5_year":-0.034,"population_growth":-0.02,"population_growth_5_year":-0.1231,"total_population_est":16863},"household_financials_snapshot":{"hhi_median":138676,"hhi_conf":"{\"sample_size\":3073}","hhi_median_t6_pct_chg":0.0154,"hhi_median_t12_pct_chg":0.047},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":15}","asking_rent_t12_pct_chg_median":"-0.0242","in_place_rent_t12_pct_chg_median":"-0.0172","occupancy_latest":0.9621,"occupancy_t12_pct_chg":0.0379}},
{"id":"cd45744447ae78ca4ce1f874c8b751a4","name":"Mar Lee","demographic_basics":{"housing_supply_growth_1_year":0.015,"housing_supply_growth_5_year":-0.0246,"population_growth":-0.0095,"population_growth_5_year":-0.1574,"total_population_est":59523},"household_financials_snapshot":{"hhi_median":95950,"hhi_conf":"{\"sample_size\":3388}","hhi_median_t6_pct_chg":-0.0003,"hhi_median_t12_pct_chg":0.016},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":17}","asking_rent_t12_pct_chg_median":"-0.1931","in_place_rent_t12_pct_chg_median":"-0.0349","occupancy_latest":0.9237,"occupancy_t12_pct_chg":0.0241}},
{"id":"cfb79333ba54b9f6b7bc7f673b46180d","name":"West Highland","demographic_basics":{"housing_supply_growth_1_year":-0.0124,"housing_supply_growth_5_year":0.1246,"population_growth":0.0157,"population_growth_5_year":0.0611,"total_population_est":20746},"household_financials_snapshot":{"hhi_median":198210,"hhi_conf":"{\"sample_size\":4235}","hhi_median_t6_pct_chg":0.0076,"hhi_median_t12_pct_chg":0.0059},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":51}","asking_rent_t12_pct_chg_median":"0.0039","in_place_rent_t12_pct_chg_median":"0.0458","occupancy_latest":0.9607,"occupancy_t12_pct_chg":0.0037}},
{"id":"d322421d62ad0c1a636ee44d7f82cba8","name":"Sloan Lake","demographic_basics":{"housing_supply_growth_1_year":-0.0124,"housing_supply_growth_5_year":0.1246,"population_growth":0.0157,"population_growth_5_year":0.0611,"total_population_est":20746},"household_financials_snapshot":{"hhi_median":241143,"hhi_conf":"{\"sample_size\":3369}","hhi_median_t6_pct_chg":0.022,"hhi_median_t12_pct_chg":0.0194},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":2}","asking_rent_t12_pct_chg_median":"-0.0566","in_place_rent_t12_pct_chg_median":"-0.0068","occupancy_latest":0.9596,"occupancy_t12_pct_chg":-0.0202}},
{"id":"d331935ad3b9ce8edc01ead47c11cba9","name":"Ruby Hill","demographic_basics":{"housing_supply_growth_1_year":0.012,"housing_supply_growth_5_year":0.1415,"population_growth":-0.0193,"population_growth_5_year":-0.0364,"total_population_est":19246},"household_financials_snapshot":{"hhi_median":71063,"hhi_conf":"{\"sample_size\":2570}","hhi_median_t6_pct_chg":-0.0115,"hhi_median_t12_pct_chg":-0.0074},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":12}","asking_rent_t12_pct_chg_median":"0.0708","in_place_rent_t12_pct_chg_median":"0.7459","occupancy_latest":0.9797,"occupancy_t12_pct_chg":-0.0169}},
{"id":"d34c857d87ee5c01b7f30fc25bc574c1","name":"Valverde","demographic_basics":{"housing_supply_growth_1_year":0.012,"housing_supply_growth_5_year":0.1415,"population_growth":-0.0193,"population_growth_5_year":-0.0364,"total_population_est":19246},"household_financials_snapshot":{"hhi_median":67843,"hhi_conf":"{\"sample_size\":968}","hhi_median_t6_pct_chg":-0.0086,"hhi_median_t12_pct_chg":0.0506},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":null,"asking_rent_t12_pct_chg_median":null,"in_place_rent_t12_pct_chg_median":null,"occupancy_latest":null,"occupancy_t12_pct_chg":null}},
{"id":"e0cd3ab6188f51dd7a175f2b4f28cd35","name":"Chaffee Park","demographic_basics":{"housing_supply_growth_1_year":0.0338,"housing_supply_growth_5_year":0.0829,"population_growth":-0.0298,"population_growth_5_year":-0.0566,"total_population_est":39718},"household_financials_snapshot":{"hhi_median":138260,"hhi_conf":"{\"sample_size\":1573}","hhi_median_t6_pct_chg":0.0371,"hhi_median_t12_pct_chg":0.0781},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":15}","asking_rent_t12_pct_chg_median":"-0.0820","in_place_rent_t12_pct_chg_median":"-0.0818","occupancy_latest":0.964,"occupancy_t12_pct_chg":0.0541}},
{"id":"e65e74ffbcff14c15c34206cb2b63211","name":"Hampden","demographic_basics":{"housing_supply_growth_1_year":0.0009,"housing_supply_growth_5_year":-0.0015,"population_growth":0.0166,"population_growth_5_year":-0.0265,"total_population_est":35883},"household_financials_snapshot":{"hhi_median":101751,"hhi_conf":"{\"sample_size\":6901}","hhi_median_t6_pct_chg":-0.0355,"hhi_median_t12_pct_chg":-0.007},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":499}","asking_rent_t12_pct_chg_median":"-0.0865","in_place_rent_t12_pct_chg_median":"-0.0376","occupancy_latest":0.933,"occupancy_t12_pct_chg":-0.0362}},
{"id":"ea09d2d7496bb06a5ad7107106ae48e8","name":"Lincoln Park","demographic_basics":{"housing_supply_growth_1_year":0.0344,"housing_supply_growth_5_year":0.2939,"population_growth":-0.0056,"population_growth_5_year":0.0378,"total_population_est":35318},"household_financials_snapshot":{"hhi_median":103481,"hhi_conf":"{\"sample_size\":2372}","hhi_median_t6_pct_chg":0.0618,"hhi_median_t12_pct_chg":0.0837},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":263}","asking_rent_t12_pct_chg_median":"0.0833","in_place_rent_t12_pct_chg_median":"-0.0026","occupancy_latest":0.9021,"occupancy_t12_pct_chg":-0.0239}},
{"id":"eac4e4714ad09ebc260c7a511b2e637c","name":"Hale","demographic_basics":{"housing_supply_growth_1_year":0.0105,"housing_supply_growth_5_year":0.0371,"population_growth":0.0246,"population_growth_5_year":0.0197,"total_population_est":37203},"household_financials_snapshot":{"hhi_median":117352,"hhi_conf":"{\"sample_size\":3806}","hhi_median_t6_pct_chg":0.0092,"hhi_median_t12_pct_chg":0.0294},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":218}","asking_rent_t12_pct_chg_median":"-0.0326","in_place_rent_t12_pct_chg_median":"-0.0187","occupancy_latest":0.9266,"occupancy_t12_pct_chg":-0.0049}},
{"id":"ed104fc807e437b584a3f2be9188477b","name":"Harvey Park","demographic_basics":{"housing_supply_growth_1_year":0.015,"housing_supply_growth_5_year":-0.0246,"population_growth":-0.0095,"population_growth_5_year":-0.1574,"total_population_est":59523},"household_financials_snapshot":{"hhi_median":114615,"hhi_conf":"{\"sample_size\":3433}","hhi_median_t6_pct_chg":0.0481,"hhi_median_t12_pct_chg":0.0424},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":28}","asking_rent_t12_pct_chg_median":"-0.0379","in_place_rent_t12_pct_chg_median":"-0.1394","occupancy_latest":0.9634,"occupancy_t12_pct_chg":0.0879}},
{"id":"efd5cb4d23d657420d8d36f6b4097c93","name":"Belcaro","demographic_basics":{"housing_supply_growth_1_year":0.0198,"housing_supply_growth_5_year":0.0807,"population_growth":0.0287,"population_growth_5_year":0.0866,"total_population_est":27564},"household_financials_snapshot":{"hhi_median":277190,"hhi_conf":"{\"sample_size\":2345}","hhi_median_t6_pct_chg":0.0028,"hhi_median_t12_pct_chg":0.0047},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":85}","asking_rent_t12_pct_chg_median":"-0.0069","in_place_rent_t12_pct_chg_median":"-0.0351","occupancy_latest":0.9316,"occupancy_t12_pct_chg":-0.0232}},
{"id":"f0ad0a99bf64574feb6de517871a93fa","name":"Washington Park","demographic_basics":{"housing_supply_growth_1_year":0.0198,"housing_supply_growth_5_year":0.0807,"population_growth":0.0287,"population_growth_5_year":0.0866,"total_population_est":27564},"household_financials_snapshot":{"hhi_median":327188,"hhi_conf":"{\"sample_size\":2911}","hhi_median_t6_pct_chg":-0.0093,"hhi_median_t12_pct_chg":-0.0139},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":1}","asking_rent_t12_pct_chg_median":"0.1089","in_place_rent_t12_pct_chg_median":"0.0318","occupancy_latest":0.9906,"occupancy_t12_pct_chg":0}},
{"id":"f49b0cbfbac496bf07f85832d01be5a1","name":"Stapleton","demographic_basics":{"housing_supply_growth_1_year":0.0585,"housing_supply_growth_5_year":0.5909,"population_growth":0.0383,"population_growth_5_year":0.4134,"total_population_est":30575},"household_financials_snapshot":{"hhi_median":294121,"hhi_conf":"{\"sample_size\":10530}","hhi_median_t6_pct_chg":-0.0115,"hhi_median_t12_pct_chg":-0.001},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":411}","asking_rent_t12_pct_chg_median":"-0.0557","in_place_rent_t12_pct_chg_median":"-0.0059","occupancy_latest":0.9345,"occupancy_t12_pct_chg":0.0257}},
{"id":"f7ed793844defbb29e61a87f284f265a","name":"Goldsmith","demographic_basics":{"housing_supply_growth_1_year":0.0247,"housing_supply_growth_5_year":0.0369,"population_growth":0.0232,"population_growth_5_year":0.0237,"total_population_est":23838},"household_financials_snapshot":{"hhi_median":75617,"hhi_conf":"{\"sample_size\":1774}","hhi_median_t6_pct_chg":-0.0432,"hhi_median_t12_pct_chg":-0.0315},"mf_rent_and_occupancy_detail":{"asking_rent_latest_conf":"{\"sample_size\":233}","asking_rent_t12_pct_chg_median":"-0.1484","in_place_rent_t12_pct_chg_median":"-0.0800","occupancy_latest":0.9121,"occupancy_t12_pct_chg":-0.0167}}
]}
Now let's build records and score the composite.
cd /vercel/sandbox && python build_records.py && echo "---" && python -c "
import json
recs = json.load(open('records.json'))
print(len(recs))
for r in recs[:3]:
print(r)
"cd /vercel/sandbox && python -c "
import json
recs = json.load(open('records.json'))
excluded_hhi = [r['entity'] for r in recs if (r['hhi_n'] or 0) < 500]
excluded_rent = [r['entity'] for r in recs if not r['asking_n'] or r['asking_n'] < 30 or r['in_place_rent_t12'] is None]
print('excluded_hhi (n<500):', excluded_hhi)
print()
print('excluded_rent (asking_n<30 or missing in_place):', len(excluded_rent), excluded_rent)
"
cd /vercel/sandbox && python -c "
import json
recs = json.load(open('records.json'))
pool = [r for r in recs if (r['hhi_n'] or 0) >= 500 and r['asking_n'] and r['asking_n'] >= 30 and r['in_place_rent_t12'] is not None]
print(len(pool))
json.dump(pool, open('pool.json','w'), indent=2)
"
ls skills/multi-entity-analysis/scripts/ 2>/dev/null || echo "need skill"
cd /vercel/sandbox && python skills/multi-entity-analysis/scripts/cross_check.py --check coverage pool.json
echo "---composite---"
python skills/multi-entity-analysis/scripts/cross_check.py --check composite --components hhi_t12,in_place_rent_t12,supply_growth_1yr --weights 0.40,0.35,0.25 pool.json > composite_out.json
python -c "
import json
out = json.load(open('composite_out.json'))
print(out['status'])
ranked = out['ranked']
for r in ranked[:15]:
print(round(r['score'],1), r['entity'], r['components'])
"
cd /vercel/sandbox && python -c "
import json
out = json.load(open('composite_out.json'))
print(list(out.keys()))
print(out['ranked'][0])
"
cd /vercel/sandbox && python -c "
import json
out = json.load(open('composite_out.json'))
recs = {r['entity']: r for r in json.load(open('pool.json'))}
ranked = out['ranked']
print(f'{\"Rank\":<5}{\"Neighborhood\":<26}{\"Score\":<7}{\"HHI t12\":<9}{\"Rent t12\":<9}{\"Supply1yr\":<10}')
for i,r in enumerate(ranked[:15],1):
e = recs[r['entity']]
print(f\"{i:<5}{r['entity']:<26}{r['score']:<7.1f}{e['hhi_t12']*100:<9.1f}{e['in_place_rent_t12']*100:<9.1f}{e['supply_growth_1yr']*100:<10.1f}\")
print()
print('Bottom 5:')
for r in ranked[-5:]:
e = recs[r['entity']]
print(r['entity'], round(r['score'],1), e['hhi_t12'], e['in_place_rent_t12'], e['supply_growth_1yr'])
"
cd /vercel/sandbox && python skills/multi-entity-analysis/scripts/cross_check.py --check extremum --field hhi_t12 --direction max --claim "Elyria Swansea" records.json echo "---" python skills/multi-entity-analysis/scripts/cross_check.py --check extremum --field supply_growth_1yr --direction max --claim "Elyria Swansea" records.json echo "---" python skills/multi-entity-analysis/scripts/cross_check.py --check extremum --field supply_growth_5yr --direction max --claim "Stapleton" records.json echo "---" python skills/multi-entity-analysis/scripts/cross_check.py --check extremum --field in_place_rent_t12 --direction max --claim "South Park Hill" pool.json
Denver's fastest-growing neighborhoods are stacked into one corridor, not scattered across the map — the Elyria-Swansea/Globeville/Northeast Park Hill industrial-to-residential belt and the DIA/Green Valley Ranch airport corridor are adding housing stock 3–9x faster than the city median, and income is compounding fastest exactly where that construction is landing.
| Rank | Neighborhood | Composite Score | 12-mo Household Income Growth | 12-mo In-Place Rent Growth | 1-yr Housing Supply Growth |
|---|---|---|---|---|---|
| 1 | 72.71 | 5.9% | 3.5% | 9.4% | |
| 2 | 71.1 | 8.8% | -1.6% | 9.4% | |
| 3 | 70.1 | 8.1% | 2.8% | 6.2% | |
| 4 | 63.0 | 6.9% | 0.9% | 4.2% | |
| 5 | 63.0 | -4.4% | 19.6%23 | 1.1% | |
| 6 | 62.8 | 8.4% | -0.3% | 3.4% | |
| 7 | 61.5 | 8.1% | -1.5% | 3.9% | |
| 8 | 61.5 | 7.9% | -4.4% | 6.2% | |
| 9 | 61.1 | 2.5% | -2.0% | 9.4% | |
| 10 | 59.5 | 8.4% | -3.1% | 3.4% | |
| 11 | 57.4 | 8.0% | -1.4% | 1.2% | |
| 12 | 57.2 | 8.5% | -2.2% | 1.2% | |
| 13 | 56.7 | 5.5% | -2.4% | 3.9% | |
| 14 | 56.6 | 4.7% | -1.4% | 3.9% | |
| 15 | 56.6 | -0.6% | 5.0% | 4.2% |
Income is the clean signal here. Cole, Northeast Park Hill, Elyria Swansea, Globeville, DIA and Gateway–Green Valley Ranch have posted 19 straight months of rising median household income with no reversals — Cole alone moved from $138K to $137K-then-climbing near $137K→$117K(2024)→$137K(2026)... more precisely, Cole ran from roughly $117K to $137K and Stapleton from $274K to $298K over the same window, a steady compounding climb, not a one-quarter spike .
Rent growth is the outlier here, and that's the point. Every one of the top income/supply movers except South Park Hill shows flat-to-negative in-place rent growth over the same 12 months — Elyria Swansea, Gateway-GVR, Sun Valley and Overland are all seeing rents give back 2-4% even as incomes climb 8%+ and construction runs hot. That's not contradiction, it's sequence: these are supply-absorption neighborhoods where a wave of new units is leasing up faster than rents can reprice, which is exactly what "fastest growing" looks like before it shows up as pricing power. The neighborhoods with the strongest rent growth in the dataset — University (+6.6%), South Park Hill (+19.6% on a thin, occupancy-collapsed sample) — are not the same neighborhoods driving income or construction growth, confirming rent hasn't caught up to the corridor's fundamentals yet.
New construction is concentrated, not diffuse. Elyria Swansea, Northeast Park Hill and Globeville share an identical 9.4% one-year and 58% five-year housing-supply growth rate — they sit inside the same underlying census geography, so this is one growth event (the River North/National Western Center redevelopment zone) read three ways, not three independent booms. Stapleton is the five-year supply-growth leader city-wide at 59% , the tail end of the Central Park master-planned build-out, though its 12-month pace has slowed to 5.9% as that pipeline matures. DIA/Green Valley Ranch is the second corridor: 6.2% one-year, 35-47% five-year supply growth tied to airport-adjacent build-out, with income climbing in lockstep.
Weights and guardrails: Composite = 40% household-income growth (12-mo) + 35% in-place rent growth (12-mo) + 25% housing-supply growth (1-yr), z-scored within a 53-of-78 neighborhood pool. 25 neighborhoods (including Westwood, Platt Park, Rosedale, Cory-Merrill, Washington Park) were excluded from the composite for multifamily rent samples under 30 units or missing rent coverage — many of these are higher-income, ownership-heavy areas with little apartment stock, so a thin rent read there isn't a market failure, just low MF density. Auraria was excluded from income comparisons for a 191-person sample. New-construction supply is read from Census housing-unit growth (the only supply metric available below market grain) rather than permit counts, which only exist at market/county/census-place grain — treat it as a stock-change proxy, not a permits pipeline.
Act on it: underwrite the Elyria-Swansea/Globeville/Northeast Park Hill corridor and the DIA/Green Valley Ranch corridor for value-add or ground-up multifamily now, while rents are still lagging the income and construction story — that gap is the opportunity. What would flip this read: if in-place rents in Elyria Swansea or Gateway-GVR turn positive over the next two quarters, it confirms absorption has caught up to supply and the pricing-power phase has started; if they keep falling while supply keeps adding, the corridor is overbuilding ahead of demand.
This is a read-only snapshot of a RealAI analysis.