Historical Voter Turnout Data

Free
National Statistics
tick

Annual Data

tick

Updated Annually

tick

> 1945

tick

194 Countries

tick

Worldwide

Summary

Historical parliamentary, presidential and EU parliament data for 200 countries since 1945

This is a sample visualization of a small subset of this data product.
Loading...
Charts of Historical Voter Turnout Data

Key Features

  • Historical data goes back to 1945
  • 200 countries' presidential, parliamentary and EU elections
  • Geographical, political and economical country attributes

Documentation

Applications

  • Voter turnout comparison in different geographical, political and economical country classifications
  • Determinants and demographics of turnout analysis
  • Democracy index analysis

Overview

Voting is important for democracy.

Historical voter turnout data product provides the statistics on voter turnout around the world. It contains the global collection of voter turnout statistics from presidential and parliamentary elections since 1945.

In a representative democracy voting is the method by which the electorate appoints its representatives to government. In a direct democracy, voting is the method by which the electorate directly make decisions, turn bills into laws, etc.

After increasing for many decades, there has been a trend of decreasing voter turnout in most established democracies since the 1980s. In general, low turnout is attributed to disillusionment, indifference, or a sense of futility (the perception that one's vote won't make any difference). In this database, different country attributes have been provided to help analyze the lower or higher voting turnouts' and its reasons.

Data Coverage

Indicators

  • Population
  • Voting Age Population
  • Registration
  • Total Vote
  • VAP Turnout Percent
  • Voter Turnout Percent
  • Invalid Votes Percent

Check out the Data and Dictionary section to learn about the indicators and country attributes which provide geographical, political and economical classifications of each country.

Data Sources

IDEA is the main source for the turnout dataset. Also, OECD, United Nations and World Bank were used to aggregate country attributes and classifications.

Dictionary

Filter
Column
Title
Data Type
Description
yearYearDateYear
iso_alpha2_codeISO Alpha-2 CodeTextTwo-letter country codes defined in ISO 3166-1, part of the ISO 3166 standard published by the International Organization for Standardization (ISO), to represent countries, dependent territories, and special areas of geographical interest
iso_alpha3_codeISO Alpha-3 CodeTextThree-letter country codes defined in ISO 3166-1, part of the ISO 3166 standard published by the International Organization for Standardization (ISO), to represent countries, dependent territories, and special areas of geographical interest
location_nameLocation NameTextStandard country names used by the United Nations Statistics Division
location_short_nameLocation Short NameTextPrimary name of the location used by Altadata
parent_location_nameParent Location NameTextName of the parent location ("parent" means the upper level from the hierarchical point of view, like a parent location for a subregion can be a region)
geo_region_nameGeographic Region NameTextName of the geographical region (countries and areas are grouped geographically into six regions by UNSD: Africa; Asia; Europe; Latin America and the Caribbean; Northern America, and Oceania
least_less_developed_regions_flagLeast / Less Developed Regions FlagTextFlag indicating if it is a least or less developed country (The designation "less developed" and "least developed" regions are intended for statistical purposes and do not express a judgment about the stage reached by a particular country or area in the development process. - The group of least developed countries includes 47 countries: 32 in Sub-Saharan Africa, 2 in Northern Africa and Western Asia, 4 in Central and Southern Asia, 4 in Eastern and South-Eastern Asia, 1 in Latin America and the Caribbean, 4 in Oceania - Other less developed countries comprise the less developed regions excluding the least developed countries)
lldc_sids_flagLLDC / SIDS FlagTextFlag indicating if it is a LLDC (Landlocked Developing Country) or SIDS (Small Island Developing States) - The United Nations LLDC term describes countries with serious constraints on the overall socio-economic development. Due to lack of territorial access to the sea and therefore remoteness and isolation from world markets causing high transit and transportation costs. - SIDS are a group of small island countries that tend to share similar sustainable development challenges, including small but growing populations, limited resources, remoteness, susceptibility to natural disasters, vulnerability to external shocks, excessive dependence on international trade, and fragile environments.)
wb_income_groupWorld Bank Income GroupTextThe country classification by income level based on per capita from the World Bank
tot_pop_less_than_90kTotal Population Less Than 90kBooleanYes/No flag to indicate countries with total population less than 90k
member_euEU Membership FlagBooleanTrue/False flag if the country is an UN member (The European Union (EU) is a political and economic union of 27 member states (as of 16 June 2016) that are located primarily in Europe.)
member_oecdOECD Membership FlagBooleanTrue/False flag if the country is an OECD member (The Organisation for Economic Co-operation and Development is an intergovernmental economic organisation with 37 member countries (as of 9 June 2018) founded in 1961 to stimulate economic progress and world trade. Generally, OECD members are high-income economies with a very high Human Development Index (HDI) and are regarded as developed countries.)
member_g20G20 Membership FlagBooleanTrue/False flag if the country is a G20 member (The G20 is an international forum for the governments and central bank governors from 19 countries and the European Union.)
fuel_exporting_countryFuel Exporting Country Flag BooleanTrue/False flag if the country is a fuel exporting country according to the World Bank
election_typeElection TypeTextType of election. Presidential or paliamentary
populationPopulationFloatPopulation is defined as all nationals present in, or temporarily absent from a country
total_voteTotal VoteFloatThe total number of votes cast in the relevant election. Total vote includes valid and invalid votes, as well as blank votes in cases where these are separated from invalid votes.
voting_age_populationVoting AgeFloatThe voting age population (VAP) includes all citizens above the legal voting age
registrationRegistred VotesFloatThe number of registered voters
compulsory_votingCompulsory VotingBooleanSome countries, where voting is considered a duty, voting at elections has been made compulsory and has been regulated in the national constitutions and electoral laws.
vap_turnout_percentVoting Age Population PercentFloatThe total number of votes cast (valid or invalid) divided by the Voting Age Population figure, expressed as a percentage.
invalid_votes_percentInvalid Votes PercentFloatPercentage of Invalid Votes
voter_turnout_percentVoter Turnout PercentFloatThe total number of votes cast (valid or invalid) divided by the number of names on the voters' register, expressed as a percentage

Sample Data

API

ALTADATA provides a powerfull API, compatible with JSON, CSV formats. You can connect, update and analyze our data products with cURL, Python, R, Ruby, Java or Javascript

Authentication

Getting an API key

You need to subscribe to an ALTADATA data product to get an API key. Once you subscribe to the data product you can find your API key on your Account Dashboard.

Auhenticating your requests

`api_key` is your access token. This token must be included on each API call with either a HTTP Header Authorization, or a query parameter api_key.

Example: https://www.altadata.io/data/api/co_07_ideax_02?api_key=YOUR_API_KEY

ALTADATA API Reference Table

Parameter Type Parameter Explanation Available Values Default
General size The number of records will be returned for each page. 5 - 100 20
General page The page number. It starts at 1 and increments one by one. Each page returns records that row count equals to the size parameter 1- ... 1
General format The data return format of API call json , csv json
General collapse The aggregation format of API call Examples are monthly, yearly, bystate, bycountry, etc. Refer to the data product documentation to see available aggregations for it. null
Select columns Column select is how you specify the content of an SQL SELECT c_only, c_certain, c_columns FROM clause. More detail is in the following sections. *
Order order_by Column order is how you specify the content of an SQL ORDER BY clause. More detail is in the following sections. null
Lookup vary by column name Column lookups are how you specify the content of an SQL WHERE clause. More detail is in the following sections. *

Select

Column select is how you specify the content of an SQL SELECT c_only, c_certain, c_columns FROM clause. It specifies as a keyword argument to the query string of API Call URL. Basic usage is a comma-separated list of column names. If not given, the default value is *(asterisk).

Example 1 :

Query : ?columns=C1,C2,C3 SQL Equivalent : Select C1,C2,C3 from DATA_PRODUCT

Example 2 :

Query : Not Given | ?columns= | ?columns=* SQL Equivalent : Select * from DATA_PRODUCT

Order

Column order is how you specify the content of an SQL ORDER BY clause. It specifies as a keyword argument to the query string of API Call URL. Basic usage is a comma-separated list of column names where each column name has an appropriate suffix (asc,desc) after _(underscore) or no suffix (means ascending).

Example :

Query : ?order_by=C1_asc,C2,C3_desc,C4_asc SQL Equivalent : Select * from DATA_PRODUCT order by C1 asc, C2, C4 desc, C4 asc

Order Type Suffix
Ascending null
Ascending asc
Descending desc

Lookup

Column lookups are how you specify the content of an SQL WHERE clause. They’re specifies as keyword arguments to the query string of API Call URL. Basic usage is appending _(underscore) then lookup type as a suffix to name of the column that you want to filter. The query parameter for a column is built like the format {COLUMN_NAME}_{LOOKUP_TYPE}

As a convenience when no lookup type is provided

Lookup Type Suffix Value Type Example SQL Equivalent
Equal to null String | Numeric | Datetime ?COLUMN=VALUE Select * from DATA_PRODUCT where COLUMN=VALUE
Equal to eq String | Numeric | Datetime ?COLUMN_eq=VALUE Select * from DATA_PRODUCT where COLUMN=VALUE
Not Equal to neq String | Numeric | Datetime ?COLUMN_neq=VALUE Select * from DATA_PRODUCT where COLUMN<>VALUE
Greater Than gt Numeric | Datetime ?COLUMN_gt=VALUE Select * from DATA_PRODUCT where COLUMN>VALUE
Greater Than or Equal to gte Numeric | Datetime ?COLUMN_gte=VALUE Select * from DATA_PRODUCT where COLUMN>=VALUE
Less Than lt Numeric | Datetime ?COLUMN_lt=VALUE Select * from DATA_PRODUCT where COLUMN,VALUE
Less Than or Equal to lte Numeric | Datetime ?COLUMN_lte=VALUE Select * from DATA_PRODUCT where COLUMN<=VALUE
In in String ?COLUMN_in=V1,V2,V3 Select * from DATA_PRODUCT where COLUMN in ('V1','V2','V3')
Not In notin String ?COLUMN_notin=V1,V2,V3 Select * from DATA_PRODUCT where COLUMN not in ('V1','V2','V3')

Data Access Examples

cURL
curl \ -H 'Authorization: api_key' \ 'https://www.altadata.io/data/api/co_07_ideax_02'
Python (requests)
response = requests.get( 'https://www.altadata.io/data/api/co_07_ideax_02', headers={'Authorization': 'api_key'} )
Ruby (open-uri)
require 'open-uri' response = URI.open('https://www.altadata.io/data/api/co_07_ideax_02', "Authorization" => "api_key" )
Java (OkHttp)
Request request = new Request.Builder() .url("https://www.altadata.io/data/api/co_07_ideax_02") .addHeader("Authorization", "api_key") .build(); Call call = client.newCall(request); Response response = call.execute();
Javascript (axios)
axios.request({ url: 'https://www.altadata.io/data/api/co_07_ideax_02', method: 'get', headers: { 'Authorization', 'api_key'} }) .then(response => { console.log(response.data) })
R ( jsonlite )
library(jsonlite) data <- fromJSON(`https://www.altadata.io/data/api/co_07_ideax_02`)

Frequently Asked Questions

HOW DO I SUBSCRIBE TO DATA PRODUCTS ON ALTADATA?
DO YOU PROVIDE CUSTOM DATASETS UPON REQUEST?
WHAT ARE THE DIFFERENT WAYS I CAN ACCESS MY SUBSCRIPTION DATA?
HOW CAN I QUICKLY LOOK AT WHAT IS IN THE DATA THAT I SUBSCRIBED TO?
HOW CAN I JOIN ALTADATA PARTNER NETWORK? DO YOU HAVE A LIST OF REQUIREMENTS?