We write down which owners we think will sell. Then we check.
The plain-English version of the engine’s record. Every number in it is read from the engine’s published file; the full tables follow further down this page.
- Every day, we freeze a ranking.The engine scores every parcel we track and saves the list. Once saved, it can’t be changed.
- Then we check it against what actually comes on the market.In the days after a freeze, we compare the saved list with new listings. A hit is a parcel we ranked that then listed for sale. A miss counts too.
- We publish the score, even when it’s zero.The days graded so far load from the engine’s record.
- Where the weights came from.The weights were set on a hand-walked set of Colorado parcels.
- What we can’t see yet.Signals with no data behind them are listed here.
How close our value estimates come to real sale prices
The bar: a buyer-price floor
Where we say investors pay at least a price for an off-market home, this grades how often homes actually sold at or above it. Its grade appears here once its first nightly run is stored.
For context: how close the estimate comes to the sale price
The latest grade loads from the value scorecard.
| loading… |
How we grade it
The estimate gets better in steps, and each step is graded here the same way: bringing each value up to its sale month, blending in nearby sales, and using the asking price for homes on the market.
Every signal, graded by what the code and the data can prove.
One row per signal the site names anywhere: the adapter modules, the /api/mcp tool catalog,
the /v1/signals list, the planning catalog, production D1, the test suite, and the acceptance runs.
Generated, never written by hand: site/scripts/signals-truth.mjs builds it and CI fails when the code
changes without it. The same rows are the build order for the whole catalog: every signal is required, so each
row says whether a free, keyless, per-parcel source is known ($0 rule), its rank by source availability times
catalog priority, and whether a park decision is waiting (no such source is known). The full queue is
docs/SIGNALS-BUILD-ORDER.md in the repository.
| # | signal | verdict | catalog label | code can answer | no-network answer | fetches a source | covered localities | v1 | D1 rows | tests | acceptance | $0 source | build rank | park? |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| loading… | ||||||||||||||
What the ranking has earned, graded in the open.
The engine freezes its tiers and lens lists on a schedule (.github/workflows/confidence-engine.yml)
over the full production universe, grades frozen lists against the next days' listings, and publishes the record
here from /assets/confidence-scorecard.json. Lift = tier hit rate ÷ baseline listing rate. Dry runs never count.
| lens | frozen universe | scored | top list | graded days | hits | ranking misses | out of subset | coverage misses | dormant |
|---|---|---|---|---|---|---|---|---|---|
| loading… | |||||||||
Build ledger, 2026-10-13 — 27 requests from one day of build work (kept for the record; not generated)
Every promised item, one honest page.
27 requests from the last 24 hours of build work, grouped and graded: usable, pending, blocked, or closed. Source: the internal request-to-delivery ledger compiled 2026-10-13 19:35 MDT.