[object Object]

← back to Nationalrealestate

Extend NYC commercial to all 5 boroughs (41511 total: Manhattan/Brooklyn/Queens/Bronx/SI) via the authoritative building-class map — plausible citywide retail/industrial/office split

92af9dbb17d4c04e41482adfb604993db4649f2f · 2026-07-31 00:06:05 -0700 · steve@designerwallcoverings.com

Files touched

Diff

commit 92af9dbb17d4c04e41482adfb604993db4649f2f
Author: steve@designerwallcoverings.com <steve@designerwallcoverings.com>
Date:   Fri Jul 31 00:06:05 2026 -0700

    Extend NYC commercial to all 5 boroughs (41511 total: Manhattan/Brooklyn/Queens/Bronx/SI) via the authoritative building-class map — plausible citywide retail/industrial/office split
---
 src/ingest/commercial/engine.ts | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/ingest/commercial/engine.ts b/src/ingest/commercial/engine.ts
index 5b30057..f5b069b 100644
--- a/src/ingest/commercial/engine.ts
+++ b/src/ingest/commercial/engine.ts
@@ -20,7 +20,8 @@ const ADAPTERS: Record<string, () => Promise<{ run: () => Promise<{ upserted: nu
     const m = await import('./from_parcel.ts');
     const MAP: Record<string, any> = { O: 'office', K: 'retail', E: 'industrial', F: 'industrial', H: 'hospitality', G: 'other', J: 'other', L: 'other', P: 'other' };
     const classify = (u: string) => { const mm = u.match(/Class\s+([A-Za-z])/); return mm ? (MAP[mm[1].toUpperCase()] ?? null) : null; };
-    return { run: m.ingestCommercialFromParcelCoded('36061', 'New York County NY (Manhattan)', 'Class [EFGHJKLOP]', classify) };
+    const BOROUGHS: [string, string][] = [['36061', 'Manhattan'], ['36047', 'Brooklyn'], ['36081', 'Queens'], ['36005', 'Bronx'], ['36085', 'Staten Island']];
+    return { run: async () => { let up = 0; for (const [fips, name] of BOROUGHS) up += (await m.ingestCommercialFromParcelCoded(fips, `NYC ${name}`, 'Class [EFGHJKLOP]', classify)()).upserted; return { upserted: up }; } };
   },
   // NOTE: Cook(17031)/NY(36061)/Bexar-TX(48029) use CLASS CODES ('Class 5-93','C7','F1')
   // not descriptive text, so from_parcel can't classify them (verified: Cook came back

← b53f231 Add NYC Manhattan commercial (6131) via authoritative NYC DO  ·  back to Nationalrealestate  ·  Add Texas (Bexar+Tarrant, 49768) via authoritative Comptroll 2ebcbf4 →