AI Diligence Platform
Open the platform →
How it works

From public data to an honest deal score

The platform turns a dozen public datasets into a quantified, auditable read on any US real-estate deal: the probability of hitting your target return, the loss tail a smoothed index hides, and how much to size. This page is the whole machine, end to end.

Get started →Free to explore · your deal data never leaves your browser

20,216
selectable US markets — metros, counties, cities
20,000
simulated paths behind every score
10,801
markets with FBI crime context
7,372
markets with the 8-dataset context card
11
dataset vintages tracked & freshness-checked live

The pipeline: sources → bake → engine → you

Every number on the site traces to a public source. Hover over — or tab to — any node for what it does.

PUBLIC SOURCES OFFLINE BAKE NETLIFY SERVERLESS YOUR BROWSER official files clean · join · bake quarterly return histories static JSON overlays (CDN) HTTPS · JSON Zillow Research ZHVI · ZORI · inventory & list prices FBI Crime Data Explorer violent & property rates per 100k BEA county per-capita income (CAINC1) FEMA NRI hazard + NFIP flood claims IRS SOI county migration flows HMDA (CFPB / FFIEC) investor share · denial rates Census BPS building permits (supply pipeline) FRED macro: rates · Case-Shiller · starts Python ingest scripts offline · cached · re-baked Baked static JSON 20,216 return histories (engine) crime · context · correlations SERVERLESS FUNCTIONS /api/score 20,000-path Monte Carlo engine /api/address-intel geocode + Miami-Dade parcel intel /api/grok/chat AI copilot proxy (key server-side) /api/data-status dataset vintage freshness probes REACT APP Copilot (Grok) — every tab Home / Upload Deal Score US Market Market Quest 3D Client Dashboard Opportunities DDQ Intake Model Studio Correlations Your Excel deal history parsed locally · never uploaded
public data flow your private data — stays in the browser Overlays come straight from the CDN; scores run server-side; nothing you upload leaves the page.

How you use it

Five steps from a market name to a sized, explained decision.

Pick a market — or paste an address

Type any of 20,216 US markets — metros, counties or cities; natural language like “miami dade county florida” resolves. Or paste a street address: the US Census geocoder maps it to its market, and Miami-Dade addresses additionally get parcel values, the FEMA flood zone, and nearby-crime intel at the address level.

Describe the deal

Set the target IRR, holding period, risk-free rate, ticket and book size, and the single-asset volatility — then answer a 9-question due-diligence questionnaire (sponsor record, business plan, leverage, downside protection…). Each answer applies a small, documented and capped shift to expected return or volatility, so qualitative judgment enters the math transparently.

Read the honest score

The engine bootstraps 20,000 paths from that market’s real quarterly price history, de-smoothed to honest volatility. You get P(hit target) with a 90% confidence interval, expected and median return, probability of loss, VaR/CVaR tail losses, and a fractional-Kelly suggested allocation — shown beside the naïve raw-index numbers so the contrast is explicit.

Weigh the context

Every market carries open-data overlays: FBI crime vs the US average, rents & gross yield, market heat (inventory, days-to-pending), price-to-income, FEMA hazard, IRS migration, HMDA investor share & denial rates, building permits and NFIP flood claims — plus the live macro backdrop (30-yr mortgage, Case-Shiller).

Bring your history — then ask why

Upload your deal spreadsheet on Home: it’s parsed in your browser and never uploaded, and your realized IRRs de-smooth the dashboard model. Ask the Grok-powered copilot anything — it sees the live scores and the tab you’re on. Then explore further: US Market base rates, Crime×Market correlations across 10,801 markets, or Market Quest 3D — the same data as an explorable game.

The idea that runs through it: honest risk

Smoothed indexes make real estate look near-riskless. The engine un-smooths them — and shows you both numbers.

Why the raw index lies

Public real-estate indexes are built from appraisals and repeat sales, so each printed value averages over time and the series glides. Volatility — the input every risk number depends on — comes out understated, and a single levered deal looks safer than it is.

What the engine does about it

1. Geltner unsmoothing. The lag-1 autocorrelation that smoothing leaves in the market series is measured and removed, recovering the volatility the index hid. The lift is capped (autocorrelation capped at 0.6) so de-smoothing stays a sane roughly-2× correction, never an explosion.

2. Idiosyncratic volatility. One property is not a diversified index, so an explicit single-asset σ is added in quadrature: σdeal = √(σmarket² + σidio²). You control the dial, in the open.

3. Side-by-side honesty. Every score shows the naïve raw-index risk next to the honest model’s, so you can see exactly how much loss probability the smoothed series concealed.

4. Honest income, too. Each market’s return series carries its own rent income (60% of observed gross yield, expense-adjusted; a flat 4%/yr only where rents aren’t observed) — so high-yield markets get credit for their carry instead of being penalized by a one-size assumption. On top, a transparent yield edge (capped ±0.30%/yr) rewards a market’s within-state yield percentile — the one signal that predicted forward returns in this platform’s own backtests.

−20% 0% +20% +40% break-even target Smoothed index (naïve) P(loss) ≈ 2% — looks riskless Honest model de-smoothed + single-asset σ the loss tail smoothing hides P(loss) ≈ 23%
Illustrative shapes with equal probability mass — the real curves are computed per market from its own price history, and shown on every Deal Score.

The volatility build-up behind every score

Illustrative magnitudes for a typical metro — the Deal Score page shows the actual build-up for your market.

Raw smoothed index σ≈ 6%
De-smoothed market σ (Geltner)≈ 11%
Deal σ = √(market² + idiosyncratic²)≈ 21%

Sizing is computed on the honest σ: fractional Kelly (half-Kelly), shrunk for correlation with your existing book, and hard-capped at 25% of book. If the edge doesn’t beat the risk-free rate, the verdict is PASS — the model is allowed to say no.

Honest footnotes

The fine print, stated plainly — read this before you trust any number.

Decision support, not investment advice

The platform sizes positions advisorily and never commits capital. Probabilities are conditional on public market history and your inputs; they are estimates with confidence intervals, not guarantees.

Public data is context; your history is the edge

Crime, rents, hazard and migration describe the market, not your deal. Your realized IRRs and your DDQ judgment are what differentiate the model — which is why the upload stays in your browser.

Coverage is honest

Where a source doesn’t reach a market, the field is blank — not guessed. Crime joins 10,801 of 20,216 markets; the 8-dataset context reaches 7,372. Income, hazard, migration, permits and flood data are county-level, so a city shows its parent county’s figures.

Crime is context, not a predictor

Across 10,801 markets, crime rates correlate mostly with density and only weakly with returns — and even that weak link nearly disappears when markets are compared within their own state (rank‑r −0.03): it mostly reflects which states boomed. The Correlations tab shows this honestly instead of pretending crime predicts performance.

Your spreadsheet never leaves the browser

Deal history is parsed locally. The copilot — only when you ask it something — is sent a short text summary of the current scores and model settings, not your file.

Verified engine, live freshness

The TypeScript engine is parity-checked against a Python golden reference with a seeded RNG. A status panel compares all 11 baked dataset vintages against their sources, so stale data is flagged, not hidden.