Skip to content

mykhailoklimnyk/ua-administrative-codes

Repository files navigation

UA Administrative Codes

Читати українською

Ukrainian Administrative-Territorial Classification Codes (KOATUU & KATOTTG)

A public reference dataset of Ukrainian administrative-territorial codes: KOATUU (legacy, essential for historical data) and KATOTTG (current, effective since 2020). Contains both active and inactive (cancelled/renamed) codes — critical for working with historical records.

Sponsored by automoto.ai License: CC BY 4.0 DOI ORCID Wikidata

Disclaimer: This is NOT an official government registry. The dataset is compiled from publicly available sources and is not affiliated with any Ukrainian government agency.


Overview

KOATUU (Класифікатор об'єктів адміністративно-територіального устрою України) is the legacy Ukrainian classification system for administrative-territorial units. KATOTTG (Класифікатор адміністративно-територіальних одиниць та територій територіальних громад) is the current system introduced in 2020. This dataset provides structured, machine-readable data for both systems.

Attribute Value
KOATUU records ~48,700
KATOTTG records ~31,993
Hierarchy levels 1–5
Regions (oblasts + special units) 27
Active + inactive codes yes
File formats Apache Parquet (Snappy), CSV
Distribution GitHub Releases

Dataset Description

Files

File Description Rows Code format
koatuu.csv / koatuu.parquet Legacy classification (ДК 014-97) ~48,700 10-digit numeric (e.g. 0100000000)
katottg.csv / katottg.parquet Current classification (since 2020) ~31,993 UA-prefixed (e.g. UA01020010010075540)

Hierarchy Levels

Level Description Approx. Count
1 Oblast / Autonomous Republic / Special city 27
2 Raion / City of oblast significance ~740
3 Council / City district / Urban-type settlement group ~12,900
4 Settlement (village, town, city district, etc.) ~35,000
5 Sub-settlement unit (rare) varies

Settlement Categories

Code Ukrainian English Approx. Count
С село village ~33,600
Щ селище settlement ~1,370
Т селище міського типу urban-type settlement ~930
М місто city / town ~460
Р район у місті city district ~120

Schema

Both datasets share the same 11-column schema:

Column Type Description
code string Classification code (KOATUU: 10-digit numeric; KATOTTG: UA-prefixed)
name string Name of the administrative unit (Ukrainian)
level integer Hierarchy level (1–5)
region string Oblast name
full_address string Full hierarchical path
parent_code string Parent unit's code
district string Raion (district) name
council string Council/rada name
category string Settlement category code (С/Щ/Т/М/Р)
category_name string Settlement category name (Ukrainian)
settlement string Settlement name (supplementary)

Full schema with constraints: schema/schema.json | schema/schema.md


Data Characteristics

  • Contains KOATUU (10-digit codes, legacy system) and KATOTTG (UA-prefixed codes, current system since 2020)
  • Includes both active and cancelled codes (critical for historical data work)
  • Hierarchical structure: область → район → громада → населений пункт
  • Compiled from public sources (data.gov.ua and other official publications) and manually enriched

Sources

  • data.gov.ua — the primary source for KOATUU and KATOTTG classifiers
  • State Statistics Service of Ukraine (Державна служба статистики України) — official KOATUU classifier (ДК 014-97)
  • See docs/METHODOLOGY.md for details.

Download

Data is distributed as Apache Parquet (Snappy) and CSV files via GitHub Releases. Data files are NOT stored in the Git repository.


Usage

Python

import pandas as pd

# Load KOATUU
df_koatuu = pd.read_csv("koatuu.csv", dtype={"code": str, "parent_code": str})

# Load KATOTTG
df_katottg = pd.read_csv("katottg.csv", dtype={"code": str, "parent_code": str})

# From Parquet (recommended)
df_koatuu = pd.read_parquet("koatuu.parquet")
df_katottg = pd.read_parquet("katottg.parquet")

# Filter by level
oblasts = df_koatuu[df_koatuu["level"] == 1]
settlements = df_koatuu[df_koatuu["level"] == 4]

# Villages
villages = df_koatuu[df_koatuu["category"] == "С"]

R

library(readr)

df_koatuu <- read_csv("koatuu.csv", col_types = cols(
  code = col_character(),
  parent_code = col_character()
))

df_katottg <- read_csv("katottg.csv", col_types = cols(
  code = col_character(),
  parent_code = col_character()
))

JavaScript

const Papa = require("papaparse");
const fs = require("fs");

const csv = fs.readFileSync("koatuu.csv", "utf8");
const { data } = Papa.parse(csv, { header: true, skipEmptyLines: true });

Data Quality


Citation

If you use this dataset in research or publications, please cite it as:

Klimnyk, M. (2026). UA Administrative Codes: Ukrainian Administrative-Territorial
Classification Codes (KOATUU & KATOTTG).
https://doi.org/10.5281/zenodo.18863103

See CITATION.cff for machine-readable citation metadata.


License

Creative Commons Attribution 4.0 International (CC BY 4.0)

The underlying classifiers (KOATUU, KATOTTG) are publicly available standards. This dataset — including structural normalization and documentation — is made available under CC BY 4.0.


Sponsor

This project is sponsored by automoto.ai.


Author

Mykhailo Klimnyk

About

Ukrainian administrative-territorial codes (KOATUU & KATOTTG). ~48,700 legacy + ~31,993 current records. Parquet & CSV.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors