Methodology & Documentation

Public reference for how MHEWS calculates, thresholds, and sources its data — no sign-in required. Aimed at Viewers and the public who want to understand what's behind a map layer, indicator, or alert before acting on it.

Overview

MHEWS is a decision-support platform, not an official alert-issuing authority (see the disclaimer in the footer of every page). This section documents how the platform turns raw monitoring/forecast data into the hazard, risk, and impact information shown on Dashboard, Forecasts, Impact-Based Forecasting, Early Warning, and Reports & Bulletins — so a reader can trace any number on screen back to its source and method, without needing an account.

Data sources

The same source names and cadences shown on the Dashboard's status pills and source list — documented here once, not re-described per screen.

DatasetCadenceUsed for
CHIRPS rainfall (v3.0)DailyDrought/SPI indicator input View methodology →
GloFAS flood levelsHourlyFlood indicator + 3-day forecast View methodology →
NDVI (MODIS)16-day compositeDrought/vegetation-stress indicator View methodology →
INFORM risk indexPeriodic (~monthly)Risk layer, by hazard sub-index View methodology →
RSMC cyclone outlook6-hourlyCyclone track/wind-gust forecast View methodology →

CHIRPS rainfall (v3.0)

Climate Hazards center InfraRed Precipitation with Station data — a quasi-global, gridded daily rainfall estimate blending satellite imagery with in-situ station observations. MHEWS uses it as the primary Drought-indicator input, aggregated into the SPI (Standardized Precipitation Index) shown on Forecasts and Dashboard.

GloFAS flood levels

Global Flood Awareness System hydrological forecasts, refreshed hourly. MHEWS reads current river-level indicator values and the 3-day flood forecast from this feed for gauges within Madagascar's monitored basins (e.g. the Ikopa gauge referenced on Dashboard/Reports).

NDVI (MODIS)

Normalized Difference Vegetation Index derived from MODIS satellite imagery, composited every 16 days. Used as a secondary Drought/vegetation-stress signal alongside CHIRPS rainfall; a "delayed" status pill reflects the underlying satellite composite's own refresh cadence, not a platform outage.

INFORM risk index

A composite risk baseline (hazard exposure × vulnerability × lack of coping capacity), following the INFORM methodology, sub-categorized by hazard on the Risk layer group. Updated periodically rather than in real time — see the "Estimate derived from Risk baseline — not a predictive model" caption shown wherever Impact figures appear on-screen.

RSMC cyclone outlook

Regional Specialized Meteorological Centre cyclone track and intensity outlook for the Southwest Indian Ocean basin, refreshed roughly every 6 hours. Feeds the Cyclone hazard tab's track-and-cone forecast field (wind-gust vector, not raster).

Indicators

MHEWS always separates two kinds of value for the same hazard: an Indicator (a current, observed reading — e.g. today's river level from a gauge) and a Forecast (what a model expects at a future lead time — e.g. GloFAS's 3-day projection). These are never merged into one number: Dashboard shows both per layer, Forecasts lets you compare Forecast sources on one chart against configured thresholds, and Reports & Bulletins' Situation section keeps a "Current (Indicator)" field separate from an "Expected (Forecast)" field for the same reason — so a reader always knows whether they're looking at what's happening now or what's predicted.

Triggers & thresholds

Each registered hazard/layer can carry threshold values with an operator (e.g. ≥/≤), a numeric value in whatever unit that layer measures (river depth in metres, wind gust in km/h, an index score), and a severity tier. Severity always uses the same fixed three-tier vocabulary everywhere on the platform — map legend, alerts, and report/bulletin text all read from one shared terminology source, never re-typed per screen:

Watch — early signal, low confidence, monitor closely

Warning — threshold confirmed, prepare to act

Severe — highest configured threshold breached, act now

Threshold changes go through a review/verification step by a second authorized user before taking effect (a visible "Pending verification" state on the Thresholds admin screen) — a threshold is never live the instant one person edits it. Each threshold also carries a sector-specific ResponseProtocol (who does what at each severity, tagged by sector — Agriculture/Water/Health/General) that the same protocol can drive a matching sector-targeted bulletin, alert distribution list, or Assistant framing.

How to read the dashboard

  • The layer catalog is grouped into Hazard, Risk (INFORM, by hazard), Impact (population/buildings/infrastructure/productive assets, by sector), and Forecast (one main layer per hazard). Layers overlay simultaneously, each with its own independent opacity.
  • An (i) info button on every layer row shows its source name, last-updated timestamp, and connection status (OK/Delayed/Failed) — the same small component reused everywhere a data layer is listed.
  • A red "!" badge marks any admin area currently intersected by an active alert, at whatever admin level (Region/District/Commune) is currently displayed.
  • Clicking a point on the map shows the exact value at that pixel and a rollup at the lowest available admin level — if a layer doesn't resolve that finely, you'll see an explicit "not available at this level" message rather than a blank or wrong number.
  • The time control under the map applies to all layers by default, with a toggle to switch to per-layer time control, since sources refresh on very different cadences (e.g. cyclone outlook every 6 hours vs. NDVI every 16 days).