[object Object]

← back to Commercialrealestate

5x night-log: items 2+5 done; item 4 deferred (do with Steve); next = price-band chart + map clustering

28c0b79d8e8f6e49d2d983ecd4e2ca61a59643e5 · 2026-06-28 23:37:30 -0700 · Steve

Files touched

Diff

commit 28c0b79d8e8f6e49d2d983ecd4e2ca61a59643e5
Author: Steve <steve@designerwallcoverings.com>
Date:   Sun Jun 28 23:37:30 2026 -0700

    5x night-log: items 2+5 done; item 4 deferred (do with Steve); next = price-band chart + map clustering
---
 5x/NIGHT-LOG.md | 37 +++++++++++++++++++++++--------------
 1 file changed, 23 insertions(+), 14 deletions(-)

diff --git a/5x/NIGHT-LOG.md b/5x/NIGHT-LOG.md
index 89b4a86..2886878 100644
--- a/5x/NIGHT-LOG.md
+++ b/5x/NIGHT-LOG.md
@@ -5,23 +5,32 @@ NO metered spend (Browserbase SFR agent capture ~$40-80 stays GATED), NO sends,
 Each item: implement → verify (/3x or targeted) → commit → log here.
 
 ## Queue (priority order)
-1. [x] /5x map.html — aerial onerror fallback + strong map-assert.js gate (markers/toggles/popup/empty) → `f98b8af`
-2. [ ] /5x crcp.html (segments, modals, sort, pitch) + strong gate
-3. [x] Fix nonqm agent-count gap in /api/segments (0 → 1696) → `b6a5bdd`
-4. [ ] Wire rent-roll NOI → property-card DSCR when matching rent-roll JSON exists
-5. [ ] Recover ~900 unplaced geocodes (free Census re-run; tighten address cleanup)
+1. [x] map.html — aerial onerror fallback + strong map-assert.js → `f98b8af`
+2. [x] crcp.html strong gate (crcp-assert.js) + six-way fix → `928c43f`
+3. [x] nonqm agent-count gap (0 → 1696) → `b6a5bdd`
+4. [~] rent-roll NOI → DSCR — DEFERRED (ambiguous property↔rent-roll matching; needs a real rent roll +
+       deal context from Steve. Will scaffold a /api/rent-rolls lister, but document-grade DSCR best done WITH Steve.)
+5. [x] geocoder hardening + recovery pass → `ad89b92` (+1; remainder are Census TIGER gaps)
 6. [ ] Add price-band (p10-p90) chart parity + chart polish on deals.html
 7. [ ] Map: cluster dense SFR zones for low-zoom readability + price-band color mode
 8. [ ] Accessibility/mobile pass across pages (contrast, viewport, keyboard)
-9. [ ] Strengthen verifiers (per-page assert scripts like deals-assert.js)
+9. [ ] Strengthen verifiers — DONE for deals/map/crcp (per-page *-assert.js gates)
 
 ## Done (newest first)
-- `b6a5bdd` item 3 — nonqm segment agent count wired (union of non-FHA condo + 1-9-unit/mixed listing agents); 0→1696.
-- `f98b8af` item 1 — map.html aerial-img onerror graceful fallback; new 5x/map-assert.js strong gate
-  (10,875 markers / 5 types / toggles / popup-decode / empty-data) PASS; six-way 6/6. Caught + fixed a bug in
-  my OWN verifier (window.layers vs bare const) before trusting it.
+- `ad89b92` item 5 — geocoder strips unit designators (#4/Apt/Ste/Fl) + skips un-geocodable junk
+  (Call Broker/Plan N/no-street-#). Retro recovery +1 only; HONEST: ~769 remaining un-placed are Census
+  TIGER gaps (new-build streets) — not free-fixable; durable win = future unit-suffixed imports geocode right.
+- `928c43f` item 2 — crcp.html strong gate (crcp-assert.js): tiles+data, 8 segments attached/correct/no-NaN,
+  collapsed panel expands→visible, segment modal opens w/ call-list, broker sort reorders, empty→"—". 6/6 +
+  PASS. No crcp defect — the M3 FAIL was asserting VISIBILITY on intentionally-collapsed rows (selector fix:
+  use `#tiles .tile`, always-visible).
+- `b6a5bdd` item 3 — nonqm segment agent count wired (non-FHA condo ∪ 1-9-unit/mixed listing agents); 0→1696.
+- `f98b8af` item 1 — map.html aerial onerror fallback; strong map-assert.js (10,875 markers/toggles/popup-decode/
+  empty) PASS; six-way 6/6. Caught a bug in my OWN verifier (window.layers vs bare const) before trusting it.
 
-## Method note (carried from the deals.html /5x + contrarian gate)
-- The /3x six-way is the FLOOR (presence checks). For each page, build a per-page strong assert that proves the
-  thing actually WORKS with data + degrades on empty/edge data + 0 swallowed errors. Verify the verifier too.
-- Next wake: item 2 (crcp.html strong gate) → item 4 (rent-roll NOI → DSCR) → items 5-9.
+## Method note (carried)
+- /3x six-way = FLOOR (presence). Per page, build a strong *-assert.js that proves it WORKS with data +
+  degrades on empty/edge + 0 swallowed errors. VERIFY THE VERIFIER (read page globals by bare name; assert
+  visibility correctly for collapse-by-default panels).
+- Next wake: item 6 (deals price-band chart parity + polish) → item 7 (map SFR clustering) → item 8 (a11y).
+  Item 4 (rent-roll→DSCR) deferred to do WITH Steve.

← ad89b92 5x night item 5: harden geocoder — strip unit designators (#  ·  back to Commercialrealestate  ·  auto-save: 2026-06-28T23:47:35 (1 files) — data/map-points.j e121e47 →