Lesson 7 of 8
Unit · What a phase classification asserts
Six rows, two sources, one table
An IPC evidence table is not a spreadsheet of results. It is a structured argument in which each row carries an indicator, a value, a reliability score and a phase — and the analyst's job is the last column.
What the table is for
Lesson 4 established that four instruments give four answers. The IPC’s response to that is not to pick one, average them, or find the true number. It is to lay them out so that a group of analysts can argue about them in a structured way and record what they concluded.
Every row of an evidence table carries five things:
| Column | What it holds | Who supplies it |
|---|---|---|
| Indicator | The measure, by name | The standard |
| Value | The number, with its denominator and n | The analyst |
| Reference table | The phase thresholds for that indicator | The IPC manual |
| Phase | Which phase the value falls in | Arithmetic |
| Reliability | How much weight this row can bear | The analyst’s judgement |
The fifth column is the one that is not computed, and it is the one that makes the table an argument rather than a list.
Building the rows
import pandas as pd
evidence = pd.DataFrame([
{"indicator": "Food Consumption Score, poor",
"value": "7.4%", "n": 1989, "source": "household survey"},
{"indicator": "Household Hunger Scale, moderate or severe",
"value": "42.9%", "n": 2075, "source": "household survey"},
{"indicator": "reduced Coping Strategy Index, 19 or above",
"value": "51.0%", "n": 2112, "source": "household survey"},
{"indicator": "Livelihood coping, crisis or emergency",
"value": "48.5%", "n": 2121, "source": "LCS module"},
{"indicator": "Maize price, year on year at the lean peak",
"value": "+22%", "n": 10, "source": "market monitoring"},
{"indicator": "Wage to maize terms of trade, change",
"value": "-49%", "n": 10, "source": "market monitoring"},
])
print(evidence)
library(dplyr)
evidence <- tibble::tribble(
~indicator, ~value, ~n, ~source,
"FCS poor", "7.4%", 1989, "household survey",
"HHS moderate or severe", "42.9%", 2075, "household survey",
"rCSI >= 19", "51.0%", 2112, "household survey",
"LCS crisis or emergency", "48.5%", 2121, "LCS module",
"Maize price, year on year", "+22%", 10, "market monitoring",
"Wage terms of trade, change", "-49%", 10, "market monitoring"
)
Six rows, two sources, six different denominators. Building the table in code from the same script that computed the numbers is what stops the values drifting from the analysis — the same argument as the WASH denominator table, in a different sector.
Direct and indirect evidence
The IPC separates evidence by how close it sits to the outcome being classified.
Direct evidence measures the outcome itself: food consumption, nutritional status, mortality. The FCS and HHS rows are direct.
Indirect evidence measures something that causes or accompanies the outcome: prices, terms of trade, rainfall, displacement, conflict. The two market rows are indirect.
Indirect evidence cannot classify on its own. A 49% fall in wage terms of trade is a powerful argument that consumption will deteriorate, and it is not a measurement of consumption. The distinction matters because an analysis short of direct evidence often has plenty of indirect evidence and is tempted to promote it.
But indirect evidence is what makes a classification forward-looking. The household indicators describe the lean season that has happened; the price series describes the one still running. That is why an IPC analysis produces a current classification and a projection, and the projection leans on the indirect rows.
Reliability, and why it is scored
Not every row deserves equal weight, and the reasons are the ones this course has been accumulating.
evidence["reliability"] = [
"high — 1,989 households, standard instrument",
"high — 2,075 households, standard instrument",
"medium — no context-specific threshold established",
"medium — 58 households cannot be classified above crisis",
"medium — balanced panel of 10 of 12 markets",
"medium — same panel; wage series is a single occupation",
]
print(evidence[["indicator", "value", "reliability"]])
# The reliability column is prose, and it is the part that gets read.
Write the reason, not a score. “Medium” tells a reader nothing; “58 households cannot be classified above crisis” tells them exactly how much to discount the row and in which direction.
Four things that lower reliability, all of them met earlier in this course:
- A denominator smaller than the sample — the FCS’s 1,989 of 2,112.
- A threshold borrowed rather than established — the rCSI’s 19.
- A panel that changed composition — the price series without MK001.
- A rule applied where the data cannot support it — a maximum severity over a partly administered module.
What convergence looks like
evidence["direction"] = ["worse", "worse", "worse", "worse", "worse", "worse"]
print(f"rows pointing the same way: "
f"{(evidence['direction'] == 'worse').sum()} of {len(evidence)}")
# Six of six. That is convergence — and it is not the same as agreement on level.
All six rows point the same direction and they disagree about severity by a factor of seven. That combination — strong convergence on direction, wide disagreement on level — is the most common real pattern, and the table is what lets you say both at once.
The wrong readings of it are worth naming.
“They disagree, so the data is bad.” They disagree because they measure different things, and the disagreement carries the diagnosis: coping and asset depletion high, severe consumption deficit not yet.
“Four of six say over 40%, so it is over 40%.” Voting across indicators measuring different quantities is not an estimator of anything.
“The most severe row is the safest.” Nor is the least severe. The row you lead with should be the one with the highest reliability for the decision at hand, and the others belong beside it.
The table as it goes into the workshop
Evidence table — lean season 2024, four districts
Direct evidence
FCS poor (28/42 set) 7.4% n=1,989 high reliability
HHS moderate or severe 42.9% n=2,075 high
rCSI >= 19 51.0% n=2,112 medium, threshold not local
LCS crisis or emergency 48.5% n=2,121 medium, 58 partial modules
Indirect evidence
Maize, year on year at peak +22% 10 markets, balanced panel
Wage terms of trade -49% 10 markets, same panel
Convergence: six of six rows indicate deterioration.
Divergence: severity estimates range from 7.4% to 51.0%, reflecting
different constructs rather than measurement error.
Not available: nutritional status, mortality, food access at the
household level in physical quantities.
The “not available” block is not a formality. Nutrition and mortality are the two outcome indicators the IPC weights most heavily, and an analysis without them is classifying on consumption and coping alone. Saying so is what stops the next reader assuming they were considered and found unremarkable.
What comes next
The table is assembled. The last lesson is what a working group is entitled to conclude from it — the sentence a Phase 3 classification asserts, the one it does not, and the threshold rule most people quoting a phase have never read.