> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mireye.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Insurance underwriting

> Wildfire + flood risk underwriting with per-field federal-source citations.

A wildfire-and-flood underwriter at a small-business carrier needs to
score thousands of rural properties without sending an adjuster on-site.
The traditional path — proprietary CAT models, ESRI add-ons, a half-dozen
specialty data brokers — produces a number with no audit trail. The
regulator asks "where did the 18% loss probability come from?" and the
underwriter has to email three vendors and hope for the best.

Mireye Earth gives the same underwriter a per-field, per-coordinate
answer with the federal source cited inline.

## The query

Address geocodes to `lat=46.6, lng=-93.7` (Aitkin County, Minnesota —
rural, open herbaceous cover, heavy wetlands). Run the
`wildfire_underwrite` preset:

```bash theme={null}
curl -s https://api.mireye.com/v1/fetch \
  -H "Authorization: Bearer $MIREYE_API_TOKEN" \
  -H 'content-type: application/json' \
  -d '{
    "lat": 46.6,
    "lng": -93.7,
    "preset": "wildfire_underwrite"
  }' | jq
```

## The response

```json theme={null}
{
  "lat": 46.6,
  "lng": -93.7,
  "fetched_at": "2026-06-12T07:28:11.332523+00:00",
  "fields": {
    "lcms_class": {
      "value": "Grass/Forb/Herb",
      "unit": null,
      "source": "USFS_LCMS",
      "source_url": "https://developers.google.com/earth-engine/datasets/catalog/USFS_GTAC_LCMS_v2024-10",
      "confidence": "high",
      "fetched_at": "2026-06-12T07:28:08.687077+00:00",
      "dataset_vintage": "2025-11",
      "ttl_seconds": 2592000,
      "notes": null
    },
    "tree_canopy_pct": {
      "value": 0.0,
      "unit": "percent",
      "source": "USGS_NLCD_TCC_V2023_5",
      "source_url": "https://developers.google.com/earth-engine/datasets/catalog/USGS_NLCD_RELEASES_2023_REL_TCC_v2023-5",
      "confidence": "high",
      "fetched_at": "2026-06-12T07:28:11.331689+00:00",
      "dataset_vintage": "NLCD TCC 2023",
      "ttl_seconds": 2592000,
      "notes": null
    },
    "ndvi_current": {
      "value": 0.18159930408000946,
      "unit": null,
      "source": "COPERNICUS_S2_SR_HARMONIZED",
      "source_url": "https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S2_SR_HARMONIZED",
      "confidence": "high",
      "fetched_at": "2026-06-12T07:28:11.331727+00:00",
      "dataset_vintage": "S2 SR 60d window @ 2026-06-12",
      "ttl_seconds": 604800,
      "notes": null
    },
    "ndvi_change_5y": {
      "value": -0.492433562874794,
      "unit": null,
      "source": "COPERNICUS_S2_SR_HARMONIZED",
      "source_url": "https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S2_SR_HARMONIZED",
      "confidence": "medium",
      "fetched_at": "2026-06-12T07:28:11.331776+00:00",
      "dataset_vintage": null,
      "ttl_seconds": 604800,
      "notes": null
    },
    "slope_degrees": {
      "value": 0.053343165665864944,
      "unit": "degrees",
      "source": "USGS_3DEP_COG",
      "source_url": "https://www.usgs.gov/3d-elevation-program",
      "confidence": "medium",
      "fetched_at": "2026-06-12T07:28:07.980417+00:00",
      "dataset_vintage": null,
      "ttl_seconds": 31536000,
      "notes": null
    },
    "elevation": {
      "value": 366.107299805,
      "unit": "meters",
      "source": "USGS_EPQS",
      "source_url": "https://epqs.nationalmap.gov/v1/json?x=-93.7&y=46.6&wkid=4326&units=Meters",
      "confidence": "high",
      "fetched_at": "2026-06-12T07:28:09.139114+00:00",
      "dataset_vintage": "3DEP dynamic service",
      "ttl_seconds": 31536000,
      "notes": null
    }
  },
  "partial_failures": []
}
```

## The audit trail

The underwriter writes their loss memo:

> Wildfire risk at 46.6, -93.7 is low. The site is open herbaceous
> cover (USFS LCMS dominant class "Grass/Forb/Herb") with 0.0% tree
> canopy (NLCD TCC) — no forested fuel structure. Current greenness is
> low (Sentinel-2 NDVI 0.18) and NDVI declined −0.49 over five years,
> so cured or disturbed fine fuels are plausible and worth a dry-season
> review, but terrain is flat (0.05°) and there is no woody fuel to
> carry a high-intensity burn.

The state regulator asks: "where did the 0.0% canopy figure come from?"
The underwriter clicks the `source_url` — the NLCD Tree Canopy Cover
dataset page — which documents the product and methodology. The
underwriter shares the `fetched_at` timestamp; the regulator can
re-fetch the same value from the same source and confirm the
underwriter's claim to within a 30-day product cadence.

Compare with a proprietary CAT model: the underwriter would have to
email the vendor, wait for a response, and hope the methodology PDF
matches what the model actually does.

## Adding flood

Same property, separate call (or batch via `fields` to combine):

```bash theme={null}
curl -s https://api.mireye.com/v1/fetch \
  -H "Authorization: Bearer $MIREYE_API_TOKEN" \
  -H 'content-type: application/json' \
  -d '{
    "lat": 46.6,
    "lng": -93.7,
    "preset": "flood_risk"
  }' | jq '{fields: (.fields | {elevation, intersects_wetland, wetland_type, wetlands_within_500m_count}), partial_failures}'
```

```json theme={null}
{
  "fields": {
    "elevation": {
      "value": 366.107299805,
      "source": "USGS_EPQS",
      "confidence": "high"
    },
    "intersects_wetland": {
      "value": true,
      "source": "USFWS_NWI",
      "confidence": "high"
    },
    "wetland_type": {
      "value": "Palustrine Emergent Nonpersistent Artificially Flooded Farmed",
      "source": "USFWS_NWI",
      "confidence": "high"
    },
    "wetlands_within_500m_count": {
      "value": 25,
      "source": "USFWS_NWI",
      "confidence": "high"
    }
  },
  "partial_failures": [
    {
      "field": "within_floodplain_polygon",
      "source": "FEMA_NFHL",
      "error": "source returned null at this coordinate",
      "retryable": false
    }
  ]
}
```

The parcel sits on a USFWS-mapped wetland — and the NWI wetland type
("Palustrine Emergent … Farmed") plus the 25 wetlands within 500 m tell
the underwriter this is farmed wetland terrain, not open water. Note the
honesty pattern doing its job: FEMA's NFHL has no digitized panel at
this rural coordinate, so `within_floodplain_polygon` arrives as a
`partial_failures` entry (`retryable: false`) instead of a silent
`false`. The memo records "SFHA status: undetermined — no NFHL coverage"
with the failure record as evidence.

## Why this works for insurance

* **Defensible.** Every value cites the originating federal agency. The
  underwriter never has to defend a proprietary "model says 18%" number.
* **Reproducible.** `fetched_at` plus `source_url` means a regulator
  three years from now can re-fetch the same source and confirm what was
  used at underwrite time.
* **Honest.** When a source fails (cloudy Sentinel pass, EIA pipeline
  data lag), the failure surfaces in `partial_failures` with a
  `retryable` flag rather than silently substituting a stale value.
* **Composable.** The carrier's own scoring model lives on top — Mireye
  provides the inputs with provenance, the carrier's actuaries weight
  them. The audit trail is preserved end-to-end.

## What it does NOT do

* **Not a CAT model.** Mireye returns the input data; modeling loss
  probability is the carrier's job.
* **Not a parcel-search service.** Geocoding from address to lat/lng is
  the caller's responsibility (US Census Geocoder is free and works).
* **Not real-time event data.** No active fire perimeters, no current
  flood gauge readings. Add those alongside via NIFC / USGS Water APIs
  if your underwriting requires them.
