← back to La Socrata Ingester
viewer/MONETIZATION-READINESS.md
73 lines
# Monetization-Readiness Checklist — buildingpermits.agentabrams.com
Status: **free public viewer, launch-cleared.** This is the gate list to cross
*before* charging, gating access, exporting leads, or running ads. Grounded in the
vp-compliance-policy review (2026-08-11). Nothing here is required for the free viewer.
**The governing principle:** sell **your value-add** (the `lead_score`, the UI, entity
resolution, enrichment joins), NOT the **raw government feed**. Re-displaying public
records for free is clean; reselling the raw County/CSLB dataset as "a licensed data
source" is the specific thing that trips redistribution terms. Keep that line bright.
---
## A. Legal / compliance gates — do BEFORE any paid tier
- [ ] **LA County Assessor eGIS Terms of Use** — read line-by-line for a
*commercial-resale / redistribution* restriction on parcel + assessed-value data.
This is the real constraint (assessed value/year/sqft is the highest-sensitivity
County-sourced field on the site). Terms: https://egis-lacounty.hub.arcgis.com/pages/terms-of-use
→ If it prohibits resale of derived County data: don't sell the raw feed; sell value-add only.
- [ ] **LA City Open Data terms** — confirm the commercial-use allowance (generally permits
commercial reuse "as is"; verify current version).
- [ ] **CSLB data** — only if contractor data enters the *product*. The free portal Master
file is public but CSLB has redistribution terms; the paid Full File ($235) is the
commercial-cleared path. Contractor names/phones in a paid product = re-check terms.
- [ ] **Terms of Use page** — upgrade `/terms.html` from informational to commercial:
add subscription terms, refund policy, SLA/uptime disclaimer, acceptable-use for paid API.
- [ ] **Privacy Policy** — upgrade `/privacy.html`: the moment you add accounts, forms,
email capture, analytics, or ads you are "collecting"/"selling-or-sharing" under CCPA/CPRA.
Add a **"Do Not Sell or Share My Personal Information"** link + a real data-inventory section.
- [ ] **CA data-broker registration** — evaluate if the product does owner-targeting /
lead-gen (assembling public records into a targeted-marketing product about identifiable
owners is the data-broker fact pattern; CA requires registration + DELETE Act compliance).
- [ ] **`board.html`** — currently pulled to `viewer/private/`. If it becomes a public sales
page, scrub the "resell the raw feed / geo-target owners" language (it's the exact
commercial-intent admission a County/CCPA reviewer would cite). Sell the value-add framing.
## B. Product / infrastructure gates
- [ ] **Keyed map tiles** — replace OSM public tiles (light-use only) with MapTiler / Stadia /
Mapbox (free tier, needs a key). Required before real traffic *and* before monetizing.
One-line swap in `index.html` once the key exists.
- [ ] **Cloudflare rate-limit** — apply `scripts/apply-ratelimit.sh` with a WAF-scoped token
(120 req/min per IP on `/api/`). Protects the DB and keeps tile fan-out sane.
- [ ] **Accounts / auth** — if tiered access, add real auth (not the shared Basic-auth default).
Set `VIEWER_USER`/`VIEWER_PASS` via env; never ship `admin/DW2024!` on a paid instance.
- [ ] **Payments** — Stripe in **TEST mode first**; live keys + real charges stay gated to Steve.
- [ ] **API productization** — if selling API access: keys, per-key quotas, usage metering,
documented endpoints, and the ToU/DPA that governs redistribution by *your* customers.
- [ ] **robots.txt posture** — decide crawl policy for a paid product (currently disallows
`/api/`, the deck, and `/private/`).
## C. Data-source monetization matrix
| Source | Free viewer | Paid / resale |
|---|---|---|
| LA City building permits | ✅ clean | ✅ likely OK (verify LA City commercial clause) |
| LA County parcels / assessed value | ✅ clean | ⚠️ **gate on eGIS ToU** (resale/redistribution) |
| CSLB contractors | not on public site | ⚠️ re-check terms; paid Full File is the cleared path |
| Business registrations | not on public site | ✅ LA City open data |
| OSM map tiles | ✅ (light use) | ⚠️ keyed provider required |
| Google Maps deep-links | ✅ clean | ✅ clean (plain links, not the API) |
| Our `lead_score` / UI / enrichment | ✅ ours | ✅ **this is the thing to sell** |
## D. Suggested first paid shape (lowest-risk)
Sell **access to the enriched, ranked, filterable interface + exports of OUR value-add
fields** (lead_score, enrichment joins, saved searches, alerts) — priced as a SaaS
subscription. Avoid, until ToU-cleared: selling the **raw County/CSLB datasets** as a
downloadable/licensable feed. This keeps you on your own IP, not the government's data-license.
---
Owner: vp-dw-commerce / Steve. Revisit the eGIS ToU line at the top before anything ships paid.