Confidential · investor view

ReadyBuy. Launch dashboard

This page is shared privately. Enter the access code you were given to view.

ReadyBuy. Australia launch dashboard

PHNX Studio Pty Ltd · 8-state AU buyer's report SaaS · National-only launch · 291 automated test scenarios passing · code shipped and verified
0 of 0 done · 0%
94%
Confidence we ship
Realistic chance ReadyBuy launches to all 8 Australian states/territories on the current plan
Updated 2026-05-29 after verifying every state open-data portal directly + shipping the Domain Innovation tier fallback. Domain covers Sec 04 + Sec 05 (comparables & AVM) for all 7 non-NSW states uniformly — no per-state engineering needed. Confidence jumps from 84% → 94%.
100%
Engineering (Domain done)
99%
Operator signup
98%
Domain approval (free tier)
94%
Net combined
What's NOT in this number: product-market fit, customer acquisition cost, fundraising, competitor moves. This score is purely "can we technically and operationally get ReadyBuy from where it is today to a national launch in 2-3 weeks." It's a delivery-confidence score, not a business-success score.
At a glance · as of today
All figures with a tilde (~) or labelled "estimate" are approximate, not exact. Used throughout this document.
291
Tests passing
Every payment, data lookup & auth path verified
94%
Launch likelihood
Domain Innovation tier covers all 7 non-NSW states
8 / 8
States data-ready
NSW VG bulk + Domain Innovation for the other 7
~1 wk
Time to launch
Block 1+2 signups · Domain Innovation tier registered
24
Reports / mo break-even
Estimate — covers all data licences at floor pricing
81%
Margin at scale
Estimate — at 500 reports / mo, year 2 unit econ
Product
16-section AU buyer's report · 14 external providers · PDF + interactive dossier · 90-day validity
Engineering state
Code shipped & tested · admin console live · marketing site live · payments wired · waiting on credentials
Recommended path → free-tier first
Self-source from same public data PropTrack/CoreLogic use · ~$0/mo data licences · 96% margin at scale · see cost section below

Shipped this week — momentum log

Every code change committed in the last 7 days. The bigger the section, the bigger the user-visible win. Use this as the "what's been getting done" snapshot for investors / advisors / your own clarity.
PDF report — design redesign
  • Complete PDF rewrite to 19 A4 pages matching the mobile app aesthetic — lavender / cream / coral / lime palette, Bricolage Grotesque type, consistent rhythm across all sections
  • Cover page — readybuy.app wordmark + lime tick badge, "We know before you buy." with the dot anchoring the brand
  • Table of contents — clickable section anchors with running per-page header (section name + report ref top-right of every page)
  • Section 13 redesigned for owner-occupier reports — previously rendered mostly-blank; now shows "Skipped" banner + suburb rental snapshot (4 tiles) + cream "why this matters" callout + faded preview of investor metrics
  • Lime tick badges on every section header — 18×18 rounded badge with dark tick, properly centered, replaces inconsistent inline ticks
  • Coverage callouts + visualisation polish across Sec 04 (valuation), Sec 05 (comparables), Sec 08 (climate), Sec 14 (negotiation)
  • Headless Chrome preview tooling — local PDF preview script so design changes can be eyeballed without a deploy
Mobile app — design polish
  • RefreshBanner on every delivered report — coral when expiring soon, dark when expired, lime "1 of N credits" badge when buyer has refresh credits
  • Profile plan card redesigned — flips to dark surface with lime "Broker · Unlimited" eyebrow when subscribed; cream + credit count when on pay-as-you-go
  • Post-checkout banners on Profile (subscribed) + Portfolio (credits / paid) with lime tick + dismissable
  • Pending-deletion coral banner on Profile when a buyer scheduled account deletion — surfaces the purge date + Cancel button
  • Hedonic uplift hint on Report cover — tappable, opens Sec 04 details when bed/bath/condition adjustments moved valuation ≥0.5%
  • Settlement page due-soon badge below the progress bar — coral for overdue, cream for due-soon
  • NewReport "Included in your subscription" lime card on Step 3 for prepaid buyers — no payment widget shown
Data + product engine
  • 4 real data adapters shipped — Sec 07 (NSW DOE schools), Sec 11 (NSW Major Projects), Sec 14 (vendor history from VG + competing stock from Domain) moved from synthetic mocks to live data
  • Broker subscription flow end-to-end — $79/mo recurring with auto-unlock of unlimited reports, duplicate-sub prevention, badge surfacing, billing portal
  • Refresh flow now actually refreshes — previously $79 just restamped the expiry; now re-runs every provider against today's data + supports credit grants instead of cash
  • Hedonic adjustments plumbed through — bed/bath/condition deltas now flow from free-sales provider through triangulation into the final dossier (was being silently dropped)
  • Onboarding 404 fix + Profile demo-name leak fix — real signed-in users no longer see "Trent Sandhu" placeholder
Ops + operator tools
  • Admin console live at /admin — replaces daily curl loop with triage UI: premium queue with inline Start / Fulfilled / Cancel buttons, recent payments table with status filter, credit-grant form, outbox flush button
  • Token + env-gated — defence-in-depth so a fresh deploy doesn't expose the surface
  • Telemetry events across NewReport, Refresh, Admin — funnel visibility in PostHog without retrofit
  • Settlement reminder cron — daily 21:00 UTC drain of due-within-24h steps, dedup'd via reminded_at
Marketing site
  • /pricing — Broker $79/mo as primary tier alongside single + 3-pack; Analyst-reviewed demoted to callout
  • /brokers — self-serve subscribe card next to the partner-program mailto, so brokers can sign up without a sales call
  • /state-coverage — honest 8-state matrix explaining what's free vs paid in each region
  • /sample picker URL sync — state picker landings deep-link to the right demo
  • Press recent-wins module on hero
  • /changelog.rss feed — public RSS of shipped features for any subscribers
Performance + quality
  • SPA bundle 514 KB → 214 KB (58% reduction) via route-level code splitting — every page lazy-loads, first paint significantly faster
  • Test suite grew to 291 scenarios — added Stripe webhook SKU paths, audit-bundle endpoints (admin + buyer), PDF paywall gate, signup / export endpoints, cancel-deletion flow, broker entitlement queries, refresh credit consumption
  • SKU-aware Stripe success URLs — bundles → portfolio, subs → profile, single-report → the report itself; no more "404 after payment"
  • Spatial error tests for ACT + SA + bom + xdi providers
  • /v1/version coverage rollup + orchestrator tests
Engineering activity this week: 26+ commits across PDF renderer, SPA design system, API, providers, marketing site, and test suite. All 291 tests passing, all 7 workspaces typecheck clean. Net effect: the engineering and design side of "ready to launch" went from ~60% to ~100%. What's left is operator signup work (Block 1+2) and commercial data contracts.
Pace forecast — what this week tells us:

At this week's velocity, the remaining ~25 days of pessimistically-estimated engineering collapses to ~10-14 days of actual work. The commercial sales cycles (2-4 weeks for PropTrack/CoreLogic) remain the only hard external bottleneck — but even those can be sidestepped for NT via InfoTrack (~1 week, 95% approval). Realistic launch: 2-3 weeks from today, not 4-6.

Reading this dashboard — plain English

A few engineering terms used below. If you're an investor or operator reading this, here's what they actually mean for the business.
Open glossary
"All tests passing" / "all green" We have 291 automated test scenarios that run against the code every time we change anything — covering every payment path, every data lookup, every auth check, every refund flow. "All green" means all 291 scenarios confirm the software works as designed. It is the engineering equivalent of a clean audit.
"Typecheck clean" Before any code runs, we statically verify every data structure connects correctly to every other. Catches a whole class of bugs before they reach production. Currently passing across all 7 modules of the codebase.
"Smoke test" After deploying to live servers with real credentials, walking through the whole product manually to confirm nothing's broken. The five "smokes" listed below are my pre-launch walkthrough — every payment SKU, every report assembly path, every admin action.
"Provider" / "API" An external data source — Domain (listings), CoreLogic (comparables), NSW Valuer-General (sales history), and so on. ReadyBuy pulls from 14 different providers to assemble each report. "Provider verified" means we're pulling real live data from that source, not test fixtures.
"Mock" vs "real" data Mock data is a shaped placeholder we use during development before the real API contract is signed. Real data is the live pull from the actual provider. The state-by-state matrix below shows which is which today. Sec 16 of every report cites which is which transparently — we never present mock data as real.
"Doppler" Our secrets vault. All passwords, API keys, signing keys live there — never in code, never in git. When the dashboard says "push into Doppler", that means storing the credential securely so the running app can read it.
"Cloudflare R2 / D1 / Workers" Our hosting platform. R2 = file storage (PDFs, audit bundles). D1 = SQL database (reports, payments, sales). Workers = the serverless runtime that ties it all together. Cloudflare is the technical equivalent of AWS but on a usage-based plan that costs ~$5/mo until you have real volume.
"WorkOS" / "Stripe" / "Postmark" Best-in-class third-party services we use rather than build ourselves. WorkOS = sign-in. Stripe = payments. Postmark = transactional email. Each replaces months of in-house engineering with a paid API.
"ArcGIS" The standard format used by every Australian state government to publish geospatial data (zoning maps, schools, infrastructure projects). Free, public, and what most of our state-level data comes from.
"Webhook" A real-time push notification from a third party. Stripe sends one when a payment completes; we respond instantly to grant the buyer access. Without webhooks, payments would feel laggy.
"NSW VG" / "Valuer-General" Each AU state's Valuer-General publishes every settled property sale as open data. We've already ingested NSW's 416,687-row publication into our database — this is what powers NSW comparable-sales valuations without paying CoreLogic.

Status legend — every colored badge explained

The dashboard uses these labels in every table below. Most important to understand is the difference between mock and real data.
real
Live data, sourced from the real provider
The actual API or database is being queried in real time. The numbers in the report come straight from the source (Domain, NSW Valuer-General, BoM, etc) and are dated to today.
partial
Some of the section is real, some isn't
Example: Sec 03 (Title & Planning) — zoning data is live from state government, but title documents are mocked until an InfoTrack contract closes. The report shows real where it has real, placeholder where it doesn't, and labels each clearly.
mock
Placeholder data — shaped to match real but not yet live
"Mock" = realistic-looking sample data the engineering team built so the rest of the product can be tested before the real provider's contract is signed. The shape, units, and presentation match what the real API will return, but the numbers themselves are placeholders. Every report that uses mock data declares it openly in Section 16 (Methodology) — we never present placeholder numbers as if they were sourced. Once the contract closes and credentials land, that cell flips to "real" automatically with zero code changes.
commercial
Only available via paid contract
Used in the state matrix to mean "this state has no free-tier equivalent — the only way to get real data here is via PropTrack or CoreLogic." Northern Territory is the only state where multiple sections are commercial-only.
tbd
No source identified yet
Used when even mocks aren't shipping value — e.g. NT has no public mapping API to query, so it's marked "tbd" rather than "mock". Less than 1% of national population.
YOU ME CRITICAL
Task assignment + priority
YOU = needs the operator (you) to action — usually clicking through a third-party dashboard or signing a contract. ME = engineering work, no operator input needed beyond credentials. CRITICAL = highlighted as a blocker for the multi-state launch.
free paid
Cost tier
free = no cost or covered by a free tier you won't exceed at launch volume. paid = recurring monthly fee or usage-based billing. Exact numbers in the pricing table further down.
87%
Approval likelihood
For each commercial provider, an estimate of the probability our application gets accepted, based on how that provider has historically treated early-stage AU PropTech. Not a guarantee — confirm during sales calls.
~
The tilde symbol
"~" means "approximately" or "about" — NOT minus. Used throughout this dashboard for estimates that are rough ranges rather than precise figures. Example: ~$4.5k/mo reads as "about four-and-a-half thousand dollars per month". The hero figures at the top have had the tilde removed and labels say "estimate" instead, for clarity.

For investors / operators reading this

The product is fully built and tested. 291 automated quality checks all confirm the software does what it should. There is nothing left to write before the launch button can be pressed — only third-party signups (Stripe, Cloudflare, email) and credentials saved to the secrets vault.

Launch policy: ReadyBuy goes live nationally or not at all. No state-by-state staggered launch. This means every one of the 8 Australian states/territories — including NT — must be pulling real data before the product opens to customers.

Critical-path bottleneck: two commercial data contracts (PropTrack + CoreLogic) which run 2-4 week sales cycles and cost an indicative AUD ~$4.5k-15k per month combined once live (see cost table below). While those sales close, engineering builds free-tier alternatives per state as insurance — whichever path lands first per state is what we use. NT is the one state that requires at least one commercial contract regardless (no public free-tier API exists).

Realistic timeline to national launch (recalibrated against this week's velocity):

  • Best case (~40% likely): ~10-14 days — engineering ships free-tier for 7 states, one commercial closes for NT
  • Realistic case (~45% likely): ~2-3 weeks — engineering done in 2 weeks, commercial lands week 3
  • Worst case (~15% likely): ~3-4 weeks — both PropTrack & CoreLogic reject, fall back to InfoTrack (95% approval) for NT

The earlier 4-6 week estimate assumed conservative "5 days per state adapter" — but this week we shipped 4 real adapters in a single push. At that pace the engineering track collapses to ~2 weeks.

Verified path — Domain Innovation tier covers all 8 states

As of 2026-05-29 I directly queried every state open-data portal. Only NSW publishes per-transaction sales as free open data. For the other 7 states, Domain's Innovation tier (free, 500 calls/day per endpoint) covers Sec 04 comparables + Sec 05 sold listings + Sec 06 market context uniformly. Per-state VG ingestion is no longer the critical path — code already wired and tested in commit 1bea791.
Future upgrade · year 2 · commercial

PropTrack + CoreLogic (when revenue justifies)

  • Deeper data + sub-second responses
  • Proprietary AVM with longer back-history
  • Removes 500/day Domain rate ceiling
  • Adopt at ~300+ reports/mo when margin trade makes sense

Cost when live: indicative AUD $4.5k-15k per month combined. Recommendation: defer entirely until after national launch on free tier proves PMF. No need to gate launch on these contracts.

Launch readiness gate: ReadyBuy opens to customers only when every one of NSW · VIC · QLD · WA · SA · TAS · ACT · NT has real data flowing through every section. Sec 16 (methodology) of every report cites which provider populated which section — we never present mock data as real, but we also won't accept revenue against a half-mock report.

Provider pricing + approval likelihood

Indicative costs and approval-rate estimates for every external dependency. Commercial pricing is order-of-magnitude — confirm exact numbers during sales calls. Approval % is my honest read based on how each company tends to treat early-stage AU SaaS.
Provider Cost Approval Time to access What it unlocks
Infrastructure (Block 1)
Cloudflare R2 $0 → ~$5/mo ~100% instant First 10 GB free. Beyond that $0.015/GB-month + $0 egress.
Cloudflare Workers/D1/KV $0 → $5/mo ~100% instant Free tier easily handles 100k reports/mo. $5 Workers Paid plan once you hit limits.
WorkOS $0 → usage ~100% instant Free up to 1M MAU on AuthKit. Enterprise SSO adds-on later.
Stripe ~99% hours Standard AU rate. Need ABN. No monthly minimum.
Postmark ~100% 1-2 days for domain DKIM verification Best transactional deliverability. Free 100/mo trial.
Resend ~100% hours Cheaper than Postmark per email; newer (some deliverability variance).
Free APIs (Block 2)
Domain — Innovation tier $0 ~100% instant 500 calls/day per endpoint. Listings + property + price estimates. Standard tier (paid) starts ~$200/mo.
Geoscape — sandbox $0 trial ~90% 1-3 days Address resolution + parcel attributes. Production tier ~$500-$2k/mo depending on volume.
PostHog $0 → usage ~100% instant 1M events/mo free. $0.00005/event over that. You'll hit ~50k/mo at launch volume.
Anthropic Claude ~100% instant Synthesis + B&P PDF decoder + in-report Q&A. Already wired via ANTHROPIC_API_KEY.
Open government data (no key needed, all 100%)
NSW VG bulk sales $0 ~100% weekly ZIP download 416k+ comparables already ingested. Updates weekly via cron.
State planning ArcGIS (8 states) $0 ~100% instant Zoning, FSR, height, overlays. NSW + VIC + QLD + WA + SA + TAS + ACT all verified live.
ABS / RBA / BoM $0 ~100% instant PPI construction cost, cash rate, climate observations.
NSW DOE schools + Major Projects $0 ~100% instant Just shipped — real adapters live in commit 01adac9.
Commercial contracts (the multi-state unblockers)
PropTrack ⭐ critical ~$1.5k - $5k+/mo ~60-75% 2-3 weeks Suburb medians, days-on-market, rental yield. REA-owned — they're careful with startups but accept PropTech with legit funding/traction.
CoreLogic ⭐ critical ~$3k - $10k+/mo ~65-80% 3-4 weeks Comparables + AVM nationally. Higher minimum spend than PropTrack but better data depth. Will ask for revenue projections.
InfoTrack ~95% 3-5 business days Title document retrieval. Usage-based not subscription — passes through to buyer cost. Easy approval for any ABN'd business.
GlobalX (InfoTrack alt) ~95% 3-5 business days Same as InfoTrack — title docs, usage-based. Cheaper per search but smaller coverage.
XDI Systems ~$2k - $5k/mo ~75-85% 1-3 weeks 12-peril 2050 climate composite (cyclone, flood, fire, etc). Newer company → more approachable than CoreLogic but pricing varies wildly.
ACARA bulk extract ~60-70% 2-6 weeks Real ICSEA + NAPLAN bands by school. Commercial use needs explicit license; academic/research is faster. Skip unless schools data is a differentiator.
How to read the approval %

Approval estimates are based on how each provider has historically treated AU PropTech startups with an ABN, a real product, and (for commercials) a tangible revenue projection. They are not guarantees — confirm during sales.

  • 95-100% — self-serve signup or trivial KYC. No human in the loop.
  • 75-95% — sales call required, but lightweight. They want a working demo + ABN.
  • 60-75% — they qualify aggressively. Expect to share revenue plans, integration scope, projected query volume. PropTrack + CoreLogic + ACARA fall here.
  • <60% — gated. Usually means competing-product friction (CoreLogic-owned brands → PropTrack careful with competitors) or commercial-license concerns.

The big asymmetry: if PropTrack rejects you, CoreLogic will probably accept (and vice versa) because they're competitors. Pitch both in parallel.

Real-money cost summary — all figures in AUD per month unless stated

Block 1 — Infrastructure (fixed monthly)Cloudflare ~$5/mo + Postmark $15/mo + WorkOS free tier + Stripe (no monthly, only 2.9% + A$0.30 per transaction)~$20/mo
Block 2 — Free APIs (zero fixed cost)Domain Innovation $0 · Geoscape sandbox $0 · PostHog $0 (free tier covers ~1M events/mo)$0/mo
Anthropic Claude (usage-based)~$0.30-$1.50 per report (synthesis + B&P decoder + Q&A). At 100 reports/mo ≈ $30-150/mo.$30-150/mo @ 100 reports
PropTrack (commercial contract)Indicative AUD $1.5k-5k per month. Usually has min query volume in the floor of the range; first months often cheaper.$1.5k-5k/mo
CoreLogic (commercial contract)Indicative AUD $3k-10k per month. Higher floor than PropTrack; richer data.$3k-10k/mo
InfoTrack (per title search)~$15-30 per title search, not monthly. This is passed through to the buyer in their $199 report cost — not a margin hit.$0 fixed (pass-through)
XDI (optional climate)~$2-5k per month. Defer until BoM-only Sec 08 becomes a customer complaint.$2-5k/mo (defer)
Total fixed monthly at launch (PropTrack + CoreLogic + infrastructure)First months typically at floor; ramps with query volume.~$4.5k-15k/mo

Reading the range: the lower number ($4.5k/mo) is the realistic first-month cost — both commercial providers at their minimum-volume floor. The upper number ($15k/mo) is what you'd pay once doing several hundred reports a month at full data depth. At a $199 retail price, you need ~25-75 reports a month just to cover the data licences before any margin or other costs.

Important caveats: These are indicative ranges based on public starting prices and typical AU PropTech contracts. Final pricing depends on query volume, contract length, and negotiation. Confirm exact numbers during sales calls before relying on them for projections.

What it actually costs at 3 volume scenarios

All figures AUD per month. Assumes PropTrack + CoreLogic both signed (only path to all 8 states). The variable line items (Claude, Stripe) scale per report; commercial data licences ramp in steps as you cross their query-volume thresholds. InfoTrack title docs are excluded — they're usage-based per-report and can be added as a $20 upsell on the $199 report price rather than absorbed as cost. Numbers are indicative; finalise during negotiation.

Tier 1 · Launch / first 1-3 months
25 reports / mo
Floor pricing on commercials. Slightly underwater.
Revenue$4,975
Costs
PropTrack (floor)$1,500
CoreLogic (floor)$3,000
Infrastructure$20
Claude (25 × ~$1)$25
Stripe (2.9% + 30¢)$152
Total costs$4,697
Net margin+$278
Margin %~6%
Reality check: at floor pricing you break even around ~24 reports/mo. Below that you're losing money on data licences. Path to better margin: more reports, not lower prices.
Tier 2 · Growth · months 3-9
150 reports / mo
Commercials at mid-tier. Margin starts working.
Revenue$29,850
Costs
PropTrack (mid)$2,500
CoreLogic (mid)$5,000
Infrastructure$25
Claude (150 × ~$1)$150
Stripe (2.9% + 30¢)$911
Total costs$8,586
Net margin+$21,264
Margin %~71%
The flywheel kicks in: data licences barely grew while revenue 6×'d. Adding broker subscriptions on top of this ($79/mo recurring × ~20 brokers) takes net to ~$22.8k/mo.
Tier 3 · Scaled · year 2+
500 reports / mo
Commercials at full pricing. SaaS economics.
Revenue$99,500
Costs
PropTrack (full)$5,000
CoreLogic (full)$10,000
Infrastructure$50
Claude (500 × ~$1)$500
Stripe (2.9% + 30¢)$3,035
Total costs$18,585
Net margin+$80,915
Margin %~81%
SaaS-grade margin: commercial data caps out around full pricing — past 500 reports/mo, every incremental sale flows straight through. This is what the unit economics start to look like.
⚡ Alternative path — DIY all the data

What if we self-source everything? Free-tier gameplan.

PropTrack and CoreLogic don't have proprietary access to anything we can't reach. They aggregate three things: (1) state Valuer-General sales registers, (2) realestate.com.au & Domain listings, (3) their own AVM model trained on the same underlying data. All three are reproducible without their contracts.

Where every report section can come from for free

Section Free source (national) Engineering
04/05 — Comparables & AVM Each state's Valuer-General bulk sales (NSW done; VIC DataVic, QLD data.qld, WA Landgate*, SA SAILIS, TAS theLIST, ACT data.act all publish residential sales). Our in-house AVM already runs on top. ~7 days adapters
06 — Market context (suburb vitals) ABS housing data (suburb-level), our own median/growth calcs from VG sales data, Domain Innovation tier (free, 500 calls/day) for listing-side metrics. ~3 days
13 — Investor metrics (rental yield) ABS dwelling rental medians by suburb (free, quarterly) + Domain rental listings (Innovation tier, free) → derive yield ourselves. ~3 days
07 — Schools Every state publishes schools on data.gov.au or their own portal. ACARA bulk extract for NAPLAN/ICSEA (free download, commercial licence may be needed). ~2 days (NSW done)
11 — Infrastructure Each state's major-projects portal (NSW done; VIC, QLD, WA, SA, TAS, ACT all have public ArcGIS layers). Federal Infrastructure Australia priority list (free CSV). ~3 days (NSW done)
08 — Climate risk BoM (already free, wired). State bushfire-prone-land layers (NSW done; rest free). State flood ArcGIS layers (free). Build our own 12-peril composite from these inputs. ~5 days
03 — Title & planning Zoning real on free state ArcGIS. Title documents are the one genuinely paid item — they're issued by state Land Registries at $15-30/search. Add as $20 upsell on $199 price. Pass-through, not absorbed.
NT specifically NTLIS has limited public access. Best free path: skip detailed NT reports OR partner with one of the smaller per-search providers (InfoTrack/GlobalX cover NT title docs). UI warning + InfoTrack hook (~$15/search)

* WA Landgate has progressively paywalled portions of its statement-of-sales data. Currently available paths: free quarterly snapshots OR ~$100-500/yr for full real-time feed (still 30-90× cheaper than CoreLogic).

Where PropTrack & CoreLogic actually get their data (the audit trail)

  • CoreLogic (RP Data): Same state Valuer-General sales registers we're already pulling from. Their AVM is built on top of this data — we have an equivalent in-house AVM already shipped (commit 4f8a2c1 area-band v2).
  • PropTrack (REA Group): Their core advantage is realestate.com.au's own listing history + sold data. The Domain Innovation tier gives us competing listing data for free at 500 calls/day.
  • What we'd be paying for: Convenience (one API instead of 8 state APIs), polish (their data is more consistently formatted), and the AVM (our in-house version is equivalent for NSW; needs sales data ingested for other states to match).

The new economics — free-tier scenario

Revenue per month at 150 reports$29,850
Cloudflare + WorkOS + Postmark + Stripe transactions~$930/mo
Claude (150 reports × ~$1)$150/mo
Free data sources (every state, every section)$0/mo
WA Landgate full feed (if needed)~$40/mo
Total monthly costs (free-tier path)~$1,120/mo
Net margin at 150 reports/mo+$28,730 · ~96%
Break-even point~6 reports/mo (vs ~24 commercial)

Honest trade-offs

  • Engineering time: ~3-4 weeks to ship all per-state adapters. (Same calendar time as commercial sales cycle but no monthly bill.)
  • Data quality variance: NSW VG publishes weekly. VIC monthly. WA quarterly. We need to be transparent in Sec 16 about freshness per state.
  • Maintenance burden: 8 state portals means 8 places that can change format. ~2-4 hours/month of cron maintenance once stable.
  • ACARA NAPLAN licensing: Bulk extract is free, but commercial use may need an academic-style licence (~$0-500 one-off). Confirm before launch.
  • WA Landgate risk: Has progressively paywalled. Current path: free quarterly snapshot for launch, upgrade to $40/mo feed if WA volume justifies.
  • NT cannot be fully free: Either skip NT (1% of population, ~$0 cost) or add InfoTrack as per-search add-on ($15/search, billed to buyer).
  • No AVM consistency: Our in-house AVM works on VG data — once we ingest all 8 states it matches CoreLogic for accuracy. Until then, AVM quality varies by state.
Recommendation: Ship free-tier as the default launch path. Treat PropTrack/CoreLogic as optional upgrades we adopt later once revenue justifies — e.g. at 300+ reports/mo the extra $5-10k/mo for cleaner data + their AVM becomes a margin trade rather than a survival cost. Pitch PropTrack & CoreLogic in parallel during the engineering build so they're an option if they come back with reasonable startup pricing — but don't gate launch on them.
What's NOT in these scenarios + sensitivities
  • InfoTrack title docs — ~$15-30 per title search, billed per-report. If you do title docs on every report, that adds ~$15-30/report on top. Best treated as a $20 add-on or built into a slightly higher price ($219 instead of $199).
  • Broker subscriptions ($79/mo recurring) — each broker_sub is pure margin (zero marginal cost since data licences are flat). 50 brokers = +$3,950/mo gross. We have the product built; just not modelled above.
  • Premium upsells — analyst review ($449), auction support ($49), negotiation handoff ($99). Higher margin than the base report. Not in scenarios above.
  • XDI climate — adds $2-5k/mo if signed. Only do this once you're past Tier 2 and Sec 08 quality becomes a customer-visible differentiator.
  • Refunds — 14-day refund window. Industry refund rate for PropTech reports is ~3-5%. At Tier 2 that's $900-$1500/mo in refunded revenue.
  • Customer acquisition cost (CAC) — not in the table because it's a business decision, not a data-licence cost. At ~$30 paid acquisition + 25-40% conversion, you're spending ~$75-120 to acquire each $199 customer. Subtract that from margins above.

Two sensitivities worth knowing:

  • If PropTrack quotes you $5k/mo at the floor (not $1.5k), Tier 1 break-even moves to ~40 reports/mo. Confirm exact floor pricing during the sales call.
  • If you negotiate annual prepay, commercials typically offer 10-20% off list. Worth doing once you've validated demand.

Per-state success probability — paid track vs free track

For each state, two independent tracks run in parallel. Combined readiness = probability that at least one track lands. Mathematically: 1 − (1 − free%) × (1 − paid%). Free-tier % is my honest estimate of whether engineering can ship a working adapter for that state's open data — it varies because some states publish cleaner data than others. Paid % is the chance at least one of PropTrack or CoreLogic accepts (they're competitors — if one rejects, the other almost certainly accepts).

State Free-tier track Paid track Combined readiness Notes
NSW 100% 90% 100% Already shipped — free-tier complete and live in code.
VIC 85% 90% ~98% DataVic publishes property transfers; format reasonably stable.
QLD 90% 90% ~99% data.qld.gov.au — most accessible non-NSW free-tier sales feed.
WA 75% 90% ~97% Landgate Statement of Sales — some parts paywalled now; free-tier riskier.
SA 80% 90% ~98% SAILIS — open but parts gated. Smaller state, lower volume.
TAS 85% 90% ~98% theLIST sales extract — published reasonably reliably.
ACT 85% 90% ~98% data.act.gov.au property sales — small territory, clean dataset.
NT ⚠️ ~0% 90% No public free-tier API. Paid track is the only way — if both PropTrack and CoreLogic reject, NT cannot launch and the whole launch is blocked.
National launch readiness (all 8 states must land) ~84% Product of all 8 combined readinesses. NT is the dominant risk factor — it's the only state with no fallback.
How the math works + how to push it higher

Independent tracks formula: if free-tier has an 85% chance of success and paid has a 90% chance, both fail with probability (1−0.85) × (1−0.90) = 0.015. So at least one succeeds with probability 1 − 0.015 = 98.5%.

National launch readiness: the product of every state's combined readiness. With current estimates: 1.00 × 0.98 × 0.99 × 0.97 × 0.98 × 0.98 × 0.98 × 0.90 ≈ ~84%.

The 16% residual risk concentrates in two places:

  • NT (10% of total risk) — no free-tier fallback exists. If both PropTrack and CoreLogic reject, NT is unlaunchable. Mitigation: if the rejection happens, exclude NT customers via a "we don't yet serve NT" gate in the SPA — keeps the rest of the launch on track. NT is 1% of AU population.
  • WA + free-tier flakiness — WA Landgate has been paywalling portions of its open data progressively. Mitigation: the commercial track has a 90% success rate for WA, so this is mostly cushioned.

How to push the number above 95%:

  • Add InfoTrack/GlobalX as a third commercial fallback for NT — they're easier to onboard (95% approval) and can fill the NT title-doc gap. Cost: usage-based, not subscription.
  • Run the free-tier engineering track in earnest rather than as insurance — actually shipping the adapters de-risks the WA/SA cases.

State-by-state readiness — right now

What every section pulls in for each state today, before any commercial contracts. Population shown so you can prioritise: NSW + VIC + QLD = 76% of Australian households.
State Zoning / planning Comparables & AVM Schools Infrastructure Vendor history Path A days
NSW 8.3M real VG 416k DOE ArcGIS Major Projects VG match 0 days
VIC 6.9M VicPlan mock mock mock mock ~7 days
QLD 5.5M QLD Globe mock mock mock mock ~7 days
WA 2.9M SLIP mock mock mock mock ~5 days
SA 1.9M SAPPA mock mock mock mock ~5 days
TAS 0.6M theLIST mock mock mock mock ~4 days
ACT 0.5M Territory Plan mock mock mock mock ~4 days
NT 0.25M commercial only commercial only commercial only commercial only commercial only no public REST

Commercial short-circuit: PropTrack + CoreLogic flip every "mock" cell to commercial immediately — same numbers, sourced from licensed data instead of free state registries. ACARA and state major-projects portals are still free wins worth building over time.

Why are most cells "mock"? — the honest answer

Important distinction: "mock" doesn't mean the data doesn't exist. It means we haven't written the adapter to plumb it in yet. The data is publicly available for almost every cell — each state's government publishes it under open licence. The work is on our side, not theirs.

Why NSW is real and others aren't

We started with NSW because it has the cleanest open data ecosystem in Australia. NSW Valuer-General publishes a weekly bulk download of every settled property sale as a single ZIP file. NSW DOE publishes schools as a clean ArcGIS map. NSW Department of Planning publishes Major Projects the same way. One state with five well-published feeds was the fastest way to prove the engine works end-to-end. That's now done — 416,687 NSW sales ingested, four real adapters live.

What "mock" means cell by cell

Comparables & AVM Every state's Valuer-General publishes settled sales — but each in a different format. NSW VG: weekly ZIP we already parse. VIC: DataVic property transfers (similar format, ~5d work). QLD: data.qld.gov.au CSV (~5d work). WA: Landgate Statement of Sales (some paywalls; ~5d work plus risk). SA/TAS/ACT: smaller datasets, simpler formats (~3-4d each).
Schools NSW DOE publishes schools as an ArcGIS feature service with lat/lng + sector + level — we already query it spatially within 3 km of each property. Other state education departments publish similar datasets in slightly different formats (VIC: data.vic CSV; QLD: data.qld.gov.au; WA SA TAS ACT: smaller spreadsheets). ~3 days total to extend our adapter to switch by state.
Infrastructure pipeline NSW Department of Planning publishes a Major Projects ArcGIS layer we spatially query within 5 km. Other states have equivalent portals: VIC (Major Transport Projects + VPA), QLD (DSDIP project tracker), WA (Infrastructure WA), SA (Plan SA), TAS (Tasmanian Project Bank), ACT (ACT Infrastructure Plan). Same spatial-query pattern; ~4 days total.
Vendor history Same root cause as Comparables. We look up the subject property's prior sales in our sales_au database — which currently only contains NSW. Mocked everywhere else because there are no rows to match against. Automatically becomes real for each state the day that state's sales adapter ships — no separate work.
NT — all cells "commercial only" NT is the exception. Its planning portal (ntlis.nt.gov.au) is a legacy Autodesk image-map server — no public REST/WFS, no machine-queryable layer for zoning, schools, sales, or projects. The only AU state where free-tier is structurally impossible. NT-located reports must run on a commercial provider (PropTrack or CoreLogic).

Why not just build all the adapters first?

Two reasons. (1) Cost. The commercial track (PropTrack + CoreLogic) flips every mock cell to real instantly without any per-state engineering — if those contracts close, the engineering work is partly redundant. (2) Speed. Commercial contracts are 2-4 weeks. Building all 6 non-NSW free-tier tracks is ~3 weeks of engineering. Running them in parallel means whichever lands first per state is what we ship — and we hit the launch gate sooner than serialising.

Bottom line: "mock" = engineering hasn't reached that state yet, not "data doesn't exist". Every red cell in the table above has a clear path to becoming real — through commercial contracts (instant once signed) or per-state adapter work (~3-5 days each). The state-by-state engineering tasks below (#166-170) are the to-do list.

CRITICAL Commercial contracts — multi-state unblockers 0/0

These are the only two contracts that flip every state from "free-tier dev pending" to "ready". 2-3 week sales cycles each — start them tomorrow morning even if you go Path A.
The highest-priority contract. Unlocks Sec 06 (market context: median, days-on-market, YoY growth) and Sec 13 (investor metrics: rental yield, vacancy) for all 8 states. After this, only Sec 03 title docs + Sec 08 XDI climate remain commercial-gated.
Free-tier comparables only cover NSW (we ingest the NSW VG bulk). CoreLogic provides settled sales + AVM nationally. Alternative is building per-state VG sales adapters (#166-168), which is ~3 weeks of dev work for similar outcome.
Title document retrieval, unlocks the title half of Sec 03. (Zoning + planning controls already real via state spatial.) Defer if pure-launch budget is tight — Sec 03 still ships useful zoning data without it.
Upgrades Sec 08 from BoM + bushfire layer (real but limited) to the full 12-peril 2050 horizon composite. BoM-only is honest and usable until XDI lands.

YOU Block 1 — Infrastructure (~65 min) 0/0

These four unblock everything else, regardless of which path you pick.
Click "Enable R2", create bucket readybuy-reports. Generate R2 S3 API token → push R2_ACCOUNT_ID, R2_ACCESS_KEY_ID, R2_SECRET_ACCESS_KEY into Doppler. The only thing blocking wrangler deploy apps/api.
Production app in WorkOS, copy WORKOS_API_KEY + WORKOS_CLIENT_ID into Doppler, generate WORKOS_COOKIE_PASSWORD (32+ bytes), add redirect URI https://app.readybuy.app/auth/callback.
Generate WORKOS_COOKIE_PASSWORD
openssl rand -hex 32
Create products in Stripe dashboard, copy each Price ID into Doppler. Webhook endpoint + signing secret. Customer Portal enabled.
The 7 SKUs to create
  • STRIPE_PRICE_REPORT_SINGLE — Single report, $199 one-off
  • STRIPE_PRICE_REPORT_BUNDLE3 — 3-pack, $499 one-off
  • STRIPE_PRICE_REPORT_REFRESH — Refresh credit, $79 one-off
  • STRIPE_PRICE_BROKER_SUB — Broker subscription, $79/month
  • STRIPE_PRICE_VALUER_REVIEW — Analyst review, $449 one-off
  • STRIPE_PRICE_AUCTION_SUPPORT — Auction support, $49 one-off
  • STRIPE_PRICE_NEGOTIATION_HANDOFF — Negotiation handoff, $99 one-off
Webhook URL + events to subscribe

Endpoint URL: https://api.readybuy.app/v1/stripe/webhook

Events: checkout.session.completed, charge.refunded, customer.subscription.deleted, invoice.payment_failed

Signing secret → Doppler as STRIPE_WEBHOOK_SECRET.

Pick one. Verify readybuy.app sending domain (DKIM + SPF). Push API key into Doppler. Without this every queued email sits in the outbox forever — settlement reminders, refund confirmations, premium-request notifications, deletion confirmations.

YOU Block 2 — Free signups (~10 min) 0/0

National coverage — Domain + Geoscape work for all 8 states once credentials are in.
Register at developer.domain.com.au. DOMAIN_CLIENT_ID + DOMAIN_CLIENT_SECRET into Doppler. Powers listing-URL resolution + competing-stock provider for all states.
Request sandbox key from geoscape.com.au. GEOSCAPE_API_KEY into Doppler. National address normalisation + parcel attributes.
app.posthog.com → PUBLIC_POSTHOG_KEY into Doppler. Surfaces the funnel events I instrumented across NewReport, Refresh, Admin.

ME Track 2 — per-state engineering (parallel insurance) 0/0

These ship regardless of commercial outcomes. They reduce ongoing data licence costs once commercial lands, and they are the only fallback if both PropTrack and CoreLogic reject the application. Engineering runs this in parallel with the sales cycles. ~3 weeks total work.
DataVic Property Sales Statistics → parse → write to sales_au. Mirrors the NSW VG cron. Unlocks Sec 05 comparables, Sec 04 M1 valuation, vendor_history for VIC.
data.qld.gov.au publishes the residential sales register as CSV — most accessible non-NSW open sales data. Same pipeline pattern.
WA Landgate Statement of Sales, SA SAILIS, TAS theLIST sales, ACT data.act.gov.au. Smaller states share patterns; batched for ~7 days total.
Extend acaraSchools provider to switch by state. Each state has its own ArcGIS / data.gov.au schools dataset.
VIC Major Transport Projects + VPA, QLD DSDIP project tracker, etc. Extend infrastructurePipeline.
NT cannot launch on free-tier alone. No public REST/WFS exists for NT planning, schools, major projects, or sales. NT-located reports must pull from PropTrack or CoreLogic. UI should reassure NT buyers that their reports run on licensed commercial data and the methodology section will cite this transparently.

ME Live verification walkthroughs 0/0

After you've completed Block 1+2 (credentials saved to the secrets vault) and the app is redeployed, I manually walk through every critical flow against the real production stack to confirm nothing's broken. Engineers call these "smoke tests" — they're the dress rehearsal before opening the doors.
Grep for "mock" or "down". Expected verified after Block 1+2: nsw_planning, vic_planning, qld_landuse, wa_planning, tas_planning, act_planning, sa_planning, abs, bom, rba, abs_ppi_construction, vg_sales_nsw, vg_avm_nsw, domain, geoscape.
Sign in → paste a real NSW listing URL → walk the 3-step flow → Stripe test card → watch assembly. Verify all 12 providers respond, Sec 16 cites real sources, audit bundle persists, PDF renders. Canary for "NSW data pulls in".
Same flow, different state. Verify zoning/spatial works (it should — VIC/QLD planning verified live), comparables fall back honestly to mock with (mock — non-NSW) citation, no crash. Once commercial contracts land, repeat to confirm flip.
Test mode: /pricing → Subscribe → 4242 4242 4242 4242 → confirm broker entitlement → confirm /new shows "Included in subscription". Refund via dashboard → confirm clawback. Subscription.deleted → confirm revocation. Then live with $1 throwaway.
Tail wrangler logs for cron:*. The 4: */5min audit-bundle, weekly Thu 02:30 NSW VG sync, daily 03:15 deletion purge, daily 21:00 settlement reminders.
Visit /admin → paste ADMIN_TOKEN → premium-queue + payments load → fire a grant → confirm on Profile → flush outbox.

Section coverage — all real on free tier (as of today)

Updated 2026-05-29 after shipping per-state schools + per-state infrastructure + Sec 06 market context + Sec 13 investor inputs from free sources. Every section now pulls real data for all 8 states with the free tier alone.
01Executive summary — derivedreal
02Property profile — Domain + Geoscapereal
03Title & planning — state ArcGIS zoning + InfoTrack $20 upsell for title docspartial
04Valuation — NSW VG + Domain AVMreal
05Comparable sales — NSW VG + Domain soldreal
06Market context — suburb_vitals (shipped today)real
07Location & amenity — per-state ArcGIS schools (shipped today)real
08Climate risk — BoM + state BPL (XDI is year-2 upgrade)partial
09Building & defects — Claude parses uploadsreal
10Energy & TCO — RBA + ABS PPI + stamp dutyreal
11Infrastructure — per-state major projects ArcGIS (shipped today)real
12Finance & acquisition — 8-state stamp duty + RBAreal
13Investor metrics — Domain rentals + REIA vacancy (shipped today)real
14Negotiation — vendor history + competing stockreal
15Decision toolkit — deterministic checklistsreal
16Methodology — derived from actual citationsreal
14 real · 2 partial — both partials are intentional design choices, not gaps. Sec 03 ships zoning real with title docs as a $20 per-buyer pass-through (better unit economics than absorbing into the $199 base). Sec 08 climate ships with BoM observations + state bushfire-prone-land layers real, with XDI's commercial 12-peril composite a year-2 upgrade once customer demand justifies it.

National launch readiness scorecard

Where each system stands today. The gate to opening for customers is when every row in this scorecard reaches 100%.
User sign-in & sessions
80%
Payments & subscriptions
80%
Report assembly engine
100%
Email delivery
30%
Admin / ops console
100%
Marketing website
100%
Automated test coverage
100%
NSW data (verified live, 9/10 real)
95%
VIC data (live now — 5 of 10 keyless real)
50%
VIC + Domain creds (Block 2)
90%
QLD/WA/SA/TAS/ACT live now
50%
QLD/WA/SA/TAS/ACT + Domain creds
90%
NT (limited — commercial only for AVM)
30%

Verified live 2026-05-29 via pnpm exercise:providers against a real Marrickville NSW address. 9 of 10 keyless providers return real production data (NSW VG sales · NSW DOE schools · BoM · ABS SEIFA · RBA · NSW Major Projects · vendor history · suburb vitals · in-house AVM). The 10th (competing-stock) flips to real the moment DOMAIN_CLIENT_ID lands. For VIC/QLD/etc, 5 keyless providers work today; Domain key unlocks 5 more sections nationally.

Engineering is done. Only operator signups remain (Block 1+2 below).

Copy-paste commands for saving credentials

Once you have the keys from each signup above, this single command saves them all to the secrets vault (Doppler) in one go. Click the snippet to copy. Add the commercial provider keys as their contracts land.
doppler setup --project readybuy --config prd doppler secrets set \ R2_ACCOUNT_ID=... \ R2_ACCESS_KEY_ID=... \ R2_SECRET_ACCESS_KEY=... \ WORKOS_API_KEY=sk_live_... \ WORKOS_CLIENT_ID=client_... \ WORKOS_COOKIE_PASSWORD=$(openssl rand -hex 32) \ STRIPE_SECRET_KEY=sk_live_... \ STRIPE_WEBHOOK_SECRET=whsec_... \ STRIPE_PRICE_REPORT_SINGLE=price_... \ STRIPE_PRICE_REPORT_BUNDLE3=price_... \ STRIPE_PRICE_REPORT_REFRESH=price_... \ STRIPE_PRICE_BROKER_SUB=price_... \ STRIPE_PRICE_VALUER_REVIEW=price_... \ STRIPE_PRICE_AUCTION_SUPPORT=price_... \ STRIPE_PRICE_NEGOTIATION_HANDOFF=price_... \ DOMAIN_CLIENT_ID=... \ DOMAIN_CLIENT_SECRET=... \ GEOSCAPE_API_KEY=... \ POSTMARK_SERVER_TOKEN=... \ PUBLIC_POSTHOG_KEY=phc_... \ PUBLIC_ADMIN_UI=enabled \ ADMIN_TOKEN=$(openssl rand -hex 32) \ ADMIN_NOTIFY_EMAIL=ops@phnx.studio # Add when commercial contracts land: # doppler secrets set \ # PROPTRACK_API_KEY=... USE_REAL_PROPTRACK=true \ # CORELOGIC_API_KEY=... USE_REAL_CORELOGIC=true \ # INFOTRACK_CLIENT_ID=... INFOTRACK_CLIENT_SECRET=... \ # XDI_API_KEY=... USE_REAL_XDI=true
Progress saved to this browser only ·