{
  "schemaVersion": 2,
  "cases": [
    {
      "id": "norman",
      "date": "2026-08-16",
      "location": "Norman, Oklahoma",
      "title": "Closer to the reported size",
      "claim": "Three ground reports put the size estimate in context.",
      "summary": "Three observers reported 1\u20131.25\u2033 hail. Anvil\u2019s estimate during that period was 1.23\u2033.",
      "evidenceKind": "reported-hail",
      "bounds": [
        -97.61,
        35.08,
        -97.09,
        35.4
      ],
      "viewportBounds": [
        -97.61,
        35.08,
        -97.09,
        35.4
      ],
      "keyFrameTime": "2026-08-16T23:38:41Z",
      "reports": [
        {
          "lon": -97.36,
          "lat": 35.26,
          "time": "2026-08-16T23:36:00Z",
          "sizeIn": 1.0,
          "sizeMm": 25.4,
          "place": "6 NE Norman",
          "source": "NWS local storm report \u00b7 trained spotter \u00b7 estimated size"
        },
        {
          "lon": -97.36,
          "lat": 35.24,
          "time": "2026-08-16T23:42:00Z",
          "sizeIn": 1.25,
          "sizeMm": 31.8,
          "place": "5 E Norman",
          "source": "NWS local storm report \u00b7 public \u00b7 estimated size"
        },
        {
          "lon": -97.35,
          "lat": 35.28,
          "time": "2026-08-16T23:45:00Z",
          "sizeIn": 1.0,
          "sizeMm": 25.4,
          "place": "5 S Stanley Draper Lake",
          "source": "NWS local storm report \u00b7 weather service employee \u00b7 estimated size"
        }
      ],
      "labels": [
        {
          "name": "Norman",
          "lon": -97.35,
          "lat": 35.28
        }
      ],
      "frames": [
        {
          "time": "2026-08-16T23:32:42Z",
          "contours": [],
          "anvil": 0.1261140819964349,
          "mesh": 17.8,
          "probsevere": 0.12,
          "meshObjectMax": 41.79999923706055,
          "visuals": {
            "anvil": {
              "src": "/research/anvil-in-action/norman-20260816_233242.webp",
              "bounds": [
                -97.61,
                35.08,
                -97.09,
                35.4
              ]
            },
            "mesh": {
              "src": "/research/anvil-in-action/norman-mesh-20260816_233242.webp",
              "bounds": [
                -97.61,
                35.08,
                -97.09,
                35.4
              ]
            },
            "probsevere": {
              "contours": [
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -97.41,
                        35.3
                      ],
                      [
                        -97.41,
                        35.27
                      ],
                      [
                        -97.42,
                        35.25
                      ],
                      [
                        -97.38,
                        35.23
                      ],
                      [
                        -97.36,
                        35.23
                      ],
                      [
                        -97.33,
                        35.25
                      ],
                      [
                        -97.33,
                        35.3
                      ],
                      [
                        -97.36,
                        35.32
                      ],
                      [
                        -97.38,
                        35.32
                      ],
                      [
                        -97.41,
                        35.3
                      ]
                    ]
                  ]
                }
              ],
              "bounds": [
                -97.61,
                35.08,
                -97.09,
                35.4
              ]
            }
          },
          "anvilImageAvailable": true,
          "anvilSizeMm": 29.6,
          "anvilSizeP90Mm": 48.9,
          "meshStormMaxMm": 41.79999923706055,
          "anvilProductSizeMm": 29.6,
          "anvilProductSizeUpperMm": 48.9,
          "anvilProductSizeBasis": "quantile-model",
          "anvilProductSizeUpperQuantile": 0.9
        },
        {
          "time": "2026-08-16T23:38:41Z",
          "contours": [],
          "anvil": 0.1261140819964349,
          "mesh": 11.8,
          "probsevere": 0.21,
          "meshObjectMax": 41.70000076293945,
          "visuals": {
            "anvil": {
              "src": "/research/anvil-in-action/norman-20260816_233841.webp",
              "bounds": [
                -97.61,
                35.08,
                -97.09,
                35.4
              ]
            },
            "mesh": {
              "src": "/research/anvil-in-action/norman-mesh-20260816_233841.webp",
              "bounds": [
                -97.61,
                35.08,
                -97.09,
                35.4
              ]
            },
            "probsevere": {
              "contours": [
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -97.42,
                        35.32
                      ],
                      [
                        -97.44,
                        35.29
                      ],
                      [
                        -97.44,
                        35.23
                      ],
                      [
                        -97.42,
                        35.2
                      ],
                      [
                        -97.43,
                        35.18
                      ],
                      [
                        -97.42,
                        35.18
                      ],
                      [
                        -97.41,
                        35.2
                      ],
                      [
                        -97.39,
                        35.2
                      ],
                      [
                        -97.38,
                        35.18
                      ],
                      [
                        -97.37,
                        35.18
                      ],
                      [
                        -97.37,
                        35.19
                      ],
                      [
                        -97.35,
                        35.2
                      ],
                      [
                        -97.34,
                        35.22
                      ],
                      [
                        -97.33,
                        35.22
                      ],
                      [
                        -97.3,
                        35.25
                      ],
                      [
                        -97.28,
                        35.29
                      ],
                      [
                        -97.28,
                        35.34
                      ],
                      [
                        -97.29,
                        35.35
                      ],
                      [
                        -97.36,
                        35.35
                      ],
                      [
                        -97.42,
                        35.32
                      ]
                    ]
                  ]
                }
              ],
              "bounds": [
                -97.61,
                35.08,
                -97.09,
                35.4
              ]
            }
          },
          "anvilImageAvailable": true,
          "anvilSizeMm": 31.2,
          "anvilSizeP90Mm": 50.9,
          "meshStormMaxMm": 41.70000076293945,
          "anvilProductSizeMm": 31.2,
          "anvilProductSizeUpperMm": 50.9,
          "anvilProductSizeBasis": "quantile-model",
          "anvilProductSizeUpperQuantile": 0.9
        },
        {
          "time": "2026-08-16T23:44:39Z",
          "contours": [],
          "anvil": 0.1769249336229785,
          "mesh": 7.8,
          "probsevere": 0.15,
          "meshObjectMax": 32.400001525878906,
          "visuals": {
            "anvil": {
              "src": "/research/anvil-in-action/norman-20260816_234439.webp",
              "bounds": [
                -97.61,
                35.08,
                -97.09,
                35.4
              ]
            },
            "mesh": {
              "src": "/research/anvil-in-action/norman-mesh-20260816_234439.webp",
              "bounds": [
                -97.61,
                35.08,
                -97.09,
                35.4
              ]
            },
            "probsevere": {
              "contours": [
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -97.4,
                        35.33
                      ],
                      [
                        -97.43,
                        35.3
                      ],
                      [
                        -97.43,
                        35.24
                      ],
                      [
                        -97.4,
                        35.21
                      ],
                      [
                        -97.34,
                        35.21
                      ],
                      [
                        -97.3,
                        35.23
                      ],
                      [
                        -97.27,
                        35.26
                      ],
                      [
                        -97.24,
                        35.32
                      ],
                      [
                        -97.25,
                        35.33
                      ],
                      [
                        -97.25,
                        35.35
                      ],
                      [
                        -97.27,
                        35.37
                      ],
                      [
                        -97.27,
                        35.38
                      ],
                      [
                        -97.31,
                        35.38
                      ],
                      [
                        -97.4,
                        35.33
                      ]
                    ]
                  ]
                },
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -97.5,
                        35.13
                      ],
                      [
                        -97.5,
                        35.09
                      ],
                      [
                        -97.49,
                        35.07
                      ],
                      [
                        -97.43,
                        35.07
                      ],
                      [
                        -97.44,
                        35.08
                      ],
                      [
                        -97.44,
                        35.11
                      ],
                      [
                        -97.43,
                        35.13
                      ],
                      [
                        -97.45,
                        35.15
                      ],
                      [
                        -97.47,
                        35.15
                      ],
                      [
                        -97.5,
                        35.13
                      ]
                    ]
                  ]
                }
              ],
              "bounds": [
                -97.61,
                35.08,
                -97.09,
                35.4
              ]
            }
          },
          "anvilImageAvailable": true,
          "anvilSizeMm": null,
          "anvilSizeP90Mm": null,
          "meshStormMaxMm": 32.400001525878906,
          "anvilProductSizeMm": 25.4,
          "anvilProductSizeUpperMm": 50.8,
          "anvilProductSizeBasis": "calibrated-mesh-band",
          "anvilProductSizeUpperQuantile": 0.95
        },
        {
          "time": "2026-08-16T23:48:41Z",
          "contours": [],
          "anvil": 0.11190283400809717,
          "mesh": 3.8,
          "probsevere": 0.06,
          "meshObjectMax": 24.600000381469727,
          "visuals": {
            "anvil": {
              "src": "/research/anvil-in-action/norman-20260816_234841.webp",
              "bounds": [
                -97.61,
                35.08,
                -97.09,
                35.4
              ]
            },
            "mesh": {
              "src": "/research/anvil-in-action/norman-mesh-20260816_234841.webp",
              "bounds": [
                -97.61,
                35.08,
                -97.09,
                35.4
              ]
            },
            "probsevere": {
              "contours": [
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -97.39,
                        35.33
                      ],
                      [
                        -97.43,
                        35.29
                      ],
                      [
                        -97.43,
                        35.23
                      ],
                      [
                        -97.41,
                        35.21
                      ],
                      [
                        -97.34,
                        35.21
                      ],
                      [
                        -97.3,
                        35.23
                      ],
                      [
                        -97.27,
                        35.26
                      ],
                      [
                        -97.26,
                        35.26
                      ],
                      [
                        -97.24,
                        35.3
                      ],
                      [
                        -97.24,
                        35.35
                      ],
                      [
                        -97.28,
                        35.37
                      ],
                      [
                        -97.31,
                        35.37
                      ],
                      [
                        -97.39,
                        35.33
                      ]
                    ]
                  ]
                },
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -97.5,
                        35.11
                      ],
                      [
                        -97.49,
                        35.09
                      ],
                      [
                        -97.46,
                        35.07
                      ],
                      [
                        -97.44,
                        35.07
                      ],
                      [
                        -97.44,
                        35.11
                      ],
                      [
                        -97.43,
                        35.13
                      ],
                      [
                        -97.44,
                        35.14
                      ],
                      [
                        -97.5,
                        35.14
                      ],
                      [
                        -97.5,
                        35.11
                      ]
                    ]
                  ]
                }
              ],
              "bounds": [
                -97.61,
                35.08,
                -97.09,
                35.4
              ]
            }
          },
          "anvilImageAvailable": true,
          "anvilSizeMm": null,
          "anvilSizeP90Mm": null,
          "meshStormMaxMm": 24.600000381469727,
          "anvilProductSizeMm": 25.4,
          "anvilProductSizeUpperMm": 44.4,
          "anvilProductSizeBasis": "calibrated-mesh-band",
          "anvilProductSizeUpperQuantile": 0.95
        },
        {
          "time": "2026-08-16T23:54:41Z",
          "contours": [],
          "anvil": 0.028355278355278356,
          "mesh": null,
          "probsevere": 0.03,
          "meshObjectMax": 21.399999618530273,
          "visuals": {
            "anvil": {
              "src": "/research/anvil-in-action/norman-20260816_235441.webp",
              "bounds": [
                -97.61,
                35.08,
                -97.09,
                35.4
              ]
            },
            "mesh": {
              "src": "/research/anvil-in-action/norman-mesh-20260816_235441.webp",
              "bounds": [
                -97.61,
                35.08,
                -97.09,
                35.4
              ]
            },
            "probsevere": {
              "contours": [
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -97.32,
                        35.36
                      ],
                      [
                        -97.36,
                        35.35
                      ],
                      [
                        -97.41,
                        35.3
                      ],
                      [
                        -97.42,
                        35.28
                      ],
                      [
                        -97.42,
                        35.24
                      ],
                      [
                        -97.39,
                        35.2
                      ],
                      [
                        -97.32,
                        35.2
                      ],
                      [
                        -97.29,
                        35.22
                      ],
                      [
                        -97.26,
                        35.22
                      ],
                      [
                        -97.24,
                        35.25
                      ],
                      [
                        -97.24,
                        35.32
                      ],
                      [
                        -97.28,
                        35.36
                      ],
                      [
                        -97.31,
                        35.37
                      ],
                      [
                        -97.32,
                        35.36
                      ]
                    ]
                  ]
                }
              ],
              "bounds": [
                -97.61,
                35.08,
                -97.09,
                35.4
              ]
            }
          },
          "anvilImageAvailable": true,
          "anvilSizeMm": null,
          "anvilSizeP90Mm": null,
          "meshStormMaxMm": 21.399999618530273,
          "anvilProductSizeMm": null,
          "anvilProductSizeUpperMm": null,
          "anvilProductSizeBasis": null,
          "anvilProductSizeUpperQuantile": null
        }
      ],
      "thresholds": {
        "anvil": 0.096083,
        "mesh": 25.4,
        "probsevere": 0.3
      },
      "model": "anvil-detect-6",
      "meshScope": "Nearest original MESH grid cell to the 23:45 report coordinate (35.28, \u221297.35); same-object storm maximum shown separately",
      "ground": {
        "label": "Three ground reports",
        "value": "1\u20131.25\u2033 hail",
        "detail": "23:36\u201323:45 UTC \u00b7 estimated sizes \u00b7 spotter, public and weather service employee",
        "sourceLabel": "NOAA SPC hail reports",
        "sourceUrl": "https://www.spc.noaa.gov/climo/reports/260816_rpts.html"
      },
      "outcomes": {
        "anvil": {
          "label": "Estimate within reported range",
          "detail": "1.23\u2033 at 23:38 UTC; 1\u20131.25\u2033 reported nearby during 23:36\u201323:45."
        },
        "mesh": {
          "label": "Storm maximum above reported range",
          "detail": "1.64\u2033 storm maximum at 23:38 UTC; reports ranged from 1\u20131.25\u2033."
        },
        "probsevere": {
          "label": "Stayed below comparison threshold",
          "detail": "Across the archived object\u2019s full life."
        }
      },
      "conclusion": "Three ground reports allow comparison with reported sizes for this storm. This single event is not a general accuracy result.",
      "method": [
        "This is an individual event illustration, not a population accuracy or false-alarm-rate measurement.",
        "Ground truth is a public NWS local storm report with estimated size, mirrored in IEM and SPC and counted once. Neither occurrence nor size is inferred from MESH.",
        "Native ProbSevere v3 boundaries, not nearest-centroid proxies, were tested against the report location. Its full object lineage was then retrieved without geographic restriction: 31 scans, 2026-08-16 23:18:41 through 2026-08-17 00:18:40 UTC; maximum ProbHail 21%.",
        "Anvil detection ENTER is 0.096083; the ProbHail comparison bar is 30%. These are different scales and operating points. Crossing a detector threshold does not establish that a phone notification was delivered.",
        "Anvil scores and physical textures were recorded live after model promotion. Images are those archived physical fields rendered by the current mobile contour shader; observations are not interpolated.",
        "MESH images use original NOAA grid cells, and displayed values are sampled at the report point. Object maxima and neighborhood maxima are different spatial quantities; a point underestimate is not proof the MESH system missed an entire storm.",
        "At 23:44:39, original MESH is 7.8 mm at the point, 13.9 mm in the 3\u00d73 neighborhood and 32.4 mm in the 11\u00d711 neighborhood. MESH did identify hail-sized values nearby and is credited accordingly.",
        "All three reports are estimated NWS local storm reports, counted once per event despite duplicate feeds. They match one tracked storm: each report lies inside its native footprint at the nearest scan (offsets +41, +39 and \u221221 seconds). At the selected 23:38:41 scan, all three locations also lie inside that storm and the same ProbSevere object. This selected scan is 2 minutes 41 seconds after the first report and 3 minutes 19 seconds before the second. Its Anvil median is 31.2 mm and same-object MESH maximum is 41.7 mm. These storm-level estimates and reported individual stone sizes are different quantities; this case does not establish population sizing accuracy. The point MESH readout remains anchored to the 23:45 report location, not to all three sites.",
        "Hail Sentinel selected this comparison threshold. The 30% ProbHail reference is used for this comparison; it is not an official ProbSevere alert threshold.",
        "Native contour colors use detection-gated MESH size classes, not the displayed trained-model size estimate. The separate size readout uses the storm-object hybrid product calculation.",
        "Archived Anvil sizing fields contain only the trained size model\u2019s storm-object median (p50) and p90. NULL means that model did not emit a value. These raw model fields stay separate from the displayed hybrid product estimate.",
        "Anvil product sizing is reconstructed from archived inputs using the current production hybrid-size function: the same detection object\u2019s maximum MESH, probability and any archived size quantiles. The gate is detection ENTER (0.096083), with a 40 mm MESH crossover. The default arm is a calibrated MESH band; the larger-hail arm uses the trained size model. This is a storm-object median, not a point prediction or largest stone. The upper estimate is p95 for calibrated bands and p90 for the trained model, not a guaranteed bound. It is not an archived delivered notification, and the MESH-derived arm is not independent evidence of a learned sizing advantage."
      ],
      "sources": [
        {
          "label": "NOAA storm reports",
          "url": "https://www.spc.noaa.gov/climo/reports/260816_rpts.html"
        },
        {
          "label": "ProbSevere product documentation",
          "url": "https://cimss.ssec.wisc.edu/severe_conv/probsev.html"
        },
        {
          "label": "MESH documentation",
          "url": "https://vlab.noaa.gov/web/wdtd/-/maximum-estimated-size-of-hail-mes-2"
        }
      ],
      "meshPointLabel": "At report #3 \u00b7 this scan"
    },
    {
      "id": "oklahoma-city",
      "date": "2026-09-12",
      "location": "Oklahoma City, Oklahoma",
      "title": "Confirmed hail. A low ProbHail signal.",
      "claim": "Anvil detected a ground-confirmed hail event.",
      "summary": "A trained spotter reported quarter-size hail. Anvil detected the event while ProbHail stayed below its comparison threshold.",
      "evidenceKind": "reported-hail",
      "bounds": [
        -97.79,
        35.29,
        -97.27,
        35.61
      ],
      "viewportBounds": [
        -97.79,
        35.29,
        -97.27,
        35.61
      ],
      "keyFrameTime": "2026-09-12T21:10:39Z",
      "reports": [
        {
          "lon": -97.52,
          "lat": 35.48,
          "time": "2026-09-12T21:10:00Z",
          "sizeIn": 1.0,
          "sizeMm": 25.4,
          "place": "1 NNW Oklahoma City",
          "source": "NWS local storm report \u00b7 trained spotter \u00b7 estimated size"
        }
      ],
      "labels": [
        {
          "name": "Oklahoma City",
          "lon": -97.52,
          "lat": 35.48
        }
      ],
      "frames": [
        {
          "time": "2026-09-12T20:56:39Z",
          "contours": [],
          "anvil": 0.11190283400809717,
          "mesh": 3.2,
          "probsevere": 0.19,
          "meshObjectMax": 31.200000762939453,
          "visuals": {
            "anvil": {
              "src": "/research/anvil-in-action/oklahoma-city-20260912_205639.webp",
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            },
            "mesh": {
              "src": "/research/anvil-in-action/oklahoma-city-mesh-20260912_205639.webp",
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            },
            "probsevere": {
              "contours": [
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -97.65,
                        35.5
                      ],
                      [
                        -97.65,
                        35.47
                      ],
                      [
                        -97.63,
                        35.45
                      ],
                      [
                        -97.62,
                        35.42
                      ],
                      [
                        -97.6,
                        35.4
                      ],
                      [
                        -97.6,
                        35.39
                      ],
                      [
                        -97.58,
                        35.38
                      ],
                      [
                        -97.53,
                        35.38
                      ],
                      [
                        -97.5,
                        35.42
                      ],
                      [
                        -97.5,
                        35.47
                      ],
                      [
                        -97.51,
                        35.48
                      ],
                      [
                        -97.51,
                        35.5
                      ],
                      [
                        -97.55,
                        35.54
                      ],
                      [
                        -97.61,
                        35.54
                      ],
                      [
                        -97.62,
                        35.53
                      ],
                      [
                        -97.63,
                        35.54
                      ],
                      [
                        -97.65,
                        35.5
                      ]
                    ]
                  ]
                }
              ],
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            }
          },
          "anvilImageAvailable": true,
          "anvilSizeMm": null,
          "anvilSizeP90Mm": null,
          "meshStormMaxMm": 31.200000762939453,
          "anvilProductSizeMm": 25.4,
          "anvilProductSizeUpperMm": 50.8,
          "anvilProductSizeBasis": "calibrated-mesh-band",
          "anvilProductSizeUpperQuantile": 0.95
        },
        {
          "time": "2026-09-12T21:00:41Z",
          "contours": [],
          "anvil": 0.11190283400809717,
          "mesh": 8.3,
          "probsevere": 0.21,
          "meshObjectMax": 19.799999237060547,
          "visuals": {
            "anvil": {
              "src": "/research/anvil-in-action/oklahoma-city-20260912_210041.webp",
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            },
            "mesh": {
              "src": "/research/anvil-in-action/oklahoma-city-mesh-20260912_210041.webp",
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            },
            "probsevere": {
              "contours": [
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -97.58,
                        35.53
                      ],
                      [
                        -97.62,
                        35.53
                      ],
                      [
                        -97.64,
                        35.52
                      ],
                      [
                        -97.64,
                        35.45
                      ],
                      [
                        -97.63,
                        35.45
                      ],
                      [
                        -97.56,
                        35.38
                      ],
                      [
                        -97.55,
                        35.38
                      ],
                      [
                        -97.54,
                        35.39
                      ],
                      [
                        -97.52,
                        35.39
                      ],
                      [
                        -97.49,
                        35.43
                      ],
                      [
                        -97.49,
                        35.52
                      ],
                      [
                        -97.51,
                        35.54
                      ],
                      [
                        -97.57,
                        35.54
                      ],
                      [
                        -97.58,
                        35.53
                      ]
                    ]
                  ]
                }
              ],
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            }
          },
          "anvilImageAvailable": true,
          "anvilSizeMm": null,
          "anvilSizeP90Mm": null,
          "meshStormMaxMm": 19.799999237060547,
          "anvilProductSizeMm": 19.0,
          "anvilProductSizeUpperMm": 38.1,
          "anvilProductSizeBasis": "calibrated-mesh-band",
          "anvilProductSizeUpperQuantile": 0.95
        },
        {
          "time": "2026-09-12T21:02:40Z",
          "contours": [],
          "anvil": 0.11898859692612793,
          "mesh": 9.7,
          "probsevere": 0.13,
          "meshObjectMax": 16.100000381469727,
          "visuals": {
            "anvil": {
              "src": "/research/anvil-in-action/oklahoma-city-20260912_210240.webp",
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            },
            "mesh": {
              "src": "/research/anvil-in-action/oklahoma-city-mesh-20260912_210240.webp",
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            },
            "probsevere": {
              "contours": [
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -97.65,
                        35.52
                      ],
                      [
                        -97.65,
                        35.48
                      ],
                      [
                        -97.63,
                        35.44
                      ],
                      [
                        -97.6,
                        35.43
                      ],
                      [
                        -97.57,
                        35.4
                      ],
                      [
                        -97.52,
                        35.4
                      ],
                      [
                        -97.49,
                        35.43
                      ],
                      [
                        -97.48,
                        35.47
                      ],
                      [
                        -97.51,
                        35.53
                      ],
                      [
                        -97.53,
                        35.53
                      ],
                      [
                        -97.54,
                        35.54
                      ],
                      [
                        -97.63,
                        35.54
                      ],
                      [
                        -97.65,
                        35.52
                      ]
                    ]
                  ]
                }
              ],
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            }
          },
          "anvilImageAvailable": true,
          "anvilSizeMm": null,
          "anvilSizeP90Mm": null,
          "meshStormMaxMm": 16.100000381469727,
          "anvilProductSizeMm": 19.0,
          "anvilProductSizeUpperMm": 38.1,
          "anvilProductSizeBasis": "calibrated-mesh-band",
          "anvilProductSizeUpperQuantile": 0.95
        },
        {
          "time": "2026-09-12T21:04:40Z",
          "contours": [],
          "anvil": 0.13404625714996268,
          "mesh": 9.0,
          "probsevere": 0.11,
          "meshObjectMax": 17.0,
          "visuals": {
            "anvil": {
              "src": "/research/anvil-in-action/oklahoma-city-20260912_210440.webp",
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            },
            "mesh": {
              "src": "/research/anvil-in-action/oklahoma-city-mesh-20260912_210440.webp",
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            },
            "probsevere": {
              "contours": [
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -97.64,
                        35.51
                      ],
                      [
                        -97.63,
                        35.5
                      ],
                      [
                        -97.63,
                        35.48
                      ],
                      [
                        -97.61,
                        35.44
                      ],
                      [
                        -97.6,
                        35.44
                      ],
                      [
                        -97.56,
                        35.4
                      ],
                      [
                        -97.5,
                        35.4
                      ],
                      [
                        -97.48,
                        35.42
                      ],
                      [
                        -97.48,
                        35.43
                      ],
                      [
                        -97.46,
                        35.45
                      ],
                      [
                        -97.46,
                        35.51
                      ],
                      [
                        -97.47,
                        35.52
                      ],
                      [
                        -97.49,
                        35.53
                      ],
                      [
                        -97.52,
                        35.53
                      ],
                      [
                        -97.55,
                        35.55
                      ],
                      [
                        -97.63,
                        35.55
                      ],
                      [
                        -97.64,
                        35.51
                      ]
                    ]
                  ]
                }
              ],
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            }
          },
          "anvilImageAvailable": true,
          "anvilSizeMm": null,
          "anvilSizeP90Mm": null,
          "meshStormMaxMm": 17.0,
          "anvilProductSizeMm": 19.0,
          "anvilProductSizeUpperMm": 38.1,
          "anvilProductSizeBasis": "calibrated-mesh-band",
          "anvilProductSizeUpperQuantile": 0.95
        },
        {
          "time": "2026-09-12T21:06:39Z",
          "contours": [],
          "anvil": 0.1261140819964349,
          "mesh": 10.6,
          "probsevere": 0.17,
          "meshObjectMax": 16.399999618530273,
          "visuals": {
            "anvil": {
              "src": "/research/anvil-in-action/oklahoma-city-20260912_210639.webp",
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            },
            "mesh": {
              "src": "/research/anvil-in-action/oklahoma-city-mesh-20260912_210639.webp",
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            },
            "probsevere": {
              "contours": [
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -97.64,
                        35.5
                      ],
                      [
                        -97.63,
                        35.49
                      ],
                      [
                        -97.63,
                        35.46
                      ],
                      [
                        -97.57,
                        35.4
                      ],
                      [
                        -97.55,
                        35.39
                      ],
                      [
                        -97.52,
                        35.39
                      ],
                      [
                        -97.5,
                        35.4
                      ],
                      [
                        -97.46,
                        35.44
                      ],
                      [
                        -97.45,
                        35.46
                      ],
                      [
                        -97.45,
                        35.5
                      ],
                      [
                        -97.47,
                        35.52
                      ],
                      [
                        -97.49,
                        35.53
                      ],
                      [
                        -97.52,
                        35.53
                      ],
                      [
                        -97.53,
                        35.54
                      ],
                      [
                        -97.56,
                        35.54
                      ],
                      [
                        -97.57,
                        35.55
                      ],
                      [
                        -97.63,
                        35.55
                      ],
                      [
                        -97.64,
                        35.5
                      ]
                    ]
                  ]
                }
              ],
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            }
          },
          "anvilImageAvailable": true,
          "anvilSizeMm": null,
          "anvilSizeP90Mm": null,
          "meshStormMaxMm": 16.399999618530273,
          "anvilProductSizeMm": 19.0,
          "anvilProductSizeUpperMm": 38.1,
          "anvilProductSizeBasis": "calibrated-mesh-band",
          "anvilProductSizeUpperQuantile": 0.95
        },
        {
          "time": "2026-09-12T21:10:39Z",
          "contours": [],
          "anvil": 0.11527093596059114,
          "mesh": 18.3,
          "probsevere": 0.15,
          "meshObjectMax": 18.299999237060547,
          "visuals": {
            "anvil": {
              "src": "/research/anvil-in-action/oklahoma-city-20260912_211039.webp",
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            },
            "mesh": {
              "src": "/research/anvil-in-action/oklahoma-city-mesh-20260912_211039.webp",
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            },
            "probsevere": {
              "contours": [
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -97.57,
                        35.52
                      ],
                      [
                        -97.61,
                        35.52
                      ],
                      [
                        -97.63,
                        35.51
                      ],
                      [
                        -97.63,
                        35.45
                      ],
                      [
                        -97.61,
                        35.42
                      ],
                      [
                        -97.6,
                        35.42
                      ],
                      [
                        -97.58,
                        35.4
                      ],
                      [
                        -97.56,
                        35.39
                      ],
                      [
                        -97.5,
                        35.39
                      ],
                      [
                        -97.48,
                        35.4
                      ],
                      [
                        -97.43,
                        35.45
                      ],
                      [
                        -97.43,
                        35.49
                      ],
                      [
                        -97.45,
                        35.51
                      ],
                      [
                        -97.47,
                        35.51
                      ],
                      [
                        -97.48,
                        35.52
                      ],
                      [
                        -97.54,
                        35.52
                      ],
                      [
                        -97.56,
                        35.53
                      ],
                      [
                        -97.57,
                        35.52
                      ]
                    ]
                  ]
                }
              ],
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            }
          },
          "anvilImageAvailable": true,
          "anvilSizeMm": null,
          "anvilSizeP90Mm": null,
          "meshStormMaxMm": 18.299999237060547,
          "anvilProductSizeMm": 19.0,
          "anvilProductSizeUpperMm": 38.1,
          "anvilProductSizeBasis": "calibrated-mesh-band",
          "anvilProductSizeUpperQuantile": 0.95
        },
        {
          "time": "2026-09-12T21:12:41Z",
          "contours": [],
          "anvil": 0.09608323133414932,
          "mesh": 10.5,
          "probsevere": 0.08,
          "meshObjectMax": 11.800000190734863,
          "visuals": {
            "anvil": {
              "src": "/research/anvil-in-action/oklahoma-city-20260912_211241.webp",
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            },
            "mesh": {
              "src": "/research/anvil-in-action/oklahoma-city-mesh-20260912_211241.webp",
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            },
            "probsevere": {
              "contours": [
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -97.58,
                        35.51
                      ],
                      [
                        -97.61,
                        35.51
                      ],
                      [
                        -97.63,
                        35.49
                      ],
                      [
                        -97.63,
                        35.45
                      ],
                      [
                        -97.59,
                        35.41
                      ],
                      [
                        -97.57,
                        35.41
                      ],
                      [
                        -97.56,
                        35.4
                      ],
                      [
                        -97.52,
                        35.4
                      ],
                      [
                        -97.45,
                        35.44
                      ],
                      [
                        -97.44,
                        35.46
                      ],
                      [
                        -97.44,
                        35.49
                      ],
                      [
                        -97.46,
                        35.51
                      ],
                      [
                        -97.5,
                        35.51
                      ],
                      [
                        -97.51,
                        35.52
                      ],
                      [
                        -97.57,
                        35.52
                      ],
                      [
                        -97.58,
                        35.51
                      ]
                    ]
                  ]
                }
              ],
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            }
          },
          "anvilImageAvailable": true,
          "anvilSizeMm": null,
          "anvilSizeP90Mm": null,
          "meshStormMaxMm": 11.800000190734863,
          "anvilProductSizeMm": 17.8,
          "anvilProductSizeUpperMm": 31.8,
          "anvilProductSizeBasis": "calibrated-mesh-band",
          "anvilProductSizeUpperQuantile": 0.95
        },
        {
          "time": "2026-09-12T21:14:39Z",
          "contours": [],
          "anvil": 0.14426229508196722,
          "mesh": 8.0,
          "probsevere": 0.08,
          "meshObjectMax": 8.100000381469727,
          "visuals": {
            "anvil": {
              "src": "/research/anvil-in-action/oklahoma-city-20260912_211439.webp",
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            },
            "mesh": {
              "src": "/research/anvil-in-action/oklahoma-city-mesh-20260912_211439.webp",
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            },
            "probsevere": {
              "contours": [
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -97.58,
                        35.51
                      ],
                      [
                        -97.61,
                        35.51
                      ],
                      [
                        -97.63,
                        35.49
                      ],
                      [
                        -97.63,
                        35.45
                      ],
                      [
                        -97.59,
                        35.41
                      ],
                      [
                        -97.57,
                        35.4
                      ],
                      [
                        -97.52,
                        35.4
                      ],
                      [
                        -97.51,
                        35.41
                      ],
                      [
                        -97.49,
                        35.41
                      ],
                      [
                        -97.43,
                        35.46
                      ],
                      [
                        -97.43,
                        35.49
                      ],
                      [
                        -97.46,
                        35.52
                      ],
                      [
                        -97.5,
                        35.52
                      ],
                      [
                        -97.52,
                        35.51
                      ],
                      [
                        -97.53,
                        35.52
                      ],
                      [
                        -97.57,
                        35.52
                      ],
                      [
                        -97.58,
                        35.51
                      ]
                    ]
                  ]
                }
              ],
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            }
          },
          "anvilImageAvailable": true,
          "anvilSizeMm": null,
          "anvilSizeP90Mm": null,
          "meshStormMaxMm": 8.100000381469727,
          "anvilProductSizeMm": 12.7,
          "anvilProductSizeUpperMm": 31.8,
          "anvilProductSizeBasis": "calibrated-mesh-band",
          "anvilProductSizeUpperQuantile": 0.95
        },
        {
          "time": "2026-09-12T21:16:40Z",
          "contours": [],
          "anvil": 0.0843297671491504,
          "mesh": 4.3,
          "probsevere": 0.06,
          "meshObjectMax": 5.699999809265137,
          "visuals": {
            "anvil": {
              "src": "/research/anvil-in-action/oklahoma-city-20260912_211640.webp",
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            },
            "mesh": {
              "src": "/research/anvil-in-action/oklahoma-city-mesh-20260912_211640.webp",
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            },
            "probsevere": {
              "contours": [
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -97.61,
                        35.51
                      ],
                      [
                        -97.63,
                        35.48
                      ],
                      [
                        -97.63,
                        35.46
                      ],
                      [
                        -97.6,
                        35.41
                      ],
                      [
                        -97.58,
                        35.4
                      ],
                      [
                        -97.52,
                        35.4
                      ],
                      [
                        -97.45,
                        35.44
                      ],
                      [
                        -97.44,
                        35.46
                      ],
                      [
                        -97.44,
                        35.5
                      ],
                      [
                        -97.45,
                        35.51
                      ],
                      [
                        -97.47,
                        35.52
                      ],
                      [
                        -97.55,
                        35.52
                      ],
                      [
                        -97.57,
                        35.53
                      ],
                      [
                        -97.61,
                        35.51
                      ]
                    ]
                  ]
                }
              ],
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            }
          },
          "anvilImageAvailable": true,
          "anvilSizeMm": null,
          "anvilSizeP90Mm": null,
          "meshStormMaxMm": 5.699999809265137,
          "anvilProductSizeMm": null,
          "anvilProductSizeUpperMm": null,
          "anvilProductSizeBasis": null,
          "anvilProductSizeUpperQuantile": null
        },
        {
          "time": "2026-09-12T21:20:42Z",
          "contours": [],
          "anvil": 0.11190283400809717,
          "mesh": 1.3,
          "probsevere": 0.04,
          "meshObjectMax": 6.699999809265137,
          "visuals": {
            "anvil": {
              "src": "/research/anvil-in-action/oklahoma-city-20260912_212042.webp",
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            },
            "mesh": {
              "src": "/research/anvil-in-action/oklahoma-city-mesh-20260912_212042.webp",
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            },
            "probsevere": {
              "contours": [
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -97.63,
                        35.49
                      ],
                      [
                        -97.64,
                        35.47
                      ],
                      [
                        -97.64,
                        35.44
                      ],
                      [
                        -97.59,
                        35.4
                      ],
                      [
                        -97.54,
                        35.4
                      ],
                      [
                        -97.48,
                        35.43
                      ],
                      [
                        -97.43,
                        35.44
                      ],
                      [
                        -97.42,
                        35.45
                      ],
                      [
                        -97.42,
                        35.49
                      ],
                      [
                        -97.46,
                        35.52
                      ],
                      [
                        -97.49,
                        35.52
                      ],
                      [
                        -97.5,
                        35.53
                      ],
                      [
                        -97.58,
                        35.53
                      ],
                      [
                        -97.63,
                        35.49
                      ]
                    ]
                  ]
                }
              ],
              "bounds": [
                -97.79,
                35.29,
                -97.27,
                35.61
              ]
            }
          },
          "anvilImageAvailable": true,
          "anvilSizeMm": null,
          "anvilSizeP90Mm": null,
          "meshStormMaxMm": 6.699999809265137,
          "anvilProductSizeMm": 12.7,
          "anvilProductSizeUpperMm": 31.8,
          "anvilProductSizeBasis": "calibrated-mesh-band",
          "anvilProductSizeUpperQuantile": 0.95
        }
      ],
      "thresholds": {
        "anvil": 0.096083,
        "mesh": 25.4,
        "probsevere": 0.3
      },
      "model": "anvil-detect-6",
      "meshScope": "Nearest original MESH grid cell to report coordinate",
      "ground": {
        "label": "Trained spotter report",
        "value": "1\u2033 hail",
        "detail": "21:10 UTC \u00b7 estimated size \u00b7 1 NNW Oklahoma City",
        "sourceLabel": "NOAA SPC hail reports",
        "sourceUrl": "https://www.spc.noaa.gov/climo/reports/260912_rpts.html"
      },
      "outcomes": {
        "anvil": {
          "label": "Detected the hail event",
          "detail": "Above its detection threshold at the report-time scan."
        },
        "mesh": {
          "label": "Smaller than reported",
          "detail": "0.72\u2033 at the report point; 1\u2033 reported."
        },
        "probsevere": {
          "label": "Stayed below comparison threshold",
          "detail": "Across the archived object\u2019s full life."
        }
      },
      "conclusion": "Ground hail was reported while Anvil detected the event and ProbHail remained below its comparison threshold.",
      "method": [
        "This is an individual event illustration, not a population accuracy or false-alarm-rate measurement.",
        "Ground truth is a public NWS local storm report with estimated size, mirrored in IEM and SPC and counted once. Neither occurrence nor size is inferred from MESH.",
        "Native ProbSevere v3 boundaries, not nearest-centroid proxies, were tested against the report location. Its full object lineage was then retrieved without geographic restriction: 43 scans, 2026-09-12 20:10:42 through 2026-09-12 21:34:40 UTC; maximum ProbHail 21%.",
        "Anvil detection ENTER is 0.096083; the ProbHail comparison bar is 30%. These are different scales and operating points. Crossing a detector threshold does not establish that a phone notification was delivered.",
        "Anvil scores and physical textures were recorded live after model promotion. Images are those archived physical fields rendered by the current mobile contour shader; observations are not interpolated.",
        "MESH images use original NOAA grid cells, and displayed values are sampled at the report point. Object maxima and neighborhood maxima are different spatial quantities; a point underestimate is not proof the MESH system missed an entire storm.",
        "At the 21:10:39 report-time scan, original MESH is 18.3 mm at the point and throughout the sampled 11\u00d711 neighborhood. Other overlapping storm objects have larger maxima at other times; this is not a blanket MESH miss.",
        "Hail Sentinel selected this comparison threshold. The 30% ProbHail reference is used for this comparison; it is not an official ProbSevere alert threshold.",
        "Native contour colors use detection-gated MESH size classes, not the displayed trained-model size estimate. The separate size readout uses the storm-object hybrid product calculation.",
        "Archived Anvil sizing fields contain only the trained size model\u2019s storm-object median (p50) and p90. NULL means that model did not emit a value. These raw model fields stay separate from the displayed hybrid product estimate.",
        "Anvil product sizing is reconstructed from archived inputs using the current production hybrid-size function: the same detection object\u2019s maximum MESH, probability and any archived size quantiles. The gate is detection ENTER (0.096083), with a 40 mm MESH crossover. The default arm is a calibrated MESH band; the larger-hail arm uses the trained size model. This is a storm-object median, not a point prediction or largest stone. The upper estimate is p95 for calibrated bands and p90 for the trained model, not a guaranteed bound. It is not an archived delivered notification, and the MESH-derived arm is not independent evidence of a learned sizing advantage."
      ],
      "sources": [
        {
          "label": "NOAA storm reports",
          "url": "https://www.spc.noaa.gov/climo/reports/260912_rpts.html"
        },
        {
          "label": "ProbSevere product documentation",
          "url": "https://cimss.ssec.wisc.edu/severe_conv/probsev.html"
        },
        {
          "label": "MESH documentation",
          "url": "https://vlab.noaa.gov/web/wdtd/-/maximum-estimated-size-of-hail-mes-2"
        }
      ],
      "meshPointLabel": "At report location"
    },
    {
      "id": "capon-springs",
      "title": "Small radar estimate. Larger hail on the ground.",
      "location": "Capon Springs, West Virginia",
      "date": "2026-08-22",
      "claim": "Anvil detected the reported hail.",
      "summary": "A trained spotter reported 1.75-inch hail. The radar estimate at that point was 12.8 mm.",
      "evidenceKind": "reported-hail",
      "bounds": [
        -78.85,
        38.95,
        -78.25,
        39.3
      ],
      "viewportBounds": [
        -78.85,
        38.95,
        -78.25,
        39.3
      ],
      "reports": [
        {
          "lon": -78.56,
          "lat": 39.14,
          "time": "2026-08-22T22:32:00Z",
          "sizeIn": 1.75,
          "sizeMm": 44.4,
          "place": "4 W Capon Springs",
          "source": "NWS local storm report \u00b7 trained spotter \u00b7 estimated size"
        }
      ],
      "labels": [
        {
          "name": "Capon Springs",
          "lon": -78.489,
          "lat": 39.136
        }
      ],
      "frames": [
        {
          "time": "2026-08-22T22:26:41Z",
          "contours": [],
          "anvil": 0.16721064524227972,
          "mesh": 24.8,
          "probsevere": 0.31,
          "meshObjectMax": 24.799999237060547,
          "visuals": {
            "anvil": {
              "src": "/research/anvil-in-action/capon-springs-20260822_222641.webp",
              "bounds": [
                -78.85,
                38.95,
                -78.25,
                39.3
              ]
            },
            "mesh": {
              "src": "/research/anvil-in-action/capon-springs-mesh-20260822_222641.webp",
              "bounds": [
                -78.85,
                38.95,
                -78.25,
                39.3
              ]
            },
            "probsevere": {
              "contours": [
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -78.67,
                        39.18
                      ],
                      [
                        -78.67,
                        39.12
                      ],
                      [
                        -78.65,
                        39.1
                      ],
                      [
                        -78.52,
                        39.1
                      ],
                      [
                        -78.49,
                        39.12
                      ],
                      [
                        -78.49,
                        39.14
                      ],
                      [
                        -78.48,
                        39.15
                      ],
                      [
                        -78.48,
                        39.19
                      ],
                      [
                        -78.51,
                        39.22
                      ],
                      [
                        -78.62,
                        39.22
                      ],
                      [
                        -78.67,
                        39.18
                      ]
                    ]
                  ]
                }
              ],
              "bounds": [
                -78.85,
                38.95,
                -78.25,
                39.3
              ]
            }
          },
          "anvilImageAvailable": true,
          "anvilSizeMm": null,
          "anvilSizeP90Mm": null,
          "anvilProductSizeMm": 25.4,
          "anvilProductSizeUpperMm": 44.4,
          "anvilProductSizeBasis": "calibrated-mesh-band",
          "anvilProductSizeUpperQuantile": 0.95,
          "meshStormMaxMm": 24.799999237060547
        },
        {
          "time": "2026-08-22T22:32:42Z",
          "contours": [],
          "anvil": 0.1261140819964349,
          "mesh": 12.8,
          "probsevere": 0.24,
          "meshObjectMax": 24.700000762939453,
          "visuals": {
            "anvil": null,
            "mesh": {
              "src": "/research/anvil-in-action/capon-springs-mesh-20260822_223242.webp",
              "bounds": [
                -78.85,
                38.95,
                -78.25,
                39.3
              ]
            },
            "probsevere": {
              "contours": [
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -78.59,
                        39.21
                      ],
                      [
                        -78.62,
                        39.21
                      ],
                      [
                        -78.64,
                        39.2
                      ],
                      [
                        -78.66,
                        39.18
                      ],
                      [
                        -78.66,
                        39.11
                      ],
                      [
                        -78.62,
                        39.09
                      ],
                      [
                        -78.61,
                        39.1
                      ],
                      [
                        -78.53,
                        39.1
                      ],
                      [
                        -78.52,
                        39.09
                      ],
                      [
                        -78.48,
                        39.09
                      ],
                      [
                        -78.46,
                        39.1
                      ],
                      [
                        -78.45,
                        39.12
                      ],
                      [
                        -78.45,
                        39.18
                      ],
                      [
                        -78.47,
                        39.2
                      ],
                      [
                        -78.49,
                        39.21
                      ],
                      [
                        -78.55,
                        39.21
                      ],
                      [
                        -78.56,
                        39.22
                      ],
                      [
                        -78.58,
                        39.22
                      ],
                      [
                        -78.59,
                        39.21
                      ]
                    ]
                  ]
                },
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -78.87,
                        39.27
                      ],
                      [
                        -78.89,
                        39.27
                      ],
                      [
                        -78.89,
                        39.24
                      ],
                      [
                        -78.88,
                        39.22
                      ],
                      [
                        -78.84,
                        39.22
                      ],
                      [
                        -78.83,
                        39.21
                      ],
                      [
                        -78.81,
                        39.21
                      ],
                      [
                        -78.8,
                        39.23
                      ],
                      [
                        -78.82,
                        39.27
                      ],
                      [
                        -78.86,
                        39.28
                      ],
                      [
                        -78.87,
                        39.27
                      ]
                    ]
                  ]
                }
              ],
              "bounds": [
                -78.85,
                38.95,
                -78.25,
                39.3
              ]
            }
          },
          "anvilImageAvailable": false,
          "anvilSizeMm": null,
          "anvilSizeP90Mm": null,
          "anvilProductSizeMm": 25.4,
          "anvilProductSizeUpperMm": 44.4,
          "anvilProductSizeBasis": "calibrated-mesh-band",
          "anvilProductSizeUpperQuantile": 0.95,
          "meshStormMaxMm": 24.700000762939453
        },
        {
          "time": "2026-08-22T22:36:40Z",
          "contours": [],
          "anvil": 0.1261140819964349,
          "mesh": 9.3,
          "probsevere": 0.29,
          "meshObjectMax": 27.299999237060547,
          "visuals": {
            "anvil": {
              "src": "/research/anvil-in-action/capon-springs-20260822_223640.webp",
              "bounds": [
                -78.85,
                38.95,
                -78.25,
                39.3
              ]
            },
            "mesh": {
              "src": "/research/anvil-in-action/capon-springs-mesh-20260822_223640.webp",
              "bounds": [
                -78.85,
                38.95,
                -78.25,
                39.3
              ]
            },
            "probsevere": {
              "contours": [
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -78.62,
                        39.19
                      ],
                      [
                        -78.62,
                        39.13
                      ],
                      [
                        -78.58,
                        39.08
                      ],
                      [
                        -78.56,
                        39.07
                      ],
                      [
                        -78.53,
                        39.07
                      ],
                      [
                        -78.52,
                        39.06
                      ],
                      [
                        -78.48,
                        39.06
                      ],
                      [
                        -78.46,
                        39.1
                      ],
                      [
                        -78.44,
                        39.11
                      ],
                      [
                        -78.43,
                        39.1
                      ],
                      [
                        -78.42,
                        39.11
                      ],
                      [
                        -78.42,
                        39.16
                      ],
                      [
                        -78.45,
                        39.2
                      ],
                      [
                        -78.48,
                        39.2
                      ],
                      [
                        -78.49,
                        39.21
                      ],
                      [
                        -78.58,
                        39.21
                      ],
                      [
                        -78.62,
                        39.19
                      ]
                    ]
                  ]
                },
                {
                  "type": "Polygon",
                  "coordinates": [
                    [
                      [
                        -78.84,
                        39.29
                      ],
                      [
                        -78.9,
                        39.29
                      ],
                      [
                        -78.93,
                        39.26
                      ],
                      [
                        -78.93,
                        39.23
                      ],
                      [
                        -78.9,
                        39.2
                      ],
                      [
                        -78.86,
                        39.2
                      ],
                      [
                        -78.85,
                        39.21
                      ],
                      [
                        -78.83,
                        39.21
                      ],
                      [
                        -78.79,
                        39.23
                      ],
                      [
                        -78.79,
                        39.24
                      ],
                      [
                        -78.81,
                        39.26
                      ],
                      [
                        -78.81,
                        39.29
                      ],
                      [
                        -78.83,
                        39.3
                      ],
                      [
                        -78.84,
                        39.29
                      ]
                    ]
                  ]
                }
              ],
              "bounds": [
                -78.85,
                38.95,
                -78.25,
                39.3
              ]
            }
          },
          "anvilImageAvailable": true,
          "anvilSizeMm": null,
          "anvilSizeP90Mm": null,
          "anvilProductSizeMm": 25.4,
          "anvilProductSizeUpperMm": 44.4,
          "anvilProductSizeBasis": "calibrated-mesh-band",
          "anvilProductSizeUpperQuantile": 0.95,
          "meshStormMaxMm": 27.299999237060547
        }
      ],
      "thresholds": {
        "anvil": 0.096083,
        "mesh": 25.4,
        "probsevere": 0.3
      },
      "model": "anvil-detect-6",
      "meshScope": "Nearest original MESH grid cell to report coordinate",
      "ground": {
        "label": "Trained spotter report",
        "value": "1.75\u2033 hail",
        "detail": "22:32 UTC \u00b7 estimated size \u00b7 4 W Capon Springs",
        "sourceLabel": "NOAA SPC hail reports",
        "sourceUrl": "https://www.spc.noaa.gov/climo/reports/260822_rpts.html"
      },
      "outcomes": {
        "anvil": {
          "label": "Hail signal detected",
          "detail": "Above detection threshold at the report-time scan."
        },
        "mesh": {
          "label": "Smaller than reported",
          "detail": "0.50\u2033 at the report point; 1.75\u2033 reported."
        },
        "probsevere": {
          "label": "Flagged this storm too",
          "detail": "Above the comparison threshold earlier in the storm."
        }
      },
      "conclusion": "Anvil identified the event while the radar size estimate was below the ground report.",
      "method": [
        "The ground size is a trained spotter\u2019s estimate, mirrored in IEM and SPC and counted once.",
        "At 22:32:42 UTC, the native tracked footprint covers the report point. Its centroid is 1.09 km away; its stored live Anvil score is 0.126114 versus detection ENTER 0.096083. This does not establish that an alert was delivered.",
        "MESH values are sampled from the original NOAA grid at the report coordinate. At 22:32:42 the nearest pixel is 12.8 mm, 3\u00d73 maximum 16.9 mm and 11\u00d711 maximum 24.7 mm. MESH is an estimate; the spotter report supplies event truth.",
        "ProbSevere v3\u2019s own polygon covers the report. It had crossed the 30% comparison threshold before the report: 40% at 22:20, 31% at 22:26, 24% at 22:32. This is not a ProbSevere miss.",
        "Anvil imagery uses archived physical textures rendered by the current mobile contour shader. Available observed images are 22:26:41 and 22:36:40 only. The missing 22:32:42 Anvil image must be shown as unavailable; never hold or interpolate another image while displaying that timestamp.",
        "All three products have different purposes and scales. This selected illustration is not a population accuracy or notification-performance measurement.",
        "Hail Sentinel selected this comparison threshold. The 30% ProbHail reference is used for this comparison; it is not an official ProbSevere alert threshold.",
        "Native contour colors use detection-gated MESH size classes, not the displayed trained-model size estimate. The separate size readout uses the storm-object hybrid product calculation.",
        "Archived Anvil sizing fields contain only the trained size model\u2019s storm-object median (p50) and p90. NULL means that model did not emit a value. These raw model fields stay separate from the displayed hybrid product estimate.",
        "Anvil product sizing is reconstructed from archived inputs using the current production hybrid-size function: the same detection object\u2019s maximum MESH, probability and any archived size quantiles. The gate is detection ENTER (0.096083), with a 40 mm MESH crossover. The default arm is a calibrated MESH band; the larger-hail arm uses the trained size model. This is a storm-object median, not a point prediction or largest stone. The upper estimate is p95 for calibrated bands and p90 for the trained model, not a guaranteed bound. It is not an archived delivered notification, and the MESH-derived arm is not independent evidence of a learned sizing advantage."
      ],
      "sources": [
        {
          "label": "NOAA storm reports",
          "url": "https://www.spc.noaa.gov/climo/reports/260822_rpts.html"
        },
        {
          "label": "Original report-time MESH scan",
          "url": "https://storage.googleapis.com/noaa-mrms/CONUS/MESH_00.50/20260822/MRMS_MESH_00.50_20260822-223242.grib2.gz"
        },
        {
          "label": "MESH documentation",
          "url": "https://vlab.noaa.gov/web/wdtd/-/maximum-estimated-size-of-hail-mes-2"
        },
        {
          "label": "ProbSevere product documentation",
          "url": "https://cimss.ssec.wisc.edu/severe_conv/probsev.html"
        }
      ],
      "keyFrameTime": "2026-08-22T22:36:40Z",
      "meshPointLabel": "At report location"
    }
  ]
}
