# Threshold justification — Food security classification and assistance targeting

Technical documentation for the project *Food security classification and
assistance targeting*. Its subject is the one decision the project turns on:
**where the line is drawn, and why there rather than somewhere else.**

Who eats changes with that line. This document exists so the answer to "why this
threshold" is a written argument rather than a recollection.

- **Source dataset:** `food-security-survey-2024.v1.csv` (2 112 households,
  4 districts)
- **Analysis:** `notebooks/composite-indicators.python.en.ipynb`
- **Decision informed:** which households enter the next cash distribution
  caseload
- **Standards applied:** IPC, Sphere, CHS, RBM
- **Caseload:** 422 households — **20% of those surveyed, set by the budget**

Every dataset on this platform is synthetic. No real household is described.

---

## 1. The indicators, as computed

### 1.1 Food Consumption Score (FCS)

Weighted sum of days (0–7) each food group was consumed in the last seven days:

| Group | Weight |
| --- | ---: |
| Cereals and tubers | 2 |
| Pulses | 3 |
| Vegetables | 1 |
| Fruit | 1 |
| Meat, fish and eggs | 4 |
| Dairy | 4 |
| Oils and fats | 0.5 |
| Sugar | 0.5 |

**Higher is better.** Range 0–112.

A value above 7 days is impossible and is set to missing **before** the sum, not
clipped to 7. Clipping would preserve a household whose form is known to be
wrong; setting to missing propagates, and the household is excluded from
FCS-based rules. **145 households** have an incomplete FCS on this basis.

### 1.2 Household Hunger Scale (HHS)

Sum of three severity-coded items (no food in the house, sleeping hungry, a day
and night without eating), 0–6.

**A partial HHS is excluded, never zero-filled.** Zero-filling scores a hungry
household as food secure and drops it out of the caseload — the failure mode
this rule exists to prevent. **37 households** are excluded on this basis.

### 1.3 Reduced Coping Strategy Index (rCSI)

| Strategy | Weight |
| --- | ---: |
| Rely on less preferred food | 1 |
| Borrow food | 2 |
| Limit portion size | 1 |
| Restrict adult consumption | 3 |
| Reduce number of meals | 1 |

**Higher is worse.**

---

## 2. Why no single threshold gives the caseload

The obvious approach is one indicator and one cut-off. Applied to this survey:

| Rule | Households | Share | vs caseload of 422 |
| --- | ---: | ---: | ---: |
| FCS poor (≤ 21) | 17 | 0.8% | −405 |
| FCS poor or borderline (≤ 35) | 465 | 22.0% | +43 |
| HHS moderate or worse (≥ 2) | 889 | 42.1% | +467 |
| HHS severe (≥ 4) | 325 | 15.4% | −97 |
| rCSI at or above median | 1 074 | 50.9% | +652 |

`FCS ≤ 21` selects 17 households and cannot spend the budget. `HHS ≥ 2` selects
more than twice the caseload. `rCSI ≥ median` selects half the survey by
construction and is not a threshold at all.

`FCS ≤ 35` lands within 43 of the caseload. **Choosing it because it lands close
is fitting the criterion to the budget rather than to need** — and it is exactly
what a cluster review will ask about. It is rejected here for that reason, and
this paragraph is the record that it was considered.

The deeper problem: the three indicators disagree on purpose. FCS measures
dietary diversity, HHS measures whether people went without, rCSI measures what
they did to cope. A household can be poor on one and adequate on another. Any
single-indicator threshold discards two of the three measurements.

---

## 3. The composite

### 3.1 Definition

```
need_score = ( -z(FCS) + z(rCSI) + z(HHS) ) / 3
```

`z(·)` standardises to mean 0, standard deviation 1 across the 2 112 surveyed
households. FCS enters **negatively** because a higher FCS is better food
consumption.

Observed distribution: mean 0.000, sd 0.813, range −2.336 to 2.664.

### 3.2 The three assumptions, stated

**Equal weights.** The formula says the three indicators matter equally. That is
an assumption, not a finding, and no evidence in this survey supports or refutes
it. It is chosen because any other weighting would need a justification this
dataset cannot supply, and an arbitrary weighting that looks precise is worse
than an explicit one that is simple.

**Standardisation is sample-relative.** A z-score is relative to *these* 2 112
households. The score is therefore a ranking device within this survey and
**carries no meaning across surveys**. Do not compare a need score of 0.7 here
with a 0.7 computed elsewhere.

**The missing-data fills are conservative in opposite directions.** An incomplete
FCS is filled with the sample median; a partial HHS is filled with zero. Median
FCS is neutral; zero HHS is the *least severe* value. A household with missing
data is therefore neither pushed into nor pulled out of the caseload by the gap
itself — the fills cannot combine to manufacture a high score.

Note the asymmetry with §1.2: a partial HHS is excluded from the **HHS-based
rules** of §2, and zero-filled only inside the composite, where excluding it
would drop the household from the ranking entirely. Exclusion from a rule and
exclusion from assistance are different things.

### 3.3 What the composite selects

| | Households |
| --- | ---: |
| Caseload | 422 |
| of which FCS poor (≤ 21) | 16 |
| of which FCS poor or borderline (≤ 35) | 242 |
| of which HHS severe (≥ 4) | 284 |

16 of the 17 FCS-poor households are selected. The composite does not discard the
single-indicator signal; it stops that signal from being the only one.

---

## 4. The cut is not a finding

The caseload is 422 because the budget covers 422. The score at the cut is
**0.663**. The forty households either side of it span **0.630 to 0.697** — under
a tenth of a point — and adjacent pairs differ by thousandths.

**Nothing in the data distinguishes the last household included from the first
excluded.** The report must say so. Two consequences:

1. Do not describe the caseload as "the food-insecure households". It is the 422
   highest-ranked households under a stated rule.
2. If the programme can extend at the margin, the boundary list in the notebook
   is the list to extend with — in score order, without re-running the analysis.

---

## 5. Who the rule includes, and who it leaves out

The part a cash working group will actually interrogate. Composition of the
caseload against the surveyed population:

**Displacement status**

| Status | Population | Caseload | Difference |
| --- | ---: | ---: | ---: |
| IDP | 19.2% | 33.4% | +14.2 pts |
| Returnee | 7.2% | 12.3% | +5.1 pts |
| Host | 3.7% | 3.1% | −0.6 pts |
| Resident | 69.9% | 51.2% | −18.7 pts |

**Livelihood** — casual labour +8.6 pts, subsistence farming −7.2 pts; all others
within ±2 pts.

**Sex of household head** — female-headed 35.6% of the population, 38.9% of the
caseload (+3.3 pts).

**District**

| District | Surveyed | Selected | Share selected |
| --- | ---: | ---: | ---: |
| Nord-Ouest | 528 | 219 | 41.5% |
| Centre | 530 | 131 | 24.7% |
| Artibonite | 528 | 61 | 11.6% |
| Sud | 526 | 11 | 2.1% |

**These are outputs of the indicators, not targeting choices.** No displacement,
livelihood, sex or district term appears in the score. But they are the sentences
that must appear in the report, because a district authority will read the
caseload as a statement about who deserves assistance — and a twenty-to-one ratio
between Nord-Ouest and Sud will be challenged whether or not the report explains
it.

---

## 6. Data quality noted, not corrected

**12 duplicate enumerations** (identical on every field but `household_id`). They
are reported and left in place: an exact duplicate may be a genuine re-visit
recorded twice or two similar households, and this dataset cannot distinguish
them. At 12 of 2 112 they cannot move the cut. If the count grows, resolve them
before targeting, not after.

---

## 7. Limitations

1. **The survey frame is not the population.** The caseload is drawn from
   households the enumeration reached. Displaced people outside settlements and
   households absent on survey day are not in this ranking and cannot be targeted
   from it.
2. **The caseload size is a budget decision.** This analysis ranks need; it does
   not say that a fifth of households is the right number to assist. The report
   must not let the two be confused.
3. **All three indicators are self-reported** over a seven-day recall, and all
   three are subject to recall bias in the same direction where a household
   believes reporting affects eligibility.
4. **No seasonality.** A single round cannot separate a lean-season household
   from a chronically food-insecure one, and cash targeted on the first should
   not be presented as addressing the second.
5. **The score is not an IPC classification.** IPC phases rest on convergence of
   evidence across outcome and contributing indicators with an analysis workshop.
   Do not label a household "Phase 3" from this score.

---

## 8. Reproducing this analysis

```bash
pnpm examples:build
```

Then run `notebooks/composite-indicators.python.en.ipynb` — Colab via the badge,
or locally with pandas and numpy. It reads the CSV over HTTPS.

The dataset is versioned by filename and immutable; a correction ships as
`.v2.csv` with this document revised beside it.

---

## 9. Change log

| Date | Change |
| --- | --- |
| 2026-07-27 | First issue, against dataset v1. |
