ListingLab

Reconciliation gate: numbers inside the book have to agree before export.

Engine: up · 61 rules live · upload max 100 MiB

Prereq met via pnpm dev:demo (CoStar PDF extract ON for demos; finished OM HQ ~61 MiB fits under upload max).

Start demo →Monterra (clean)Rules catalogAll dealsNew dealReview queueTeam libraryTemplate librarySettings

Client meeting — demo this

Chair dry-run checklist: docs/partner/CHAIR-DRY-RUN-CHECKLIST.md · Meeting one-pager: docs/partner/CLIENT-MEETING-ONEPAGER.md

Prereq: pnpm dev:demo — then Start demo (F1 fail) → Sources (model + finished OM) → Monterra clean (Model vs OM) → Verify Maps (pins + POI checklist) → Compose Callouts → Export. Numbered callout boxes ship only when checklist confirmed, hero aerial matches outline, and ≤8 places.

Pre-meeting check (30s): ./scripts/demo-smoke.sh — engine health, F1 blocks export, Monterra clean. Full dry-run steps live in the one-pager.

After meeting — optional approve pastes (one-pager → After the meeting): G-07 Financials-review outline (plans/27-financials-review/VISUAL-PLAN-OUTLINE.md; currently deferred) · G-26 mobile shell outline (plans/25-mobile-story/VISUAL-PLAN-OUTLINE.md) unblocks DealShell collapse CSS. Residual GAP order: plans/46-gap-residuals/PLAN.md. Partner files: docs/partner/CORPUS-GAPS-PARTNER-REQUEST.md. No multi-file UI until TASK_LOG shows the matching founder approve line.

  1. Fail — rent roll doesn’t add upReal retail OM; export blocked on SUM finding
  2. Clean — Monterra reconcilesZero blocking; open Model vs finished OM when model + OM PDF are both loaded; maps + POI checklist still need confirm
  3. Maps — confirm pins + POI checklistApproximate stub pins (not survey-grade) + POI checklist; confirm pins unlocks export; numbered callouts need checklist confirmed + hero aerial match + ≤8 places
  4. Compose — Callouts + layoutCallouts tab after POI checklist confirmed; drag adjust gated until aerial matches outline; Deal last saved on Compose + Media; Export waits for Saved
  5. Export — Quick RGB OM~14 pages when gates pass; waits for Compose Saved; manifest poi_callouts_applied true/false — numbered boxes only when checklist + aerial + ≤8; Previous downloads when history exists

Also useful

Do not claim: CoStar portal scrape · finished OM layout · print-ready PDF · “every figure cites source” · liability framing · numbered callouts on every export. Optional: sidebar Demo view → Matthew for senior read-only review — in-app only; we do not email or Slack yet.

Quick verify demos: Monterra (clean) · F1 retail (blocking)

Legacy HTML prototype (internal dev tour — flow reference only; real product path is the deal journey above)