Neighborhood-intelligence engine
A family picker on the surface. An analytics platform underneath.
01The picker
What a family sees: pick your priorities, get neighborhoods ranked to match — star ratings for schools, safety, and market, over an interactive map of Fresno County with the county's official GIS layers as toggleable overlays. Every dot is one parcel; every figure is a precomputed score.
02The engine
The picker is the last of eight stages. Six external sources — county GIS, two school datasets, school attendance boundaries, market data, and a safety baseline — arrive with different formats, update cycles, and failure modes. Each source is adapted into a canonical SQLite schema of 53 tables before scoring; published results are frozen in versioned bundles, and the web app reads a separate 14-table runtime. Roughly 50 metrics are computed per county, with source-file provenance retained for published values.
One make refresh-county run, end to end: 26,000 source rows through adapt → normalize → snapshot (55 ZIPs, 663 cells) → score → a published bundle, with per-stage timings.
03Below the waterline
Most of what the engine computes, the picker never shows:
A full per-hex-cell market heat map. Value, tightness, trend, acceleration, are more, are precomputed, stored, and served whole on every page load. The picker ships with the layer switched off.
Per-neighborhood school assignment with split-boundary disclosure, and per-ZIP safety composites with letter grades, percentiles, and source citations are reduced to single star rows in the picker.
Multi-county spin-up — registry, induction, live GIS querying — is fully built and tested, deployed at exactly one county.
The commute-weight slider was deliberately withheld, and pinned to zero in code, until real commute data exists to back it.
04Discipline
The normal scoring path rejects data normalized by an older schema version and reports which stage must be re-run. Each artifact records the code version that produced it, and the runtime refuses a bundle with a mismatched payload version. Sparse data is suppressed instead of zero-filled; report quotas use one atomic insert covered by a two-thread concurrency test. At the pictured commit, the repository contained 29,000 lines of tests and 26,000 lines of source.
I designed the architecture, schema, scoring, and test gates. AI coding agents produced most of the code by volume, working across git worktrees under a written rulebook; merges had to pass the project's tests and review gates. The private repository and supporting evidence are available in a walkthrough.
A public, synthetic-data-only Audit Edition isolates five of the reliability mechanisms and their tests for independent inspection. The product, data, interface, and private history remain private.

