Show me which submarkets in Dallas-Fort Worth offer the strongest fundamentals for multifamily investment right now? Tell me what makes each one attractive
[
{"id":"074feac203ab63a477c7bfe4bcaa16b4","name":"South Oak Lawn","asking_rent_latest_avg":2632.70,"in_place_rent_latest_avg":2166.91,"occupancy_latest":0.9304,"occupancy_t12_pct_chg":-0.0295,"tradeout_new_lease_pct_avg":0.0318,"retention_rate":0.684,"dom":83,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":71,"net_pct":-0.040152,"net_pct_msa_pctile":2,"hh_inc_diff":-7037,"migr_sample":5006,"hhi_median":92541,"hhi_t12":-0.0246},
{"id":"075c87bc79b0664e0edea9087832ab53","name":"Northwood Hills/Valley View","asking_rent_latest_avg":1331.88,"in_place_rent_latest_avg":1306.36,"occupancy_latest":0.9347,"occupancy_t12_pct_chg":-0.0202,"tradeout_new_lease_pct_avg":-0.0267,"retention_rate":0.694,"dom":57,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":89,"net_pct":0.000164,"net_pct_msa_pctile":76,"hh_inc_diff":74834,"migr_sample":30481,"hhi_median":222534,"hhi_t12":-0.0194},
{"id":"0821f73073cca19a0e1f6284512dc77b","name":"Ridgelea","asking_rent_latest_avg":1635.06,"in_place_rent_latest_avg":1734.83,"occupancy_latest":0.8168,"occupancy_t12_pct_chg":-0.1114,"tradeout_new_lease_pct_avg":0.0134,"retention_rate":0.658,"dom":75,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":43,"net_pct":0.004456,"net_pct_msa_pctile":83,"hh_inc_diff":-5622,"migr_sample":10099,"hhi_median":89782,"hhi_t12":0.0406},
{"id":"0983e8d1a110f522b9f4cc9d27d3eb3e","name":"Blue Mound","asking_rent_latest_avg":1519.30,"in_place_rent_latest_avg":1445.27,"occupancy_latest":0.9235,"occupancy_t12_pct_chg":-0.0226,"tradeout_new_lease_pct_avg":0.0007,"retention_rate":0.671,"dom":67,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":45,"net_pct":-0.018425,"net_pct_msa_pctile":15,"hh_inc_diff":-10712,"migr_sample":27192,"hhi_median":94242,"hhi_t12":-0.0686},
{"id":"0cd4597b2e531f5ca6ba41814cd3edcc","name":"Medical District","asking_rent_latest_avg":1700.40,"in_place_rent_latest_avg":1502.33,"occupancy_latest":0.9251,"occupancy_t12_pct_chg":-0.0523,"tradeout_new_lease_pct_avg":0.1262,"retention_rate":0.733,"dom":106,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":70,"net_pct":-0.027863,"net_pct_msa_pctile":7,"hh_inc_diff":-4841,"migr_sample":5204,"hhi_median":101156,"hhi_t12":0.1255},
{"id":"12790fec17aa7b6bb311121b869a4279","name":"Espanita/Timberlake","asking_rent_latest_avg":1279.34,"in_place_rent_latest_avg":1279.00,"occupancy_latest":0.9373,"occupancy_t12_pct_chg":-0.03,"tradeout_new_lease_pct_avg":0.0246,"retention_rate":0.667,"dom":43,"housing_supply_growth_1_year":0.0118,"job_growth_1_year":0.0125,"population_growth":0.0057,"total_population_est":256492,"education_pctile":55,"net_pct":-0.032212,"net_pct_msa_pctile":6,"hh_inc_diff":9369,"migr_sample":7047,"hhi_median":71524,"hhi_t12":-0.0089},
{"id":"16f928c62fad106a843a69369540f216","name":"North Arlington","asking_rent_latest_avg":1185.57,"in_place_rent_latest_avg":1153.08,"occupancy_latest":0.9113,"occupancy_t12_pct_chg":-0.0295,"tradeout_new_lease_pct_avg":-0.061,"retention_rate":0.753,"dom":68,"housing_supply_growth_1_year":0.0174,"job_growth_1_year":0.0143,"population_growth":0.0075,"total_population_est":397742,"education_pctile":5,"net_pct":-0.006447,"net_pct_msa_pctile":55,"hh_inc_diff":5544,"migr_sample":4498,"hhi_median":53993,"hhi_t12":0.0229},
{"id":"1827888a0b9a9073986515f987dc90c8","name":"Randol Mill","asking_rent_latest_avg":1343.85,"in_place_rent_latest_avg":1280.78,"occupancy_latest":0.9792,"occupancy_t12_pct_chg":0.0104,"tradeout_new_lease_pct_avg":0.0431,"retention_rate":0.682,"dom":34,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":57,"net_pct":-0.007216,"net_pct_msa_pctile":47,"hh_inc_diff":-4038,"migr_sample":10394,"hhi_median":122427,"hhi_t12":-0.06},
{"id":"19657b7139f6bceb145f0d22d42f8cc0","name":"Green Oaks","asking_rent_latest_avg":1243.91,"in_place_rent_latest_avg":1221.81,"occupancy_latest":0.9234,"occupancy_t12_pct_chg":-0.0454,"tradeout_new_lease_pct_avg":-0.0271,"retention_rate":0.633,"dom":52,"housing_supply_growth_1_year":0.0174,"job_growth_1_year":0.0143,"population_growth":0.0075,"total_population_est":397742,"education_pctile":72,"net_pct":-0.003067,"net_pct_msa_pctile":69,"hh_inc_diff":15126,"migr_sample":7825,"hhi_median":67022,"hhi_t12":-0.1097},
{"id":"19a85bd1abad29df200d674a4e126ae2","name":"Wedgewood","asking_rent_latest_avg":1233.18,"in_place_rent_latest_avg":1202.68,"occupancy_latest":0.9105,"occupancy_t12_pct_chg":-0.0441,"tradeout_new_lease_pct_avg":-0.0323,"retention_rate":0.596,"dom":54,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":69,"net_pct":0.024537,"net_pct_msa_pctile":93,"hh_inc_diff":7238,"migr_sample":12308,"hhi_median":85660,"hhi_t12":-0.0756},
{"id":"1d6a13b29a14121d48645fa7c479198f","name":"South Lake Highlands","asking_rent_latest_avg":1018.19,"in_place_rent_latest_avg":997.35,"occupancy_latest":0.9049,"occupancy_t12_pct_chg":-0.0469,"tradeout_new_lease_pct_avg":-0.0795,"retention_rate":0.640,"dom":66,"housing_supply_growth_1_year":0.0149,"job_growth_1_year":-0.0018,"population_growth":0.0063,"total_population_est":246844,"education_pctile":11,"net_pct":-0.015687,"net_pct_msa_pctile":18,"hh_inc_diff":-1056,"migr_sample":6056,"hhi_median":47653,"hhi_t12":-0.099},
{"id":"1e66cbc6b4e6e0113a2e4ad653a34330","name":"Midlothian/South Cedar Hill","asking_rent_latest_avg":1655.02,"in_place_rent_latest_avg":1589.85,"occupancy_latest":0.9268,"occupancy_t12_pct_chg":-0.0236,"tradeout_new_lease_pct_avg":-0.0236,"retention_rate":0.666,"dom":71,"housing_supply_growth_1_year":0.0371,"job_growth_1_year":-0.0169,"population_growth":0.0429,"total_population_est":232387,"education_pctile":48,"net_pct":0.028631,"net_pct_msa_pctile":95,"hh_inc_diff":2290,"migr_sample":90879,"hhi_median":155436,"hhi_t12":0.079},
{"id":"23f5e1a299334b2bb5a0718960cdcb94","name":"South Frisco/Parker","asking_rent_latest_avg":1751.70,"in_place_rent_latest_avg":1694.93,"occupancy_latest":0.9196,"occupancy_t12_pct_chg":-0.0374,"tradeout_new_lease_pct_avg":-0.0436,"retention_rate":0.658,"dom":66,"housing_supply_growth_1_year":0.0386,"job_growth_1_year":0.0588,"population_growth":0.0496,"total_population_est":1254658,"education_pctile":90,"net_pct":-0.005615,"net_pct_msa_pctile":58,"hh_inc_diff":-8278,"migr_sample":169910,"hhi_median":218652,"hhi_t12":0.0152},
{"id":"24707f1e6e869aa0ed16ef59ce31ead2","name":"East Vickery Park","asking_rent_latest_avg":1299.34,"in_place_rent_latest_avg":1387.95,"occupancy_latest":0.9243,"occupancy_t12_pct_chg":-0.0446,"tradeout_new_lease_pct_avg":0.0115,"retention_rate":0.658,"dom":68,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":34,"net_pct":-0.026939,"net_pct_msa_pctile":9,"hh_inc_diff":-7784,"migr_sample":3972,"hhi_median":66209,"hhi_t12":-0.0435},
{"id":"248f146735bb84fe63ff56bce34f47c6","name":"Southlake","asking_rent_latest_avg":1424.28,"in_place_rent_latest_avg":1404.79,"occupancy_latest":0.9114,"occupancy_t12_pct_chg":-0.0457,"tradeout_new_lease_pct_avg":-0.0159,"retention_rate":0.608,"dom":51,"housing_supply_growth_1_year":-0.0174,"job_growth_1_year":0.0127,"population_growth":0.003,"total_population_est":31137,"education_pctile":93,"net_pct":0.001628,"net_pct_msa_pctile":78,"hh_inc_diff":-84216,"migr_sample":41165,"hhi_median":338670,"hhi_t12":-0.0563},
{"id":"2583280e87a6bb2b6fe5c7a7829f7557","name":"Richardson","asking_rent_latest_avg":1166.32,"in_place_rent_latest_avg":1316.28,"occupancy_latest":0.9107,"occupancy_t12_pct_chg":-0.054,"tradeout_new_lease_pct_avg":-0.0009,"retention_rate":0.717,"dom":73,"housing_supply_growth_1_year":0.0028,"job_growth_1_year":0.0013,"population_growth":0.0039,"total_population_est":118731,"education_pctile":59,"net_pct":-0.00776,"net_pct_msa_pctile":45,"hh_inc_diff":19792,"migr_sample":12242,"hhi_median":103756,"hhi_t12":-0.0348},
{"id":"282560346a8f0bda882f4e0bd2589e5e","name":"DeSoto","asking_rent_latest_avg":1413.01,"in_place_rent_latest_avg":1379.01,"occupancy_latest":0.9483,"occupancy_t12_pct_chg":-0.0057,"tradeout_new_lease_pct_avg":-0.0068,"retention_rate":0.692,"dom":62,"housing_supply_growth_1_year":-0.0138,"job_growth_1_year":0.0034,"population_growth":0.0056,"total_population_est":56211,"education_pctile":44,"net_pct":-0.000069,"net_pct_msa_pctile":75,"hh_inc_diff":-6658,"migr_sample":28962,"hhi_median":95447,"hhi_t12":-0.0696},
{"id":"2dfa0bd51ebe165f5f12b69dc0edd05a","name":"Saginaw","asking_rent_latest_avg":1543.92,"in_place_rent_latest_avg":1500.18,"occupancy_latest":0.9125,"occupancy_t12_pct_chg":-0.0051,"tradeout_new_lease_pct_avg":-0.0045,"retention_rate":0.623,"dom":63,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":34,"net_pct":-0.012109,"net_pct_msa_pctile":31,"hh_inc_diff":-12296,"migr_sample":35429,"hhi_median":144422,"hhi_t12":0.062},
{"id":"2fccf4a5c1d543e60eb94ad22c0393bf","name":"Cityscape/Downtown","asking_rent_latest_avg":2069.46,"in_place_rent_latest_avg":1908.92,"occupancy_latest":0.9232,"occupancy_t12_pct_chg":-0.0323,"tradeout_new_lease_pct_avg":-0.014,"retention_rate":0.647,"dom":69,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":71,"net_pct":-0.032248,"net_pct_msa_pctile":5,"hh_inc_diff":-6889,"migr_sample":16745,"hhi_median":89513,"hhi_t12":-0.0122},
{"id":"2ff39e132af8504b2f796b1d732880fb","name":"Northeast Mesquite","asking_rent_latest_avg":1605.73,"in_place_rent_latest_avg":1496.11,"occupancy_latest":0.9245,"occupancy_t12_pct_chg":-0.0123,"tradeout_new_lease_pct_avg":-0.001,"retention_rate":0.642,"dom":58,"housing_supply_growth_1_year":0.0359,"job_growth_1_year":0.067,"population_growth":0.0437,"total_population_est":137044,"education_pctile":52,"net_pct":0.010483,"net_pct_msa_pctile":88,"hh_inc_diff":5979,"migr_sample":81658,"hhi_median":135693,"hhi_t12":-0.0238},
{"id":"30030b9c0a0b48acb174789df1ed4aa1","name":"Colleyville","asking_rent_latest_avg":1516.76,"in_place_rent_latest_avg":1455.36,"occupancy_latest":0.9339,"occupancy_t12_pct_chg":-0.0125,"tradeout_new_lease_pct_avg":0.0065,"retention_rate":0.684,"dom":40,"housing_supply_growth_1_year":0.0148,"job_growth_1_year":0.0056,"population_growth":0.0219,"total_population_est":2230708,"education_pctile":76,"net_pct":-0.004683,"net_pct_msa_pctile":64,"hh_inc_diff":6248,"migr_sample":32887,"hhi_median":130527,"hhi_t12":-0.0261},
{"id":"3182f7bf7c7effdc6cf32bf2808cd0f0","name":"Dalworthington Gardens/Pantego","asking_rent_latest_avg":1278.98,"in_place_rent_latest_avg":1289.79,"occupancy_latest":0.8932,"occupancy_t12_pct_chg":-0.0314,"tradeout_new_lease_pct_avg":-0.0165,"retention_rate":0.667,"dom":55,"housing_supply_growth_1_year":0.0174,"job_growth_1_year":0.0143,"population_growth":0.0075,"total_population_est":397742,"education_pctile":60,"net_pct":-0.005658,"net_pct_msa_pctile":56,"hh_inc_diff":3161,"migr_sample":30225,"hhi_median":118213,"hhi_t12":-0.0179},
{"id":"32817896a24fd4614767d96e421e27b6","name":"Florence Hill","asking_rent_latest_avg":1424.09,"in_place_rent_latest_avg":1470.66,"occupancy_latest":0.948,"occupancy_t12_pct_chg":-0.0178,"tradeout_new_lease_pct_avg":0.0259,"retention_rate":0.592,"dom":98,"housing_supply_growth_1_year":0.0205,"job_growth_1_year":0.035,"population_growth":0.0167,"total_population_est":201883,"education_pctile":35,"net_pct":-0.007111,"net_pct_msa_pctile":50,"hh_inc_diff":-20104,"migr_sample":15187,"hhi_median":107353,"hhi_t12":-0.0516},
{"id":"34a90f4926aff412211e815d263f5309","name":"Weatherford","asking_rent_latest_avg":1430.09,"in_place_rent_latest_avg":1343.16,"occupancy_latest":0.9269,"occupancy_t12_pct_chg":-0.03,"tradeout_new_lease_pct_avg":0.0339,"retention_rate":0.555,"dom":53,"housing_supply_growth_1_year":0.0495,"job_growth_1_year":0.0681,"population_growth":0.0549,"total_population_est":35788,"education_pctile":30,"net_pct":0.008058,"net_pct_msa_pctile":84,"hh_inc_diff":-1656,"migr_sample":14768,"hhi_median":100655,"hhi_t12":0.0517},
{"id":"391d0fc30a022dd591c8592a336467fc","name":"Lancaster/Red Bird","asking_rent_latest_avg":1369.37,"in_place_rent_latest_avg":1217.73,"occupancy_latest":0.9086,"occupancy_t12_pct_chg":-0.0529,"tradeout_new_lease_pct_avg":0.0188,"retention_rate":0.639,"dom":53,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":12,"net_pct":-0.002626,"net_pct_msa_pctile":71,"hh_inc_diff":-279,"migr_sample":30846,"hhi_median":69767,"hhi_t12":-0.0113},
{"id":"3a1ebcb8aeee3a49f6c6f5c5c0f8de04","name":"Pleasant Grove","asking_rent_latest_avg":1094.81,"in_place_rent_latest_avg":1161.63,"occupancy_latest":0.9254,"occupancy_t12_pct_chg":-0.0263,"tradeout_new_lease_pct_avg":0.0249,"retention_rate":0.774,"dom":86,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":0,"net_pct":-0.008266,"net_pct_msa_pctile":42,"hh_inc_diff":-11915,"migr_sample":41009,"hhi_median":74206,"hhi_t12":0.0416},
{"id":"3c6191d4841717d895573ef9f1093111","name":"Euless","asking_rent_latest_avg":1501.95,"in_place_rent_latest_avg":1513.08,"occupancy_latest":0.9406,"occupancy_t12_pct_chg":-0.013,"tradeout_new_lease_pct_avg":0.0007,"retention_rate":0.633,"dom":74,"housing_supply_growth_1_year":0.0148,"job_growth_1_year":0.0056,"population_growth":0.0219,"total_population_est":2230708,"education_pctile":67,"net_pct":-0.010803,"net_pct_msa_pctile":34,"hh_inc_diff":-6265,"migr_sample":23327,"hhi_median":104175,"hhi_t12":-0.0314},
{"id":"3d3748af87eb9ec8c6dc00d3ba5ed1de","name":"Bedford","asking_rent_latest_avg":1566.63,"in_place_rent_latest_avg":1309.10,"occupancy_latest":0.8552,"occupancy_t12_pct_chg":-0.1145,"tradeout_new_lease_pct_avg":-0.0189,"retention_rate":0.660,"dom":74,"housing_supply_growth_1_year":0.0148,"job_growth_1_year":0.0056,"population_growth":0.0219,"total_population_est":2230708,"education_pctile":55,"net_pct":-0.0136,"net_pct_msa_pctile":26,"hh_inc_diff":2777,"migr_sample":10515,"hhi_median":90444,"hhi_t12":0.0039},
{"id":"3db373e295d69afbbbbba52ca28cd003","name":"North Cedar Hill","asking_rent_latest_avg":2089.78,"in_place_rent_latest_avg":1688.35,"occupancy_latest":0.9471,"occupancy_t12_pct_chg":-0.0104,"tradeout_new_lease_pct_avg":-0.0174,"retention_rate":0.666,"dom":67,"housing_supply_growth_1_year":0.0089,"job_growth_1_year":0.0265,"population_growth":0.0191,"total_population_est":2656028,"education_pctile":49,"net_pct":-0.00754,"net_pct_msa_pctile":46,"hh_inc_diff":-10755,"migr_sample":51987,"hhi_median":115435,"hhi_t12":-0.0118},
{"id":"3e41f1830d1ab0a112960f6860819b5c","name":"South Oak Cliff","asking_rent_latest_avg":1292.24,"in_place_rent_latest_avg":1377.05,"occupancy_latest":0.9647,"occupancy_t12_pct_chg":-0.0112,"tradeout_new_lease_pct_avg":-0.0178,"retention_rate":0.873,"dom":25,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":1,"net_pct":-0.005638,"net_pct_msa_pctile":57,"hh_inc_diff":-4462,"migr_sample":20930,"hhi_median":63421,"hhi_t12":0.0921},
{"id":"4241cc4cb70fa0dea513d39837718023","name":"Irving","asking_rent_latest_avg":1242.63,"in_place_rent_latest_avg":1229.09,"occupancy_latest":0.9108,"occupancy_t12_pct_chg":-0.0509,"tradeout_new_lease_pct_avg":-0.0371,"retention_rate":0.642,"dom":54,"housing_supply_growth_1_year":0.0118,"job_growth_1_year":0.0125,"population_growth":0.0057,"total_population_est":256492,"education_pctile":16,"net_pct":-0.020594,"net_pct_msa_pctile":13,"hh_inc_diff":-5194,"migr_sample":11217,"hhi_median":68442,"hhi_t12":-0.0238},
{"id":"4305b1ae82d629d1e50b1ecaba906dd1","name":"East McKinney/Wylie/Princeton","asking_rent_latest_avg":1648.85,"in_place_rent_latest_avg":1548.62,"occupancy_latest":0.9077,"occupancy_t12_pct_chg":-0.0227,"tradeout_new_lease_pct_avg":-0.0405,"retention_rate":0.680,"dom":79,"housing_supply_growth_1_year":0.0386,"job_growth_1_year":0.0588,"population_growth":0.0496,"total_population_est":1254658,"education_pctile":52,"net_pct":0.046223,"net_pct_msa_pctile":98,"hh_inc_diff":-14501,"migr_sample":122514,"hhi_median":156957,"hhi_t12":0.1009},
{"id":"43c1c46741edd54b6bb79b09ecb030c0","name":"Rosemeade","asking_rent_latest_avg":1219.09,"in_place_rent_latest_avg":1198.79,"occupancy_latest":0.9037,"occupancy_t12_pct_chg":-0.0572,"tradeout_new_lease_pct_avg":-0.0739,"retention_rate":0.601,"dom":68,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":56,"net_pct":-0.034716,"net_pct_msa_pctile":3,"hh_inc_diff":-2414,"migr_sample":7691,"hhi_median":66156,"hhi_t12":-0.0527},
{"id":"45b3f6a14e43336b0649e966b658553d","name":"Southeast Dallas County","asking_rent_latest_avg":1632.59,"in_place_rent_latest_avg":1480.06,"occupancy_latest":0.9314,"occupancy_t12_pct_chg":0.0081,"tradeout_new_lease_pct_avg":-0.0046,"retention_rate":0.670,"dom":54,"housing_supply_growth_1_year":0.0371,"job_growth_1_year":-0.0169,"population_growth":0.0429,"total_population_est":232387,"education_pctile":17,"net_pct":0.008779,"net_pct_msa_pctile":85,"hh_inc_diff":-4636,"migr_sample":145574,"hhi_median":112288,"hhi_t12":0.0449},
{"id":"48be6a3a5664da52e1e87b3801ef12bb","name":"West Vickery Park","asking_rent_latest_avg":1026.03,"in_place_rent_latest_avg":989.97,"occupancy_latest":0.9287,"occupancy_t12_pct_chg":-0.0281,"tradeout_new_lease_pct_avg":0.0177,"retention_rate":0.783,"dom":49,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":6,"net_pct":-0.0366,"net_pct_msa_pctile":3,"hh_inc_diff":null,"migr_sample":1694,"hhi_median":47603,"hhi_t12":-0.043},
{"id":"490b494311d357fe9f4726a62360e37d","name":"Crestwood/River Oaks/Sansom Pa","asking_rent_latest_avg":1783.13,"in_place_rent_latest_avg":1707.76,"occupancy_latest":0.9421,"occupancy_t12_pct_chg":-0.0232,"tradeout_new_lease_pct_avg":0.0412,"retention_rate":0.689,"dom":60,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":6,"net_pct":-0.003503,"net_pct_msa_pctile":67,"hh_inc_diff":-13460,"migr_sample":18271,"hhi_median":78446,"hhi_t12":-0.0148},
{"id":"4b2dc44ba9e186f16b1f2faa06f9b499","name":"North Lewisville/Trophy Club","asking_rent_latest_avg":1518.10,"in_place_rent_latest_avg":1423.45,"occupancy_latest":0.8757,"occupancy_t12_pct_chg":-0.0328,"tradeout_new_lease_pct_avg":0.0174,"retention_rate":0.651,"dom":75,"housing_supply_growth_1_year":0.0337,"job_growth_1_year":0.0436,"population_growth":0.0371,"total_population_est":1045120,"education_pctile":63,"net_pct":-0.00011,"net_pct_msa_pctile":74,"hh_inc_diff":-868,"migr_sample":63603,"hhi_median":135367,"hhi_t12":0.0102},
{"id":"504e576fdd7b603f5acc5617a5164c8d","name":"Lamar","asking_rent_latest_avg":1297.34,"in_place_rent_latest_avg":1217.84,"occupancy_latest":0.9273,"occupancy_t12_pct_chg":-0.0209,"tradeout_new_lease_pct_avg":-0.0253,"retention_rate":0.693,"dom":62,"housing_supply_growth_1_year":0.0174,"job_growth_1_year":0.0143,"population_growth":0.0075,"total_population_est":397742,"education_pctile":62,"net_pct":-0.023879,"net_pct_msa_pctile":10,"hh_inc_diff":-310,"migr_sample":5109,"hhi_median":72651,"hhi_t12":-0.0929},
{"id":"50e0621a6216fbde04b44a0022ee8fb6","name":"Grapevine","asking_rent_latest_avg":2294.41,"in_place_rent_latest_avg":1932.03,"occupancy_latest":0.9379,"occupancy_t12_pct_chg":-0.0031,"tradeout_new_lease_pct_avg":0.0027,"retention_rate":0.642,"dom":72,"housing_supply_growth_1_year":0.0092,"job_growth_1_year":-0.0185,"population_growth":0.0052,"total_population_est":51139,"education_pctile":66,"net_pct":-0.006708,"net_pct_msa_pctile":53,"hh_inc_diff":-3860,"migr_sample":12522,"hhi_median":137307,"hhi_t12":0.1182},
{"id":"542cda54f8e061a35ae6927148e32edf","name":"Valley Ranch","asking_rent_latest_avg":1565.88,"in_place_rent_latest_avg":1451.88,"occupancy_latest":0.9401,"occupancy_t12_pct_chg":-0.0253,"tradeout_new_lease_pct_avg":0.0177,"retention_rate":0.651,"dom":63,"housing_supply_growth_1_year":0.0089,"job_growth_1_year":0.0265,"population_growth":0.0191,"total_population_est":2656028,"education_pctile":88,"net_pct":-0.010014,"net_pct_msa_pctile":34,"hh_inc_diff":-2547,"migr_sample":38348,"hhi_median":184805,"hhi_t12":-0.0697},
{"id":"5513e10f94d13e22ceac9e531dadf88e","name":"Rendon","asking_rent_latest_avg":1753.87,"in_place_rent_latest_avg":1748.34,"occupancy_latest":0.9212,"occupancy_t12_pct_chg":-0.0788,"tradeout_new_lease_pct_avg":-0.0382,"retention_rate":0.543,"dom":124,"housing_supply_growth_1_year":-0.0494,"job_growth_1_year":-0.0279,"population_growth":-0.0794,"total_population_est":14632,"education_pctile":30,"net_pct":0.01768,"net_pct_msa_pctile":91,"hh_inc_diff":2634,"migr_sample":17308,"hhi_median":134440,"hhi_t12":0.0295},
{"id":"5f2e5150508ecaf8e7565f39f4ac3bb0","name":"Northwest Mesquite","asking_rent_latest_avg":1128.17,"in_place_rent_latest_avg":1169.74,"occupancy_latest":0.9224,"occupancy_t12_pct_chg":-0.0285,"tradeout_new_lease_pct_avg":-0.0006,"retention_rate":0.632,"dom":59,"housing_supply_growth_1_year":-0.0003,"job_growth_1_year":0.0008,"population_growth":0.003,"total_population_est":149299,"education_pctile":7,"net_pct":-0.008856,"net_pct_msa_pctile":39,"hh_inc_diff":-5281,"migr_sample":20099,"hhi_median":96300,"hhi_t12":0.057},
{"id":"5fd07078034135152dd1393fbb523730","name":"Northwest Tarrant County","asking_rent_latest_avg":1722.43,"in_place_rent_latest_avg":1731.72,"occupancy_latest":0.7909,"occupancy_t12_pct_chg":-0.1628,"tradeout_new_lease_pct_avg":-0.0267,"retention_rate":0.619,"dom":82,"housing_supply_growth_1_year":0.0148,"job_growth_1_year":0.0056,"population_growth":0.0219,"total_population_est":2230708,"education_pctile":60,"net_pct":0.025386,"net_pct_msa_pctile":94,"hh_inc_diff":-30950,"migr_sample":54596,"hhi_median":170815,"hhi_t12":0.1017},
{"id":"634d5878e837f05783ca23f4d21b31ab","name":"Western Hills","asking_rent_latest_avg":1117.30,"in_place_rent_latest_avg":1068.57,"occupancy_latest":0.8884,"occupancy_t12_pct_chg":-0.0776,"tradeout_new_lease_pct_avg":-0.0202,"retention_rate":0.649,"dom":70,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":11,"net_pct":-0.014797,"net_pct_msa_pctile":21,"hh_inc_diff":-7351,"migr_sample":5677,"hhi_median":41501,"hhi_t12":-0.0075},
{"id":"63b91e6043af46c8f0bfa9466d4b16a0","name":"Stop Six","asking_rent_latest_avg":1440.60,"in_place_rent_latest_avg":1371.04,"occupancy_latest":0.863,"occupancy_t12_pct_chg":-0.1029,"tradeout_new_lease_pct_avg":0.0943,"retention_rate":0.618,"dom":56,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":0,"net_pct":-0.008906,"net_pct_msa_pctile":38,"hh_inc_diff":-11158,"migr_sample":23019,"hhi_median":76807,"hhi_t12":0.0826},
{"id":"72aac2e1cabdb42b1486a0f6e7408d8c","name":"Colonial/TCU","asking_rent_latest_avg":1302.03,"in_place_rent_latest_avg":1435.44,"occupancy_latest":0.905,"occupancy_t12_pct_chg":-0.0497,"tradeout_new_lease_pct_avg":0.0042,"retention_rate":0.691,"dom":65,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":67,"net_pct":-0.021595,"net_pct_msa_pctile":11,"hh_inc_diff":4040,"migr_sample":9493,"hhi_median":83108,"hhi_t12":-0.0688},
{"id":"72e6f70f580a3caf3f7defd2adb59c21","name":"Downtown Arlington","asking_rent_latest_avg":1165.11,"in_place_rent_latest_avg":1210.22,"occupancy_latest":0.8428,"occupancy_t12_pct_chg":-0.1269,"tradeout_new_lease_pct_avg":-0.0486,"retention_rate":0.671,"dom":65,"housing_supply_growth_1_year":0.0174,"job_growth_1_year":0.0143,"population_growth":0.0075,"total_population_est":397742,"education_pctile":31,"net_pct":-0.013408,"net_pct_msa_pctile":28,"hh_inc_diff":17080,"migr_sample":9248,"hhi_median":89702,"hhi_t12":0.0968},
{"id":"751a1798ed0d1a3cd9561554a53a84ba","name":"Edgecliff Village","asking_rent_latest_avg":1499.24,"in_place_rent_latest_avg":1395.44,"occupancy_latest":0.9122,"occupancy_t12_pct_chg":-0.0327,"tradeout_new_lease_pct_avg":0.0078,"retention_rate":0.728,"dom":73,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":47,"net_pct":-0.013748,"net_pct_msa_pctile":25,"hh_inc_diff":3657,"migr_sample":17384,"hhi_median":102858,"hhi_t12":0.0331},
{"id":"764f041ae73427d5375ad84df5228561","name":"Richland Hills","asking_rent_latest_avg":1494.04,"in_place_rent_latest_avg":1390.19,"occupancy_latest":0.9242,"occupancy_t12_pct_chg":-0.0276,"tradeout_new_lease_pct_avg":0.0012,"retention_rate":0.596,"dom":54,"housing_supply_growth_1_year":0.0148,"job_growth_1_year":0.0056,"population_growth":0.0219,"total_population_est":2230708,"education_pctile":32,"net_pct":0.009062,"net_pct_msa_pctile":86,"hh_inc_diff":13482,"migr_sample":11035,"hhi_median":92997,"hhi_t12":0.0291},
{"id":"7993b3c1ba0f4a72ac75d56394133ca7","name":"Addison","asking_rent_latest_avg":1658.06,"in_place_rent_latest_avg":1603.29,"occupancy_latest":0.9346,"occupancy_t12_pct_chg":-0.0312,"tradeout_new_lease_pct_avg":-0.0213,"retention_rate":0.663,"dom":48,"housing_supply_growth_1_year":0.0089,"job_growth_1_year":0.0265,"population_growth":0.0191,"total_population_est":2656028,"education_pctile":78,"net_pct":-0.013265,"net_pct_msa_pctile":28,"hh_inc_diff":-3700,"migr_sample":10328,"hhi_median":76009,"hhi_t12":-0.0273},
{"id":"7a34faf09d44f5dc05a9a66314e526c4","name":"North Frisco/West McKinney","asking_rent_latest_avg":1834.96,"in_place_rent_latest_avg":1669.61,"occupancy_latest":0.9043,"occupancy_t12_pct_chg":-0.039,"tradeout_new_lease_pct_avg":-0.0422,"retention_rate":0.630,"dom":73,"housing_supply_growth_1_year":0.0386,"job_growth_1_year":0.0588,"population_growth":0.0496,"total_population_est":1254658,"education_pctile":87,"net_pct":0.018422,"net_pct_msa_pctile":92,"hh_inc_diff":-24408,"migr_sample":192054,"hhi_median":243146,"hhi_t12":0.0162},
{"id":"7c8d5711e6100b45a9437a26cb4f1195","name":"Bachman Lake/West Northwest Highway","asking_rent_latest_avg":1024.46,"in_place_rent_latest_avg":1131.13,"occupancy_latest":0.9498,"occupancy_t12_pct_chg":-0.0179,"tradeout_new_lease_pct_avg":-0.0678,"retention_rate":0.724,"dom":245,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":0,"net_pct":-0.001322,"net_pct_msa_pctile":72,"hh_inc_diff":null,"migr_sample":1513,"hhi_median":54605,"hhi_t12":-0.0734},
{"id":"7cda4536dfe7c41df795a149244728e1","name":"White Settlement","asking_rent_latest_avg":1372.47,"in_place_rent_latest_avg":1349.92,"occupancy_latest":0.9158,"occupancy_t12_pct_chg":-0.0199,"tradeout_new_lease_pct_avg":-0.0272,"retention_rate":0.643,"dom":131,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":16,"net_pct":-0.012657,"net_pct_msa_pctile":30,"hh_inc_diff":-5379,"migr_sample":10666,"hhi_median":77035,"hhi_t12":0.0302},
{"id":"80d9ddbc34e4aba6da5d8ad3e72f4d2c","name":"South Davis/Turtlerock","asking_rent_latest_avg":1415.89,"in_place_rent_latest_avg":1376.64,"occupancy_latest":0.9188,"occupancy_t12_pct_chg":-0.0509,"tradeout_new_lease_pct_avg":0.0104,"retention_rate":0.684,"dom":64,"housing_supply_growth_1_year":0.0174,"job_growth_1_year":0.0143,"population_growth":0.0075,"total_population_est":397742,"education_pctile":24,"net_pct":-0.00655,"net_pct_msa_pctile":53,"hh_inc_diff":-6910,"migr_sample":11297,"hhi_median":76836,"hhi_t12":-0.0255},
{"id":"81e6c736203785b1479e48880f81999f","name":"East Denton","asking_rent_latest_avg":1327.34,"in_place_rent_latest_avg":1281.23,"occupancy_latest":0.9215,"occupancy_t12_pct_chg":-0.016,"tradeout_new_lease_pct_avg":0.0709,"retention_rate":0.662,"dom":42,"housing_supply_growth_1_year":0.0468,"job_growth_1_year":0.0491,"population_growth":0.04,"total_population_est":152866,"education_pctile":52,"net_pct":-0.005427,"net_pct_msa_pctile":59,"hh_inc_diff":479,"migr_sample":8108,"hhi_median":54175,"hhi_t12":0.1057},
{"id":"8208e6094d5d19c2cbed5b72de1d45b3","name":"Downtown","asking_rent_latest_avg":1797.77,"in_place_rent_latest_avg":1622.97,"occupancy_latest":0.9128,"occupancy_t12_pct_chg":-0.038,"tradeout_new_lease_pct_avg":0.0129,"retention_rate":0.602,"dom":83,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":6,"net_pct":-0.005301,"net_pct_msa_pctile":62,"hh_inc_diff":-7383,"migr_sample":11885,"hhi_median":86974,"hhi_t12":-0.0048},
{"id":"840fe65bad5bcfcd1fd80a6da640950c","name":"Barton Estates/Garden Oaks/Hospital District","asking_rent_latest_avg":1283.60,"in_place_rent_latest_avg":1253.12,"occupancy_latest":0.935,"occupancy_t12_pct_chg":-0.0331,"tradeout_new_lease_pct_avg":0.0058,"retention_rate":0.703,"dom":43,"housing_supply_growth_1_year":0.0118,"job_growth_1_year":0.0125,"population_growth":0.0057,"total_population_est":256492,"education_pctile":2,"net_pct":-0.020997,"net_pct_msa_pctile":12,"hh_inc_diff":-858,"migr_sample":10049,"hhi_median":75734,"hhi_t12":0.023},
{"id":"850e0ebaac8d9eef996d8ef2ceaa8acf","name":"Ennis/Waxahachie","asking_rent_latest_avg":1506.55,"in_place_rent_latest_avg":1575.07,"occupancy_latest":0.926,"occupancy_t12_pct_chg":-0.0368,"tradeout_new_lease_pct_avg":-0.009,"retention_rate":0.619,"dom":59,"housing_supply_growth_1_year":0.0371,"job_growth_1_year":-0.0169,"population_growth":0.0429,"total_population_est":232387,"education_pctile":19,"net_pct":0.016259,"net_pct_msa_pctile":91,"hh_inc_diff":2569,"migr_sample":29583,"hhi_median":112617,"hhi_t12":0.1064},
{"id":"8655f5fe973b60b2ef4ebb5ed4494e3f","name":"South Garland","asking_rent_latest_avg":1445.19,"in_place_rent_latest_avg":1356.88,"occupancy_latest":0.9394,"occupancy_t12_pct_chg":-0.0108,"tradeout_new_lease_pct_avg":-0.0259,"retention_rate":0.651,"dom":69,"housing_supply_growth_1_year":0.0149,"job_growth_1_year":-0.0018,"population_growth":0.0063,"total_population_est":246844,"education_pctile":16,"net_pct":-0.004373,"net_pct_msa_pctile":65,"hh_inc_diff":-7280,"migr_sample":28583,"hhi_median":99496,"hhi_t12":0.0367},
{"id":"8728ac51741fba8764caae74b5696e62","name":"Kennedale","asking_rent_latest_avg":1341.82,"in_place_rent_latest_avg":1265.52,"occupancy_latest":0.9306,"occupancy_t12_pct_chg":-0.0245,"tradeout_new_lease_pct_avg":-0.0758,"retention_rate":0.655,"dom":57,"housing_supply_growth_1_year":0.0174,"job_growth_1_year":0.0143,"population_growth":0.0075,"total_population_est":397742,"education_pctile":63,"net_pct":-0.007906,"net_pct_msa_pctile":44,"hh_inc_diff":-3663,"migr_sample":32508,"hhi_median":124025,"hhi_t12":-0.0388},
{"id":"8892c5608f676ac22dcd26feab7ef2fe","name":"Dixon Branch","asking_rent_latest_avg":1260.63,"in_place_rent_latest_avg":1229.28,"occupancy_latest":0.8831,"occupancy_t12_pct_chg":-0.0848,"tradeout_new_lease_pct_avg":-0.034,"retention_rate":0.680,"dom":45,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":11,"net_pct":-0.011611,"net_pct_msa_pctile":33,"hh_inc_diff":2639,"migr_sample":20929,"hhi_median":76895,"hhi_t12":-0.0613},
{"id":"8a95bb130a16f6436925ee3439927b44","name":"Azle","asking_rent_latest_avg":1407.11,"in_place_rent_latest_avg":1337.45,"occupancy_latest":0.9377,"occupancy_t12_pct_chg":-0.0041,"tradeout_new_lease_pct_avg":0.0283,"retention_rate":0.744,"dom":73,"housing_supply_growth_1_year":0.0148,"job_growth_1_year":0.0056,"population_growth":0.0219,"total_population_est":2230708,"education_pctile":42,"net_pct":0.011156,"net_pct_msa_pctile":89,"hh_inc_diff":-7677,"migr_sample":11205,"hhi_median":92625,"hhi_t12":-0.058},
{"id":"926da9640fca47cb39b7a7c37afc16e7","name":"North Oak Cliff/Irving","asking_rent_latest_avg":1562.61,"in_place_rent_latest_avg":1502.34,"occupancy_latest":0.9344,"occupancy_t12_pct_chg":-0.0323,"tradeout_new_lease_pct_avg":-0.0002,"retention_rate":0.676,"dom":48,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":7,"net_pct":-0.005325,"net_pct_msa_pctile":60,"hh_inc_diff":-6508,"migr_sample":50325,"hhi_median":99095,"hhi_t12":0.0497},
{"id":"927826d8feb99b735bb681fadeab95ce","name":"Prestonwood/Galleria","asking_rent_latest_avg":1396.69,"in_place_rent_latest_avg":1404.60,"occupancy_latest":0.9253,"occupancy_t12_pct_chg":-0.023,"tradeout_new_lease_pct_avg":-0.0174,"retention_rate":0.684,"dom":71,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":66,"net_pct":-0.016991,"net_pct_msa_pctile":16,"hh_inc_diff":1137,"migr_sample":8534,"hhi_median":79497,"hhi_t12":0.059},
{"id":"92e205b154d4011a8fc69d4633bd8cea","name":"Forest Hills","asking_rent_latest_avg":1174.76,"in_place_rent_latest_avg":1173.15,"occupancy_latest":0.9035,"occupancy_t12_pct_chg":-0.0589,"tradeout_new_lease_pct_avg":-0.0977,"retention_rate":0.658,"dom":86,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":12,"net_pct":-0.008558,"net_pct_msa_pctile":41,"hh_inc_diff":-513,"migr_sample":21500,"hhi_median":92256,"hhi_t12":0.0425},
{"id":"944a956a1f36b6216005e32b02fb977f","name":"Benbrook","asking_rent_latest_avg":1753.07,"in_place_rent_latest_avg":1547.98,"occupancy_latest":0.9582,"occupancy_t12_pct_chg":-0.0143,"tradeout_new_lease_pct_avg":0.0555,"retention_rate":0.700,"dom":54,"housing_supply_growth_1_year":-0.0161,"job_growth_1_year":-0.0197,"population_growth":0.0052,"total_population_est":24557,"education_pctile":64,"net_pct":-0.007006,"net_pct_msa_pctile":51,"hh_inc_diff":-4640,"migr_sample":10991,"hhi_median":104213,"hhi_t12":-0.0237},
{"id":"96fa7e66126134c9e0130f9db84c6027","name":"Duncanville/South Grand Praire","asking_rent_latest_avg":1361.32,"in_place_rent_latest_avg":1487.74,"occupancy_latest":0.9226,"occupancy_t12_pct_chg":-0.0275,"tradeout_new_lease_pct_avg":-0.0049,"retention_rate":0.638,"dom":44,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":9,"net_pct":-0.008912,"net_pct_msa_pctile":37,"hh_inc_diff":-14866,"migr_sample":14251,"hhi_median":84848,"hhi_t12":-0.0129},
{"id":"99750d89d1fb084dbfae2432e5ce6bd5","name":"Las Colinas","asking_rent_latest_avg":1768.61,"in_place_rent_latest_avg":1696.41,"occupancy_latest":0.9322,"occupancy_t12_pct_chg":-0.0293,"tradeout_new_lease_pct_avg":-0.0025,"retention_rate":0.635,"dom":57,"housing_supply_growth_1_year":0.0118,"job_growth_1_year":0.0125,"population_growth":0.0057,"total_population_est":256492,"education_pctile":72,"net_pct":-0.01911,"net_pct_msa_pctile":14,"hh_inc_diff":-7358,"migr_sample":23495,"hhi_median":111046,"hhi_t12":-0.0418},
{"id":"9ab3b42885581015f014ce0e08107b5f","name":"North Vickery Park","asking_rent_latest_avg":1152.19,"in_place_rent_latest_avg":1176.57,"occupancy_latest":0.895,"occupancy_t12_pct_chg":-0.1028,"tradeout_new_lease_pct_avg":-0.0131,"retention_rate":0.786,"dom":89,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":77,"net_pct":-0.003771,"net_pct_msa_pctile":66,"hh_inc_diff":120815,"migr_sample":8485,"hhi_median":254889,"hhi_t12":-0.0571},
{"id":"9c2965c1188753d33f49ba3f17495d3d","name":"Watauga","asking_rent_latest_avg":1397.16,"in_place_rent_latest_avg":1403.65,"occupancy_latest":0.9359,"occupancy_t12_pct_chg":-0.0244,"tradeout_new_lease_pct_avg":-0.0005,"retention_rate":0.624,"dom":65,"housing_supply_growth_1_year":0.0106,"job_growth_1_year":0.0013,"population_growth":0.0063,"total_population_est":70780,"education_pctile":48,"net_pct":-0.00531,"net_pct_msa_pctile":61,"hh_inc_diff":1754,"migr_sample":42563,"hhi_median":121704,"hhi_t12":0.0118},
{"id":"a27e85cbc5be7ba8a0618bf31dfcc6dc","name":"Keller/Westlake","asking_rent_latest_avg":1761.23,"in_place_rent_latest_avg":1640.21,"occupancy_latest":0.8952,"occupancy_t12_pct_chg":-0.0578,"tradeout_new_lease_pct_avg":-0.0079,"retention_rate":0.621,"dom":59,"housing_supply_growth_1_year":0.0148,"job_growth_1_year":0.0056,"population_growth":0.0219,"total_population_est":2230708,"education_pctile":77,"net_pct":-0.00263,"net_pct_msa_pctile":70,"hh_inc_diff":-30288,"migr_sample":95053,"hhi_median":195436,"hhi_t12":0.0298},
{"id":"a5e3f1dec8b2aaa1264e0e8299b5c399","name":"Coppell/South Lewisville","asking_rent_latest_avg":1412.57,"in_place_rent_latest_avg":1412.25,"occupancy_latest":0.9378,"occupancy_t12_pct_chg":0.006,"tradeout_new_lease_pct_avg":-0.0198,"retention_rate":0.671,"dom":70,"housing_supply_growth_1_year":0.0251,"job_growth_1_year":0.0293,"population_growth":0.0216,"total_population_est":131080,"education_pctile":22,"net_pct":-0.01775,"net_pct_msa_pctile":16,"hh_inc_diff":-10999,"migr_sample":15549,"hhi_median":109339,"hhi_t12":0.091},
{"id":"a648941ed9debbf7c1aeb3bf241da294","name":"Haltom City","asking_rent_latest_avg":1278.80,"in_place_rent_latest_avg":1182.02,"occupancy_latest":0.9159,"occupancy_t12_pct_chg":-0.0449,"tradeout_new_lease_pct_avg":0.008,"retention_rate":0.660,"dom":62,"housing_supply_growth_1_year":0.0241,"job_growth_1_year":0.0373,"population_growth":0.0019,"total_population_est":45767,"education_pctile":2,"net_pct":-0.005335,"net_pct_msa_pctile":59,"hh_inc_diff":-4429,"migr_sample":14995,"hhi_median":75824,"hhi_t12":0.0703},
{"id":"a64de4d418cd82b1a0d95d2bdc57d319","name":"Central Garland","asking_rent_latest_avg":1227.40,"in_place_rent_latest_avg":1242.68,"occupancy_latest":0.9192,"occupancy_t12_pct_chg":-0.0428,"tradeout_new_lease_pct_avg":-0.0022,"retention_rate":0.620,"dom":55,"housing_supply_growth_1_year":0.0149,"job_growth_1_year":-0.0018,"population_growth":0.0063,"total_population_est":246844,"education_pctile":3,"net_pct":-0.00883,"net_pct_msa_pctile":40,"hh_inc_diff":-3506,"migr_sample":28313,"hhi_median":95477,"hhi_t12":0.0741},
{"id":"a7937eb8430009e79d963f2378cf7add","name":"Fair Park","asking_rent_latest_avg":1206.43,"in_place_rent_latest_avg":1368.10,"occupancy_latest":0.9151,"occupancy_t12_pct_chg":0.0143,"tradeout_new_lease_pct_avg":-0.0213,"retention_rate":0.746,"dom":89,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":1,"net_pct":-0.003503,"net_pct_msa_pctile":67,"hh_inc_diff":5231,"migr_sample":21981,"hhi_median":56577,"hhi_t12":0.0809},
{"id":"a9de13bda4f19a801fe2c0923eda048c","name":"South Downtown","asking_rent_latest_avg":1599.16,"in_place_rent_latest_avg":1428.35,"occupancy_latest":0.9132,"occupancy_t12_pct_chg":-0.0227,"tradeout_new_lease_pct_avg":-0.0155,"retention_rate":0.533,"dom":156,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":90,"net_pct":null,"net_pct_msa_pctile":100,"hh_inc_diff":-16729,"migr_sample":863,"hhi_median":106489,"hhi_t12":0.0236},
{"id":"af5f07e4a9bfc016707f00cfa3d97744","name":"North Carrollton/The Colony","asking_rent_latest_avg":1638.86,"in_place_rent_latest_avg":1608.43,"occupancy_latest":0.9235,"occupancy_t12_pct_chg":-0.0204,"tradeout_new_lease_pct_avg":-0.0352,"retention_rate":0.655,"dom":75,"housing_supply_growth_1_year":0.0337,"job_growth_1_year":0.0436,"population_growth":0.0371,"total_population_est":1045120,"education_pctile":79,"net_pct":0.008426,"net_pct_msa_pctile":84,"hh_inc_diff":-30758,"migr_sample":243299,"hhi_median":189845,"hhi_t12":0.0571},
{"id":"b1eb3c43bc8e652cc9ef4dac9d0709eb","name":"Sycamore","asking_rent_latest_avg":1165.27,"in_place_rent_latest_avg":1159.15,"occupancy_latest":0.9319,"occupancy_t12_pct_chg":-0.0285,"tradeout_new_lease_pct_avg":0.0031,"retention_rate":0.758,"dom":38,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":14,"net_pct":-0.016856,"net_pct_msa_pctile":17,"hh_inc_diff":-8968,"migr_sample":24145,"hhi_median":92871,"hhi_t12":0.0347},
{"id":"b26e427a0d594a1816e83dc0bf4cbd82","name":"Outlying Parker County","asking_rent_latest_avg":1823.35,"in_place_rent_latest_avg":1627.90,"occupancy_latest":0.8842,"occupancy_t12_pct_chg":-0.0704,"tradeout_new_lease_pct_avg":0.0035,"retention_rate":0.600,"dom":83,"housing_supply_growth_1_year":0.0085,"job_growth_1_year":0.0396,"population_growth":0.0358,"total_population_est":179707,"education_pctile":52,"net_pct":0.036898,"net_pct_msa_pctile":97,"hh_inc_diff":34961,"migr_sample":86508,"hhi_median":157623,"hhi_t12":0.056},
{"id":"b4af20921cc09558726856107fb6e164","name":"Casa Linda Estates/Cloisters/Lakewood","asking_rent_latest_avg":1302.19,"in_place_rent_latest_avg":1427.46,"occupancy_latest":0.9482,"occupancy_t12_pct_chg":-0.0188,"tradeout_new_lease_pct_avg":0.0225,"retention_rate":0.728,"dom":60,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":90,"net_pct":-0.003595,"net_pct_msa_pctile":66,"hh_inc_diff":53611,"migr_sample":35883,"hhi_median":235321,"hhi_t12":-0.0282},
{"id":"b551ded62ef83d1ae6a0d51b11ec7ec6","name":"North Oak Lawn","asking_rent_latest_avg":1589.96,"in_place_rent_latest_avg":1540.78,"occupancy_latest":0.9305,"occupancy_t12_pct_chg":-0.0275,"tradeout_new_lease_pct_avg":0.0083,"retention_rate":0.608,"dom":57,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":58,"net_pct":-0.008204,"net_pct_msa_pctile":43,"hh_inc_diff":-1586,"migr_sample":10848,"hhi_median":80101,"hhi_t12":0.0075},
{"id":"b5597d44436147267e49af5fa45d8528","name":"Lake Worth","asking_rent_latest_avg":1350.71,"in_place_rent_latest_avg":1362.14,"occupancy_latest":0.9396,"occupancy_t12_pct_chg":-0.0449,"tradeout_new_lease_pct_avg":-0.0075,"retention_rate":0.672,"dom":124,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":12,"net_pct":0.000727,"net_pct_msa_pctile":77,"hh_inc_diff":10774,"migr_sample":4129,"hhi_median":102253,"hhi_t12":0.1202},
{"id":"b69766c1726902cfdd6ba04757def8d8","name":"Southwest Tarrant County","asking_rent_latest_avg":1740.38,"in_place_rent_latest_avg":1690.80,"occupancy_latest":0.9139,"occupancy_t12_pct_chg":-0.0061,"tradeout_new_lease_pct_avg":0.0183,"retention_rate":0.642,"dom":78,"housing_supply_growth_1_year":0.0148,"job_growth_1_year":0.0056,"population_growth":0.0219,"total_population_est":2230708,"education_pctile":59,"net_pct":0.031144,"net_pct_msa_pctile":96,"hh_inc_diff":-7375,"migr_sample":43732,"hhi_median":154179,"hhi_t12":0.0727},
{"id":"b706adca29a2129cbb15e0e0b83dfe5b","name":"Gastonwood/Junius Heights/Lake Park Estates","asking_rent_latest_avg":2075.74,"in_place_rent_latest_avg":2212.68,"occupancy_latest":0.9266,"occupancy_t12_pct_chg":-0.0285,"tradeout_new_lease_pct_avg":0.008,"retention_rate":0.689,"dom":59,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":81,"net_pct":-0.03375,"net_pct_msa_pctile":4,"hh_inc_diff":-36080,"migr_sample":24889,"hhi_median":168558,"hhi_t12":-0.0521},
{"id":"b84db2aa9b6413b17b7c25b38e4ebe7c","name":"North Lake Highlands","asking_rent_latest_avg":1155.71,"in_place_rent_latest_avg":1258.91,"occupancy_latest":0.9561,"occupancy_t12_pct_chg":-0.0045,"tradeout_new_lease_pct_avg":-0.033,"retention_rate":0.720,"dom":84,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":57,"net_pct":-0.01447,"net_pct_msa_pctile":22,"hh_inc_diff":-2580,"migr_sample":16862,"hhi_median":89576,"hhi_t12":-0.0328},
{"id":"bb930af8283988aa70879b11f347ba4b","name":"Fitzgerald","asking_rent_latest_avg":1498.92,"in_place_rent_latest_avg":1453.92,"occupancy_latest":0.9103,"occupancy_t12_pct_chg":-0.0546,"tradeout_new_lease_pct_avg":0.0532,"retention_rate":0.704,"dom":48,"housing_supply_growth_1_year":0.0174,"job_growth_1_year":0.0143,"population_growth":0.0075,"total_population_est":397742,"education_pctile":31,"net_pct":-0.009603,"net_pct_msa_pctile":36,"hh_inc_diff":-8074,"migr_sample":37800,"hhi_median":107590,"hhi_t12":0.0188},
{"id":"be84765c436d51081c087d41d78bae49","name":"Kiest","asking_rent_latest_avg":1526.06,"in_place_rent_latest_avg":1447.80,"occupancy_latest":0.9168,"occupancy_t12_pct_chg":-0.051,"tradeout_new_lease_pct_avg":-0.048,"retention_rate":0.660,"dom":73,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":1,"net_pct":-0.007208,"net_pct_msa_pctile":49,"hh_inc_diff":-10342,"migr_sample":29965,"hhi_median":77094,"hhi_t12":-0.01},
{"id":"c01af93df5320d6eca235218b8e29c05","name":"West Plano","asking_rent_latest_avg":1682.52,"in_place_rent_latest_avg":1612.35,"occupancy_latest":0.9216,"occupancy_t12_pct_chg":-0.0357,"tradeout_new_lease_pct_avg":-0.0297,"retention_rate":0.652,"dom":69,"housing_supply_growth_1_year":0.0107,"job_growth_1_year":0.0148,"population_growth":0.0113,"total_population_est":290594,"education_pctile":89,"net_pct":0.002207,"net_pct_msa_pctile":80,"hh_inc_diff":-2201,"migr_sample":55283,"hhi_median":154362,"hhi_t12":-0.0232},
{"id":"c20ee54f2f6b86c3b956160247beebb3","name":"Meadowbrook","asking_rent_latest_avg":1038.71,"in_place_rent_latest_avg":1064.79,"occupancy_latest":0.9367,"occupancy_t12_pct_chg":-0.0081,"tradeout_new_lease_pct_avg":-0.0254,"retention_rate":0.771,"dom":85,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":28,"net_pct":-0.006481,"net_pct_msa_pctile":54,"hh_inc_diff":5772,"migr_sample":4783,"hhi_median":50169,"hhi_t12":-0.071},
{"id":"c30ca90e159eadd862bd9a4715de5787","name":"Greenville Corridor/Ridgewood Park","asking_rent_latest_avg":1910.80,"in_place_rent_latest_avg":1860.78,"occupancy_latest":0.9805,"occupancy_t12_pct_chg":-0.012,"tradeout_new_lease_pct_avg":0.0368,"retention_rate":0.645,"dom":34,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":92,"net_pct":-0.058743,"net_pct_msa_pctile":1,"hh_inc_diff":-4005,"migr_sample":5822,"hhi_median":86535,"hhi_t12":-0.0061},
{"id":"c350b3b0d0c849e9fca0e5a0d82d3c2f","name":"Great Southwest","asking_rent_latest_avg":1233.05,"in_place_rent_latest_avg":1275.53,"occupancy_latest":0.9207,"occupancy_t12_pct_chg":-0.0199,"tradeout_new_lease_pct_avg":-0.0307,"retention_rate":0.716,"dom":63,"housing_supply_growth_1_year":0.0174,"job_growth_1_year":0.0143,"population_growth":0.0075,"total_population_est":397742,"education_pctile":1,"net_pct":-0.000613,"net_pct_msa_pctile":73,"hh_inc_diff":-4376,"migr_sample":3263,"hhi_median":57500,"hhi_t12":-0.0011},
{"id":"c55bc8ad80e79bcda647ac8437e865d2","name":"Outlying Johnson County","asking_rent_latest_avg":1629.11,"in_place_rent_latest_avg":1457.97,"occupancy_latest":0.9753,"occupancy_t12_pct_chg":-0.0155,"tradeout_new_lease_pct_avg":0.0606,"retention_rate":0.740,"dom":115,"housing_supply_growth_1_year":0.0343,"job_growth_1_year":0.0275,"population_growth":0.0377,"total_population_est":210547,"education_pctile":22,"net_pct":0.03269,"net_pct_msa_pctile":97,"hh_inc_diff":-5342,"migr_sample":55950,"hhi_median":136242,"hhi_t12":0.0459},
{"id":"cce5214a1353289fcd2b8c641fd87f4d","name":"North Preston Corridor","asking_rent_latest_avg":1368.12,"in_place_rent_latest_avg":1349.46,"occupancy_latest":0.9223,"occupancy_t12_pct_chg":-0.0362,"tradeout_new_lease_pct_avg":-0.0284,"retention_rate":0.645,"dom":86,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":90,"net_pct":-0.014818,"net_pct_msa_pctile":20,"hh_inc_diff":3260,"migr_sample":16669,"hhi_median":134066,"hhi_t12":-0.0001},
{"id":"cf15c941ad687f04f70f8baf884e6d43","name":"Carrollton/Farmers' Branch","asking_rent_latest_avg":1593.29,"in_place_rent_latest_avg":1491.59,"occupancy_latest":0.938,"occupancy_t12_pct_chg":-0.0075,"tradeout_new_lease_pct_avg":-0.0445,"retention_rate":0.684,"dom":60,"housing_supply_growth_1_year":0.0302,"job_growth_1_year":0.0134,"population_growth":0.0108,"total_population_est":36645,"education_pctile":18,"net_pct":-0.014163,"net_pct_msa_pctile":24,"hh_inc_diff":9196,"migr_sample":20546,"hhi_median":104962,"hhi_t12":0.001},
{"id":"d0e6a92159770131bb25246e4388b7c4","name":"East Plano/Allen","asking_rent_latest_avg":1639.92,"in_place_rent_latest_avg":1569.24,"occupancy_latest":0.937,"occupancy_t12_pct_chg":-0.0086,"tradeout_new_lease_pct_avg":-0.0007,"retention_rate":0.661,"dom":74,"housing_supply_growth_1_year":0.0107,"job_growth_1_year":0.0148,"population_growth":0.0113,"total_population_est":290594,"education_pctile":63,"net_pct":-0.014524,"net_pct_msa_pctile":22,"hh_inc_diff":-3944,"migr_sample":34976,"hhi_median":118612,"hhi_t12":0.111},
{"id":"d22fe7d5478af351e3941be4782fd739","name":"Mansfield","asking_rent_latest_avg":1930.91,"in_place_rent_latest_avg":1666.95,"occupancy_latest":0.9171,"occupancy_t12_pct_chg":-0.0329,"tradeout_new_lease_pct_avg":-0.031,"retention_rate":0.644,"dom":62,"housing_supply_growth_1_year":0.0293,"job_growth_1_year":0.0264,"population_growth":0.028,"total_population_est":77510,"education_pctile":69,"net_pct":-0.005285,"net_pct_msa_pctile":63,"hh_inc_diff":-7663,"migr_sample":60735,"hhi_median":145577,"hhi_t12":-0.0145},
{"id":"d262e3e42f90958de952d4ab9a216bfa","name":"Westover Hills","asking_rent_latest_avg":1361.00,"in_place_rent_latest_avg":1369.05,"occupancy_latest":0.9262,"occupancy_t12_pct_chg":-0.0293,"tradeout_new_lease_pct_avg":0.0679,"retention_rate":0.694,"dom":81,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":72,"net_pct":-0.00682,"net_pct_msa_pctile":52,"hh_inc_diff":6395,"migr_sample":12903,"hhi_median":131482,"hhi_t12":0.0024},
{"id":"d3745af2cb7e5bcba633935cf3720d87","name":"Burleson/Joshua","asking_rent_latest_avg":1504.49,"in_place_rent_latest_avg":1439.79,"occupancy_latest":0.9476,"occupancy_t12_pct_chg":-0.012,"tradeout_new_lease_pct_avg":0.062,"retention_rate":0.679,"dom":64,"housing_supply_growth_1_year":0.0343,"job_growth_1_year":0.0275,"population_growth":0.0377,"total_population_est":210547,"education_pctile":39,"net_pct":0.004285,"net_pct_msa_pctile":82,"hh_inc_diff":-2680,"migr_sample":48303,"hhi_median":116265,"hhi_t12":0.0246},
{"id":"d6ec7c144df353d9c72dd6feb545c94c","name":"Kaufman/Terrell","asking_rent_latest_avg":1450.76,"in_place_rent_latest_avg":1313.72,"occupancy_latest":0.8607,"occupancy_t12_pct_chg":-0.0852,"tradeout_new_lease_pct_avg":-0.0334,"retention_rate":0.684,"dom":79,"housing_supply_growth_1_year":0.0186,"job_growth_1_year":0.0222,"population_growth":0.0654,"total_population_est":197829,"education_pctile":14,"net_pct":0.010308,"net_pct_msa_pctile":87,"hh_inc_diff":17333,"migr_sample":61600,"hhi_median":98963,"hhi_t12":-0.0021},
{"id":"d7e5236d080364b55ce1c586b6a6c0e6","name":"Park Cities/Preston Hollow/West Oak Lawn","asking_rent_latest_avg":2285.22,"in_place_rent_latest_avg":2239.47,"occupancy_latest":0.933,"occupancy_t12_pct_chg":-0.0145,"tradeout_new_lease_pct_avg":-0.011,"retention_rate":0.657,"dom":68,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":96,"net_pct":0.001676,"net_pct_msa_pctile":79,"hh_inc_diff":81308,"migr_sample":75790,"hhi_median":341563,"hhi_t12":-0.0476},
{"id":"d83c8b28b9135c98a8c25b119a00bfc1","name":"Fairmount/Morningside/Worth He","asking_rent_latest_avg":1110.11,"in_place_rent_latest_avg":1118.11,"occupancy_latest":0.9409,"occupancy_t12_pct_chg":-0.0269,"tradeout_new_lease_pct_avg":-0.0951,"retention_rate":0.694,"dom":89,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":1,"net_pct":-0.008587,"net_pct_msa_pctile":41,"hh_inc_diff":-2096,"migr_sample":26901,"hhi_median":76138,"hhi_t12":0.1264},
{"id":"d90ffec16be7eff869aef5f3985c91eb","name":"Telecom Corridor","asking_rent_latest_avg":1479.81,"in_place_rent_latest_avg":1537.42,"occupancy_latest":0.9148,"occupancy_t12_pct_chg":-0.0245,"tradeout_new_lease_pct_avg":-0.0205,"retention_rate":0.672,"dom":78,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":86,"net_pct":-0.007226,"net_pct_msa_pctile":47,"hh_inc_diff":193,"migr_sample":4705,"hhi_median":90088,"hhi_t12":0.0806},
{"id":"d92799491b122bd65dba91d23311ccb8","name":"Northwest Dallas","asking_rent_latest_avg":1293.69,"in_place_rent_latest_avg":1337.94,"occupancy_latest":0.9425,"occupancy_t12_pct_chg":-0.0201,"tradeout_new_lease_pct_avg":-0.0653,"retention_rate":0.677,"dom":69,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":20,"net_pct":-0.013126,"net_pct_msa_pctile":29,"hh_inc_diff":70604,"migr_sample":11961,"hhi_median":126873,"hhi_t12":0.0119},
{"id":"dac8a69d55ce1249017874c32c8653af","name":"Downtown Denton","asking_rent_latest_avg":1849.58,"in_place_rent_latest_avg":1702.16,"occupancy_latest":0.8135,"occupancy_t12_pct_chg":-0.1371,"tradeout_new_lease_pct_avg":-0.0151,"retention_rate":0.581,"dom":78,"housing_supply_growth_1_year":0.0337,"job_growth_1_year":0.0436,"population_growth":0.0371,"total_population_est":1045120,"education_pctile":64,"net_pct":0.046485,"net_pct_msa_pctile":99,"hh_inc_diff":2564,"migr_sample":76799,"hhi_median":168439,"hhi_t12":0.1017},
{"id":"db3b87b4fb7c31b39e86029147359b30","name":"Oaks","asking_rent_latest_avg":1697.61,"in_place_rent_latest_avg":1608.54,"occupancy_latest":0.9244,"occupancy_t12_pct_chg":-0.0435,"tradeout_new_lease_pct_avg":-0.0221,"retention_rate":0.659,"dom":57,"housing_supply_growth_1_year":0.0118,"job_growth_1_year":0.0125,"population_growth":0.0057,"total_population_est":256492,"education_pctile":95,"net_pct":-0.025698,"net_pct_msa_pctile":9,"hh_inc_diff":-6529,"migr_sample":14787,"hhi_median":126589,"hhi_t12":0.0241},
{"id":"db57c17bc77ad7fc18680e114b3e5f31","name":"East Arlington","asking_rent_latest_avg":1163.89,"in_place_rent_latest_avg":1133.18,"occupancy_latest":0.9481,"occupancy_t12_pct_chg":-0.0074,"tradeout_new_lease_pct_avg":-0.0176,"retention_rate":0.685,"dom":45,"housing_supply_growth_1_year":0.0174,"job_growth_1_year":0.0143,"population_growth":0.0075,"total_population_est":397742,"education_pctile":0,"net_pct":-0.015544,"net_pct_msa_pctile":19,"hh_inc_diff":-8095,"migr_sample":17113,"hhi_median":67079,"hhi_t12":0.0081},
{"id":"dd274807d5e4b9bada840de693a5a172","name":"North Grand Praire","asking_rent_latest_avg":1265.52,"in_place_rent_latest_avg":1316.44,"occupancy_latest":0.8976,"occupancy_t12_pct_chg":-0.0652,"tradeout_new_lease_pct_avg":-0.0209,"retention_rate":0.643,"dom":60,"housing_supply_growth_1_year":0.0205,"job_growth_1_year":0.035,"population_growth":0.0167,"total_population_est":201883,"education_pctile":2,"net_pct":-0.014341,"net_pct_msa_pctile":23,"hh_inc_diff":-4063,"migr_sample":32773,"hhi_median":88069,"hhi_t12":-0.0052},
{"id":"e15425ec8a9bdf5c27051a6349a4c9f7","name":"Cleburne/Alvarado","asking_rent_latest_avg":1411.79,"in_place_rent_latest_avg":1233.05,"occupancy_latest":0.9046,"occupancy_t12_pct_chg":-0.0148,"tradeout_new_lease_pct_avg":0.0739,"retention_rate":0.810,"dom":44,"housing_supply_growth_1_year":0.0343,"job_growth_1_year":0.0275,"population_growth":0.0377,"total_population_est":210547,"education_pctile":11,"net_pct":0.014221,"net_pct_msa_pctile":90,"hh_inc_diff":680,"migr_sample":24331,"hhi_median":94001,"hhi_t12":0.0573},
{"id":"e33b4d246bd341efc5aa24e4d0b89a6b","name":"Far North/Stockyards","asking_rent_latest_avg":1408.59,"in_place_rent_latest_avg":1353.96,"occupancy_latest":0.9095,"occupancy_t12_pct_chg":-0.036,"tradeout_new_lease_pct_avg":-0.0036,"retention_rate":0.635,"dom":103,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":0,"net_pct":-0.001674,"net_pct_msa_pctile":72,"hh_inc_diff":-10917,"migr_sample":14335,"hhi_median":80221,"hhi_t12":0.1647},
{"id":"e4738d25864ab1fc29e6e5fab4841387","name":"Hemphill","asking_rent_latest_avg":1519.57,"in_place_rent_latest_avg":1527.23,"occupancy_latest":0.8932,"occupancy_t12_pct_chg":-0.0733,"tradeout_new_lease_pct_avg":-0.0219,"retention_rate":0.680,"dom":77,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":21,"net_pct":-0.009911,"net_pct_msa_pctile":35,"hh_inc_diff":19528,"migr_sample":29968,"hhi_median":105471,"hhi_t12":0.0353},
{"id":"e7a6b8eb55b3b3fff187f233107b890f","name":"Riverside","asking_rent_latest_avg":1276.55,"in_place_rent_latest_avg":1294.75,"occupancy_latest":0.938,"occupancy_t12_pct_chg":-0.0333,"tradeout_new_lease_pct_avg":0.0186,"retention_rate":0.652,"dom":58,"housing_supply_growth_1_year":0.0205,"job_growth_1_year":0.035,"population_growth":0.0167,"total_population_est":201883,"education_pctile":56,"net_pct":-0.00721,"net_pct_msa_pctile":48,"hh_inc_diff":9664,"migr_sample":8183,"hhi_median":81018,"hhi_t12":-0.0204},
{"id":"e9c4a41200a286e39aafdca2a12395d5","name":"Tarrant","asking_rent_latest_avg":1490.61,"in_place_rent_latest_avg":1403.06,"occupancy_latest":0.916,"occupancy_t12_pct_chg":-0.048,"tradeout_new_lease_pct_avg":0.0239,"retention_rate":0.675,"dom":81,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":57,"net_pct":-0.027044,"net_pct_msa_pctile":8,"hh_inc_diff":-6040,"migr_sample":14088,"hhi_median":113503,"hhi_t12":0.065},
{"id":"ee80abf1b57bb6cf76cca414a0cf335e","name":"Hurst","asking_rent_latest_avg":1304.25,"in_place_rent_latest_avg":1299.83,"occupancy_latest":0.9566,"occupancy_t12_pct_chg":-0.0011,"tradeout_new_lease_pct_avg":0.061,"retention_rate":0.735,"dom":69,"housing_supply_growth_1_year":0.0157,"job_growth_1_year":0.0191,"population_growth":-0.0013,"total_population_est":39861,"education_pctile":44,"net_pct":-0.012084,"net_pct_msa_pctile":32,"hh_inc_diff":-5212,"migr_sample":20275,"hhi_median":102709,"hhi_t12":0.0363},
{"id":"f5fd9c4427a98ce101ff82b138494245","name":"Handley","asking_rent_latest_avg":1173.14,"in_place_rent_latest_avg":1189.00,"occupancy_latest":0.928,"occupancy_t12_pct_chg":-0.0254,"tradeout_new_lease_pct_avg":-0.0102,"retention_rate":0.555,"dom":65,"housing_supply_growth_1_year":0.0239,"job_growth_1_year":0.0282,"population_growth":0.0232,"total_population_est":963194,"education_pctile":37,"net_pct":-0.013497,"net_pct_msa_pctile":27,"hh_inc_diff":106,"migr_sample":20745,"hhi_median":84278,"hhi_t12":-0.0453},
{"id":"f60caa14c95e074fbdb5f386b5e7f075","name":"Uptown","asking_rent_latest_avg":3050.37,"in_place_rent_latest_avg":2564.32,"occupancy_latest":0.9528,"occupancy_t12_pct_chg":-0.0077,"tradeout_new_lease_pct_avg":0.046,"retention_rate":0.648,"dom":56,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":93,"net_pct":-0.064508,"net_pct_msa_pctile":0,"hh_inc_diff":-4911,"migr_sample":11425,"hhi_median":130901,"hhi_t12":-0.0257},
{"id":"fa880890585867279c2ef3141bb413bb","name":"Central Lewisville","asking_rent_latest_avg":1762.19,"in_place_rent_latest_avg":1668.62,"occupancy_latest":0.9309,"occupancy_t12_pct_chg":-0.0331,"tradeout_new_lease_pct_avg":-0.0422,"retention_rate":0.669,"dom":72,"housing_supply_growth_1_year":0.0337,"job_growth_1_year":0.0436,"population_growth":0.0371,"total_population_est":1045120,"education_pctile":86,"net_pct":0.003884,"net_pct_msa_pctile":81,"hh_inc_diff":10020,"migr_sample":99380,"hhi_median":249644,"hhi_t12":0.0194},
{"id":"fab361058931ac9ea97b436b24ba2376","name":"Lake Village/South Irving/West Dallas","asking_rent_latest_avg":1755.74,"in_place_rent_latest_avg":1655.22,"occupancy_latest":0.912,"occupancy_t12_pct_chg":-0.0211,"tradeout_new_lease_pct_avg":-0.0152,"retention_rate":0.608,"dom":60,"housing_supply_growth_1_year":0.0096,"job_growth_1_year":0.0096,"population_growth":0.0064,"total_population_est":1307930,"education_pctile":4,"net_pct":0.000907,"net_pct_msa_pctile":78,"hh_inc_diff":-5427,"migr_sample":19840,"hhi_median":94583,"hhi_t12":0.097}
]
cd /vercel/sandbox && cat > score_submarkets.py << 'EOF'
import json
import numpy as np
import pandas as pd
with open('dfw_submarkets.json') as f:
data = json.load(f)
df = pd.DataFrame(data)
# Reliability floor: require sufficient migration sample and non-null core rent/occ fields
before = len(df)
df = df[(df['migr_sample'] >= 3000) & df['occupancy_latest'].notna() & df['dom'].notna()]
excluded = before - len(df)
excluded_names = set(pd.DataFrame(data)['name']) - set(df['name'])
def pctile_rank(s):
return s.rank(pct=True) * 100
# Criteria (all pool-computed percentiles within this 105-submarket candidate set, except net_pct_msa_pctile which ships precomputed)
df['pctl_tradeout'] = pctile_rank(df['tradeout_new_lease_pct_avg']) # higher better
df['pctl_occ_level'] = pctile_rank(df['occupancy_latest']) # higher better
df['pctl_occ_stability'] = pctile_rank(df['occupancy_t12_pct_chg']) # higher better (less decline)
df['pctl_leasing_velocity'] = 100 - pctile_rank(df['dom']) # lower dom better -> invert
df['pctl_supply'] = 100 - pctile_rank(df['housing_supply_growth_1_year']) # lower supply growth better -> invert
df['pctl_jobs'] = pctile_rank(df['job_growth_1_year']) # higher better
df['pctl_migration'] = df['net_pct_msa_pctile'].astype(float) # already a percentile, higher better
df['pctl_income'] = pctile_rank(df['hhi_t12']) # higher better
weights = {
'pctl_tradeout': 0.20,
'pctl_occ_level': 0.15,
'pctl_migration': 0.15,
'pctl_occ_stability': 0.10,
'pctl_leasing_velocity': 0.10,
'pctl_supply': 0.10,
'pctl_jobs': 0.10,
'pctl_income': 0.10,
}
df['composite'] = sum(df[k]*w for k,w in weights.items())
df_sorted = df.sort_values('composite', ascending=False).reset_index(drop=True)
# Thresholds for label
def label(score):
if score >= 65:
return 'Strong'
elif score >= 45:
return 'Watch'
else:
return 'Weak'
df_sorted['label'] = df_sorted['composite'].apply(label)
cols = ['name','composite','label','pctl_tradeout','pctl_occ_level','pctl_migration','pctl_occ_stability','pctl_leasing_velocity','pctl_supply','pctl_jobs','pctl_income',
'tradeout_new_lease_pct_avg','occupancy_latest','net_pct_msa_pctile','dom','housing_supply_growth_1_year','job_growth_1_year','hhi_t12','hhi_median','asking_rent_latest_avg','total_population_est']
print("Excluded (reliability floor migr_sample<3000):", excluded, sorted(excluded_names))
print("\nTop 15 submarkets by composite score:")
print(df_sorted[cols].head(15).to_string(index=False))
df_sorted.to_json('scored_submarkets.json', orient='records')
EOF
python3 score_submarkets.pycd /vercel/sandbox && python3 -c "
import json
with open('scored_submarkets.json') as f:
data = json.load(f)
import pandas as pd
df = pd.DataFrame(data)
print('Max tradeout:', df.loc[df.tradeout_new_lease_pct_avg.idxmax(),['name','tradeout_new_lease_pct_avg']])
print('Max occupancy:', df.loc[df.occupancy_latest.idxmax(),['name','occupancy_latest']])
print('Max migration pctile:', df.loc[df.net_pct_msa_pctile.idxmax(),['name','net_pct_msa_pctile']])
print('Min supply growth:', df.loc[df.housing_supply_growth_1_year.idxmin(),['name','housing_supply_growth_1_year']])
print('Max job growth:', df.loc[df.job_growth_1_year.idxmax(),['name','job_growth_1_year']])
"
cd /vercel/sandbox && python3 -c "
import json
with open('dfw_submarkets.json') as f:
data = json.load(f)
import pandas as pd
df = pd.DataFrame(data)
print('DFW submarket avg occupancy_t12_pct_chg:', df['occupancy_t12_pct_chg'].mean())
print('DFW submarket avg tradeout:', df['tradeout_new_lease_pct_avg'].mean())
print('DFW submarket avg in_place rent growth proxy (n/a)')
print('share with negative occupancy_t12_pct_chg:', (df['occupancy_t12_pct_chg']<0).mean())
print('share with negative tradeout:', (df['tradeout_new_lease_pct_avg']<0).mean())
"
DFW's supply hangover is metro-wide — 97% of submarkets are still seeing occupancy slide year-over-year — but eight submarkets are bucking the cycle with pricing power, tight occupancy, and real demand behind them.
Across Dallas-Fort Worth's 117 submarkets, the average submarket's occupancy fell 3.5 points over the past year and new-lease tradeouts are negative in 6 of 10 — the scar tissue from the 2023–2025 delivery wave. Against that backdrop, a scored screen across rent-growth momentum, occupancy level and stability, leasing velocity, supply pressure, job growth, migration quality, and income momentum surfaces a clear pattern: the strongest fundamentals right now sit in the outer-ring growth corridors (Fort Worth's southern and western exurbs, Denton) and a few workforce-housing pockets — not the trophy Uptown/Plano submarkets, most of which are absorbing new deliveries and showing flat-to-negative tradeouts.
| Submarket | Composite Score | New-Lease Tradeout % | Occupancy % | Migration Quality (MSA Pctile) | Days on Market | 1-Yr Job Growth % | 1-Yr HH Income Change % |
|---|---|---|---|---|---|---|---|
| Burleson/Joshua | 72.0 | 6.2% | 94.8% | 82nd | 64 | 2.8% | 2.5% |
| Randol Mill | 71.0 | 4.3% | 97.9% | 47th | 34 | 2.8% | -6.0% |
| East Denton | 70.8 | 7.1% | 92.2% | 59th | 42 | 4.9% | 10.6% |
| Outlying Johnson County | 70.7 | 6.1% | 97.5% | 97th | 115 | 2.8% | 4.6% |
| Weatherford | 69.7 | 3.4% | 92.7% | 84th | 53 | 6.8% | 5.2% |
| Benbrook | 69.6 | 5.6% | 95.8% | 51st | 54 | -2.0% | -2.4% |
| Hurst | 69.4 | 6.1% | 95.7% | 32nd | 69 | 1.9% | 3.6% |
| South Oak Cliff | 68.8 | -1.8% | 96.5% | 57th | 25 | 1.0% | 9.2% |
What makes each one stand out:
Weights and guardrails. Composite blends tradeout momentum (20%), occupancy level (15%), migration quality (15%), occupancy stability (10%), leasing velocity (10%), supply pressure (10%, lower growth scored better), job growth (10%), and income momentum (10%) — pool-relative percentiles across the 117 submarkets. Three submarkets (Bachman Lake/West Northwest Highway, South Downtown, West Vickery Park) were dropped for migration samples under 3,000 households, too thin to score reliably. Note that job growth and population figures load at a county/city rollup for several submarkets rather than a true submarket-level count — treat those two rows as directional, not precise.
I'd act on Burleson/Joshua and Randol Mill first — both combine pricing power with real occupancy tightness rather than one propping up the other. The datapoint that would flip this read: if T13-T24 permit data (not available at submarket grain here) shows the supply pressure in Burleson, East Denton, and Weatherford converting into deliveries faster than absorption — that would turn today's tradeout strength into next year's concession war. Happy to pull property-level comps or drill into any one of these eight.
This is a read-only snapshot of a RealAI analysis.