← back to Commercialrealestate
deal-flow: broaden county source to commercial+industrial+institutional (not just multifamily) — 15k->22k deals, $34.9B->$64.2B; redeployed + live-verified
4b539088919acdba405bbeb205b98cd1479623ef · 2026-07-31 10:10:24 -0700 · steve
Files touched
M scripts/export-deals-flow.py
Diff
commit 4b539088919acdba405bbeb205b98cd1479623ef
Author: steve <steve@designerwallcoverings.com>
Date: Fri Jul 31 10:10:24 2026 -0700
deal-flow: broaden county source to commercial+industrial+institutional (not just multifamily) — 15k->22k deals, $34.9B->$64.2B; redeployed + live-verified
---
scripts/export-deals-flow.py | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/scripts/export-deals-flow.py b/scripts/export-deals-flow.py
index 254ed60..be4c93d 100644
--- a/scripts/export-deals-flow.py
+++ b/scripts/export-deals-flow.py
@@ -10,13 +10,20 @@ rows=c.execute("""
SELECT ain,address,use_desc,units,year_built,transfer_date,transfer_year,
assessed_value,est_sale_price,confidence
FROM derived_sale
- WHERE units>=2 AND transfer_year>=2022 AND est_sale_price>=500000
+ WHERE transfer_year>=2022 AND est_sale_price IS NOT NULL
+ AND (
+ (units>=2 AND est_sale_price>=500000) -- multifamily
+ OR (est_sale_price>=1000000 AND lower(use_desc) IN ('commercial','industrial','institutional','recreational')) -- commercial/industrial/etc
+ )
ORDER BY transfer_date DESC, est_sale_price DESC
- LIMIT 15000
+ LIMIT 22000
""").fetchall()
deals=[{'ain':r[0],'address':r[1],'use':r[2],'units':r[3],'year_built':r[4],
'date':r[5],'year':r[6],'assessed':r[7],'price':r[8],'confidence':r[9],
'source':'LA County Assessor (Prop-13 reassessment)','source_type':'public-record','kind':'county-sale'} for r in rows]
json.dump({'generated':'2026-07-31','source':'LA County Assessor roll (public, resellable)','count':len(deals),'deals':deals},open(OUT,'w'))
-print(f'deals-flow.json: {len(deals):,} curated county deals (multifamily 2022+, >=$500k)')
+from collections import Counter
+byuse=Counter(d['use'] or '(none)' for d in deals)
+print(f'deals-flow.json: {len(deals):,} curated county deals (multifamily + commercial/industrial, 2022+)')
+print(' by use:', dict(byuse.most_common(6)))
c.close()
← 610cbf0 crcp: apply broker/firm cleanup on cre (1215->1163 firms, 26
·
back to Commercialrealestate
·
chore: v0.13.0 — broker mind-map feature + firm/broker clean eceeb41 →