An option chain, not four bets. Who pays each spine cost — and whether it's CapEx or OpEx — is the only thing that really changes between them. Animated explainers unpack the non-obvious dynamics.
Every model carries the same three cost atoms. The models differ only in who pays them and when.
Baseline = "small shop" (~5 seats) scaling up. ⚠ = dominated by an unconfirmed parameter (RPP_SEAT, API_SEAT).
| Cost line | 1 · On-prem box | 2 · Hosted SaaS | 3 · In-house | 4 · Franchise |
|---|---|---|---|---|
| Hardware CapEx | box / ~5 seats | ~$0 | box (own use) | box/node — franchisee |
| Setup labour | High (per site) | Low | Low (just you) | Med |
| Fixed OpEx/mo | ~$0 + power | CLOUD_INFRA | CLOUD_INFRA | central clearing only |
| Data base/mo | API_BASE ⚠ | API_BASE ⚠ | portal — see §4 | API_BASE ⚠ |
| Data per seat/mo | API_SEAT ⚠ | API_SEAT ⚠ | RPP_SEAT ⚠ | API_SEAT ⚠ |
| Inference + voice | ~$0 local | per-min unless relay | ~$0 local | ~$0 local |
| Sales / closing labour | buyer's | buyer's | HIGH — your closers | franchisee's |
| Redistribution licence? | if leads leave site | required (worst) | not required ✅ | required (existential) |
| Marginal / +1 seat | step + data | ~flat + data | new closer $$ | ~$0 to you |
| Marginal / +1 lead | ~$0 | cents | data + commission | ~cents |
| Revenue capture | box + licence/support | per-seat sub | full commission/deal | rake % + franchise fee |
| Cost-scaling shape | stepwise | linear | linear in closers | sub-linear |
For in-house, the Cotality API may be unnecessary: enrich through the RP Data portal on a normal seat. You don't redistribute, so the enrichment method stays a blackbox. This drops the API line entirely — but it only opens one of two gates.
| Line | API path | Portal path |
|---|---|---|
| Data UAT one-off | API_UAT ($2.5k) | $0 |
| Data base/mo | API_BASE ($500) | $0 |
| Per seat/mo | API_SEAT ⚠ | RPP_SEAT ⚠ (your heads) |
| Redistribution licence | required at scale | not required ✅ |
| Throughput | high (sanctioned) | capped by posture (§5) |
| Cash delta (portal saves) | — | ~$2.5k once + $500/mo ≈ $6k+/yr |
Chosen posture: HITL assisted automation (Camoufox) — a real human operator extended by tools of graduated agency. Defensibility is governed by one thing: how tightly intent couples to access, per unit of work.
Every other matrix row is deterministic cash. This one is priced by expected value. The triggering event is discovery — Cotality detecting automated access and acting on it.
Without this row, portal beats API trivially (saves ~$6k/yr). But API carries ~zero contingent liability. The honest comparison:
| Posture | P(discovery/yr) | Severity if caught | E[contingent]/yr | Verdict vs API |
|---|---|---|---|---|
| CLEAN — L1–L2, no stealth, logged, human-rate | ~2% | ~$20k (seat pause + rebuild) | ~$400 | portal wins — save $6k, risk $400 |
| STEALTH-HEAVY — L3–L4 + concealment, in negotiation | ~15% | ~$300k (licence talks collapse) | ~$45k | API was far cheaper |
Not a tangent — it's what makes the franchise rake worth more than the on-prem licence. Per-lead pricing costs cents (≈$0 on the local box); its value compounds with network liquidity.
The same sequence the canon already encodes (exchange PARKED, work the GREEN lane) — so it compounds rather than re-derives. SaaS (2) is conditional distribution only.
Property-data was the easy part. The real pipeline bolts social enrichment on the front and social engagement + ads on the back — both riskier and more regulated than the spine. And they form a loop, not a line.
The cheap scrape isn't cheap — its risk is hidden upstream. Proxycurl, the #1 LinkedIn data API at $10M ARR, was sued out of existence by LinkedIn/Microsoft in 2025 for running fake-account farms. DIY scraping makes you a miniature Proxycurl; the cheap Apify actors are those farms, one layer removed — provenance-tainted, and able to vanish overnight.
Best enrichment for the AU / SMSF book is cheap, clean, AU-native: ABN/ASIC business-owner signal (the standout), Roy Morgan/Mosaic, phone & email validation. Buy professional data from PDL/Apollo. Spike-test coverage first — consumer skew may make match rate 10–25%, which could make the whole layer low-ROI (the cheapest answer of all).
You cannot run finance ads in Australia without an AFSL (or declared exemption) — Meta and Google both verify financial-services advertisers. SMSF/property-investment counts. So the paid engine is gated on holding a licence, being an authorised rep, or a partner (Greentree?) who holds one.
The moat is a seed-audience asset: Meta lookalikes want 5–10k quality records; you have 30× that. But uploading it needs a consent basis (hashing ≠ Privacy-Act exemption; the OAIC is watching) → build lookalikes off consented records only.
Self-hosted Convex runs the data plane on the box, next to the voice + inference stack. The CapEx↔OpEx swap now covers the whole data plane. But the cost saving isn't the headline — an AU-located box means PII never leaves the country. The reluctant US-East residency compromise simply evaporates.
Honest trade-offs: ops + single-point-of-failure → mandatory backups (snapshot → AU R2/NAS); Clerk is the last cloud tie (free tier covers small shops); cross-node federation stays bespoke (the clearing-saga atom).
A tool-calling Camoufox agent: your data-enrichment specialist that navigates the web like a human, at human pace, and enriches, engages, and tees up like your best salesman — across a database no human could hold in their head. The moat is operating legitimately while competitors get banned.