Codebook
Every variable in the published index, in one place. For the conceptual methodology (why the index is built this way), see Documentation; this page is the quick reference for what a specific column actually means once you’ve downloaded the data.
Range, missing-value counts, and distinct-value counts below are computed live from the current published dataset every time this page is built – not hand-typed, so they can’t silently drift out of sync with the actual data the way a static codebook could.
Dataset: index_2025.csv · Observations: 524 country-years · Variables: 34
Identifier Variables
ISO2
- 2-letter country code · ISO 3166-1 alpha-2
- Range/values: 24 distinct values · Missing: 20 (3.8%)
- Used for flag icon lookups (flagcdn.com) throughout the site. Missing for Cuba specifically -- never added to countries.csv, likely because Cuba never has a complete POP value (see COUNTRY_SLUGS notes) and therefore never needed a flag lookup on a country page.
ISO3
- 3-letter country code · ISO 3166-1 alpha-3
- Range/values: 25 distinct values · Missing: 0 (0.0%)
- Primary country key used throughout the pipeline and site (e.g. COUNTRY_SLUGS in _site_helpers.py).
COUNTRY
- Country name · countries.csv
- Range/values: 25 distinct values · Missing: 0 (0.0%)
REGION
- Sub-region classification · countries.csv
- Range/values: 4 distinct values · Missing: 0 (0.0%)
- E.g. South America, Central America, Caribbean. Used for the regional-comparison charts on country pages.
YEAR
- Calendar year · N/A
- Range/values: 2000 to 2020 · Missing: 0 (0.0%)
- 2000-2020.
LDC
- Least Developed Country flag (UN classification) · UN-OHRLLS
- Range/values: 0 to 1 · Missing: 0 (0.0%)
- 0 = no, 1 = yes.
LLDC
- Landlocked Developing Country flag (UN classification) · UN-OHRLLS
- Range/values: 0 to 1 · Missing: 0 (0.0%)
- 0 = no, 1 = yes.
SIDS
- Small Island Developing State flag (UN classification) · UN-OHRLLS
- Range/values: 0 to 1 · Missing: 0 (0.0%)
- 0 = no, 1 = yes.
Overall Index
POP
- Overall populism index · Constructed
- Construction:
POP = (PEP + PIP) / 2 - Range/values: 1.45 to 80.98 · Missing: 114 (21.8%)
- Range 0-100. Combines economic and institutional populism, each already weighted by rhetoric via PEP/PIP. See Documentation for the full derivation and the scenarios this construction is designed to distinguish.
POP_RANK
- Country's POP rank among countries with a POP value that year · Constructed
- Construction:
Computed per-year, 1 = highest POP - Range/values: 1 to 22 · Missing: 114 (21.8%)
POP_PERCENTILE
- Country's POP percentile rank that year · Constructed
- Range/values: 0.05 to 1.00 · Missing: 114 (21.8%)
- Range 0-1.
Institutional Populism
PIP
- Institutional Populism, rhetoric-weighted · Constructed
- Construction:
PIP = POP_R × IP - Range/values: 0.78 to 94.29 · Missing: 94 (17.9%)
- Range 0-100 (since POP_R is 0-1 and IP is 0-100).
PIP_RANK
- Country's PIP rank among countries with a PIP value that year · Constructed
- Range/values: 1 to 23 · Missing: 94 (17.9%)
PIP_PERCENTILE
- Country's PIP percentile rank that year · Constructed
- Range/values: 0.04 to 1.00 · Missing: 94 (17.9%)
- Range 0-1.
IP
- Institutional Populism sub-index · Constructed
- Construction:
IP = average(IP_1, IP_2, IP_3, IP_4, IP_5, IP_6) - Range/values: 6.15 to 95.62 · Missing: 21 (4.0%)
- Range 0-100. Note: IP_3 (legislative constraints) and IP_4 (corruption, duplicating IP_2) reflect a known construction quirk carried over from the original pipeline -- documented transparently on the Documentation page rather than silently corrected, since it affects published historical values.
IP_1
- Rule of law · V-Dem
- Range/values: 3.03 to 98.13 · Missing: 1 (0.2%)
- Range 0-100.
IP_2
- Corruption · V-Dem
- Range/values: 14.00 to 94.90 · Missing: 20 (3.8%)
- Range 0-100.
IP_3
- Legislative constraints · V-Dem
- Range/values: 1.70 to 96.70 · Missing: 1 (0.2%)
- Range 0-100.
IP_4
- Corruption (duplicate of IP_2 -- see IP notes above) · V-Dem
- Range/values: 3.00 to 98.10 · Missing: 0 (0.0%)
- Range 0-100.
IP_5
- Neopatrimonialism · V-Dem
- Range/values: 3.50 to 98.10 · Missing: 0 (0.0%)
- Range 0-100.
IP_6
- Property rights · Heritage IEF
- Range/values: 10.00 to 100.00 · Missing: 20 (3.8%)
- Range 0-100.
Economic Populism
PEP
- Economic Populism, rhetoric-weighted · Constructed
- Construction:
PEP = POP_R × EP - Range/values: 1.36 to 71.50 · Missing: 113 (21.6%)
- Range 0-100 (since POP_R is 0-1 and EP is 0-100).
PEP_RANK
- Country's PEP rank among countries with a PEP value that year · Constructed
- Range/values: 1 to 22 · Missing: 113 (21.6%)
PEP_PERCENTILE
- Country's PEP percentile rank that year · Constructed
- Range/values: 0.05 to 1.00 · Missing: 113 (21.6%)
- Range 0-1.
EP
- Economic Populism sub-index · Constructed
- Construction:
EP = average(EP_1, EP_2, EP_3, EP_4) - Range/values: 17.44 to 72.51 · Missing: 51 (9.7%)
- Range 0-100. Each EP_n component is itself an average of Heritage IEF and Fraser EFW variables -- see Documentation for the full variable-source table.
EP_1
- Business and labor market regulation · Heritage IEF + Fraser EFW
- Range/values: 22.31 to 80.56 · Missing: 20 (3.8%)
- Range 0-100.
EP_2
- Government interference · Heritage IEF + Fraser EFW
- Range/values: 0.07 to 58.52 · Missing: 51 (9.7%)
- Range 0-100.
EP_3
- Monetary and financial freedom · Heritage IEF + Fraser EFW
- Range/values: 6.70 to 96.67 · Missing: 30 (5.7%)
- Range 0-100.
EP_4
- Freedom to trade (internationally) · Heritage IEF + Fraser EFW
- Range/values: 12.05 to 55.71 · Missing: 30 (5.7%)
- Range 0-100.
Rhetoric and Governing Party
POP_R
- Populist rhetoric score of the governing party that year · V-Party
- Range/values: 0.05 to 0.99 · Missing: 73 (13.9%)
- Range 0-1. Harmonic mean of "anti-elitism" and "people-centrism" -- see Documentation for the full definition.
POP_R_RANK
- Country's POP_R rank among countries with a POP_R value that year · Constructed
- Range/values: 1.00 to 24.00 · Missing: 73 (13.9%)
POP_R_PERCENTILE
- Country's POP_R percentile rank that year · Constructed
- Range/values: 0.04 to 1.00 · Missing: 73 (13.9%)
- Range 0-1.
PARTY_CODE
- V-Party's identifier code for the governing party · V-Party
- Range/values: 57 distinct values · Missing: 68 (13.0%)
PARTY_NAME
- Name of the governing party that year · V-Party
- Range/values: 62 distinct values · Missing: 68 (13.0%)
- Party attribution for change-of-government years follows the documented override file -- see the Data page.