← Back to all sparks
H

humind

INFRA · APIS
Velocity3.8

The MSNI humanitarian needs framework as code, rewritten and re-broken every year

humanitarian-analyticsneeds-assessmentr-packagebreaking-changessurvey-dataframework-migration
Current state
humind turns household survey data into Multi-Sector Needs Index severity scores across WASH, Protection, SNFI, Food Security, Education and Health. Its version line tracks the annual MSNI framework revision — 2024.x, 2025.x, 2026.x — with narrow correctness patches between rollouts. v2026.2.0 is the current rollout and the most structural one in the visible history: water-quantity scoring moved out into a new mandatory prerequisite, food-security severity now comes from a different matrix, and the impactR4PHU runtime dependency is gone.
Where it's heading
Two things move together. The framework content is revised yearly — indicators added, weights corrected, instruments swapped — and the package keeps absorbing pipeline it used to delegate, most visibly by vendoring add_fcs(), add_hhs(), add_rcsi(), add_lcsi() and add_fcm_phase() locally rather than importing them. Each rollout is explicitly breaking and the release notes have grown per-function 'Action:' instructions, which reads as maintainers who expect every downstream dashboard to need rewiring on the same annual clock.
Prediction
The 2025 line settled into narrow patches immediately after its rollout — 1.2, 1.3 and 1.4 fixed a separator argument, a schema rename and a shelter misclassification rather than adding indicators. Expect the 2026 line to do the same: correctness fixes against the new WASH, FCLCM and shelter-damage logic before any further framework change.

Recent moves

  1. 29d ago

    2026 MSNI rollout: HWISE-4 prerequisite, FCLCM, impactR4PHU dropped

    ⚡ SPARK

    Where the 2025 rollout revamped indicator content inside the existing call pattern, this one changes the shape of the pipeline itself — a new required step before add_comp_wash(), a mandatory rather than optional shelter-damage input, and a food-security severity path that no longer runs through a sibling package. It sets the structure the rest of the 2026 line will patch against.

    View source ↗
  2. 8mo ago

    Tents reclassified as inadequate shelter

    A one-rule change with real downstream weight: add_shelter_type_cat() now treats tents as inadequate rather than adequate, which moves households in tented settings up the SNFI severity scale. The expanded regression tests around the priority-rule edge cases suggest the maintainers know how far a single reclassification propagates.

    View source ↗
  3. 10mo ago

    Fix: honour the sep argument in protection score columns

    A narrow correctness fix so add_prot_score_practices() and add_prot_score_rights() build choice-column names with the separator the caller asked for. Typical of the between-rollout patches on this feed.

    View source ↗
  4. 10mo ago

    'Acute need' renamed to 'severe need' across every output column

    A vocabulary alignment applied to the whole output schema — every sectoral composite and the MSNI itself lose 'acute' for 'severe' — plus a genuine overhaul of add_handwashing_facility_cat() with observed and reported soap-type handling and new required input columns. Breaking on contact for downstream consumers, but a rename plus one indicator refined rather than a change of direction.

    View source ↗
  5. 1y ago

    2025 MSNI rollout: Protection revamped, WGQ dropped from Health

    The previous year's framework rollout: Protection rebuilt on new Tier 1 indicators behind add_comp_prot_score(), shelter issues expanded from 8 to 11, an eviction-risk tenure indicator added, and the Washington Group questions removed from Health. Substantial content change, but it reshaped indicators inside the existing call pattern rather than the pipeline structure the 2026 release later altered.

    View source ↗
  6. 1y ago

    Scoring corrections across WASH, education, health and shelter

    Several severity assignments corrected against the MSNI framework — urban basic water scored 1 instead of 2, disability forcing comp_health_score to 3, education disruption thresholds — alongside a signature change replacing _levels with separate parameters and a configurable education starting age for country-specific use. Output-changing rather than cosmetic, which is why it sits above the pure patch releases.

    View source ↗