a dataset of ugandan administrative units and locale as of JUNE 2026
# uganda-locale
An open, versioned dataset (and eventually a small serving library) of Uganda's
administrative units — **region → district/city → county/municipality →
subcounty/town council/division → parish/ward → village/cell → zone** — built
because no single free, current, machine-readable source of this hierarchy
existed for software integration (form dropdowns, address validation,
reporting, etc.), and Uganda's units change often enough that hand-maintained
copies go stale fast. Every district/city also carries a `subregion_id`
pointing into a second, parallel classification — Uganda's 17
cultural/traditional sub-regions (Buganda, Acholi, Ankole, Busoga, ...), the
grouping UBOS itself uses for census reporting — since the 4 administrative
regions don't map onto historical/cultural boundaries.
> **Just want the data, not the code?** Download
> **`dist/uganda-locations-full.csv`**
> and open it in Excel or Google Sheets — one row per village (71,230 rows),
> with region/sub_region/district/county/constituency/subcounty/parish/village columns.
> That's the whole dataset in one file. (On the file's GitHub page, use the
> download/raw button to save it directly — GitHub doesn't fully render a
> spreadsheet preview for a file this size.)
## Why this exists
Uganda's Electoral Commission is the most tactically complete government body
for this data — it maps down to the village level for every election. Most
free sources (Wikipedia, HDX/OCHA, Statoids) turned out to be either scoped to
district level only or several years stale below that — see
`docs/DATA_QUALITY.md` for the full source-by-source
breakdown, including what was checked and rejected.
The EC does in fact publish the real thing: a full village-level gazetteer
(`ec.or.ug/admin-units`), just not advertised as a "dataset" — it's a
3,019-page PDF. It's now been parsed, and validated twice over (see below).
## What's actually in here right now
Run `npm run build` to compile `data/` into `dist/`:
| Leve …