Méthodologie
How the numbers get from UNHCR, IDMC and the UN Population Division onto this map — and what they do and do not mean.
Cette page n'est pas encore disponible en français — la version anglaise est affichée ci-dessous.
1. Sources
Everything shown is group-level statistics published by international organisations. This site never handles person-level data.
| Use | Source | Endpoint / file | License | As of |
|---|---|---|---|---|
| Stocks by country & year (refugees, asylum-seekers, IDPs, stateless, others of concern, returnees, OIP) | UNHCR Refugee Population Statistics Database | api.unhcr.org/population/v1/population/ (asylum, origin, bilateral matrix), /footnotes/ | CC-BY-4.0 | 2025-12-31 |
| Age & sex | UNHCR | /demographics/(2010+, country of asylum) | CC BY 4.0 | 2025-12-31 |
| Solutions, asylum applications | UNHCR | /solutions/ (2000+), /asylum-applications/ (2015+, persons only) | CC BY 4.0 | 2025-12-31 |
| Internal displacement (annual stock) | IDMC via UNHCR | /idmc/ (2009+) | CC BY-IGO | 2025-12-31 |
| Recent displacement events (≤ 24 h latency) | IDMC Internal Displacement Updates | Helix API, last 180 days | CC BY-IGO | 2026-08-23 |
| Latest estimate card | UNHCR nowcasting | /nowcasting/ — statistical estimates, labelled as such | CC BY 4.0 | 2026-06-01 |
| Resident population (per-1,000 denominator) | UN DESA World Population Prospects 2024 | WPP2024_TotalPopulationBySex.csv, medium variant | CC BY 3.0 IGO | 2023-07-01 |
| Boundaries | Natural Earth 1:50m (via world-atlas) | simplified TopoJSON | Public domain | — |
Full provenance per source (endpoints, content hashes, retrieval times, caveats) is machine-readable in sources.json. Not used: ACLED (licence forbids dashboard republication), IOM DTM (licence not yet confirmed), UNHCR Operational Data Portal and microdata (non-commercial terms).
2. What these numbers are, and are not
- They are what governments and UNHCR operations report. States have incentives to over- and under-count — funding appeals, sovereignty claims, contested legal statuses. A missing figure is not an absence of displaced people; grey is not zero.
- Coverage and definitions vary by country and year; watch for definition changes when comparing across time (e.g. OIP exists only from 2018).
- IDP figures cover conflict and violence only (IDMC); disaster displacement is not in the annual stocks.
- Nowcast and IDU figures are estimates / preliminary, labelled as such, and never mixed into the annual series.
- Mapping requires a polygon: a few reporting entities (Martinique, Gibraltar, "Stateless", "Unknown"…) have no drawable boundary; they are listed in the legend and included in all totals, tables and downloads.
- UNHCR figures exclude Palestine refugees under UNRWA's mandate (about 6 million), counted separately by UNRWA.
3. Pipeline: daily, static, audited
- Fetch — a scheduled job calls the UNHCR API (throttled: 2 concurrent requests, ≥ 300 ms apart, retries with back-off) and downloads the WPP CSV and the IDMC IDU dump. The latest year with published data is detected automatically (currently 2025).
- Normalise — every row is keyed by ISO 3166-1 alpha-3 read from UNHCR's
coo_iso/coa_isofields. UNHCR's internal codes (coo/coa) are never used: they collide with real ISO3 codes (UNHCR "AUS" is Austria, "ARE" is Egypt, "MAR" is Martinique). Numeric fields arrive as"-"(not reported),"0"or numbers; they are converted tonull/0/ integer. - Validate — 15 invariants must hold before anything is published, including: the three collision cases are keyed correctly; no negative or non-finite values; mapped total + unmappable total = global total for every metric and year; totals do not drift more than 20 % against the previous snapshot; and three golden numbers (Türkiye refugees 2024, Syria IDPs 2016, world refugees 2024) match within 1 %.
- Promote — each source is promoted independently. If a source fails, its previous snapshot stays online and the site shows a "partial data update delayed" chip; after three consecutive days the maintainer is e-mailed.
- Publish — the data files are committed to the repository (a permanent audit trail:
git log -- public/data/v1/country/SYR.jsonanswers "what did this number say on day X") and deployed as static files. The browser never calls UNHCR.
4. Definitions
- Réfugiés
- Personnes reconnues comme réfugiées au titre de la Convention de 1951/du Protocole de 1967, de la Convention de l'OUA de 1969 ou du Statut du HCR, ainsi que les bénéficiaires de protections complémentaires/subsidiaires ou temporaires ; inclut les personnes en situation apparentée à celle des réfugiés. Exclut les réfugiés de Palestine relevant du mandat de l'UNRWA.
- Stock de fin d'année (31 décembre).
- Exclut environ 6 millions de réfugiés de Palestine enregistrés auprès de l'UNRWA.
- Demandeurs d'asile
- Personnes ayant demandé une protection internationale et dont la demande de statut de réfugié n'a pas encore été tranchée (dossiers en instance).
- Dossiers en instance en fin d'année, comptés en personnes.
- Déplacés internes (PDI)
- Personnes déplacées à l'intérieur de leur propre pays par un conflit ou des violences (données compilées par l'IDMC, publiées via le HCR). Comptées dans leur propre pays (origine = asile).
- Source : IDMC via le HCR. Les déplacements liés aux catastrophes ne sont pas inclus.
- Identique dans les deux vues (le déplacement interne n'a pas de pays d'accueil).
- Apatrides
- Personnes qu'aucun État ne considère comme ses ressortissants par application de sa législation, y compris les personnes de nationalité indéterminée.
- Déclaré uniquement par pays de résidence ; de nombreux pays ne déclarent pas.
- Autres personnes concernées
- Personnes n'entrant pas directement dans les autres catégories mais auxquelles le HCR étend sa protection et/ou son assistance.
- Réfugiés rapatriés
- Anciens réfugiés retournés dans leur pays d'origine au cours de l'année civile, spontanément ou de façon organisée.
- Flux au cours de l'année, pas un stock.
- PDI de retour
- Anciens déplacés internes retournés dans leur zone d'origine au cours de l'année civile.
- Flux au cours de l'année, pas un stock.
- Autres personnes ayant besoin d'une protection internationale
- Personnes hors de leur pays d'origine qui ont vraisemblablement besoin d'une protection internationale mais dont le statut n'a pas été déterminé (catégorie utilisée depuis 2018, notamment pour les Vénézuéliens à l'étranger).
- Déclaré depuis 2018 ; principalement des Vénézuéliens déplacés à l'étranger.
- Communauté d'accueil
- Membres des communautés d'accueil bénéficiant de programmes du HCR (déclaré pour un petit nombre d'opérations).
- Population non déplacée ; exclue des totaux.
- Total des personnes concernées
- Somme des réfugiés, demandeurs d'asile, déplacés internes, apatrides, autres personnes concernées et autres personnes ayant besoin d'une protection internationale (hors communautés d'accueil et personnes de retour).
- Calculé côté client à partir des indicateurs composants ; un composant null n'est traité comme 0 que si au moins un composant est déclaré.
All stock figures are year-end (31 December). "Returned" figures are flows during the year.
5. Null is not zero
UNHCR distinguishes not reported ("-") from reported zero. We keep that distinction everywhere: on the map (grey vs the lightest blue), in charts (a gap in the line vs a point at 0), in CSV (empty field vs 0) and in JSON (null vs 0). A country in grey may host many displaced people whose figures simply were not reported that year.
6. Two views: where they are, where they fled from
Every figure has two geographies. Country of asylum ("where they are now") counts people where they currently live. Country of origin ("where they fled from") counts the same people by the country they left. Internally displaced persons are counted in their own country in both views. The "Flows" tab and the flows/ files give the bilateral matrix.
7. Per 1,000 residents
Rate = persons ÷ UN WPP mid-year total population × 1,000. Two caveats: the numerator is a 31 December stock while the denominator is 1 July; and WPP values after the estimate base year are medium-variant projections. Rates are not shown where population is missing.
8. Colour scales
A single-hue blue ramp (ColorBrewer Blues) is used throughout — no red/orange scales, which would visually frame displaced people as a threat. Seven classes. Default breaks are quantiles computed across the whole year range for the countries shown: while you scrub the timeline, colour means magnitude, not a rank that reshuffles every year — so screenshots from different years are comparable. Zero has its own lightest colour; not-reported is grey.
9. Boundaries and names
Boundaries come from Natural Earth, simplified for display. Country names follow the data source being cited (UNHCR), with a small override table for readability (e.g. "Syrian Arab Rep." → "Syria"); the original name is always shown alongside. Disputed territories, Kosovo and Taiwan are handled explicitly — see Boundaries, names and disputed territories.
10. Freshness and failure
UNHCR publishes annual figures around June and mid-year figures around October/November. The pipeline runs daily but only commits when content changes. Three timestamps are kept apart: data_as_of (what the data covers), retrieved_at (when we fetched it — only advances when content changed) and the dataset snapshot_id (content hash of the whole dataset, currently 21506b7d). The bulk CSVs carry the population source's content-hash prefix in their snapshot column, resolvable via sources.json.
11. The live events layer
The "recent internal displacement events" layer republishes IDMC's preliminary event-level estimates. For dignity and safety: coordinates of conflict events are snapped to a ~25 km grid (never settlement-level); events under 100 people are not drawn as individual points; the popup shows figure, type and date and links to IDMC's own report instead of pasting narrative text. Event definitions differ from the annual IDP stock (which excludes disasters).
12. Citing
Every view has a permanent link that reproduces year, metric, view, filters, selection and map position (links produced by Share/Cite pin the year). The "Cite" button gives APA 7, Chicago (author–date), BibTeX (@dataset with version) and a plain "cite this page" string; the publication year is the data year, not the year you clicked, and the snapshot id is included for exact recovery. Please cite the upstream source as well as this site.
Questions or corrections: see À propos.