Method
How Calchis determines a trigger
A Calchis trigger is a threshold you define on a public federal measurement: sustained wind, central pressure, magnitude, surge, river stage or fire containment, inside a geography you draw. Calchis reads the measurement as the agency publishes it, decides whether your threshold is met, and keeps a record of every reading that can be checked without trusting us. This page is the method. The record format is the Determination Standard.
What is measured, from where, and how often
Every trigger is re-evaluated every 5 min against the latest reading of its source. Each source refreshes on its own schedule, so a reading is only as current as its source’s last update; the interval below is how often Calchis asks.
| Measurement | Source | Fires | Source read |
|---|---|---|---|
| Earthquake magnitude as reported by USGS, with the magnitude type USGS assigned | USGS Earthquake Hazards Program | at or above | every 5 min |
| Maximum sustained wind speed, current analysis (kt) | NOAA National Hurricane Center | at or above | every 30 min |
| Minimum central pressure, current analysis (mb) | NOAA National Hurricane Center | at or below | every 30 min |
| Peak storm surge height above ground (ft) | NOAA NHC inundation product (SLOSH-derived) — with a Calchis-estimated fallback | at or above | every 30 min |
| Feet above flood stage (observed stage minus flood stage) | NWS flood warning alert text (NOAA/NWS API) | at or above | every 10 min |
| Percent NOT contained (100 minus PercentContained) | NIFC WFIGS Interagency Perimeters (ArcGIS FeatureServer) | at or above | every 12 h |
Industry-loss thresholds are not offered. Calchis carries no industry loss index (PCS or PERILS), so it has nothing to measure one against, and it does not estimate one.
How each value is read, and its limits
Magnitude
Read unmodified from the mag field of the USGS all-day GeoJSON summary feed (events M2.5+). The magnitude type USGS assigned (magType: mww, mwr, mb, ml, md, …) is recorded with every reading from 2026-09-30, and a reading not on moment magnitude (Mw) is flagged in its evidence. Closeness to the threshold is computed on seismic moment, not as a plain ratio of magnitudes.
- Earthquakes ingested before 2026-09-30 carry no magnitude type, so their scale is unknown.
- USGS often revises an early ml or mb to Mw. A revision is a new reading; earlier readings are not changed.
- When multiple USGS networks report the same event, Calchis retains the HIGHEST magnitude reported, which is not necessarily the latest or the authoritative revision.
Wind speed
Read from intensity in NHC CurrentStorms.json. This is the current analysis intensity — it is NOT post-season best-track data and NOT a forecast value. When wind radii are unavailable for a storm, the value is instead regex-parsed from the NHC public advisory text product (MIATCM); reads sourced that way are marked advisory_anchored.
- Best-track data is published post-season and is not ingested by Calchis.
- Two possible paths (JSON field vs. parsed advisory text). The per-read source_snapshot records which one applied.
Central pressure
Read from pressure in NHC CurrentStorms.json, the current analysis minimum central pressure in millibars (numerically hectopascals). Lower is stronger: the trigger fires when the reading is at or below the threshold. It is the current analysis, not post-season best track and not a forecast.
- Best-track pressure is published post-season and can differ from the operational analysis this reads.
- The percentage shown is the storm's pressure deficit below 1013.25 mb as a share of the threshold's; parametric terms may measure pressure at landfall or inside a defined box, which the trigger geography must reproduce.
Storm surge
The preferred path reads SURGE_FT from the NHC MOST_LIKELY_FLOODING inundation GeoJSON, which is SLOSH-derived. If that product is unavailable, Calchis substitutes an ESTIMATE: the midpoint of a hardcoded Saffir-Simpson surge range for the storm's category. That estimate is neither a model run nor a measurement.
- events.surge_max_ft does not record which path produced it, so SLOSH output and the Saffir-Simpson midpoint estimate are indistinguishable at the evaluation layer for reads taken before source_snapshot shipped.
- When a storm's max_wind_kt is missing, category is approximated as severity x 13 before the surge estimate is selected.
Above flood stage
This is NOT a gauge stage reading and is NOT sourced from NOAA AHPS. Calchis fetches the event's NWS flood warning from api.weather.gov and regex-parses observed stage, flood stage and river name out of the alert's free-text description field, then computes observed minus flood stage. Negative values mean the river is below flood stage.
- Depends on NWS alert prose formatting. If either stage fails to parse, no value is produced.
- No gauge telemetry timestamp exists. The alert carries an issuance time; Calchis records when it parsed the alert, which is not when the river was measured.
- The site identifier is a river or gauge NAME parsed from prose, not a USGS or NWS gauge ID.
Containment failure
Read from PercentContained on the NIFC WFIGS current perimeters feature service, then inverted by Calchis. InciWeb is not a Calchis data source and never has been.
- Fires ingested from NASA FIRMS carry no containment data and can never evaluate this threshold type.
- A genuine 0% contained inverts to 100% failure, which will breach almost any threshold.
Where the reading is taken
- Magnitude. The epicenter must be within your radius of your point, or inside your territory polygon.
- Wind speed. Your point must fall inside the storm's wind-radius polygon for the band your threshold is in (the 64, 50 or 34 kt radii NHC publishes). A territory polygon asks instead whether the storm's center is inside it.
- Central pressure. The storm's center must be inside your territory polygon, or within your radius of your point. Pressure is a property of the center, and terms written on it are about where the center is.
- Storm surge. Your point must fall inside the storm-surge polygon for the event.
- Above flood stage. Your point must fall inside the NWS flood-warning polygon. A trigger bound to a named gauge reads only that gauge's stage.
- Containment failure. The fire's reported position must be within your radius of your point, or inside your territory polygon.
An event whose position is only an approximate centroid (a zone-based watch placed at a state’s center, for instance) is not evaluated against a point: Calchis will not give a confident in-or-out answer on a position it does not have.
How close a reading is
Each reading is stated as a percentage of the threshold. 100% means the threshold is met. For most measurements this is the plain ratio of the reading to the threshold:
percent = reading ÷ threshold × 100 e.g. 96 kt against 120 kt → 80.0%
Magnitude is logarithmic, so the plain ratio would call an M5.6 80% of an M7.0 trigger when it released about 1% of the energy. Magnitude is compared on seismic moment, from which moment magnitude is defined (Hanks and Kanamori, 1979):
percent = 100 × 10^(1.5 × (M − M_threshold)) e.g. M5.6 against M7.0 → 0.8%; M6.94 against M7.0 → 81.3%
Central pressure is lower when stronger, so it is compared on the pressure deficit below standard sea-level pressure (1013.25 hPa):
percent = (1013.25 − reading) ÷ (1013.25 − threshold) × 100 e.g. 979 mb against a 950 mb threshold → 54.2%; 945 mb → 107.9%
Statuses and alerts
- Monitoring: a live event is inside the trigger’s geography, below the warning level.
- Approaching: at or above the warning level you set (80% unless you change it), below the threshold.
- Breached: the threshold is met by a single published reading.
- Resolved: the event ended. Recorded as a new entry after the last reading; earlier readings stay exactly as written.
An alert goes out the first time a trigger and event reach approaching or breached, and again whenever a reading breaches after one that did not, even if an approaching alert already went out. It reaches the trigger’s owner by email (unless email alerts are switched off), any webhook or email integration set up for the account, and the position the trigger belongs to on the ILS dashboard. The decision a breach forces, if the trigger records one, travels with it.
Which reading counts
Any single published reading that meets the threshold meets it. Not a maximum over the event’s life, not the value at landfall, and not a post-event reanalysis. Real terms often specify one of those instead; when they do, this monitoring and the bond’s determination can differ, and the bond’s terms govern.
When a source revises a figure
Agencies revise. USGS often upgrades an early local or body-wave magnitude to moment magnitude; the Hurricane Center’s post-season best track can differ from its advisories. Calchis records each reading as it was published at the time it was read. A revision is a new reading with its own time and evidence; no earlier reading is edited. The record therefore shows what was knowable when, which is the question a dispute turns on.
The record
Every reading stores the source’s own figures, units and timestamps, the geography test used, and the trigger’s terms, and is named by a hash of its own content, so any party can recompute it. A daily digest of all records is published so a record cannot be quietly backdated. The format, and a tool to verify a record without an account, are in the Determination Standard.