[object Object]

← back to Commercialrealestate

spec: tool/subscription layer (DTD Option C) — sell the tool over full corpus, assessor view-only + federal exportable, tiers/features/build-order, billing gated

ddf2b47fb443dd6da9bf56dcb19bb00204d5b8bb · 2026-07-31 10:29:04 -0700 · steve

Files touched

Diff

commit ddf2b47fb443dd6da9bf56dcb19bb00204d5b8bb
Author: steve <steve@designerwallcoverings.com>
Date:   Fri Jul 31 10:29:04 2026 -0700

    spec: tool/subscription layer (DTD Option C) — sell the tool over full corpus, assessor view-only + federal exportable, tiers/features/build-order, billing gated
---
 docs/TOOL-SPEC.md | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 69 insertions(+)

diff --git a/docs/TOOL-SPEC.md b/docs/TOOL-SPEC.md
new file mode 100644
index 0000000..4772b5d
--- /dev/null
+++ b/docs/TOOL-SPEC.md
@@ -0,0 +1,69 @@
+# CRCP Deal-Flow — Tool / Subscription Spec (Option C)
+
+DTD verdict 2026-07-31: monetize the **tool over the full corpus**, not raw-data resale. Charge for
+access + workflow (alerts, saved searches, lead lists) built on all 22,581 deals used *internally*;
+never hand over raw assessor records. This spec turns the live board (`crcp.agentabrams.com/deals-flow.html`)
+into a subscription product.
+
+## 1. Thesis & moat
+The raw data is free and anyone can re-pull it — so the data is NOT the moat. Durable value = **curation**
+(one deal graph across 3 disjoint public sources, deduped, classified), **workflow** (alerts, saved
+searches, watchlists, exports), and **distribution** (the screen a loan officer / broker opens each
+morning). We sell the surface, not the CSV.
+
+## 2. Legal posture (the whole reason for Option C)
+- CA R&T §408.3(c) restricts *reselling* assessor data for owner solicitation — it does **not** restrict
+  *using* it inside a product. So assessor deals are **view-only in-app, never raw-exportable**.
+- **Federal data (SEC EDGAR + HUD FHA) has no such restriction** → it is the **exportable / API tier**.
+- **Gated before launch:** a narrow attorney confirm that "assessor data as the *engine* of a paid tool,
+  no raw resale" sits outside §408.3(c) (memo: `pending-approval/crcp-deal-flow-resale-legal-408-3c.md`,
+  reframed narrower). Cheaper + more likely-yes than a bulk-resale opinion.
+
+## 3. Tiers
+| Tier | Price (hypothesis) | Unlocks |
+|---|---|---|
+| **Free** | $0 | Browse the board, basic filters, last-30-days only, no export/alerts |
+| **Pro** | ~$49–99/mo/seat | Full corpus + history, all filters, **saved searches**, **email/Slack alerts**, watchlists, assumable-loan lead lists |
+| **Team / API** | ~$299+/mo | Everything + **federal-data export/API** (SEC+FHA, resell-clean), multi-seat, priced by volume |
+
+Assessor deals appear in every tier *in-app*; only federal data is exportable (any tier gate on export).
+
+## 4. Core features (build order)
+Already built: the deal-flow board (cards, source badges, filters, sort, density) + the 3 data pipelines
+(`derive-sale-prices.py`, `fetch-edgar-reit-deals.js`+`parse-edgar-prices.js`, FHA export).
+
+**P1 — make it a product (no new data):**
+1. **Accounts** — per-user login replacing shared basic-auth (email magic-link; reuse the DW signup
+   magic-link pattern). Tier stored per user.
+2. **Saved searches** — persist a filter set (city/use/units/price/source) per user.
+3. **Alerts** — daily/weekly digest: "new deals matching your saved search" (email via George; Slack opt).
+   This is the retention hook — the reason Frank opens it daily.
+4. **Watchlist / tags** — star a deal, add a note, CRM-shaped list + CSV of *federal-only* rows.
+5. **Deal detail view** — click a card → full record + provenance + "similar recent sales in this city."
+
+**P2 — deepen (some gated/paid):**
+6. Assumable-loan **lead engine** surfaced as its own saved-search preset (FHA below-market × city).
+7. Owner-name enrichment (paid source — gated spend) shown in-app only (not exported).
+8. Recorder-DTD fill for the commercial entity-transfer gap (targeted, per-deal).
+
+**P3 — expand revenue:**
+9. Federal-data **API** (SEC+FHA) for the Team tier.
+10. Funded §408.3(c) opinion → if it clears bulk resale, add an assessor export tier (phase-2 A).
+
+## 5. Billing (GATED — money)
+- **Stripe subscription**, TEST-mode first (reuse the AbramsEgo/abramsego-golive TEST pattern). Products =
+  the 3 tiers; webhook sets user tier. **Live keys + real charges are Steve-gated** → draft go-live memo
+  to pending-approval, never auto-flip.
+
+## 6. Data cadence (already local, $0)
+- Assessor derive: on each fresh roll pull (annual) + re-export deals-flow.json.
+- EDGAR: weekly `fetch 365 && parse` (local Ollama, $0) → priced REIT deals.
+- FHA: on HUD refresh. All source-stamped per the always-document-source rule.
+
+## 7. What's gated (stays Steve's)
+Attorney confirm (§408.3(c) narrow), Stripe live/charges, any owner-name/paid-data spend, go-public
+beyond auth, deploy. Everything in P1 (accounts, saved searches, alerts, watchlist) is $0/local/reversible.
+
+## 8. First concrete build slice (when greenlit)
+P1 items 1–3 on the existing board: accounts + saved searches + a daily alert digest. That converts the
+live board from "a page" into "a tool someone renews" — the minimum that justifies a subscription.

← 94b5bba nav: add 💰 Deal Flow link (home + mls) — board now discover  ·  back to Commercialrealestate  ·  CRCP modals: graceful no-coverage state + modal-open telemet ee6f9c4 →