Neuruh Document Build | RE-49 | 2026-11-04

Recipe Engine 49: The Ingredient Registry

Every ingredient in the Lead Recipe OS opportunity ingredient registry, what each one needs, what it emits, who produces it, and whether a hunter exists for it, plus a recipe composer built on the registry's own composition rules.

Document control

Source
NeuruhAI/lead-recipe-os
Registry file
artifacts/OPPORTUNITY_INGREDIENT_REGISTRY.tsv
Registry rows
50 rows
Distinct ingredients
49
Families
34
Repo state
main, updated 2026-10-03
Audit date
2026-11-04
Status
Source claims, not verified facts

How to read the count. The registry file has 50 rows. Row I-ES-01 (ESTATE_SALE family) is not a separate ingredient: its field reads "(see I-SUC-03)", an alias pointer to the estate-sale event ingredient I-SUC-03. Removing that alias leaves 49 distinct ingredients, and this page lists all 49, each with its own entry. The alias is noted on the I-SUC-03 card.

What an ingredient is. Source claim from the registry seed file: an ingredient is a capability, not a column. Each row says what it needs, what it emits (signal ids), which sources feed it, where it works, what it costs, how it fails, what it falls back to, and where it came from.

Figure 1. Hunter coverage across the 49 ingredients

HUNTER_EXISTS14HUNTER_PARTIAL11HUNTER_MISSING22EXISTS(MI)/MISSING(IN)1EXISTS(contract)1
Figure 1. Hunter status per the registry file (49 distinct ingredients). HUNTER_EXISTS means a producer exists somewhere; HUNTER_PARTIAL means partial coverage; HUNTER_MISSING means no producer. 22 of 49 ingredients have no hunter, which is the largest honest gap on this page.

Figure 2. How an ingredient becomes an opportunity

SOURCEcounty roll,court, GIS → INGREDIENTcapability,not a column → SIGNALe.g. tax.delinquent → RECIPErequired + any-of+ negative + boost → OPPORTUNITYranked,receipted Composer slots below follow lead_recipe_os/composer/compose.py: required, any_of, negative, absent, boost, qualifying, within, sequence, recurrence, near, adjacent, min_sources.
Figure 2. The pipeline as the source describes it: sources feed ingredients, ingredients emit signals, recipes compose signals, the engine ranks opportunities. The composer on this page only builds PROPOSED, EXPERIMENTAL recipes; it evaluates nothing against live data.

Figure 3. The one piece of source-defined math on this page

address +35 filing <=45d +25 mailing mismatch +20 PR +10 case# +10 Probate record completeness, donor weights from Probate Miner scoreLead(), absorbed in lead_recipe_os/registry/seed/ingredients.py as probate_record_completeness. Total 100. It scores evidence completeness only, NOT opportunity.
Figure 3. Probate record completeness weights. The calculator below applies exactly these weights. No other scoring math on this page comes from the source; the recipe-engine score vector and the 65 percent equity threshold are named in the registry but their weights were not recovered in the source files read for this build.

Probate record completeness calculator

Weights are source claims from the registry seed (Probate Miner scoreLead(), via ingredients.py). Check what the record has; the total is evidence completeness out of 100, not an opportunity score.

+35
+20
+25
+10
+10
80 / 100 completeness35 + 0 + 25 + 10 + 10

Ingredient explorer: all 49

Showing 49 of 49

I-PID-01 parcel id / APN / property_key (county-prefixed)

PROPERTY_IDENTITYHUNTER_EXISTSPROVEN
Source familiesparcel;assessor
Identity joinAPN authoritative; formatted APN changes (MI Parcel Id lacks county prefix; SJC 018-xxxx form)
Freshnessperiodic
ConfidencePROVEN when from assessor roll
Jurisdiction dependenceHIGH (APN formats per county)
Recipes consumingALL
Existing producerlandos-ingest identity receipts; deedsonar identity projection (22,343 rows)
Case evidence domainIDENTITY
Evidenceshadow hunt SOURCE_REGISTRY quirks; DeedSonar read-spine projection

I-PID-02 situs address (normalized) + geocode

PROPERTY_IDENTITYHUNTER_EXISTSPROVEN
Source familiesparcel;assessor
Identity joinaddress <-> APN resolver; spelling variants (ELANOR/ELEANOR)
Freshnessperiodic
ConfidenceMODERATE (variants)
Jurisdiction dependenceMEDIUM
Recipes consumingALL
Existing producerdeedsonar address_status/mapped; free geocode worktree (opus-free-geocode)
Case evidence domainIDENTITY
Evidenceshadow hunt F-10

I-PID-03 parcel geometry / centroid

PROPERTY_IDENTITYHUNTER_PARTIALPROVEN
Signalassemblage.adjacent (input)
Source familiesparcel
Identity joinAPN
Freshnessperiodic
ConfidencePROVEN from GIS
Negative evidenceslivers/ROW parcels
Jurisdiction dependenceLOW
Recipes consumingR26,R27,assemblage,split
Existing producerBerrien/Cass/NC OneMap ArcGIS layers via landos adapters
Missing produceradjacency graph builder
Case evidence domainPHYSICAL
Recipes unblocked if builtR26,estate_assemblage,family assemblage (2+)
Evidenceshadow hunt F-12; OSS pyesridump

I-OID-01 owner of record name(s) (ownername1/2)

OWNER_IDENTITYHUNTER_EXISTSPROVEN
Signalownership.trust_or_estate (derived)
Source familiesowner_roll;assessor
Identity joinname normalization; trailing-wildcard only on Berrien WAF
Freshnessannual roll (MI 2025 roll predates 2026 judgment)
ConfidencePROVEN from roll; FORMER owner after foreclosure vesting
Negative evidencetitle vested in Treasurer
Jurisdiction dependenceMEDIUM
Recipes consumingALL owner-condition recipes
Existing producerlandos-ingest owner-name classifier (contact_factory GOV/LLC/CORP/ESTATE regex order)
Case evidence domainIDENTITY
Evidenceshadow hunt F-04/F-05; donor census contact_factory.py:31-40

I-OID-02 owner condition: trust / estate / life-estate / entity / individual

OWNER_IDENTITYHUNTER_EXISTSPROVEN
Signalownership.trust_or_estate;entity.on_title;title.life_estate
Source familiesowner_roll
Identity joinowner-name classifier
Freshnessannual
ConfidenceMODERATE (name-based inference)
Jurisdiction dependenceLOW
Recipes consumingR7,R12,R18,R24,R25,R17,estate_*
Existing producerlandos-ingest classifier; deedsonar owner_condition filter
Missing producerlife-estate/remainder classifier (shadow hunt coined title.life_estate)
Case evidence domainIDENTITY
Evidenceregistry.ts; shadow hunt

I-OID-03 owner age / seniority

OWNER_IDENTITYHUNTER_MISSINGPROBABLE
Source familiesvoter;obituary;licensed
Identity joinperson identity
Freshnessevent
ConfidenceREVIEW
Jurisdiction dependenceHIGH (voter files NC only free)
Recipes consumingEquity Sniper (65+), ListPredict life events
Existing producernone (landos owner axis has age_senior flag but no input)
Missing producerage source (NCSBE voter DOB where lawful)
Case evidence domainIDENTITY
Recipes unblocked if builtEquity Sniper variant
Evidencedonor census #7 (scoring.py:36-40)

I-OID-04 mailing vs situs mismatch / out-of-state / origin state

OWNER_IDENTITYHUNTER_EXISTSPROVEN
Signalabsentee.long_hold;absentee.out_of_state
Source familiesassessor;owner_roll
Identity joinAPN
Freshnessannual
ConfidencePROVEN from roll; mailing-agent edge cases
Negative evidencein-state mailing agent
Jurisdiction dependenceLOW
Recipes consumingR3,R16,R23,absentee_*
Existing producerlandos-ingest absentee_owner; deedsonar mailing_mismatch + out_of_state_owner_flag (18,091 populated)
Case evidence domainIDENTITY
EvidenceNotion CHAPTER 16 Phase 7A facts

I-PTY-01 personal representative / heir / grantee / docket party names

PARTY_IDENTITYHUNTER_PARTIALPROVEN
Signalheirship.unresolved (input)
Source familiesprobate;court;deed
Identity joinparty-name -> identity resolver (MISSING)
Freshnessevent
ConfidenceMODERATE
Jurisdiction dependenceHIGH
Recipes consumingR4,R8,R9,R10
Existing producerdeedsonar candidate_parties / has_living_identity / living_party_count (6,467 IDENTIFIED)
Missing producercontact.identity_resolved routing to phone hunter (P0 in hunter pack 10)
Case evidence domainRELATIONSHIP
Recipes unblocked if built8 of 10 contact cohorts
Evidencehunter pack 10/16; OSS splink+probablepeople

I-ENT-01 SOS entity status (active/dissolved/revoked) + officers

ENTITYHUNTER_MISSINGPROVEN
Signalentity.sos_status
Source familiessos_entity
Identity joinentity name/id normalization
Freshnessdaily-monthly
ConfidencePROVEN from SOS
Negative evidencereinstated
Jurisdiction dependenceHIGH (FL Sunbiz free SFTP; IN $9,500; NC/TN paid; MI no bulk)
Recipes consumingR17,R29,dead-entity derivation
Existing producernone
Missing producerSOS bulk adapter (FL first, NC second)
Case evidence domainAUTHORITY
Recipes unblocked if builtR17 + R29 partial (2)
EvidenceOSS census Sunbiz; Discovery Plan dead-entity

I-SUC-01 probate case opened / status / filing date / PR

SUCCESSIONHUNTER_PARTIALPROVEN
Signalprobate.opened
Source familiesprobate;court
Identity joincase <-> decedent <-> parcel two-key
Freshnessdaily-weekly
ConfidencePROVEN from court index; case status ABSENT today
Negative evidenceclosed estate
Jurisdiction dependenceHIGH (Odyssey/eCourts NC 403 non-browser; MiCOURT; mycase IN; CaseLink TN)
Recipes consumingR4,R5,R7,R9,R12,R18,R24,R25
Existing producerlandos-ingest probate_heir flag (632 rows)
Missing producercase_status/filing_date/PR persistence; wp-json legal-index harvester (MI)
Case evidence domainAUTHORITY
Recipes unblocked if builtR4 depth, R7, R9 authority
Evidencerecipe-engine NBE coverage; shadow hunt F-01/F-12

I-SUC-02 verified death event

SUCCESSIONHUNTER_MISSINGPROVEN
Signaldeath.verified
Source familiesobituary;verified_death;estate_sale
Identity joinperson identity (false-match risk)
Freshnessevent
ConfidenceSTRONG when obituary + roll corroborate; identity conflicts preserved
Jurisdiction dependenceMEDIUM (legacy.com robots disallows obituaries path; funeral homes Cloudflare)
Recipes consumingR5,R29
Existing producernone (Obituary Signal Parser name-only)
Missing producerlawful death-event hunter (manual lane first)
Case evidence domainIDENTITY
Recipes unblocked if builtR5 (1) + R29 amplifier
EvidenceOSS census legacy.com robots; shadow hunt SRC-LEGACY/SRC-STARKS-FH

I-SUC-03 estate sale event (address, dates)

SUCCESSIONHUNTER_EXISTSPROVEN
Signalestate_sale.event
Source familiesestate_sale
Identity joinaddress -> parcel join
Freshnessdaily
ConfidencePROVEN from estatesales.net; year omitted on dates
Negative evidenceestate sale != property sale
Jurisdiction dependenceLOW
Recipes consumingR6
Existing producerrecipe-engine sale_events (daily 6AM)
Missing producerjoin to lead_import_rows/property identity
Case evidence domainMARKET
Recipes unblocked if builtR6 (1)
Evidencerecipe-engine receipts.log

Alias note: Registry row I-ES-01 (ESTATE_SALE family) is an alias pointer to this ingredient, not a separate ingredient. That is why the registry file has 50 rows and 49 distinct ingredients.

I-SUC-04 heirship fragmentation / heir_link

SUCCESSIONHUNTER_EXISTSPROVEN
Signalheirship.unresolved
Source familiesprobate;deed
Identity joinco-tenant roster
Freshnessevent
ConfidenceMODERATE
Jurisdiction dependenceMEDIUM
Recipes consumingR8,R9,stalled_estate,heir_curative
Existing producerlandos-ingest heir_link / probate_heir; deedsonar fractional_family_ownership (976)
Case evidence domainRELATIONSHIP
Evidencehunter pack 04

I-TTL-01 fractional interest / co-tenancy

TITLEHUNTER_EXISTSPROVEN
Signaltitle.fractional
Source familiesdeed;owner_roll
Identity joindeed grantee roster
Freshnessevent
ConfidencePROVEN
Jurisdiction dependenceMEDIUM
Recipes consumingR10,tax_foreclosure_fractional_title
Existing producerdeedsonar fractional_family_ownership materialized
Case evidence domainTITLE
Evidenceregistry.ts EXISTING

I-TTL-02 chain-of-title depth / defects / legal description

TITLEHUNTER_MISSINGPROVEN
Source familiesdeed
Identity joininstrument links
Freshnessevent
ConfidenceREVIEW
Jurisdiction dependenceHIGH (recorder ToU; publicsearch.us anti-bulk conflict)
Recipes consumingR9,R10,R19,R20
Existing producernone (TitleTrace donor spec only)
Missing producerTITLE resolver + recorder adapter under RIGHTS_COURT
Case evidence domainTITLE
Recipes unblocked if builtR10 depth, R19, R20 (3)
Evidencedonor census #6; OSS GovOS/Neumo ToS

I-TAX-01 tax delinquent (published list) + amount + years due

TAXHUNTER_EXISTSPROVEN
Signaltax.delinquent;tax.delinquent_years
Source familiestax_delinquency
Identity joinAPN/account
Freshnessweekly-monthly
ConfidencePROVEN from county list; list date != delinquency start
Negative evidenceresolved taxes
Jurisdiction dependenceHIGH (list formats per county)
Recipes consumingR1,R2,R3,R7,R8,R11,R18,R21,R22 (11 registry entries)
Existing producerlandos-ingest NC weekly (14,222 signals); deedsonar tax_delinquent_amount (20,683) + tax_years_due_count (20,734)
Missing producerdelinquency_start_date + jurisdiction threshold table
Case evidence domainTAX_DEBT
Recipes unblocked if builttax.delinquent_years exposure (1)
Evidencelandos-ingest scheduler.log; Notion CHAPTER 16 Phase 7A

I-TAX-02 tax bill / assessment year-over-year delta (tax shock / assessment shock)

TAXHUNTER_MISSINGPROBABLE
Source familiesassessor;tax_delinquency
Identity joinAPN
Freshnessannual
Confidencederived
Jurisdiction dependenceMEDIUM (reassessment cycles differ)
Recipes consumingTax Shock, Assessment Shock (ASTRA list)
Existing producernone (assessed_value populated 18,169 rows; no history)
Missing producerassessment history retention across roll years
Case evidence domainTAX_DEBT
Recipes unblocked if builtTax Shock, Assessment Shock (2, UNKNOWN provenance)
EvidenceASTRA doc Layer B

I-FC-01 tax foreclosure case + docket stage + sale date

FORECLOSUREHUNTER_EXISTSPROVEN
Signaltax.foreclosed;foreclosure_stage
Source familiestax_foreclosure;court
Identity joincase/APN
Freshnessevent
ConfidencePROVEN from docket; transition history not published
Negative evidencedismissed
Jurisdiction dependenceHIGH
Recipes consumingR8,R21,R22
Existing producerlandos-ingest tax_foreclosure_case (54 NC 2026-09-07); deedsonar tax_foreclosure_curative (67)
Missing producersale_date/redemption_deadline persistence
Case evidence domainTAX_DEBT
Recipes unblocked if builtR21,R22 clocks
Evidencelandos-ingest run 2026-09-07

I-FC-02 tax sale catalog (min bid, redemption date, auction date)

FORECLOSUREHUNTER_EXISTS(MI)/MISSING(IN)PROVEN
Signaltax_sale.catalog
Source familiestax_sale
Identity joinPIN (catalog id changes yearly)
Freshnessper sale cycle
ConfidencePROVEN from tax-sale.info
Negative evidencere-offer inference (F-06)
Jurisdiction dependenceHIGH (MI tax-sale.info; IN SRI JS-only; NC in-rem no catalog)
Recipes consumingR21,R22,surplus lane
Existing producerlandos-engine app/normalizers/tax_sale_info.py
Missing producerSRI/IN adapter (blocked F-03); schedule entry
Case evidence domainTAX_DEBT
Recipes unblocked if builtR21/R22 in IN
Evidenceshadow hunt SOURCE_REGISTRY; Notion Architecture Lock

I-FC-03 mortgage foreclosure notice / lis pendens / sheriff sale

FORECLOSUREHUNTER_MISSINGPROVEN
Signaldebt.mortgage_foreclosure
Source familiescourt;lien
Identity joinlegal description (no parcel) in MI notices
Freshnessweekly
ConfidenceMODERATE (unstructured legal text)
Negative evidenceadjourned
Jurisdiction dependenceHIGH (MI by advertisement; NC judicial/power-of-sale; FL judicial)
Recipes consumingR20,R21 variant
Existing producerlandos-ingest lis_pendens adapter DISABLED gate-in-data
Missing producerpermitted public-notice feed (mipublicnotices/indianapublicnotices are paid-placement)
Case evidence domainTAX_DEBT
Recipes unblocked if builtR20 (1)
Evidencelandos-ingest strategy/signals.json:382

I-LIEN-01 liens / judgments stack

LIENHUNTER_MISSINGPROVEN
Signalliens.tax_lien
Source familieslien;judgment;court
Identity joinperson + property
Freshnessevent
ConfidenceREVIEW
Negative evidencereleased liens
Jurisdiction dependenceMEDIUM
Recipes consumingR20
Existing producernone
Missing producerrecorder/court adapter
Case evidence domainTAX_DEBT
Recipes unblocked if builtR20 (1)
Evidencehunter pack 10

I-DEBT-01 open mortgage / release recorded

DEBTHUNTER_MISSINGPROVEN
Signaldebt.mortgage_open
Source familiesmortgage;release
Identity joininstrument links
Freshnessevent
ConfidenceRELEASE_NOT_FOUND_IN_COVERAGE never = no release
Jurisdiction dependenceMEDIUM
Recipes consumingR14,R19,commercial_debt_maturity
Existing producernone (Cass GIS carries LiberPage)
Missing producerrecorder adapter under RIGHTS_COURT
Case evidence domainTAX_DEBT
Recipes unblocked if builtR14,R19,commercial_debt_maturity (3)
Evidencehunter pack 10

I-EQ-01 estimated equity pct (value - debt proxy)

EQUITYHUNTER_MISSINGPROVEN
Signalequity.estimated_pct
Source familiesassessor;mortgage(derived)
Identity joinAPN
Freshnessrecalculated
ConfidenceESTIMATED never VERIFIED
Jurisdiction dependenceLOW
Recipes consumingR2,R3,R11,R13,R15,R16,estate_equity,code_equity (6 registry)
Existing producernone (assessed_value 18,169 rows exists; no debt proxy)
Missing producerVALUATION adapter (CompScan donor; tax-balance proxy already marked proxy in recipe-engine score vector)
Case evidence domainMARKET
Recipes unblocked if built6 registry entries (with DEED = 10)
Evidencehunter pack 10/14 STEP 2

I-VAL-01 assessed value / SEV / land vs improvement split

VALUATIONHUNTER_PARTIALPROVEN
Signalacreage.acres(no) ; land vs improvement
Source familiesassessor
Identity joinAPN
Freshnessannual
Confidenceassessed != market; MI SEV ~50% TCV
Jurisdiction dependenceMEDIUM (NC/FL/TX expose split; MI SEV only)
Recipes consumingR27,R28,high_land_low_improvement,tear_down
Existing producerdeedsonar assessed_value (18,169); landos-engine sev proxy
Missing producerland/improvement split projection
Case evidence domainMARKET
Recipes unblocked if builtR27 (1)
EvidenceNotion CHAPTER 16; landos-engine recipe_core.py:409

I-TEN-01 ownership tenure years (last transfer date)

TENUREHUNTER_MISSINGPROVEN
Signaltransfer.tenure_years
Source familiesdeed;assessor
Identity jointransfer chain
Freshnessevent/annual
ConfidencePROVEN when deed date present; partial history
Jurisdiction dependenceMEDIUM (Cass GIS SaleDate free; NC deed tape absent)
Recipes consumingR13,R14,R15,long_hold_* ,old_mortgage,penn example (6)
Existing producernone in NC; Cass county_parcels SaleDate/SalePrice/Grantor
Missing producerDEED adapter / roll sale-date projection
Case evidence domainTITLE
Recipes unblocked if built6 registry entries
Evidencehunter pack 10 STEP 3; shadow hunt Cass fields

I-OCC-01 homestead / occupancy evidence

OCCUPANCYHUNTER_MISSINGPROBABLE
Source familieshomestead;assessor
Identity joinAPN
Freshnessannual
ConfidencePROVEN from exemption flag
Negative evidenceexemption != occupancy
Jurisdiction dependenceHIGH (homestead rules vary)
Recipes consumingvacancy negative evidence; R18
Existing producernone exposed
Missing producerhomestead flag projection (FL/TX/MI PRE)
Case evidence domainPHYSICAL
Recipes unblocked if builtR18 negative evidence
Evidencemanual matrix

I-ABS-01 absentee long-hold (materialized recipe)

ABSENTEEHUNTER_EXISTSPROVEN
Signalabsentee.long_hold
Source familiesowner_roll
Identity joinAPN
Freshnessannual
ConfidencePROVEN
Jurisdiction dependenceLOW
Recipes consumingR3,R16,R23,absentee_*
Existing producerdeedsonar long_term_absentee_potential_equity (148) / absentee_owner
Case evidence domainIDENTITY
Evidenceregistry.ts

I-VAC-01 vacancy indicator (official / registry / USPS)

VACANCYHUNTER_PARTIALPROVEN
Signalvacancy.vacant
Source familiesvacancy;code;occupancy
Identity joinaddress/APN
Freshnessperiodic
Confidencemust be evidential, not mailing mismatch
Negative evidenceoccupied
Jurisdiction dependenceHIGH (municipal registries; USPS vacancy licensed)
Recipes consumingR18,R28,vacant_estate,vacant_tax
Existing producertag exists on NC estate (not queryable); Berrien Vacant_Publically_Owned_Parcels_2026 (1,792)
Missing producerpromote tag to queryable signal (STEP 4, no new source)
Case evidence domainPHYSICAL
Recipes unblocked if built2 registry entries by promotion
Evidencehunter pack 14 R1-C

I-CODE-01 code violation / unsafe / demolition order + severity

CODEHUNTER_PARTIALPROVEN
Signalcode.violation;code.demolition_order
Source familiescode;demolition;unsafe_building
Identity joinaddress/APN (SJC layer lacks owner)
Freshnessweekly-monthly
Confidenceorder may be appealed/resolved
Negative evidenceminor noise
Jurisdiction dependenceHIGH (Accela/Socrata/ArcGIS per city; SB layer stale 2025-04-18)
Recipes consumingR11,R12,R16,R28,code_* (4 registry)
Existing producertag exists on NC estate; South Bend ArcGIS demolition (80)
Missing producerpromote tag (STEP 4); Accela live-case adapter; owner join
Case evidence domainPHYSICAL
Recipes unblocked if built4 registry entries by promotion (5 total with vacancy)
Evidencehunter pack 14 R1-C; shadow hunt F-07/F-08

I-COND-01 improvement condition / year built / damage validation

CONDITIONHUNTER_MISSINGPROBABLE
Signaldevelopment.infill (proxy)
Source familiesassessor;imagery;permit
Identity joinAPN
Freshnessannual/event
ConfidenceREVIEW
Jurisdiction dependenceMEDIUM
Recipes consumingR27,tear_down,storm_repair,R23/R24 validation
Existing producernone (RoofScan donor UNKNOWN)
Missing producercondition source (assessor year_built/condition codes; NAIP change detection per timber layer)
Case evidence domainPHYSICAL
Recipes unblocked if built3 DEVELOPMENT entries
Evidencehunter pack 10

I-LST-01 listing status / expired / withdrawn / DOM / price cuts

LISTINGHUNTER_MISSINGPROVEN
Signallisting.active;listing.failed_36mo
Source familieslisting
Identity joinaddress/APN
Freshnessdaily
Confidencelicensed only
Negative evidencere-listed
Jurisdiction dependenceHIGH (MLS licensing per board; FSBO public subset)
Recipes consumingR13,failed_listing_*,R29,penn EXCLUDE
Existing producernone (WALLED)
Missing producerlicensed listing feed or FSBO/public expired subset
Case evidence domainMARKET
Recipes unblocked if built3 registry entries + penn
Evidencerecipe-engine NBE coverage

I-DIS-01 storm footprint / hail swath / declared disaster (county FIPS)

DISASTERHUNTER_MISSINGPROVEN
Signalstorm.damage
Source familiesstorm;fire
Identity joingeospatial -> parcel
Freshnessevent
Confidencefootprint != damage
Jurisdiction dependenceLOW (NOAA/OpenFEMA national)
Recipes consumingR23,R24,storm_repair
Existing producernone (stormstack-geotrigger hail gate as destination)
Missing producerHAZARD adapter: NOAA NCEI storm events CSV + OpenFEMA declarations + hail swaths
Case evidence domainRISK
Recipes unblocked if built4 registry entries (with flood)
EvidenceOSS census OpenFEMA/NOAA; hunter pack 10

I-DIS-02 flood zone (NFHL) / forward flood risk

DISASTERHUNTER_MISSINGPROVEN
Signalflood.zone
Source familiesflood
Identity joingeospatial
Freshnessperiodic
Confidencezone != event
Jurisdiction dependenceLOW (FEMA NFHL national, maxRecordCount 2000)
Recipes consumingflood_resilience,R23 amplifier
Existing producernone
Missing producerNFHL layer 28 adapter
Case evidence domainRISK
Recipes unblocked if built1 registry entry
EvidenceOSS census NFHL

I-PRM-01 permit activity / permit absence (derived)

PERMITHUNTER_MISSINGPROBABLE
Source familiespermit
Identity joinAPN/address
Freshnessdaily-weekly
Confidencepermit != completed work
Jurisdiction dependenceHIGH (Accela per city; open permit datasets)
Recipes consumingDevelopment Edge, R11/R12 amplifier, R27
Existing producernone (PermitPulse donor spec)
Missing producerpermit adapter + negative-space derivation job
Case evidence domainPHYSICAL
Recipes unblocked if builtDEVELOPMENT family (3)
EvidenceDiscovery Plan family 3

I-LAND-01 acreage / land-use class / ag class

LANDHUNTER_PARTIALPROVEN
Signalacreage.acres;land.use_residential;acreage.ag
Source familiesparcel;assessor;land_use
Identity joinAPN
Freshnessperiodic
Confidencegross vs usable
Jurisdiction dependenceMEDIUM (class codes per assessor; MI currclass)
Recipes consumingR25,R27,estate_acreage,long_hold_acreage,split,solar,high_land (7)
Existing producerMI/IN GIS layers via landos (Berrien ag>=20ac 1,325); NC assessor ingested but acreage not on estate query
Missing producerPARCEL projection (exposure job)
Case evidence domainPHYSICAL
Recipes unblocked if built7 registry entries
Evidencehunter pack 10 STEP 1; shadow hunt cohorts

I-LAND-02 timber / soils / mineral / easement value layers

LANDHUNTER_PARTIALPROBABLE
Signalland.timber_value;mineral.rights
Source familiesenvironmental;land_use
Identity joingeometry
Freshnessperiodic
Confidencederived proxy
Jurisdiction dependenceLOW (federal rasters)
Recipes consumingR25 amplifier, solar_land, DirtHunter plays
Existing producermineral-scout (real code); timber layer captured-not-armed
Missing producerNLCD/3DEP/FIA/NRCS composition adapter
Case evidence domainPHYSICAL
Recipes unblocked if builtsolar_land, R25 amplifiers
EvidenceDiscovery Plan #9; donor census mineral-scout

I-ZON-01 zoning district / overlay / upzoning trigger

ZONINGHUNTER_MISSINGPROVEN
Signalzoning.district
Source familieszoning;land_use
Identity joinparcel
Freshnessperiodic
Confidenceoverlays/conditional use
Jurisdiction dependenceHIGH (local GIS; MI county REST has no zoning; BS&A/Beacon not REST)
Recipes consumingsplit,storage,industrial,R27,Development Edge (3 registry)
Existing producernone (LandOS v2 dev_fit neutral 0.500 placeholder)
Missing producerzoning adapter per jurisdiction (Zonelytics donor concept)
Case evidence domainPHYSICAL
Recipes unblocked if built3 registry entries
EvidenceNotion Architecture Lock known data gap

I-UTL-01 sewer/water on-site or nearby; utility shutoff

UTILITYHUNTER_MISSINGPROBABLE
Source familiesutilities
Identity joinparcel / address
Freshnessperiodic / event
ConfidenceREVIEW
Jurisdiction dependenceHIGH (utility districts; shutoff = PMAN donor idea)
Recipes consumingsplit, DirtHunter weights (+18/+10), PMAN
Existing producernone
Missing producerwill-serve/utility GIS adapter
Case evidence domainPHYSICAL
Recipes unblocked if builtsplit_opportunity, storage
Evidencehunter pack 07 DirtHunter weights

I-ENV-01 brownfield / EGLE sites / wetlands / floodway

ENVIRONMENTALHUNTER_PARTIALPROVEN
Source familiesenvironmental
Identity joingeometry
Freshnessperiodic
Confidencesourced_unconfirmed until authoritative
Jurisdiction dependenceMEDIUM
Recipes consumingoverlay tailwinds/penalties; R27
Existing producerlandos-engine EGLE brownfield overlay (12 BH sites; adapter exists)
Missing producerwetlands (NWI) + floodway (NFHL) layers
Case evidence domainRISK
EvidenceNotion Architecture Lock overlays; shadow hunt SRC-EGLE-BROWNFIELD

I-MKT-01 market velocity / trajectory / comps / exit demand

MARKETHUNTER_MISSINGPROVEN
Source familiesmarket_context;listing
Identity joingeography
Freshnessmonthly-quarterly
Jurisdiction dependenceMEDIUM
Recipes consumingranking (economic_value, liquidity dimension MISSING), School Demand, NeighborIQ
Existing producerrecipe-engine score vector liquidity=MISSING; Ch.15 Market Intelligence organ (design)
Missing producermarket-context adapter (Census/BLS/permit velocity)
Case evidence domainMARKET
Recipes unblocked if builtliquidity dimension
Evidencerecipe-engine RECIPE_SCORE_VECTOR_COVERAGE.csv

I-DEM-01 income / geographic context / migration flows (U-Haul aggregate)

DEMOGRAPHICHUNTER_MISSINGPROBABLE
Source familiesmarket_context;demographic
Identity jointract/county
Freshnessannual
Confidenceaggregate only
Jurisdiction dependenceLOW (ACS public)
Recipes consumingterritory thesis dimensions; NCOA moving signals
Existing producernone
Missing producerACS/Census adapter
Case evidence domainMARKET
Recipes unblocked if builtterritory ranking
EvidenceDiscovery Plan #8; manual TERRITORY THESIS

I-ADJ-01 adjacent parcel owners / kin graph / public-owner neighbours

ADJACENCYHUNTER_PARTIALPROVEN
Signalassemblage.adjacent;vacancy.public_owner
Source familiesparcel;owner_roll;vacancy
Identity joingeometry + owner identity
Freshnessperiodic
Confidencestreet-name proxy today
Negative evidenceroad separation
Jurisdiction dependenceLOW
Recipes consumingR26,estate_assemblage,family assemblage
Existing producerLandOS v2 kin graph (entity pierce 71 humans) - Anchorpoint lineage; shadow hunt street proxy
Missing producerspatial adjacency check on resolved hubs; Berrien Vacant_Public + Parcel_2025 join
Case evidence domainRELATIONSHIP
Recipes unblocked if builtR26 + estate_assemblage (2)
EvidenceDiscovery Plan family 2; shadow hunt F-12

I-DEV-01 infill / redevelopment potential; forward-demand catalysts (permits, rezoning, will-serve, meeting decisions)

DEVELOPMENTHUNTER_MISSINGPROBABLE
Signaldevelopment.infill
Source familiespermit;zoning;market_context;meeting_minutes
Identity joingeography/parcel
Freshnessevent
Confidencecatalyst magnitude x probability x time-discount
Jurisdiction dependenceHIGH
Recipes consumingR27,infill,MH infill,tear_down,Development Edge
Existing producerLandOS v2 catalyst quadrant doctrine (design)
Missing producermeeting-intelligence 7a adapter; permit adapter
Case evidence domainMARKET
Recipes unblocked if built3 DEVELOPMENT entries
EvidenceDiscovery Plan family 2/7a

I-CON-01 sourced phone + provenance + freshness

CONTACTHUNTER_EXISTSPROVEN
Signalcontact.phone_present
Source familiesvoter_contact
Identity joinperson identity + address match
Freshnessevent
ConfidenceHIGH/MEDIUM/REVIEW/REJECTED (contact_evidence)
Jurisdiction dependenceHIGH (NCSBE NC-only; 0% Wake phones)
Recipes consumingcontact plane only
Existing producercontact_evidence table; NCSBE hunter (947 rows = 100%)
Missing producerout-of-state route (paid last); identity routing from docket/estate/grantee names
Case evidence domainCONTACT
Recipes unblocked if builtcontact plane 8 of 10 cohorts by routing
Evidencehunter pack 04/10/15

I-CON-02 DNC state

CONTACTHUNTER_MISSINGPROVEN
Signalcontact.dnc_state
Source familiesdnc_scrub (vendor)
Identity joinphone
Freshnessevent
Confidencetri-state boolean|null; unknown blocks outbound
Jurisdiction dependenceLOW (federal DNC + state lists)
Recipes consumingcontact plane (hard gate)
Existing producerdeedsonar dnc tri-state contract; NO scrub adapter
Missing producerDNC scrub service (P0)
Case evidence domainCONTACT
Recipes unblocked if builtALL 10 cohorts (CALLABLE 0 -> >0)
Evidencehunter pack 10 CONTACT_DNC

I-CON-03 consent / action authority

CONTACTHUNTER_EXISTS(contract)PROVEN
Source familiesgovernance
Identity jointenant + case
Freshnessevent
Confidenceexplicit only
Jurisdiction dependenceLOW
Recipes consumingoutreach lane
Existing producerlead-recipe-os contact_readiness consent/action_authority axes; governance ratification (7-day scoped)
Missing producerproduct field for consent in DeedSonar
Case evidence domainCONTACT
Evidencecontracts/kernel/contact_readiness.v1.schema.json

I-CLK-01 clock state per (object, governing rule)

PROCESS_CLOCKHUNTER_PARTIALPROVEN
Source familiesderived
Identity joinobject id
Freshnessdaily derived
ConfidenceUNKNOWN never = not due
Jurisdiction dependenceHIGH (rules per state)
Recipes consumingR1,R8,R21,R22,R4,R29
Existing producerdeedsonar watches process-clock (operator timing only); recipe-engine PROCESS_CLOCKS contract
Missing producerdomain ProcessClock projection with jurisdiction rule table (PROCESS_CLOCK_REGISTRY.tsv)
Case evidence domainINTERNAL
Recipes unblocked if builtclock-bearing recipes (6)
EvidencePROCESS_CLOCK_REGISTRY.tsv

I-SQ-01 source freshness / schema drift / health / independence count

SOURCE_QUALITYHUNTER_EXISTSPROVEN
Source familiesall
Identity joinsource_id
Freshnessper run
ConfidenceHTTP 200 != healthy
Recipes consumingranking (source_independence_diversity, data_completeness, freshness)
Existing producerlandos-ingest source health/drift/freshness; recipe-engine independent_source_family_count; deedsonar freshness filters
Case evidence domainINTERNAL
Evidencerecipe-engine RECIPE_SCORE_VECTOR_COVERAGE.csv; ASTRA doc source truths

I-GAP-01 next-best-evidence / unknown_inputs / blocking_reason

INFORMATION_GAPHUNTER_EXISTSPROVEN
Source familiesderived
Identity joincandidate
Freshnessper evaluation
Confidenceexpected information value = impact x P(resolve) / cost
Recipes consumingR30 (engine behaviour), all recipes' NBE
Existing producerlandos next_source_why/blocking_reason (20,734 rows); recipe-engine oppack_receipts unknown_inputs; lead-recipe-os NBE contract; shadow NBE_QUEUE 566
Missing producerNBE queue projection per recipe in DeedSonar (rendered in 4 panels, not ranked)
Case evidence domainINTERNAL
Recipes unblocked if builtR30
Evidencehunter pack 11 addendum; recipe-engine RECIPE_NBE_COVERAGE.csv

Recipe composer

Compose a recipe from registered ingredients only. The source composer refuses unregistered signals; this page can only add registry ingredients, so that rule holds by construction. A composed recipe is PROPOSED and EXPERIMENTAL until validated; composing here proves nothing about live data.

Required (all must hold)

None yet. Use + Required on an ingredient card.

Any-of (at least one group member holds)

None yet.

Negative (disqualifies or penalises)

None yet.

Boost (strengthens, does not qualify alone)

None yet.

Completeness meter

1 of 6 complete

Missing: recipe name; target; at least 1 required ingredient; purpose

No thesis generated yet. Add ingredients and press Generate recipe thesis.

Try-it walkthrough

  1. Find a gap. In the explorer, set Hunter to HUNTER_MISSING. 22 ingredients have no producer. Pick one, for example I-TAX-02 (tax bill / assessment delta).
  2. Score a probate record. In the calculator, uncheck everything, set filing age to 60 days, and watch the total fall to 0. Then re-check address and case number: 35 + 10 = 45.
  3. Load Sample 2. Press "Sample 2: Open Probate + Property" and read the slots: required I-SUC-01, I-PID-01, I-PTY-01, any-of I-SUC-04 and I-TAX-01, boost I-VAC-01 and I-EQ-01. This mirrors canonical recipe R4 in the 30-recipe matrix.
  4. Generate and share. Press Generate recipe thesis, then Copy share link. The link carries the whole composer state in the URL hash; opening it restores the same recipe.
  5. Break it on purpose. Remove every required ingredient and press Generate again. The composer refuses: a recipe with no required ingredient is not generated, matching the source rule that a thesis needs required evidence.

How it works

  • Ingredients are capabilities with declared inputs, outputs, sources, freshness, confidence, failure modes, and fallbacks. The explorer shows the registry row for each one, verbatim in substance.
  • The composer follows compose.py: a thesis has required, any_of, negative, absent, boost, and qualifying slots, a minimum source count (default 1), and a lifecycle of PROPOSED. The generated id is gen_ plus a slug of the name plus an 8-character hash of the thesis.
  • The share link encodes the composer state as base64 JSON in the URL hash (#d=...). Loading a link restores the state. Nothing is sent to any server.
  • The probate calculator applies the five donor weights exactly as the seed file records them (35 / 20 / 25 / 10 / 10).

What this is not

  • Not a live lead engine. No county data, no Supabase, no LANDOS calls, and no scoring of real parcels happen on this page.
  • Not a validated recipe. Composed recipes are EXPERIMENTAL and PROPOSED; the source marks them NOT_VALIDATED.
  • Not a completeness score for opportunity. The probate calculator measures record completeness only.
  • Not the full seed registry. The code seed (ingredients.py) defines 107 ingredient rows across verticals including automotive and resale; this page covers the 49-ingredient opportunity registry (GENOME-B), which is the set the task named.
  • Not legal or title advice. Probate, tax foreclosure, and title rows describe public-record signals, not legal conclusions.

Honest gaps

Sources and siblings