# Validation

Review date: 29 October 2026.

The checks below are what was actually opened or reproduced while building version 1. A row that says the office PDF was not re-opened is a limit of this version, not a claim that the integer was confirmed on the office site in this session.

## Automated checks

`npm test` (10 tests, all passing in this build):

- United States 2010 and 2020 share group ids and are not joined, because `comparable_series` is empty.
- England and Wales joins `white_british` for 2011 and 2021 and does not join Roma, which exists only in 2021.
- A block `[0, 2]` does not include wave 1.
- Groups with no id are not joined.
- Singapore Chinese shares are `count / wave total` for each year.
- Every partition wave sums to within 2% of its stated total.
- The partition totals listed in the test file match the group sums exactly, except Canada's documented gap of 5.
- New Zealand's level 1 counts exceed the population, and the sum status is `not_a_partition`.
- France, Germany, the Netherlands, India, and Japan have no waves.

`npm run validate` checks all 22 `data/{iso3}.json` files against `schema/country.schema.json` (JSON Schema draft 2020-12) and repeats the sum and join rules. That check passed after the build.

Lighthouse 12.8.2, desktop preset, against `http://127.0.0.1:4173/` on 29 October 2026: performance 94, accessibility 100. The performance category still includes a cumulative-layout-shift audit at 77. That did not pull the category under 85.

A headless Chrome pass of the same server checked the map (175 coastlines plus a Singapore mark), country list, no-JavaScript table, Fiji's 2007 outdated badge, the France absence page, the unjoined United States waves, the joined England and Wales series, New Zealand's multiple-response note, Mexico's overlapping indicators, the Israel official-estimate tag, search for "Roma" and "France", the theme toggle, table sorting, and the About section. Singapore's mark opens the Singapore page.

## Spot checks

### 1. United States — pass

Source opened through the Census Bureau PDF text in search results for redistricting supplementary table 4, Hispanic or Latino origin by race, 2010 and 2020.

- 2020 total 331,449,281. Hispanic or Latino 62,080,044. Not Hispanic: White alone 191,697,647; Black alone 39,940,338; American Indian and Alaska Native alone 2,251,699; Asian alone 19,618,719; Native Hawaiian and Other Pacific Islander alone 622,018; Some other race alone 1,689,833; Two or more races 13,548,983.
- The eight 2020 rows sum to 331,449,281.
- The eight 2010 rows sum to 308,745,538.

The PDF itself was not downloaded in this session. The figures are the table text returned from that Census Bureau URL.

### 2. England and Wales, 2021 — pass

Source: GOV.UK Ethnicity facts and figures, "Population of England and Wales", Census 2021, which reproduces the ONS census counts.

The 19 group counts in the file are the counts in that table. They sum to 59,597,578. The five high-level totals in the same table (Asian 5,515,455, Black 2,409,283, Mixed 1,717,977, White 48,699,231, Other 1,255,632) are the sums of the detailed rows.

### 3. England and Wales, 2011 — partial

The 18 counts are the standard Census 2011 ethnic-group totals (KS201EW). They sum to 56,075,912, which is the 2011 usual-resident total for England and Wales. The spreadsheet was not re-downloaded in this session. The ONS bulletin URL is stored on the wave. Treat the 2011 integers as checked by summation to the known total, not as a fresh extract of the spreadsheet.

### 4. China — pass for the two-group series

The NBS Communiqué No. 2 page was fetched. It states a mainland population of 1,411,778,724, Han 1,286,311,334 (91.11%), and ethnic minorities 125,467,390 (8.89%). It states the increases from 2010 as 60,378,693 Han and 11,675,179 minorities. Subtracting those increases produces 2010 counts that sum to 1,339,724,852, the 2010 comparison total in the same communiqué.

The nine minority detail counts are from the later detailed tabulation as reproduced by the census yearbook figures in secondary tables (UN Data and the same integers in public reproductions). They were not re-read from the NBS yearbook PDF. They are not part of the summed chart. The communiqué calls its own figures preliminary.

### 5. Singapore — pass

data.gov.sg, Census of Population 2020, resident population by ethnic group: total 4,044,210; Chinese 3,006,769; Malay 545,498; Indian 362,274; Other 129,669. Those four sum to the total.

The 2010 counts are the key-indicator table in thousands (Chinese 2,794.0, Malay 503.9, Indian 348.1, Other 125.8, total residents 3,771.7). Other is stored as 125,700 so the file matches 3,771,700. The 100-person adjustment is the rounding of the published thousands, and the country note says so.

### 6. South Africa, 2022 — pass with a one-person residual

Census 2022 in Brief (Stats SA PDF), table 3.3, as reproduced in search from that PDF:

- Black African 50,486,856
- Coloured 5,052,349
- Indian/Asian 1,697,506
- White 4,504,252
- Other 247,353
- Specified total 61,988,316
- Note: unspecified excluded, given as 39,188

50,486,856 + 5,052,349 + 1,697,506 + 4,504,252 + 247,353 = 61,988,316.

The published census population used across the Stats SA release is 62,027,503. The file sets unspecified to 39,187 so the rows match that population. The one-person difference between 39,188 and 39,187 is documented rather than hidden.

### 7. Canada — pass

Statistics Canada, 2021 Census Special Interest Profile, visible minority, Canada. The search extract of that profile page gives the component counts used in the file and the totals 9,639,205 visible minority and 26,689,275 not a visible minority, which sum to 36,328,480.

The listed components of the visible-minority population sum to 9,639,200, five below 9,639,205. The file keeps the published component integers and the published total. The page reports the gap of 5. Statistics Canada randomly rounds census sample counts.

### 8. Ireland — pass

CSO Census 2022 Profile 5 states White Irish 3,893,056, White Irish Traveller 32,949, Any other White background 502,081, Black or Black Irish – African 67,546, Black or Black Irish – any other Black background 8,699, Chinese 26,828, any other Asian background 44,944, and the new categories Indian/Pakistani/Bangladeshi 94,434, Arab 20,115, and Roma 16,059. The same release's full category list, including Other including mixed background 64,992 and Not stated 313,176, sums to 5,084,879.

### 9. Malaysia — pass

DOSM key findings for the 2020 census, including the statistical table text: population 32,447,385; citizens Bumiputera 20,649,533, Chinese 6,892,367, Indians 1,998,778, Others 215,637; non-citizens 2,691,070. Malay 16,912,998 and Other Bumiputera 3,736,535 sum to 20,649,533. All rows in the file sum to 32,447,385.

### 10. Australia — pass

ABS 2021 Census QuickStats, Indigenous status, Australia:

- 2021: Aboriginal and/or Torres Strait Islander 812,728; Non-Indigenous 23,375,949; Not stated 1,234,112. Sum 25,422,789.
- 2016, in the same table: 649,168; 21,341,229; 1,411,492. Sum 23,401,889.

The one- and two-person differences from other ABS headlines are the perturbation ABS describes. Subcounts Aboriginal 742,882, Torres Strait Islander 33,765, and both 36,083 sum to 812,730.

### 11. New Zealand — pass

Stats NZ 2023 Census national figures, as published in the Stats NZ infographic and restated by the office's data on Figure.NZ: population 4,993,923; European 3,383,742 (67.8%); Māori 887,493 (17.8%); Pacific Peoples 442,632 (8.9%); Asian 861,576 (17.3%); MELAA 92,760 (1.9%); Other 56,133 (1.1%). The percentages sum to more than 100%, which is the multiple-response design. The file does not force them into a partition.

### 12. Estonia — pass

Statistics Estonia's ethnic-nationality figures for the 2021 census moment: Estonian 914,896, Russian 322,700, other ethnic nationalities 85,333, unknown 7,139. Sum 1,330,068. The same Estonian and Russian counts appear in the 2021 column of the office's later ethnic-nationality time series.

### 13. Vietnam — pass for the two-group split

GSO press release of the preliminary 2019 census: population 96,208,984; Kinh 82,085,729; other ethnic groups 14,123,255. Those two rows sum to the population. The group-by-group table in the completed census volume was not extracted.

### 14. Kazakhstan — partial

The Bureau's census release states population 19,186,015, Kazakhs 70.4% (reported as 13.4 million in the press note and as 13,497,891 in the detailed table), and Russians 15.5% (2,981,946 in the detailed table). The full integer list in the file sums to 19,186,015. That list was taken from a published compilation of the census volume, not from a PDF downloaded from stat.gov.kz in this session. The percentages of the largest groups match the Bureau's public statement. The German count required for the sum is 226,092. A different public table shows 218,892; that alternative does not sum to the official total, so it was not used. This row should be rechecked against the Bureau PDF before a later release.

### 15. Brazil — partial for 2022, summation pass for 2010

2010: branca 91,051,646, parda 82,277,333, preta 14,517,961, amarela 2,084,288, indígena 817,963, undeclared 6,608. Sum 190,755,799. These are the long-published IBGE 2010 color-or-race counts. The 2010 microdata file was not re-downloaded here.

2022: the non-indigenous counts are those reported from the 22 December 2023 IBGE release (parda 92,083,286, branca 88,252,121, preta 20,656,458, amarela 850,130). Indigenous on the color-or-race question is 1,227,642, which is the count distinguished in write-ups of that release from the expanded indigenous count of 1,694,836. The five rows sum to 203,069,637, and that sum is what the file uses as the 2022 total. SIDRA table 9605 was not opened. Do not treat 203,069,637 as a second official headline population. It is the sum of the counts in this file.

### 16. Fiji — pass for the release decision and the 2007 counts

The Fiji Bureau of Statistics site, including the archived statement of the Government Statistician on 5 March 2018, says the 2017 census counted 884,887 people and that ethnicity could not be released. The same Bureau pages give the 2007 counts: total 837,271, iTaukei 475,739, Indo-Fijian 313,798, Other 47,734. Those three sum to 837,271.

### 17. Israel — partial

The end-2023 population by group was taken from the CBS estimate as quoted in the Bureau's Hebrew release text: 7.208 million Jews, 2.080 million Arabs, 0.554 million Others, 9.842 million in total. The figures are official estimates rounded to the nearest thousand. The CBS statistical abstract was not re-keyed cell by cell beyond that release. The file labels them `official_estimate`.

### 18. Mexico — partial

The 2020 census total 126,014,024 is the INEGI headline. The indicator counts 23,232,391 (indigenous self-identification, age 3 and older) and 2,576,213 (Afro-Mexican or Afro-descendant) are the standard published census indicators. The INEGI indicator table was not re-opened as a live extract in this session. They are stored as overlapping indicators, not as a partition.

### 19. Countries with no ethnic series

France, Germany, the Netherlands, India, and Japan have empty `waves` arrays. There is no number to spot-check. The check is that the interface shows the note and does not draw a zero share.

## Not included, on purpose

Indonesia 2010, the Philippines, Peru, Colombia, Russia, Latvia, and Lithuania have ethnic or ethnic-nationality tables. They are not in version 1 because those tables were not extracted from the office files in this build. Leaving them out is preferable to entering a remembered percentage.

Scotland and Northern Ireland are not folded into the United Kingdom file. Their ethnic-group questions differ from England and Wales.

## Version 2 additions

The 81 countries added in version 2 were each researched against the sourcing rules in `docs/methods.md`. Each region file records, for every country, the decision paragraph, which page or file was opened, the sum check, and what was not verified. It also lists the countries that were looked at and left out, with the reason.

| Region file | Catalog module |
| --- | --- |
| `docs/regions/asia.md` | `scripts/regions/asia.mjs` |
| `docs/regions/casia.md` | `scripts/regions/casia.mjs` |
| `docs/regions/easteu.md` | `scripts/regions/easteu.mjs` |
| `docs/regions/balkans.md` | `scripts/regions/balkans.mjs` |
| `docs/regions/africa.md` | `scripts/regions/africa.mjs` |
| `docs/regions/latam1.md` | `scripts/regions/latam1.mjs` |
| `docs/regions/latam2.md` | `scripts/regions/latam2.mjs` |

Many office sites timed out, refused connections, or served bot checks during the build. Where that happened, the integers come from the UN Statistics Division Demographic Statistics Database (table 26, population by national and/or ethnic group), which reproduces office tables. Those waves name the UN as the source and are marked partial.

Points to recheck first:

- Kenya: the Kikuyu row is the Kenyan total minus all other rows.
- The Philippines: the residual of 16.8 million was computed from the larger rows only.
- Bangladesh: only the first of four pages of the UN table was read.
- Russia: 2021 is missing.
- Hungary: multiple response is inferred from the arithmetic.
- Belize: the Maya share disagrees with the office's percentages.

### Age-by-sex tables (`data/agesex/`)

| Country | Source | Bands | Check against catalog |
| --- | --- | --- | --- |
| USA 2020 | data.census.gov, DHC P12H–P12O | 0-4…85+ | exact |
| GBR 2021 | ONS custom-dataset API (ethnic group × age × sex) | 0-4…85+ | within 0.02% (ONS cell adjustment) |
| CAN 2021 | StatCan 98-10-0351-01 via WDS | 0-14, 15-19, 20-24, 25-34 … 75+ | within 0.01% (random rounding) |
| AUS 2021 | ABS G07 national GCP file | 0-4…60-64, 65+ | within 0.002% (perturbation) |
| BRA 2022 | SIDRA table 9606 | 0-4…95-99, 100+ | exact |
| SGP 2020 | data.gov.sg CT/17396 | 0-4…95-99, 100+ | exact |
| MYS 2020 | OpenDOSM population_malaysia (official estimate, rounded to 100) | 0-4…85+ | within 0.11% |
| NZL 2023 | Stats NZ ethnic-group summary pages | 0-14, 15-29, 30-64, 65+ | 0.991–0.995 (another gender left out) |
| IRL 2022 | CSO PxStat F5064 | 0-4…85+ | exact |
| EST 2021 | andmed.stat.ee RL21429 | 0-4…85+ | 0.94–1.06: the age table has not been restated like the catalog counts |
| KAZ 2021 | BNS ethnic × locality × age workbook | 0-4…100+ | exact |
| MEX 2020 | INEGI etnicidad table 13, Afro-descendant only | 0-4…85+ | 119 with age not specified dropped |
| ISR 2023 | CBS Statistical Abstract 2024, table 2.3 (annual average) | 0-4…90+ | Jews 0.986, Arabs 0.985, Others 0.863 (unresolved) |
| CHN 2020 | NBS 2020 Census Yearbook table 2-2 (servicemen excluded) | 0-4…100+ | Han 0.999, minorities 0.992 |

South Africa (Stats SA blocks automated access), Vietnam (no ethnic × age table in the GSO volume) and Fiji (no sex split) have no age table.
