← back to Commercialrealestate
doctrine refined: CREXi/Redfin = discover broker+firm ONLY; all listing DATA from the firm's own site (Steve 2026-07-31)
4de252a5ab2f461a47d3817d25c109ee902584ba · 2026-07-31 08:20:49 -0700 · steve
Files touched
Diff
commit 4de252a5ab2f461a47d3817d25c109ee902584ba
Author: steve <steve@designerwallcoverings.com>
Date: Fri Jul 31 08:20:49 2026 -0700
doctrine refined: CREXi/Redfin = discover broker+firm ONLY; all listing DATA from the firm's own site (Steve 2026-07-31)
---
docs/SOURCING.md | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
diff --git a/docs/SOURCING.md b/docs/SOURCING.md
index af0b86a..5f6cfe3 100644
--- a/docs/SOURCING.md
+++ b/docs/SOURCING.md
@@ -62,15 +62,20 @@ doctrine classifier → the Brokerage facet. Newly-resolved brokers surface with
suppressed → honest NULL, never fabricated.
## Hard lines
-- **An aggregator is NEVER a data SOURCE (Steve, 2026-07-31).** Redfin, Zillow, CoStar, CREXi,
- LoopNet are portals, not the listing company. Do NOT scrape listing facts (agent, price, status)
- off their pages/APIs to populate our catalog — "otherwise we are scraping data. no." The only
- legitimate sources of a listing's truth are: (1) the **listing brokerage's own site/feed**, or
- (2) a **licensed MLS/IDX/RETS feed** we are entitled to. If we can't source a field legitimately,
- we leave it blank and honestly label it — we do not scrape a portal to fill it.
-- This kills the residential-broker-from-Redfin plan (page-scrape AND Browserbase) entirely, and
- means the Redfin-sourced SFR/condo inventory is provisional aggregator data pending a legitimate
- feed — not something to enrich by scraping Redfin harder.
+- **THE RULE (Steve, 2026-07-31): CREXi / Redfin may be used to DISCOVER the broker + firm ONLY —
+ no more data. Then get ALL listing info from the broker's or firm's own site.** Aggregators
+ (Redfin, Zillow, CoStar, CREXi, LoopNet) are a phone book for *who the listing broker is*, never
+ the record of *what the deal is*. Allowed from an aggregator: broker name + firm (the discovery
+ breadcrumb, + an address only as a locator to find the listing on the firm site). NOT allowed from
+ an aggregator: price, status, cap rate, units, description, specs, images — those come from the
+ **listing brokerage's own site/feed**, or a **licensed MLS/IDX/RETS feed** we're entitled to.
+- Two-layer pipeline: **discovery layer** (CREXi/Redfin → broker+firm) → **truth layer** (firm's own
+ site → the deal's real data). The broker-of-record resolution (Phase 1/2-lite) IS the allowed
+ discovery step; the CREXi deal fields (price/units/status) are aggregator data pending firm-site
+ truth, not canonical.
+- Kills the residential-broker-from-Redfin *data* scrape (page-scrape AND Browserbase); residential
+ SFR/condo detail stays provisional aggregator data until a firm-site or licensed feed supplies it.
+ If we can't source a field legitimately, leave it blank + label honestly — never scrape a portal.
- Never present an aggregator record as canonical when a broker-of-record is known.
- Business-contact fields only (CCPA); record `source_url` per enriched field.
- Firm-direct scraping spend is shown per-run and gated.
← ccaba2e doctrine HARD RULE: an aggregator is never a data source — k
·
back to Commercialrealestate
·
research: MLS/listing data licensing — cost + B2B-use verdic a70ff5b →