Parcela

Land sourcing and underwriting tool for the Hayden land team. Type any address in OR, ID, WA, or MT. See ownership, sale history, permits, zoning, constraints, and whether it pencils, on a live map. Live at hh-parcela.pages.dev.

Why we have it

The land team sources and screens deals by hand. The answers live across county GIS sites, municipal zoning codes, assessor rolls, MLS, and spreadsheets, and assembling them for one parcel is hours of work. Underwriting sits in one-off Acq Pack and DPACK files in SharePoint. There is no single place to see a parcel's full picture, and no way to scan thousands of parcels at once to find the few worth a call. Land basis is the largest lever on per-home profit, so faster, better-grounded sourcing has direct dollar value.

How it works

Owned Hayden data and free public data are pulled offline into local files, scored, and served as a map app. Some checks are also run live when a parcel is opened. Full source list in the next section.

flowchart TB classDef src fill:#e7eef2,stroke:#2e5a6e,color:#1a2530; classDef pub fill:#eaf2ec,stroke:#1f7a4d,color:#1a2530; classDef proc fill:#f6ecd9,stroke:#b5731f,color:#1a2530; classDef store fill:#efe7f2,stroke:#7a5a8e,color:#1a2530; classDef app fill:#e7f0ea,stroke:#1f7a4d,color:#1a2530; classDef dep fill:#e9edf0,stroke:#43525c,color:#1a2530; classDef val fill:#eef5f0,stroke:#1f7a4d,color:#11402a,font-weight:600; subgraph SRC["1 . Data sources"] direction LR s1["Owned Hayden data (Snowflake)
C1_ASSESSOR . C1_DEED . COMBINED_PERMITS
KOVA lot cost + home econ . KOVA lot sizes
MLS_LAND . GOLD underserved . LD bid prices"]:::src s2["Free public data
county/state ArcGIS parcels + zoning . FEMA flood
USGS slope + hydro . USFWS wetland . EPA water
UGB . SSURGO . OSM land use . OR/ID Sec-of-State"]:::pub s3["Builder dictionary
(vendored from Builder Name Resolution)"]:::src end proc["2 . Offline enrichment (Python extractors)
owner to builder labeling . 0 to 10 buildability+location score
killshot gates . constraints . comps . servicing"]:::proc store[("3 . Local data
processed CSVs + property.db (SQLite, GCS-mounted)")]:::store subgraph APP["4 . Served web app"] direction LR a1["Python HTTP server . /api/* JSON"]:::app a2["Leaflet + Turf map UI . 11 pages
(live checks run on parcel open)"]:::app end dep["5 . Deploy: Google Cloud Run + Cloudflare proxy (login)"]:::dep val["Any address returns owner, deeds, builder, permits,
zoning, constraints, score, and a max-land-basis underwrite.
Scan 10k+ parcels on a map. Surface ranked off-market deals."]:::val s1 --> proc s2 --> proc s3 --> proc proc --> store --> a1 --> a2 --> dep --> val

Every data source: what it is, where it comes from, why

live queried when a parcel is opened   baked pulled offline into a local file and read at startup

SourceWhere it comes fromWhat it provides / why
Owned Hayden data (Snowflake HH_ANALYTICS, pulled offline via sf-cli)
C1_ASSESSORSnowflake (ConstellationOne, licensed)Vacant/ag parcels near 34 footprint towns: acres, land use, value, owner, absentee, tax-delinquent, lat/lon. Powers Off-Market, Deal Map, owner mailing. Also builds property.db.baked
C1_DEEDSnowflakeRecorded sales. Land comps ($/acre), years-held tenure, and full buy/sell history in the universal lookup.baked
COMBINED_PERMITSSnowflakeSingle-family permit activity by city, permit points (builder, date, location), and permit counts near each parcel. Powers Builder Activity and path-of-growth.baked
KOVA_CONSTRUCTIONREPORTSnowflake (Kova mirror)Hayden's finished lot cost incl. land, and realized home economics, by city. The underwriting cost benchmark.baked
KOVA lot sizesSnowflake (one-time)Hayden's real community-size distribution (median 44 lots) for the scale band and a Hayden-fit indicator.baked
MLS_LANDSnowflakeActive for-sale land listings, scored to price per buildable lot vs the Kova benchmark.baked
GOLD underserved dashboardSnowflakePer-city underserved/overserved label, demand, supply, household growth. Powers the Market Opportunity ranking.baked
LD bid pricesHayden bids (offline)Paid unit prices per Kova activity code, for the Unit Prices reference page.baked
Builder identity (vendored from the Builder Name Resolution project)
builder master + builder_utilsbuilder_resolving_cc repoMaps owner to parent builder. Drops Hayden-owned and competitor-owned land, labels ownership, and canonicalizes permit builder names. Same dictionary the Market Report uses.baked
Zoning and regulatory
Scraped municipal codeCity/county code sites (offline)Single-family zoning standards (min lot, setbacks, height, density) for 33 of 34 jurisdictions, each with code section, source URL, and a confidence flag.baked
OR DLCD / WA WAZA zoningState ArcGISZone designation and farm/forest flag (drives the farm/forest killshot). OR and WA only.live + baked
OR UGB / WA UGAState/city ArcGISInside urban-growth-boundary flag. Core "served and entitleable" signal.live + baked
Site constraints (free public services)
County/state parcel GISArcGIS (OR 8 counties, WA, ID, MT)The actual parcel boundary polygon for the site map and envelope.live + cache
FEMA NFHLFEMAFlood zone at point (live), floodway centroid test (hard exclude), and floodplain-vs-boundary overlap (catches riverfront).live + baked
USGS EPQS / 3DEPUSGSElevation and a slope estimate. Informational on the constraint panel.live
USGS NHDUSGSDistance to nearest river/lake. Demotes river-adjacent parcels in the score.baked
USFWS NWIUSFWSMapped wetland present. Hard-constraint killshot.live + baked
EPA water service areasEPAPublic-water service area and system. The water half of "served and entitleable".live + baked
USDA SSURGO soilsUSDA Soil Data AccessDominant soil, farmland class, drainage. Informational only.live
NCES school districtsNCES EDGESchool district at the parcel. Informational only.live
FEMA USA StructuresFEMABuilding footprints near the parcel. Drives the already-built killshot and the path-of-growth count.baked
OpenStreetMap / OverpassOSMInstitutional land use (cemetery, school, airport, industrial) to exclude, plus road frontage for the setback envelope.live + baked
Owner contact and geocoding (free)
OR Sec-of-State + ID SOSBizState APIsUnmasks the entity behind an LLC owner (registered agent, principal). OR and ID live; WA and MT are a cited link only.live
US Census geocoderCensusTurns a typed address into lat/lon for the lookup.live
FirestoreGoogle CloudThe shared team deal-pipeline (stage and note per parcel).live

What it does today (11 pages)

Find and explore

Screen and decide

How it scores and underwrites

Why it helps, and why it beats the current process

Why a web app, and not a Claude skill

Both exist, for different jobs. A skill like the Bid Spreader is ideal for a one-shot, structured task: drop in the contractor bids, get a finished Excel back. Parcela is a different shape of tool. It is map-first and exploratory. A web app is what allows interactive work across 10k+ parcels (pan, zoom, click, filter), shared instant access with no setup, and a product non-technical staff can use like Zillow. The two are complementary. Skills handle discrete jobs; Parcela is the always-on map the team works in.

How it connects to the rest of the stack

Reuses Builder Name Resolution. The owner-to-builder labeling vendors the same builder master and name-canonicalizer the Market Report uses, so Hayden-owned land (for example HHIF) and competitor-owned land are flagged consistently.
Same owned Snowflake data the analytics stack runs on (assessor, deeds, permits, Kova), pulled offline so the app stays fast and cheap.

How it can expand

Self-contained file. To edit, change the content or flowchart block, keep the CDN script tag, then re-run the inline-mermaid helper. Source: parcela/docs/architecture.html.