← back to Commercialrealestate
docs/TOOL-SPEC.md
70 lines
# 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.