{
  "areaId": "san-antonio",
  "areaLabel": "San Antonio",
  "methodologyVersion": "hsi-v1",
  "referenceDate": "2026-09-21T09:00:00.000Z",
  "composite": {
    "score": 38,
    "band": "moderate",
    "bandLabel": "Moderate",
    "weightCoverage": 0.8,
    "signalsUsed": [
      "roof-storm",
      "foundation-soil",
      "water-irrigation",
      "trees-yard"
    ],
    "signalsUnavailable": [
      "hvac"
    ]
  },
  "signals": [
    {
      "id": "roof-storm",
      "label": "Roof & Storm",
      "computable": true,
      "weight": 0.3,
      "layerA": [
        {
          "datasetId": "noaa-storm-events",
          "location": "san-antonio",
          "sourceName": "NOAA Storm Events Database",
          "sourceUrl": "https://www.ncei.noaa.gov/pub/data/swdi/stormevents/csvfiles/",
          "status": "stale",
          "asOf": "2026-09-19T13:09:08.505Z",
          "dataThrough": "2026-06-20T04:30:00.000Z",
          "observationsUsed": 12,
          "measures": {
            "eventsInCounties": 12,
            "latestEventAt": "2026-06-20T01:00:00.000Z",
            "decayedPoints": 58.47,
            "county": "Bexar"
          }
        }
      ],
      "layerB": {
        "score": 48,
        "band": "moderate",
        "bandLabel": "Moderate",
        "rawPoints": 58.47448268576711,
        "terms": [
          {
            "code": "wind-strong",
            "label": "Wind gusts under 58 mph",
            "points": 28.08,
            "detail": "7 events, recency-weighted"
          },
          {
            "code": "wind-severe",
            "label": "Wind gusts 58–69 mph",
            "points": 24.81,
            "detail": "3 events, recency-weighted"
          },
          {
            "code": "magnitude-unknown",
            "label": "Event recorded without a measured magnitude",
            "points": 5.58,
            "detail": "2 events, recency-weighted"
          }
        ]
      },
      "layerC": {
        "driverCodes": [
          "wind-strong",
          "wind-severe",
          "magnitude-unknown"
        ],
        "headline": "Storm activity over the county scored 48 of 100 — somewhat above typical.",
        "detail": "Strong wind gusts were recorded in the county. Severe-thunderstorm wind gusts were recorded in the county. Some recorded events carry no measured magnitude; those are counted at the lowest severity rather than assumed severe."
      },
      "freshness": {
        "asOf": "2026-09-19T13:09:08.505Z",
        "dataThrough": "2026-06-20T04:30:00.000Z",
        "limitingDatasetId": "noaa-storm-events"
      }
    },
    {
      "id": "foundation-soil",
      "label": "Foundation & Soil",
      "computable": true,
      "limitation": "Derived from drought persistence alone. We hold no soil-composition or per-home data, so this describes the moisture conditions around houses in the county, not any one foundation.",
      "weight": 0.25,
      "layerA": [
        {
          "datasetId": "usdm-drought",
          "location": "san-antonio",
          "sourceName": "U.S. Drought Monitor",
          "sourceUrl": "https://droughtmonitor.unl.edu",
          "status": "live",
          "asOf": "2026-09-21T15:53:49.858Z",
          "dataThrough": "2026-09-15T00:00:00.000Z",
          "observationsUsed": 52,
          "measures": {
            "weeksObserved": 52,
            "weeksAtD2OrWorse": 39,
            "meanWeeklyPoints": 42.52,
            "currentLevel": "D1"
          }
        }
      ],
      "layerB": {
        "score": 43,
        "band": "moderate",
        "bandLabel": "Moderate",
        "rawPoints": 42.51846153846153,
        "terms": [
          {
            "code": "drought-persistence",
            "label": "Mean drought severity over 52 weeks",
            "points": 42.52,
            "detail": "Each week scored by its D-level, scaled by the share of the county at that level"
          }
        ]
      },
      "layerC": {
        "driverCodes": [
          "drought-persistence"
        ],
        "headline": "Soil-moisture conditions around houses in the county scored 43 of 100 — somewhat above typical.",
        "detail": "In 39 of the last 52 weeks, part of the county was in severe drought or worse. The score reflects how much of the county was affected each week, not just the worst category recorded. Derived from drought persistence alone. We hold no soil-composition or per-home data, so this describes the moisture conditions around houses in the county, not any one foundation."
      },
      "freshness": {
        "asOf": "2026-09-21T15:53:49.858Z",
        "dataThrough": "2026-09-15T00:00:00.000Z",
        "limitingDatasetId": "usdm-drought"
      }
    },
    {
      "id": "hvac",
      "label": "HVAC",
      "computable": false,
      "limitation": "No National Weather Service forecast feed for San Antonio. Heat load is most of this signal, and air quality alone would understate cooling demand badly enough to mislead, so no HVAC score is published for this area.",
      "weight": 0.2,
      "layerA": [
        {
          "datasetId": "airnow",
          "location": "san-antonio",
          "sourceName": "AirNow",
          "sourceUrl": "https://www.airnow.gov",
          "status": "live",
          "asOf": "2026-09-21T15:53:51.457Z",
          "dataThrough": "2026-09-21T09:00:00.000Z",
          "observationsUsed": 0,
          "measures": {}
        }
      ],
      "layerB": {
        "score": 0,
        "band": "normal",
        "bandLabel": "Normal",
        "rawPoints": 0,
        "terms": []
      },
      "layerC": {
        "driverCodes": [
          "input-unavailable"
        ],
        "headline": "HVAC: not published for this area",
        "detail": "No National Weather Service forecast feed for San Antonio. Heat load is most of this signal, and air quality alone would understate cooling demand badly enough to mislead, so no HVAC score is published for this area."
      },
      "freshness": {
        "asOf": "2026-09-21T15:53:51.457Z",
        "dataThrough": "2026-09-21T09:00:00.000Z",
        "limitingDatasetId": "airnow"
      }
    },
    {
      "id": "water-irrigation",
      "label": "Water & Irrigation",
      "computable": true,
      "limitation": "Reads the same U.S. Drought Monitor feed as Foundation & Soil, but the current week rather than the trailing year. The two are related readings, not independent evidence.",
      "weight": 0.15,
      "layerA": [
        {
          "datasetId": "usdm-drought",
          "location": "san-antonio",
          "sourceName": "U.S. Drought Monitor",
          "sourceUrl": "https://droughtmonitor.unl.edu",
          "status": "live",
          "asOf": "2026-09-21T15:53:49.858Z",
          "dataThrough": "2026-09-15T00:00:00.000Z",
          "observationsUsed": 1,
          "measures": {
            "weekEnding": "2026-09-15T00:00:00.000Z",
            "level": "D1",
            "countyAreaPct": 32
          }
        }
      ],
      "layerB": {
        "score": 13,
        "band": "normal",
        "bandLabel": "Normal",
        "rawPoints": 12.8,
        "terms": [
          {
            "code": "drought-current",
            "label": "Current U.S. Drought Monitor category (D1)",
            "points": 12.8,
            "detail": "32% of the county at this level"
          }
        ]
      },
      "layerC": {
        "driverCodes": [
          "drought-current"
        ],
        "headline": "Current drought conditions in the county scored 13 of 100 — close to typical.",
        "detail": "32% of the county is currently at D1; the rest is less dry. Reads the same U.S. Drought Monitor feed as Foundation & Soil, but the current week rather than the trailing year. The two are related readings, not independent evidence."
      },
      "freshness": {
        "asOf": "2026-09-21T15:53:49.858Z",
        "dataThrough": "2026-09-15T00:00:00.000Z",
        "limitingDatasetId": "usdm-drought"
      }
    },
    {
      "id": "trees-yard",
      "label": "Trees & Yard",
      "computable": true,
      "weight": 0.1,
      "layerA": [
        {
          "datasetId": "usdm-drought",
          "location": "san-antonio",
          "sourceName": "U.S. Drought Monitor",
          "sourceUrl": "https://droughtmonitor.unl.edu",
          "status": "live",
          "asOf": "2026-09-21T15:53:49.858Z",
          "dataThrough": "2026-09-15T00:00:00.000Z",
          "observationsUsed": 26,
          "measures": {
            "weeksObserved": 26,
            "meanWeeklyPoints": 23.66
          }
        },
        {
          "datasetId": "noaa-storm-events",
          "location": "san-antonio",
          "sourceName": "NOAA Storm Events Database",
          "sourceUrl": "https://www.ncei.noaa.gov/pub/data/swdi/stormevents/csvfiles/",
          "status": "stale",
          "asOf": "2026-09-19T13:09:08.505Z",
          "dataThrough": "2026-06-20T04:30:00.000Z",
          "observationsUsed": 12,
          "measures": {
            "windEvents": 12,
            "decayedPoints": 58.47
          }
        }
      ],
      "layerB": {
        "score": 33,
        "band": "moderate",
        "bandLabel": "Moderate",
        "rawPoints": 33.31009370795649,
        "terms": [
          {
            "code": "drought-persistence-trees",
            "label": "Mean drought severity over 26 weeks",
            "points": 14.2,
            "detail": "Weighted 60% of this signal"
          },
          {
            "code": "wind-load",
            "label": "Recent wind and tornado events",
            "points": 19.11,
            "detail": "12 events, recency-weighted, weighted 40% of this signal"
          }
        ]
      },
      "layerC": {
        "driverCodes": [
          "wind-load",
          "drought-persistence-trees"
        ],
        "headline": "Conditions for trees and plantings in the county scored 33 of 100 — somewhat above typical.",
        "detail": "Recent wind events add to the strain on drought-weakened limbs. Drought has persisted across the last six months."
      },
      "freshness": {
        "asOf": "2026-09-21T15:53:49.858Z",
        "dataThrough": "2026-06-20T04:30:00.000Z",
        "limitingDatasetId": "noaa-storm-events"
      }
    }
  ],
  "freshness": {
    "asOf": "2026-09-21T15:53:51.457Z",
    "dataThrough": "2026-06-20T04:30:00.000Z",
    "limitingDatasetId": "noaa-storm-events"
  },
  "compare": {
    "available": false,
    "reason": "Every input behind this score is recorded at county or metro level, so every ZIP in the metro currently resolves to the same reading. A ZIP-vs-metro comparison would be modelled, not measured, so we do not publish one yet."
  },
  "compositeExplanation": {
    "headline": "Conditions across San Antonio scored 38 of 100 (Moderate).",
    "detail": "Storm activity over the county contributes the most to the current reading. The Home Stress Index measures conditions in an area, not damage to a home. It is not a prediction, an inspection, or a probability of loss. It is averaged over 4 of the five signals — hvac could not be computed for this area — so it is not directly comparable with an area where all five are available."
  },
  "dashboard": {
    "delta": {
      "change": 0,
      "comparedTo": "2026-09-14T09:00:00.000Z",
      "movers": [
        {
          "id": "trees-yard",
          "change": -2
        },
        {
          "id": "roof-storm",
          "change": -1
        },
        {
          "id": "foundation-soil",
          "change": 1
        }
      ]
    },
    "signalOrder": [
      "roof-storm",
      "foundation-soil",
      "trees-yard",
      "water-irrigation",
      "hvac"
    ],
    "series": {
      "roof-storm": {
        "values": [
          0,
          0,
          0,
          0,
          0,
          0,
          1.1961281080225659,
          0,
          0.6193368944245524,
          3.1802094125032654,
          0,
          0,
          0.6980883214617013,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "label": "Recency-weighted storm activity, 26 weeks"
      },
      "foundation-soil": {
        "values": [
          0,
          0,
          0,
          0,
          0,
          45.1,
          45.1,
          75.44,
          75.44,
          75.44,
          75.44,
          75.44,
          77.08,
          77.08,
          77.08,
          77.08,
          82,
          82,
          82,
          82,
          82,
          82,
          82,
          82,
          82,
          82,
          82,
          82,
          82,
          82,
          33.62,
          27.060000000000002,
          27.060000000000002,
          4.92,
          4.92,
          0.8200000000000001,
          0.8200000000000001,
          4.340000000000001,
          2.48,
          22.799999999999997,
          14.399999999999999,
          14.399999999999999,
          14.399999999999999,
          12.8,
          12.8,
          12.8,
          12.8,
          12.8,
          12.8,
          12.8,
          12.8,
          12.8
        ],
        "label": "Weekly drought severity, 52 weeks"
      },
      "water-irrigation": {
        "values": [
          82,
          82,
          82,
          82,
          33.62,
          27.060000000000002,
          27.060000000000002,
          4.92,
          4.92,
          0.8200000000000001,
          0.8200000000000001,
          4.340000000000001,
          2.48,
          22.799999999999997,
          14.399999999999999,
          14.399999999999999,
          14.399999999999999,
          12.8,
          12.8,
          12.8,
          12.8,
          12.8,
          12.8,
          12.8,
          12.8,
          12.8
        ],
        "label": "Weekly drought severity behind today's reading, 26 weeks"
      },
      "trees-yard": {
        "values": [
          82,
          82,
          82,
          82,
          33.62,
          27.060000000000002,
          27.060000000000002,
          4.92,
          4.92,
          0.8200000000000001,
          0.8200000000000001,
          4.340000000000001,
          2.48,
          22.799999999999997,
          14.399999999999999,
          14.399999999999999,
          14.399999999999999,
          12.8,
          12.8,
          12.8,
          12.8,
          12.8,
          12.8,
          12.8,
          12.8,
          12.8
        ],
        "label": "Weekly drought severity, 26 weeks"
      }
    },
    "weightCoverage": 0.8,
    "compositeHeadline": "Conditions across San Antonio scored 38 of 100 (Moderate)."
  },
  "municipal": {
    "waterStage": null
  },
  "alerts": [],
  "parameters": {
    "weights": {
      "roof-storm": 0.3,
      "foundation-soil": 0.25,
      "hvac": 0.2,
      "water-irrigation": 0.15,
      "trees-yard": 0.1
    },
    "stormDecayHalfLifeDays": 180,
    "excludedInputs": [
      {
        "datasetId": "usda-soil",
        "reason": "One sample at the metro centroid, currently 'Urban land, 0 to 6 percent slopes', which says nothing about shrink-swell potential. A single point cannot characterise a county's soils, and using it would imply a per-property soil read we do not have."
      },
      {
        "datasetId": "census-acs",
        "reason": "Median home age is a genuine foundation-risk factor, but it is a metro median and we only hold it for Austin. Including it would shift one metro by a constant and leave the other without it, making the two composites non-comparable."
      },
      {
        "datasetId": "eia-electricity",
        "reason": "Statewide residential price. It cannot vary between Austin and San Antonio, so it would move every area's HVAC score by the same amount — adding cost anxiety to the number without adding any information about local conditions."
      },
      {
        "datasetId": "ercot",
        "reason": "Still a sample feed. Sample data never reaches an indexed page or a score."
      },
      {
        "datasetId": "tx-forest-service",
        "reason": "Still a sample feed. Fire danger would be a real Trees & Yard input once the fetcher is implemented."
      }
    ]
  }
}