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.

Block fields

FieldTypeRequiredMeaning
kindstringyesRegistered source identifier; matches the map key.
statusenumyessucceeded, not_mapped, skipped, ambiguous, or unavailable.
attemptedbooleanyesWhether this run made an upstream attempt. A cache hit or pre-call skip is false.
payloadobjectconditionalRequired for succeeded and not_mapped; absent otherwise.
fetched_atdate-timenoTime of the upstream result. Cache hits retain the original time.
diagnosticsarraynoSource-scoped copy of matching top-level diagnostics.
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

ENRICHMENT_OUTCOME_V2 is a deployment-controlled rollout flag. With the flag off, the legacy payload-only block remains and non-success blocks are absent. Strict consumers must accept optional payload and fetched_at before v2 is enabled for their traffic. FEMA flood_zone_confidence is address in the legacy payload and rooftop in v2. The legacy payload omits unknown sfha and base_flood_elevation_feet; a successful v2 FEMA payload emits both as explicit JSON null when unknown. FEMA degraded and circuit-open diagnostics also use flag-conditional upstream tokens. V2 emits details.upstream as google_geocoding or nfhl; the legacy wire remains geocoder or fema_nfhl while the flag is off. 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. 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.