Skip to main content
When an Evaluate engine enables an external enrichment source, its completed output can include output.enrichment.<kind>. Under the v2 contract, every configured and enabled source has a terminal block even when it has no payload.
This page describes the output.enrichment.<kind> block shape. An Evaluate engine running in contract mode composes its own output envelope instead and does not emit output.enrichment. If you integrate against the property-risk engine, the contract you consume is Property risk engine, not this page.

Block fields

The canonical examples for all five statuses are in assets/enrichment_outcomes_v2.json. The machine-readable schema is EnrichmentOutcomeBlock in the OpenAPI file.

Consumer logic

Branch on status, not block or payload presence:
  • succeeded: consume the payload.
  • not_mapped: record that the source returned no mapped feature, but do not interpret it as no risk. The FEMA summary is observational and does not feed deterministic rules.
  • skipped: inspect diagnostics for missing input, address quality, or precision. attempted is false when no upstream call occurred.
  • ambiguous: do not select a feature yourself. The source returned conflicting data and Nexio intentionally withheld a fact.
  • unavailable: the quote result remains usable, but the enrichment signal is absent because of budget, transport, retry, breaker, schema, or internal serialization failure.

Compatibility and non-guarantees

Every run completed under the current outcome contract carries status and attempted on each enrichment block. Enrichment blocks retrieved from runs archived before that rollout may omit both fields, so strict consumers should treat them as optional: branch on status when it is present and fall back to payload-presence checks for historical responses. FEMA flood_zone_confidence is rooftop. Lower-precision coordinates are not emitted. A successful FEMA payload emits unknown sfha and base_flood_elevation_feet values as explicit JSON null. FEMA degraded and circuit-open diagnostics emit details.upstream as google_geocoding or nfhl. Public Google and FEMA data can be incomplete or stale and does not replace a paid flood determination. not_mapped does not mean no flood risk; for a rooftop-precision geocode it means neither FEMA’s effective map nor its preliminary map publishes a flood zone at that point. A zone returned from the preliminary map is marked flood_zone_source: preliminary and is a risk indication only, never a rating or determination basis. A cache hit may replay a successful result fetched up to 24 hours earlier. The lookup has an 8-second hard deadline; 5 seconds is the service objective, not a per-call guarantee.