Review of external (WFP/FAO) Southern Africa drought AA triggers: recovered activation records + return-period check (password-protected site)
# ds-external-aa-frameworks
Independent review of external (WFP / FAO) anticipatory-action drought frameworks in
Southern Africa — Mozambique, Zimbabwe, Malawi, Madagascar, Lesotho — ahead of the
CERF El Niño 2026/27 trigger-harmonisation exercise.
Recovers the trigger/activation records that back the agencies' stated return
periods from public endpoints:
- **PRISM operational trigger CSVs** (public S3; URLs from the open-source
WFP-VAM/prism-app frontend config):
per district × index × severity × window trigger thresholds and issued forecast
probabilities, seasons 2023-24 onward (MOZ, ZWE, MWI).
- **IRI fbfmaproom2 export API** (backend of the AA design maprooms): full
hindcast of forecast probabilities vs design thresholds and "bad years", with
skill counts (LSO 1983–, MDG 1992–).
From these it computes realized/hindcast activation series and Weibull return
periods, compares them against the RP labels in the July 2026 FAO-WFP overview file
(internal, not committed), and publishes a password-protected review site.
Related KB pages: `ds-knowledge-base/external-frameworks/{wfp,fao}/*-drought.md`.
## Layout
- `scripts/fetch.py` — download PRISM CSVs + maproom exports (national + district
level, incl. the Malawi maproom) into `data/` (not committed)
- `scripts/analyze.py` — activation series + Weibull RPs per region → `data/derived.json`
- `scripts/fetch_met.py` — ERA5/SEAS5 adm0 + target-adm1 zonal means from the team
rasterstats DB (`public.era5`/`public.seas5`; needs stratus prod DB env vars)
- `scripts/analyze_met.py` — independent met cross-check (were triggered years dry?
is the 2026/27 forecast dry?) → `data/derived_met.json`
- `scripts/plots.py` — indicator-vs-threshold time-series SVGs → `data/plots/`
(inlined into the pages so they are encrypted with the HTML)
- `scripts/build_site.py` — render the review site into `site_build/`
## Running
```sh
uv run python scripts/fetch.py
uv run python scripts/analyze.py
uv run python scripts/fetch_met.py # ne …