Codebook

Author
Affiliation

Moritz Twente

University of Basel

Modified

February 15, 2026

Introduction

This codebook provides descriptions of the nordatlantisk-ft data set, i.e. of all files in /data/. Variables are described for each file individually with information on connections to other variables within the pipeline to create the data set. All data, unless otherwise specified, is retrieved from the records of the parliament of Denmark, Folketinget (2026). Refer to Berntzen et al. (2019) for background information on Folketinget’s open data ecosystem.

All data is available in rds format that can be read in an R Session via readRDS(). Where data is also available in csv format, tabular metadata is provided in json files according to the W3C Metadata Vocabulary for Tabular Data (W3C 2015).

File and Variable Descriptions

The general structure of the data used in the workflow to compile the final northatlantisk_ft.csv output is illustrated in Figure 1. Click on an element to jump to its description in the codebook.

classDiagram
    direction LR

    MP_dates .. MP_names
    MP_dates .. election_dates
    MP_dates .. political_parties

    MP_names *-- northatlantic_ft

    northatlantic_votes <|-- northatlantic_ft
    roll_call_results_ft <|-- northatlantic_ft

    MP_names *-- northatlantic_votes_raw
    northatlantic_votes_raw <|-- northatlantic_votes

    roll_call_info_raw <|-- roll_call_results_ft

    roll_call_info_raw ~~ ministries_lookup
    ministries_lookup <|-- roll_call_results_ft

    cabinets_fo .. cabinets_gl
    cabinets_gl .. cabinets_dk
    cabinets_dk <|-- northatlantic_ft

    MP_dates *-- northatlantic_ft

    class northatlantic_ft {
        roll_call_id : int
        MP_id : int
        surname : string
        origin : string
        party : string
        gvt_party_at_home : bool
        vote_type_id : int
        vote_id : int
        roll_call_pass : bool
        ft_process_step : string
        ministry : string
        ft_topic : string
        ft_for : int
        ft_against : int
        ft_abstention : int
        ft_absent : int
        date : date
        roll_call_type_id : int
        gvt_type_dk : string
        gvt_bloc_dk : string
        comment : string
        result_string : int
    }

        class northatlantic_votes {
        vote_id : int
        vote_type_id : int
        roll_call_id : int
        MP_id : int
    }

        class MP_dates {
        period_id : string
        surname : string
        first_name : string
        MP_id : int
        origin: string
        party : string
        start : date
        end : date
        substitute : bool
    }

    class election_dates {
        election : string
        election_type : string
        date : date
    }

    class MP_names {
        surname : string
        first_name : string
        MP_id : int
        wikidata_id : string
        origin : string
        party : string
        substitute : bool
    }

    class roll_call_results_ft {
        roll_call_id : int
        meeting_id : int
        roll_call_pass : bool
        date : date
        ft_topic : string
        ministry : string
        ft_for : int
        ft_against : int
        ft_abstention : int
        ft_absent : int
        ft_process_id : int
        ft_process_step : string
        roll_call_nr : int
        roll_call_type_id : int
        comment : string
        result_string : string
    }

    class roll_call_info_raw {
        id : int
        nummer : int
        konklusion : string
        vedtaget : bool
        kommentar : string
        mødeid : int
        typeid : int
        sagstrinid : int
        sagstrin_titel : string
        sagid : int
        sag_titel : string
        dato : date
        opdateringsdato : date
    }

    class ministries_lookup {
      sagid : int
      ministerium : string
      opdateringsdato : date
    }

    class northatlantic_votes_raw {
        id : int
        typeid : int
        afstemningid : int
        aktørid : int
        opdateringsdato : date
    }

    class political_parties {
        party : string
        full_name : string
        wikidata_id : string
        party_family : string
        colour : string
        origin : string
        left_right : float
        state_market : float
        liberty_authority : float
        anti_pro_eu : float
    }

    class cabinets_fo {
      cabinet : string
      wikidata_id : string
      location : string
      start : date
      end : date
      FO_&ast; : bool
    }

    class cabinets_gl {
      cabinet : string
      wikidata_id : string
      location : string
      start : date
      end : date
      GL_&ast; : bool
    }

    class cabinets_dk {
      cabinet : string
      wikidata_id : string
      bloc : string
      type : string
      start : date
      end : date
      DK_&ast; : bool
    }

style roll_call_info_raw fill:#6195CF,color:#FFFFFF
style roll_call_results_ft fill:#6195CF,color:#FFFFFF
style ministries_lookup fill:#9bc0e8

style northatlantic_ft fill:#F7CB45

style northatlantic_votes_raw fill:#FFEAAE
style northatlantic_votes fill:#FFEAAE

style MP_names fill:#D1BBD7
style MP_dates fill:#D1BBD7

click MP_dates href "#mp_dates" "tooltip"
click election_dates href "#election_dates" "tooltip"
click political_parties href "#political_parties" "tooltip"
click MP_names href "#MP_names" "tooltip"
click northatlantic_votes_raw href "#northatlantic_votes_raw" "tooltip"
click northatlantic_votes href "#northatlantic_votes" "tooltip"
click ministries_lookup href "#ministries_lookup" "tooltip"
click roll_call_info_raw href "#roll_call_info_raw" "tooltip"
click roll_call_results_ft href "#roll_call_results_ft" "tooltip"
click cabinets_fo href "#cabinets_fo" "tooltip"
click cabinets_gl href "#cabinets_gl" "tooltip"
click cabinets_dk href "#cabinets_dk" "tooltip"
click northatlantic_ft href "#northatlantic_ft" "tooltip"
Figure 1: Chart illustrating the files used to create the dataset including variable names and types.

MP_names

This repository is shipped with a list of all Folketinget MPs that have represented the Faroe Islands and Greenland from October 07, 2004 until the most recent update of this data set (on February 15, 2026), which results in 30 MPs.

MP_names is provided in csv and rds formats in /data/processed. Metadata for the csv file is provided in an accompanying json metadata file. These files are compiled by executing the script at src/create_MP_list.R and other MPs should be added by updating this script.

The rds file serves as starting point for building the data set, as the workflow pipeline1 retrieves data from Folketinget’s Open Data Portal based on which MPs are listed in this file.

str(MP_names)
'data.frame':   30 obs. of  7 variables:
 $ surname    : chr  "Olsvig" "Lund Olsen" "Jakobsen" "Johansen" ...
 $ first_name : chr  "Sara" "Johan" "Doris" "Lars-Emil" ...
 $ MP_id      : Factor w/ 30 levels "12283","13","14000",..: 2 21 22 27 28 4 26 3 5 6 ...
 $ wikidata_id: Factor w/ 30 levels "Q102501785","Q114967087",..: 28 24 4 18 13 30 20 7 11 10 ...
 $ origin     : Factor w/ 2 levels "FO","GL": 2 2 2 2 2 2 2 2 2 2 ...
 $ party      : Factor w/ 9 levels "A","B","C","E",..: 5 5 7 7 5 5 5 7 5 9 ...
 $ substitute : logi  FALSE TRUE FALSE FALSE FALSE TRUE ...

Descriptions of all variables in MP_names are provided in the following sections.

MP_names$surname

All surname(s) are stored as values of the type character. Names are spelled according to standardised orthography and, in terms of morphology, in nominative (Faroese) resp. absolutive (Greenlandic) case. Because there are be multiple MPs with the same surname(s), refer to MP_names$MP_id instead for reliable identification.

head(MP_names$surname)
[1] "Olsvig"     "Lund Olsen" "Jakobsen"   "Johansen"   "Kleist"    
[6] "Rossen"    

MP_names$first_name

All first names are stored as values of the type character. Names are spelled according to standardised orthography and, morphologically, in nominative (Faroese) resp. absolutive (Greenlandic) case. Because there may be multiple MPs with the same first name(s), refer to MP_names$MP_id instead for reliable identification.

head(MP_names$first_name)
[1] "Sara"      "Johan"     "Doris"     "Lars-Emil" "Kuupik"    "Sofia"    

MP_names$MP_id

Each MP is assigned an ID by Folketingets åbne data service (ODA). Each MP_id thus is a unique identifier for one member of Folketinget. All IDs are stored as values of the type integer as factor variable. It is possible to use these IDs e.g. for querying the online database to retrieve documents that relate to a given MP or to find out which parliamentary processes this MP has been engaged in. The Folketing ID is also available as Wikidata Property P10207.

head(MP_names$MP_id)
[1] 13   277  294  670  672  1484
30 Levels: 12283 13 14000 1484 15757 15758 15881 17988 1833 18545 ... 9780

This variable corresponds to the aktørid variable and the Aktør resource in the Folketing online database. Note that in Folketinget’s data model, ministries, parliamentary commissions, NGOs etc. are also listed as Aktør with their resp. aktørid.

MP_names$wikidata_id

Apart from MP_names$MP_id, each MP’s Wikidata QID is stored in MP_names for further processing options. This identifier can be used to query Wikidata to supplement the dataset with further information. At the moment, this identifier is not used in any step of the processing pipeline.

head(MP_names$wikidata_id)
[1] Q8084240  Q5965473  Q12308847 Q468034   Q317400   Q86523542
30 Levels: Q102501785 Q114967087 Q122762872 Q12308847 Q136486981 ... Q86523542

MP_names$origin

Using ISO 3166-2 codes, origin indicates whether an MP was elected in either Greenland (GL) or the Faroe Islands (FO). This variable is stored as value of the type integer as factor variable. Note that this only indicates where the MP in question ran for office. MPs with ties to Greenland or the Faroe Islands who won a Folketinget mandate in a continental election district are thus not part of this data set, as they are not considered Northatlantic MPs.

summary(MP_names$origin)
FO GL 
17 13 

MP_names$party

The political party that each MP belongs to is stored as value of the type integer as factor variable.

Since 2004, MPs from the Faroe Islands were members of 4 different political parties. Voters in Greenland elected politicians from 2 different political parties. However, as per February 2026, there have been two MPs from Greenland who left their party – Siumut, in both cases – during their time in office and joined other parties (Nunatta Qitornai and Naleraq2).

For now, the MP_names data frame does not include information on membership periods etc. At the moment, these two cases are therefore stored with a single string without distinguishing between membership periods. Instead, a timeline of party membership(s) can be inferred using the information available in MP_dates. See also political_parties.

summary(MP_names$party)
      A       B       C       E      IA       N     SIU  SIU, N SIU, NQ 
      1       6       6       4       6       1       4       1       1 

All represented political parties are listed in Table 1 with additional information (where available) on their positions from the ParlGov dataset (Döring, Huber, and Manow 2024).

Table 1: List of political parties from Greenland and the Faroe Islands with a MP in Folketinget since 2004.
Greenlandic Parties
Party Full Name Party Family Left–Right State–Market Liberty–Authority Anti–Pro-EU
IA Inuit Ataqatigiit Communist/Socialist 1.3 1.4 3.0 3.3
N Naleraq NA NA NA NA NA
NQ Nunatta Qitornai NA NA NA NA NA
SIU Siumut Social Democracy 3.3 3.5 3.5 8.1
Faroese Parties
Party Full Name Party Family Left–Right State–Market Liberty–Authority Anti–Pro-EU
A Fólkaflokkurin Conservative 7.4 6.4 6.9 7.9
B Sambandsflokkurin Conservative 7.4 6.4 6.9 7.9
C Javnaðarflokkurin Social Democracy 3.3 3.5 3.5 8.1
E Tjóðveldi Communist/Socialist 1.3 1.4 3.0 3.3

MP_names$substitute

Some of the politicians that are part of this data set joined Folketinget in the role of a substitute member, filling in for the originally elected MPs while they were on leave (cf. Harder 2022, 12–13). Doris Jakobsen (SIU), Lisbeth Petersen (B), Magni Arge (E) and Sjúrður Skaale (C) all first became MPs as substitute members, but later joined as regular MPs after a general election. For now, they are listed as full members in MP_names. More detailed data on membership periods is available in MP_dates.

summary(MP_names$substitute)
   Mode   FALSE    TRUE 
logical      15      15 

MP_dates

The dataset includes detailed information on membership timelines of MPs in Folketinget. Because a substantial share of MPs from Greenland and the Faroe Islands were absent for a longer period (Harder 2022, 12–13), there have been a number of substitute MPs (stedfortrædere) replacing the originally elected politicians during their time(s) of absence. Those MPs are listed here as well. As of February 15, 2026, MP_dates includes 71 observations of 9 variables.

MP_dates is provided in csv and rds formats in /data/processed. Metadata for the csv file is provided in an accompanying json metadata file. These files are compiled by executing the script at src/create_MP_dates.R and other MPs should be added by updating this script.

str(MP_dates)
'data.frame':   71 obs. of  9 variables:
 $ period_id : Factor w/ 71 levels "a-fridriksmork_1",..: 53 54 55 56 57 46 47 48 49 29 ...
 $ surname   : chr  "Olsvig" "Olsvig" "Olsvig" "Olsvig" ...
 $ first_name: chr  "Sara" "Sara" "Sara" "Sara" ...
 $ MP_id     : Factor w/ 30 levels "12283","13","14000",..: 2 2 2 2 2 21 21 21 21 22 ...
 $ origin    : Factor w/ 2 levels "FO","GL": 2 2 2 2 2 2 2 2 2 2 ...
 $ party     : Factor w/ 9 levels "A","B","C","E",..: 5 5 5 5 5 5 5 5 5 8 ...
 $ start     : Date, format: "2011-09-15" "2013-09-14" ...
 $ end       : Date, format: "2013-09-08" "2013-10-01" ...
 $ substitute: logi  FALSE FALSE FALSE FALSE FALSE TRUE ...

Descriptions of all variables in MP_dates are provided in the following sections.

MP_dates$period_id

Each recorded membership period can be reliably identified by using the period_id variable, allowing to distinguish between multiple membership periods of the same politician(s). Period IDs are stored as factor variables.

str(MP_dates$period_id)
 Factor w/ 71 levels "a-fridriksmork_1",..: 53 54 55 56 57 46 47 48 49 29 ...

MP_dates$surname

All surname(s) are stored as values of the type character. Names are spelled according to standardised orthography and, in terms of morphology, in nominative (Faroese) resp. absolutive (Greenlandic) case. Because there are be multiple MPs with the same surname(s), refer to MP_dates$MP_id instead for reliable identification of each MP and to MP_dates$period_id for reliable identification of membership periods. See also MP_names$surname.

str(MP_dates$surname)
 chr [1:71] "Olsvig" "Olsvig" "Olsvig" "Olsvig" "Olsvig" "Lund Olsen" ...

MP_dates$first_name

All first names are stored as values of the type character. Names are spelled according to standardised orthography and, morphologically, in nominative (Faroese) resp. absolutive (Greenlandic) case. Because there may be multiple MPs with the same first name(s), refer to MP_dates$MP_id instead for reliable identification. See also MP_names$first_name.

str(MP_dates$first_name)
 chr [1:71] "Sara" "Sara" "Sara" "Sara" "Sara" "Johan" "Johan" "Johan" ...

MP_dates$MP_id

Each MP is assigned an ID by Folketingets åbne data service (ODA). Each MP_id thus is a unique identifier for one member of Folketinget. All IDs are stored as values of the type integer as factor variable. It is possible to use these IDs e.g. for querying the online database to retrieve documents that relate to a given MP or to find out which parliamentary processes this MP has been engaged in. The Folketing ID is also available as Wikidata Property P10207. See also MP_names$MP_id.

str(MP_dates$MP_id)
 Factor w/ 30 levels "12283","13","14000",..: 2 2 2 2 2 21 21 21 21 22 ...

MP_dates$origin

Using ISO 3166-2 codes, origin indicates whether an MP was elected in either Greenland (GL) or the Faroe Islands (FO). This variable is stored as value of the type integer as factor variable. Note that this only indicates where the MP in question ran for office. MPs with ties to Greenland or the Faroe Islands who won a Folketinget mandate in a continental election district are thus not part of this data set, as they are not considered Northatlantic MPs.

summary(MP_dates$origin)
FO GL 
39 32 

MP_dates$party

The political party that each MP belongs to is stored as value of the type integer as factor variable. See MP_names$party and political_parties for more information. In contrast to those, MP_dates$party actually provides information on changing party membership(s) since membership entries are split up on a timeline. This way, it’s possible to match each recorded vote to the valid party membership at a specific point in time.

Note that the value UF means that the MP is not a member of a political group/party at the time (uden for folketingsgrupperne).

unique(MP_dates$party)
[1] IA  SIU UF  NQ  N   B   E   C   A  
Levels: A B C E IA N NQ SIU UF

MP_dates$start

The date on which each membership period begins is stored as Date variable of the type double. Calendar information is formatted as %Y-%m-%d, the earliest entry being from October 06, 1988 (1988-10-06) and the most recent entry from November 14, 2025 (2025-11-14) as of February 2026.

In this data set, a membership period is either starting when a politicians joins Folketinget for the first time, if the MP in question is re-joining after being replaced by a temporary substitute member or if there is a change in party affiliation.

head(MP_dates$start)
[1] "2011-09-15" "2013-09-14" "2013-11-19" "2014-04-25" "2015-05-27"
[6] "2013-09-08"

MP_dates$end

The date on which each membership period ends is stored as Date variable of the type double. Calendar information is formatted as %Y-%m-%d, the earliest entry being from October 19, 1988 (1988-10-19) as of February 2026.

In this data set, a membership period ends either when a politicians leaves Folketinget for good, if the MP in question is temporarily being replaced by a temporary substitute member or if there is a change in party affiliation.

head(MP_dates$end)
[1] "2013-09-08" "2013-10-01" "2014-03-21" "2014-09-15" "2015-06-18"
[6] "2013-09-14"

MP_dates$substitute

Some of the politicians that are part of this data set joined Folketinget in the role of a substitute member, filling in for the originally elected MPs while they were on leave (cf. Harder 2022, 12–13). Doris Jakobsen (SIU), Lisbeth Petersen (B), Magni Arge (E) and Sjúrður Skaale (C) all first became MPs as substitute members, but later joined as regular MPs after a general election. In contrast to the data in MP_names$substitute, the data available in MP_dates$substitute also distinguishes between MPs that first joined as substitute MPs but became regular MPs at a later date.

As per February 15, 2026, 19 of the politicians that are part of this data set joined Folketinget in the role of a substitute member, filling in for one of the originally elected MPs while they were on leave (cf. Harder 2022, 12–13).

summary(MP_dates$substitute)
   Mode   FALSE    TRUE 
logical      44      27 

election_dates

This repository is shipped with a list of all elections to the parliaments in Denmark (Folketinget), Greenland (Inatsisartut) and the Faroe Islands (Løgtingið) that led to the formation of the parliaments in session during the time period covered by this data set. This translates to 7 elections to Folketing, 8 elections to Inatsisartut, and 6 elections to Løgting. The earliest election included is the one held on November 20, 2001, while the most recent election included was held on March 11, 2025.

The contents of election_dates is not used during the workflow to compile the final northatlantik_ft data set, but is used as secondary data for visualisation purposes.

election_dates is provided in csv and rds formats in /data/processed. Metadata for the csv file is provided in an accompanying json metadata file. These files are compiled by executing the script at src/create_election_list.R and following elections should be added by updating this script.

str(election_dates)
'data.frame':   21 obs. of  3 variables:
 $ election     : chr  "ft_2001" "ft_2005" "ft_2007" "ft_2011" ...
 $ election_type: Factor w/ 3 levels "Folketing Election",..: 1 1 1 1 1 1 1 2 2 2 ...
 $ date         : Date, format: "2001-11-20" "2005-02-08" ...

Descriptions of all variables in election_dates are provided in the following sections.

election_dates$election

The election variable is the unique identifier for each recorded election in this dataset. All entries are stored as values of the type character as character variable.

head(election_dates$election)
[1] "ft_2001" "ft_2005" "ft_2007" "ft_2011" "ft_2015" "ft_2019"

election_dates$election_type

The election_dates dataset includes elections to three different parliaments: Danish Folketinget, Greenlandic Inatsisartut and Faroese Løgtingið. To distinguish between elections, the type of election is stored in election_dates$election_type. All entries are stored as values of the type integer as factor variable.

summary(election_dates$election_type)
   Folketing Election Inatsisartut Election      Løgting Election 
                    7                     8                     6 

election_dates$date

The date of each election is stored in election_dates$date, indicating the day of voting. All entries are stored as values of the type double as Date variable. The dates are formatted using the %Y-%m-%d notation.

Note that the 2022 Folketing election which took place in Denmark and Greenland on November 01, 2022 was held earlier on the Faroe Islands – it was moved up to October 31, 2022 due to a Faroese public holiday (Statsministeriet 2022).

str(election_dates$date)
 Date[1:21], format: "2001-11-20" "2005-02-08" "2007-11-13" "2011-09-15" "2015-06-18" ...

political_parties

This repository is shipped with a list of political parties that have been represented in Folketinget during the time period covered by this data set. This list was most recently updated on February 15, 2026 and includes 8 political parties. From these parties, 4 are from Greenland and 4 from the Faroe Islands.

The contents of election_dates is not used during the workflow to compile the final northatlantik_ft data set, but is used as secondary data for visualisation purposes.

political_parties is provided is provided in csv and rds formats in /data/processed. Metadata for the csv file is provided in an accompanying json metadata file.

str(political_parties)
'data.frame':   8 obs. of  10 variables:
 $ party            : Factor w/ 8 levels "A","B","C","E",..: 5 6 7 8 1 2 3 4
 $ full_name        : chr  "Inuit Ataqatigiit" "Naleraq" "Nunatta Qitornai" "Siumut" ...
 $ wikidata_id      : Factor w/ 8 levels "Q1128374","Q16856492",..: 1 2 3 4 7 8 6 5
 $ party_family     : Factor w/ 3 levels "Communist/Socialist",..: 1 NA NA 3 2 2 3 1
 $ colour           : chr  "#AB2328" "#FF6900" "#A1359B" "#0385FF" ...
 $ origin           : Factor w/ 2 levels "FO","GL": 2 2 2 2 1 1 1 1
 $ left_right       : num  1.3 NA NA 3.3 7.4 7.4 3.3 1.3
 $ state_market     : num  1.4 NA NA 3.5 6.4 6.4 3.5 1.4
 $ liberty_authority: num  3 NA NA 3.5 6.9 6.9 3.5 3
 $ anti_pro_eu      : num  3.3 NA NA 8.1 7.9 7.9 8.1 3.3

Descriptions of all variables in political_parties are provided in the following sections.

political_parties$party

The party variable of political_parties stores the common abbreviation for each party. All entries are stored as values of the type integer as factor variable.

Note that while political parties in Greenland are abbreviated using letters actually corresponding to their official names, this is not the case for parties in Denmark and and the Faroe Islands. Here, parties are often referred to by their one-letter reference code (Bogstavsbetegnelser). This code does not necessarily correspond to any part of the party’s official name, but is simply a commonly used shorthand for the party. For example, the Faroese Social Democratic Party (Javnaðarflokkurin) is commonly labelled as C, even though the letter does not appear anywhere in the party’s name.

head(political_parties$party)
[1] IA  N   NQ  SIU A   B  
Levels: A B C E IA N NQ SIU

political_parties$full_name

The full_name variable of political_parties stores the full name for each party. Names are spelled according to standardised orthography and, in terms of morphology, in nominative (Faroese) resp. absolutive (Greenlandic) case. All entries are stored as values of the type character as character variable.

str(political_parties$full_name)
 chr [1:8] "Inuit Ataqatigiit" "Naleraq" "Nunatta Qitornai" "Siumut" ...

political_parties$wikidata_id

The wikidata_id variable stores the QID linking to the Wikidata entity representing the political party in question, making it easy to retrieve additional information from Wikidata, if necessary. This variable is stored as value of the type integer as factor variable.

head(political_parties$wikidata_id)
[1] Q1128374  Q16856492 Q50802925 Q571175   Q932342   Q932400  
8 Levels: Q1128374 Q16856492 Q50802925 Q571175 Q750962 Q856027 ... Q932400

political_parties$party_family

The party_family variable of political_parties stores the label for the political party family the party is matched with in the ParlGov dataset (Döring, Huber, and Manow 2024). All entries are stored as values of the type integer as factor variable.

Note that party families are not listed for parties that have MPs in Folketinget for the first time after the last update of the ParlGov dataset (Naleraq, Nunatta Qitornai).

head(political_parties$party_family)
[1] Communist/Socialist <NA>                <NA>               
[4] Social Democracy    Conservative        Conservative       
Levels: Communist/Socialist Conservative Social Democracy

political_parties$colour

The colour variable of political_parties stores HEX codes corresponding to the colour usually associated with the party. All entries are stored as values of the type character as character variable. The codes are retrieved from each party’s Wikipedia article.

head(political_parties$colour)
[1] "#AB2328" "#FF6900" "#A1359B" "#0385FF" "#347235" "#00008B"

political_parties$origin

Using ISO 3166-2 codes, origin indicates whether a party stands for election in either Greenland (GL) or the Faroe Islands (FO). This variable is stored as value of the type integer as factor variable. As per February 2026, political_parties lists 4 Greenlandic and 4 Faroese parties.

summary(political_parties$origin)
FO GL 
 4  4 

political_parties$left_right

left_right indicates where a party’s positions are located on a scale from 0 (left) to 10 (right). Values are taken directly from the ParlGov dataset (Döring, Huber, and Manow 2024). This variable is stored as value of the type double as numeric variable.

Note that party positions are not listed for parties that have MPs in Folketinget for the first time after the last update of the ParlGov dataset (Naleraq, Nunatta Qitornai).

head(political_parties$left_right)
[1] 1.3  NA  NA 3.3 7.4 7.4

political_parties$state_market

state_market indicates where a party’s positions on regulating the economy are located on a scale from 0 (preferring state regulations) to 10 (preferring unregulated markets). Values are taken directly from the ParlGov dataset (Döring, Huber, and Manow 2024). This variable is stored as value of the type double as numeric variable.

Note that party positions are not listed for parties that have MPs in Folketinget for the first time after the last update of the ParlGov dataset (Naleraq, Nunatta Qitornai).

head(political_parties$state_market)
[1] 1.4  NA  NA 3.5 6.4 6.4

political_parties$liberty_authority

liberty_authority indicates a party’s position on a scale from 0 (libertarian) to 10 (authoritarian). Values are taken directly from the ParlGov dataset (Döring, Huber, and Manow 2024). This variable is stored as value of the type double as numeric variable.

Note that party positions are not listed for parties that have MPs in Folketinget for the first time after the last update of the ParlGov dataset (Naleraq, Nunatta Qitornai).

head(political_parties$liberty_authority)
[1] 3.0  NA  NA 3.5 6.9 6.9

political_parties$anti_pro_eu

anti_pro_eu indicates a party’s position towards EU integration on a scale from 0 (in favor of EU integration) to 10 (against EU integration). Values are taken directly from the ParlGov dataset (Döring, Huber, and Manow 2024). This variable is stored as value of the type double as numeric variable.

Note that party positions are not listed for parties that have MPs in Folketinget for the first time after the last update of the ParlGov dataset (Naleraq, Nunatta Qitornai).

head(political_parties$anti_pro_eu)
[1] 3.3  NA  NA 8.1 7.9 7.9

northatlantic_votes

After all votes cast by the MPs specified in MP_names are downloaded, they are processed and then stored in this file. As per February 2026, northatlantic_votes.rds contains 41038 observations of 4 variables.

northatlantic_votes is provided as rds file in /data/processed/. The unprocessed raw data is available as rds file in /data/raw/.

str(northatlantic_votes)
'data.frame':   41038 obs. of  4 variables:
 $ vote_id     : Factor w/ 41038 levels "154","158","161",..: 1 2 3 4 5 6 7 8 9 10 ...
 $ vote_type_id: Factor w/ 4 levels "1","2","3","4": 3 3 3 3 3 3 3 3 3 3 ...
 $ roll_call_id: int  1 1 1 1 2 2 2 2 283 283 ...
 $ MP_id       : Factor w/ 29 levels "13","247","262",..: 2 3 5 1 2 3 5 1 2 3 ...

Descriptions of all variables in northatlantic_votes are provided in the following sections.

northatlantic_votes$vote_id

All votes cast in Folketinget are assigned an ID by Folketingets åbne data service (ODA). Each vote ID is thus a unique identifier for one vote cast in Folketinget. All IDs are stored as values of the type integer as factor variable.

This variable corresponds to the id variable and the Stemme resource in the Folketing online database.

head(northatlantic_votes$vote_id)
[1] 154 158 161 177 332 338
41038 Levels: 154 158 161 177 332 338 341 356 113800 113808 113812 ... 2357426

northatlantic_votes$vote_type_id

All votes cast in Folketinget are recorded using numeric values that correspond to the MP’s decision (see Table 2). All Vote Type IDs are stored as values of the type integer as factor variable.

Table 2: Vote Type IDs as used by Folketinget’s Open Data Service
ID Result English n
1 for for 355
2 imod against 326
3 fravær absence 40224
4 hverken for eller imod abstention 133

This variable corresponds to the typeid variable and the Stemmetype resource in the Folketing online database.

head(northatlantic_votes$vote_type_id)
[1] 3 3 3 3 3 3
Levels: 1 2 3 4

northatlantic_votes$roll_call_id

All roll call procedures in Folketinget are assigned an ID by Folketingets åbne data service (ODA). Each roll call ID is thus a unique identifier for one roll call in Folketinget. All IDs are stored as values of the type integer as integer variable.

This variable corresponds to the roll_call_results_ft$roll_call_id variable and the Afstemning resource in the Folketing online database. Take care not to confuse roll_call_id with roll_call_results_ft$roll_call_nr.

head(northatlantic_votes$roll_call_id)
[1] 1 1 1 1 2 2

northatlantic_votes$MP_id

See MP_names$MP_id.

head(northatlantic_votes$MP_id)
[1] 247 262 294 13  247 262
29 Levels: 13 247 262 277 294 670 672 918 1484 1833 3093 6684 6687 ... 21206

northatlantic_votes_raw

northatlantic_votes_raw contains the downloaded data on voting records before any preprocessing. As of February 2026, northatlantic_votes_raw.rds contains 41038 observations of 5 variables.

northatlantic_votes_raw is provided as rds file in /data/raw/. The processed data is available as rds file in /data/processed.

str(northatlantic_votes_raw)
'data.frame':   41038 obs. of  5 variables:
 $ id             : int  154 158 161 177 332 338 341 356 113800 113808 ...
 $ typeid         : int  3 3 3 3 3 3 3 3 3 3 ...
 $ afstemningid   : int  1 1 1 1 2 2 2 2 283 283 ...
 $ aktørid        : int  247 262 294 13 247 262 294 13 247 262 ...
 $ opdateringsdato: POSIXct, format: "2014-09-09 09:05:59" "2014-09-09 09:05:59" ...

Descriptions of all variables in northatlantic_votes_raw are provided in the following sections.

northatlantic_votes_raw$id

See northatlantic_votes$vote_id. In the raw data, id is stored as integer value.

head(northatlantic_votes_raw$id)
[1] 154 158 161 177 332 338

northatlantic_votes_raw$typeid

See northatlantic_votes$vote_type_id. In the raw data, typeid is stored as integer value.

unique(northatlantic_votes_raw$typeid)
[1] 3 1 4 2

northatlantic_votes_raw$afstemningid

See northatlantic_votes$roll_call_id. In the raw data, afstemningid is stored as integer value.

Take care not to confuse afstemningid with roll_call_results_ft$roll_call_nr.

head(northatlantic_votes_raw$afstemningid)
[1] 1 1 1 1 2 2

northatlantic_votes_raw$aktørid

See northatlantic_votes$MP_id. In the raw data, aktørid is stored as integer value.

head(northatlantic_votes_raw$aktørid)
[1] 247 262 294  13 247 262

northatlantic_votes_raw$opdateringsdato

For all records kept in the Folketing online database, the time stamp of its most recent update is stored in opdateringsdato. All dates are stored as values of the type double. The time stamps are originally formatted as %Y-%m-%dT%T, with some values even at split second level, but simplified to %Y-%m-%d after downloading.

This variable is eliminated from northatlantic_votes as a result of data processing but used to check for updates in the raw data on voting records when running the workflow pipeline.

head(northatlantic_votes_raw$opdateringsdato)
[1] "2014-09-09 09:05:59 UTC" "2014-09-09 09:05:59 UTC"
[3] "2014-09-09 09:05:59 UTC" "2014-09-09 09:05:59 UTC"
[5] "2014-09-09 09:25:05 UTC" "2014-09-09 09:25:05 UTC"

roll_call_results_ft

After all roll calls are downloaded, they are processed and then stored in this file. As of February 2026, roll_call_results_ft.rds contains 10478 observations of 16 variables.

roll_call_results_ft is provided as rds file in /data/processed/. The unprocessed raw data is available as rds file in /data/raw/.

str(roll_call_results_ft)
'data.frame':   10478 obs. of  16 variables:
 $ roll_call_id     : int  1 2 3 4 5 6 7 8 9 10 ...
 $ meeting_id       : int  17 18 41 156 18 15 962 962 962 962 ...
 $ roll_call_pass   : logi  TRUE TRUE TRUE TRUE TRUE TRUE ...
 $ date             : Date, format: "2014-09-09" "2014-09-09" ...
 $ ft_topic         : chr  NA "Forslag til lov om ændring af virksomhedsskatteloven og kildeskatteloven. (Indgreb mod utilsigtet udnyttelse af"| __truncated__ "Folketinget konstaterer, at Danmark stod dårligt rustet til at stå imod den økonomiske krise og derfor mistede "| __truncated__ "Forslag til lov om akutjob og jobpræmie til arbejdsgivere." ...
 $ ministry         : chr  NA "Skatteministeriet" NA "Beskæftigelsesministeriet" ...
 $ ft_for           : num  108 98 59 72 98 104 4 16 59 70 ...
 $ ft_against       : num  0 10 54 10 10 0 57 77 33 33 ...
 $ ft_abstention    : num  0 0 0 26 0 0 45 13 13 5 ...
 $ ft_absent        : num  71 71 66 71 71 75 73 73 74 71 ...
 $ ft_process_id    : int  NA 4849 17351 18370 4849 16581 3311 3220 4856 2500 ...
 $ ft_process_step  : chr  NA "3. behandling" "Behandling" "3. behandling" ...
 $ roll_call_nr     : int  411 412 1 7 412 410 408 407 404 405 ...
 $ roll_call_type_id: int  2 1 3 1 1 1 1 1 1 1 ...
 $ comment          : chr  NA NA NA NA ...
 $ result_string    : chr  "Vedtaget\n\n108 stemmer for forslaget (V, S, DF, RV, SF, EL, LA, KF, UFG)\n\n0 stemmer imod forslaget\n\n0 stem"| __truncated__ "Vedtaget\n\n98 stemmer for forslaget (V, S, DF, RV, SF, EL)\n\n10 stemmer imod forslaget (LA, KF)\n\n0 stemmer "| __truncated__ "Vedtaget\n\n59 stemmer for forslaget (S, RV, SF, EL)\n\n54 stemmer imod forslaget (V, DF, LA, KF)\n\n0 stemmer "| __truncated__ "Vedtaget\n\n72 stemmer for forslaget (S, DF, RV, SF, EL)\n\n10 stemmer imod forslaget (LA, KF)\n\n26 stemmer hv"| __truncated__ ...

Descriptions of all variables in roll_call_results_ft are provided in the following sections.

roll_call_results_ft$roll_call_id

See northatlantic_votes$roll_call_id. Take care not to confuse roll_call_id with roll_call_nr.

head(roll_call_results_ft$roll_call_id)
[1] 1 2 3 4 5 6

roll_call_results_ft$meeting_id

All meetings in Folketinget are assigned an ID by Folketingets åbne data service (ODA). Each meeting ID is thus a unique identifier for one meeting in Folketinget. All IDs are stored as values of the type integer as integer variable.

This variable corresponds to the mødeid variable and the Møde resource in the Folketing online database.

head(roll_call_results_ft$meeting_id)
[1]  17  18  41 156  18  15

roll_call_results_ft$roll_call_pass

The result of all roll calls in Folketinget is stored in roll_call_pass as logical variable. If parliament votes in favor of a proposal, it passes and roll_call_pass is assigned TRUE; if parliament votes a proposal down, it does not pass and roll_call_pass is assigned FALSE.

This variable corresponds to the vedtaget variable in the Afstemning resource in the Folketing online database.

summary(roll_call_results_ft$roll_call_pass)
   Mode   FALSE    TRUE 
logical    4840    5638 

roll_call_results_ft$date

The date on which each roll call takes place in Folketinget is stored as Date variable of the type double. Calendar information is formatted as %Y-%m-%d, the earliest entry being from October 07, 2004 (2004-10-07) and the most recent entry from February 05, 2026 (2026-02-05) as of February 2026.

head(roll_call_results_ft$date)
[1] "2014-09-09" "2014-09-09" "2012-10-04" "2012-11-06" "2014-09-09"
[6] "2014-08-27"

roll_call_results_ft$ft_topic

Each proposal that is being voted on in Folketinget has a description of the topic(s) that are mentioned in the proposal. This description is stored in ft_topic. Topic descriptions are stored as values of the type character.

This variable corresponds to the titel variable in the Sag resource in the Folketing online database (which additionally provides a shorter version with less formalised language in the titelkort variable).

head(roll_call_results_ft$ft_topic)
[1] NA                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
[2] "Forslag til lov om ændring af virksomhedsskatteloven og kildeskatteloven. (Indgreb mod utilsigtet udnyttelse af virksomhedsordningen ved indskud af privat gæld m.v.)."                                                                                                                                                                                                                                                                                                                                                   
[3] "Folketinget konstaterer, at Danmark stod dårligt rustet til at stå imod den økonomiske krise og derfor mistede uforholdsmæssigt mange arbejdspladser. Den økonomiske krise har fortsat et alvorligt tag i Danmark.\n\nI den situation er der fortsat behov for en politisk indsats for at skabe arbejdspladser på kort og på lang sigt, bl.a. gennem grøn omstilling, at bekæmpe ulighed, fattigdom og social dumping samt at løfte Danmark uddannelsesmæssigt, så den næste generation bliver den dygtigste nogen sinde."
[4] "Forslag til lov om akutjob og jobpræmie til arbejdsgivere."                                                                                                                                                                                                                                                                                                                                                                                                                                                               
[5] "Forslag til lov om ændring af virksomhedsskatteloven og kildeskatteloven. (Indgreb mod utilsigtet udnyttelse af virksomhedsordningen ved indskud af privat gæld m.v.)."                                                                                                                                                                                                                                                                                                                                                   
[6] "Forslag til folketingsbeslutning om dansk militært bidrag til støtte for indsatsen i Irak."                                                                                                                                                                                                                                                                                                                                                                                                                               

roll_call_results_ft$ministry

Each proposal that is being voted on in Folketinget is assigned to one ministry that is responsible for handling the government’s end. The name of that ministry is stored in this variable for each observation. Ministry names are stored as values of the type character in Danish language.

This variable is joined from ministries_lookup based on roll_call_info_raw$sagid and corresponds to the navn variable in the SagAktør resource in the Folketing online database, filtered for those aktørid values that are designated as Ministerområde (rolleid = 6) for the Sag in question.

head(roll_call_results_ft$ministry)
[1] NA                          "Skatteministeriet"        
[3] NA                          "Beskæftigelsesministeriet"
[5] "Skatteministeriet"         "Udenrigsministeriet"      

Note that since designations and areas of responsibilities have changed over time, there will be several instances of, e.g. transport ministries (Transportministeriet, Transport- og Energiministeriet, Transport- og Boligministeriet, Transport- og Bygningsministeriet as well as Transport-, Bygnings- og Boligministeriet). See northatlantic_ft$ministry for a list of all occurring ministries.

roll_call_results_ft$ft_for

In ft_for, the number of votes cast in favor of a proposal is stored as numeric variable of the type double.

The open records kept by Folketinget are inconsistent regarding the coding of roll call results: Overall results are stored in a single result_string in Danish, listing votes in favor as well as votes against and abstentions in the same string. However, for some records, there are no result strings listing the vote counts (technically, there are empty strings). For these records, records have to be pulled using the API individually. This concerns 2895 out of 10478 observations as of February 2026. Affected are mostly votes from dates earlier than June 2010, when Folketinget appears to have switched their way of record keeping to the current setup with results given as a string.

In add_ft_results.R, the overall count of votes in favor of the proposal are first extracted from result_string (where available) using str_nth_number() from the strex package (Nolan 2024). Even though the wording used in the roll call result string also differs over time, I rely on the order of the results being presented to extract the votes in favor of the proposal at hand. In a second step, I filter those cases in roll_call_results_ft where there is an empty string in result_string (2895 out of 10478). For those observations, I retrieve the number of votes in favor from the Folketinget ODA API. This information is then merged back into the roll_call_results_ft data frame.

The maximum value stored in ft_for is 162 and the minimum value stored in ft_for is 0. As the total number of MPs in Folketinget is 179, the value of ft_for cannot be greater than 179.

summary(roll_call_results_ft$ft_for)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
   0.00   28.00   61.00   63.96  101.00  162.00       1 
Figure 2: Timeline of for vote counts in roll call votes. Dashed lines designate general Folketinget elections.

roll_call_results_ft$ft_against

In ft_against, the number of votes cast in favor of a proposal is stored as numeric variable of the type double.

The open records kept by Folketinget are inconsistent regarding the coding of roll call results: Overall results are stored in a single result_string in Danish, listing votes against as well as votes in favor and abstentions in the same string. However, for some records, there are no result strings listing the vote counts (technically, there are empty strings). For these records, records have to be pulled using the API individually. This concerns 2895 out of 10478 observations as of February 2026. Affected are mostly votes from dates earlier than June 2010, when Folketinget appears to have switched their way of record keeping to the current setup with results given as a string.

In add_ft_results.R, the overall count of votes against of the proposal are first extracted from result_string (where available) using str_nth_number() from the strex package (Nolan 2024). Even though the wording used in the roll call result string also differs over time, I rely on the order of the results being presented to extract the votes against the proposal at hand. In a second step, I filter those cases in roll_call_results_ft where there is an empty string in result_string (2895 out of 10478). For those observations, I retrieve the number of votes against from the Folketinget ODA API. This information is then merged back into the roll_call_results_ft data frame.

The maximum value stored in ft_against is 124 and the minimum value stored in ft_against is 0. As the total number of MPs in Folketinget is 179, the value of ft_against cannot be greater than 179.

summary(roll_call_results_ft$ft_against)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
   0.00    2.00   42.00   39.81   71.00  124.00       1 
Figure 3: Timeline of against vote counts in roll call votes. Dashed lines designate general Folketinget elections.

roll_call_results_ft$ft_abstention

In ft_abstention, the number of abstentions in a vote is stored as numeric variable of the type double.

The open records kept by Folketinget are inconsistent regarding the coding of roll call results: Overall results are stored in a single result_string in Danish, listing abstentions against as well as votes in favor and against in the same string. However, for some records, there are no result strings listing the vote counts (technically, there are empty strings). For these records, records have to be pulled using the API individually. This concerns 2895 out of 10478 observations as of February 2026. Affected are mostly votes from dates earlier than June 2010, when Folketinget appears to have switched their way of record keeping to the current setup with results given as a string.

In add_ft_results.R, the overall count of abstaining votes on the proposal are first extracted from result_string (where available) using str_nth_number() from the strex package (Nolan 2024). Even though the wording used in the roll call result string also differs over time, I rely on the order of the results being presented to extract the number of abstentions. In a second step, I filter those cases in roll_call_results_ft where there is an empty string in result_string (2895 out of 10478). For those observations, I retrieve the number of abstentions from the Folketinget ODA API. This information is then merged back into the roll_call_results_ft data frame.

The maximum value stored in ft_abstention is 56 and the minimum value stored in ft_abstention is 0. As the total number of MPs in Folketinget is 179, the value of ft_abstention cannot be greater than 179.

summary(roll_call_results_ft$ft_abstention)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
  0.000   0.000   0.000   2.384   0.000  56.000       1 
Figure 4: Timeline of abstention vote counts in roll call votes. Dashed lines designate general Folketinget elections.

roll_call_results_ft$ft_absent

In ft_absent, the number of MPs who were absent for each roll call is stored as numeric variable with values of the type double.

The number of absentees for each observation is calculated by substracting the sum of roll_call_results_ft$ft_for, roll_call_results_ft$ft_against and roll_call_results_ft$ft_abstention from 179, the fixed number of MPs in Folketinget.

The maximum value stored in ft_absent is 179 and the minimum value stored in ft_absent is 7. As the total number of MPs in Folketinget is 179, the value of ft_absent cannot be greater than 179.

summary(roll_call_results_ft$ft_absent)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
   7.00   69.00   72.00   72.84   76.00  179.00       1 
Figure 5: Timeline of absent counts in roll call votes. Dashed lines designate general Folketinget elections.

roll_call_results_ft$ft_process_id

All legislative processes in Folketinget are assigned an ID by Folketingets åbne data service (ODA). Each process ID is thus a unique identifier for one process relating to legislation in Folketinget. All IDs are stored as values of the type integer as integer variable.

This variable corresponds to the sagstrinid variable and the Sagstrin resource in the Folketing online database.

head(roll_call_results_ft$ft_process_id)
[1]    NA  4849 17351 18370  4849 16581

roll_call_results_ft$ft_process_step

All legislative processes run their course through Folketinget in several steps which is described by ft_process_step. Process steps are stored as values of the type character in Danish language as character variable.

This variable corresponds to the titel variable in the Sagstrin resource in the Folketing online database.

head(roll_call_results_ft$ft_process_step)
[1] NA                       "3. behandling"          "Behandling"            
[4] "3. behandling"          "3. behandling"          "2. (sidste) behandling"

roll_call_results_ft$roll_call_nr

In addition to the roll_call_id, all roll call procedures in Folketinget are also assigned a number by Folketingets åbne data service (ODA). Each roll call number is thus another identifier for one roll call in Folketinget. All roll call numbers are stored as values of the type integer as integer variable.

This variable corresponds to the roll_call_info_raw$nummer variable in the Afstemning resource in the Folketing online database. Take care not to confuse roll_call_nr with roll_call_id.

head(roll_call_results_ft$roll_call_nr)
[1] 411 412   1   7 412 410

roll_call_results_ft$roll_call_type_id

All roll call procedures in Folketinget are categorised using numeric values that correspond to the type of roll call (Table 3). All roll call Type IDs are stored as values of the type integer as integer variable.

Table 3: Roll call Type IDs as used by Folketinget’s Open Data Service
ID Type English n
1 Endelig vedtagelse Final Adoption 6038
2 Udvalgsindstilling Committee Recommendation Report 14
3 Forslag til vedtagelse Proposed Adoption 923
4 Ændringsforslag Amendment 3503

This variable corresponds to typeid variable in roll_call_info_raw and the type variable in the Afstemningstype resource in the Folketing online database.

table(roll_call_results_ft$roll_call_type_id)

   1    2    3    4 
6038   14  923 3503 

roll_call_results_ft$comment

If necessary, comments on each roll call are stored as values of the type character in Danish language. A Folketing wording standard for comment does not seem to exist, so the sentence structures and vocabulary differs a lot between observations. As per February 2026, there are 586 observations with comments (total number of observations: 10478). Comments on roll call results mostly regard human or technical errors, for example:

Danish English
Ved en fejl er der ikke registreret stemmeafgivning fra X’ plads. By mistake, no vote was registeret at X’ seat.
Ved en fejl stemte X for/imod/hverken for eller imod forslaget. By mistake, X voted for/against/neither for nor against the proposal.
Ved en fejl har X ikke fået stemt. By mistake, X could not vote.
Ved en fejl fik X ikke afgivet sin stemme. By mistake, X could not cast a vote.
Ved en fejl er Xs stemme registeret i Ys navn. By mistake, X’ vote was registered as a vote by Y.
X stemte ved en fejl fra Y’s plads. By mistake, X voted from Y’s seat.
10 i X stemte ved en fejl for/imod/hverken for eller imod forslaget. By mistake, 10 MPs from party X voted for/against/neither for nor against the proposal.
Ved en fejl er der registreret en stemme på X. By mistake, a vote by X was recorded.
X undlod ved en fejl at stemme. By mistake, X did not cast a vote.
Omafstemning Voting Repeated
head(roll_call_results_ft$comment)
[1] NA NA NA NA NA NA

roll_call_results_ft$result_string

In result_string, roll call results are stored as values of the type character in Danish language. The variable indicates whether the proposal was adopted or not; how many votes were in favor resp. against or abstentions, and from which political parties these votes came. A Folketing wording standard for result_string does not seem to exist, so the sentence structures and vocabulary differs a lot between observations.

As per February 2026, there are 7583 observations with result character strings (total number of observations: 10478). For the observations where result_string is not NA, the values are used to calculate ft_for, ft_against and ft_abstention. Information on absent MPs is not provided in result_string but can be inferred from the other values.

head(roll_call_results_ft$result_string)
[1] "Vedtaget\n\n108 stemmer for forslaget (V, S, DF, RV, SF, EL, LA, KF, UFG)\n\n0 stemmer imod forslaget\n\n0 stemmer hverken for eller imod forslaget\n\n"  
[2] "Vedtaget\n\n98 stemmer for forslaget (V, S, DF, RV, SF, EL)\n\n10 stemmer imod forslaget (LA, KF)\n\n0 stemmer hverken for eller imod forslaget\n\n"      
[3] "Vedtaget\n\n59 stemmer for forslaget (S, RV, SF, EL)\n\n54 stemmer imod forslaget (V, DF, LA, KF)\n\n0 stemmer hverken for eller imod forslaget\n\n"      
[4] "Vedtaget\n\n72 stemmer for forslaget (S, DF, RV, SF, EL)\n\n10 stemmer imod forslaget (LA, KF)\n\n26 stemmer hverken for eller imod forslaget (V)\n\n"    
[5] "Vedtaget\n\n98 stemmer for forslaget (V, S, DF, RV, SF, EL)\n\n10 stemmer imod forslaget (LA, KF)\n\n0 stemmer hverken for eller imod forslaget\n\n"      
[6] "\nVedtaget\n\n104 stemmer for forslaget (V, S, DF, RV, SF, EL, LA, KF, UFG)\n\n0 stemmer imod forslaget\n\n0 stemmer hverken for eller imod forslaget\n\n"

roll_call_info_raw

roll_call_info_raw contains the downloaded data on voting records before any preprocessing. As per February 2026, roll_call_info_raw.rds contains 10478 observations of 13 variables.

roll_call_info_raw is provided as rds file in /data/raw/. The processed data is available as rds file in /data/processed.

str(roll_call_info_raw)
'data.frame':   10478 obs. of  13 variables:
 $ id             : int  1 2 3 4 5 6 7 8 9 10 ...
 $ nummer         : int  411 412 1 7 412 410 408 407 404 405 ...
 $ konklusion     : chr  "Vedtaget\n\n108 stemmer for forslaget (V, S, DF, RV, SF, EL, LA, KF, UFG)\n\n0 stemmer imod forslaget\n\n0 stem"| __truncated__ "Vedtaget\n\n98 stemmer for forslaget (V, S, DF, RV, SF, EL)\n\n10 stemmer imod forslaget (LA, KF)\n\n0 stemmer "| __truncated__ "Vedtaget\n\n59 stemmer for forslaget (S, RV, SF, EL)\n\n54 stemmer imod forslaget (V, DF, LA, KF)\n\n0 stemmer "| __truncated__ "Vedtaget\n\n72 stemmer for forslaget (S, DF, RV, SF, EL)\n\n10 stemmer imod forslaget (LA, KF)\n\n26 stemmer hv"| __truncated__ ...
 $ vedtaget       : logi  TRUE TRUE TRUE TRUE TRUE TRUE ...
 $ kommentar      : chr  NA NA "" "" ...
 $ mødeid         : int  17 18 41 156 18 15 962 962 962 962 ...
 $ typeid         : int  2 1 3 1 1 1 1 1 1 1 ...
 $ sagstrinid     : int  NA 4849 17351 18370 4849 16581 3311 3220 4856 2500 ...
 $ sagstrin_titel : chr  NA "3. behandling" "Behandling" "3. behandling" ...
 $ sagid          : int  NA 1449 5604 5904 1449 5384 930 910 1451 780 ...
 $ sag_titel      : chr  NA "Forslag til lov om ændring af virksomhedsskatteloven og kildeskatteloven. (Indgreb mod utilsigtet udnyttelse af"| __truncated__ "Folketinget konstaterer, at Danmark stod dårligt rustet til at stå imod den økonomiske krise og derfor mistede "| __truncated__ "Forslag til lov om akutjob og jobpræmie til arbejdsgivere." ...
 $ dato           : POSIXct, format: "2014-09-09 09:00:00" "2014-09-09 09:15:00" ...
 $ opdateringsdato: POSIXct, format: "2014-09-09 09:05:59" "2014-09-09 09:25:05" ...

Descriptions of all variables in roll_call_info_raw are provided in the following sections.

roll_call_info_raw$id

See roll_call_results_ft$roll_call_id. Take care not to confuse id with nummer. In the raw data, id is stored as integer value.

head(roll_call_info_raw$id)
[1] 1 2 3 4 5 6

roll_call_info_raw$nummer

See roll_call_results_ft$roll_call_nr. Take care not to confuse nummer with id. In the raw data, nummer is stored as integer value.

head(roll_call_info_raw$nummer)
[1] 411 412   1   7 412 410

roll_call_info_raw$konklusion

See roll_call_results_ft$result_string. In the raw data, konklusion is stored as character value.

head(roll_call_info_raw$konklusion)
[1] "Vedtaget\n\n108 stemmer for forslaget (V, S, DF, RV, SF, EL, LA, KF, UFG)\n\n0 stemmer imod forslaget\n\n0 stemmer hverken for eller imod forslaget\n\n"  
[2] "Vedtaget\n\n98 stemmer for forslaget (V, S, DF, RV, SF, EL)\n\n10 stemmer imod forslaget (LA, KF)\n\n0 stemmer hverken for eller imod forslaget\n\n"      
[3] "Vedtaget\n\n59 stemmer for forslaget (S, RV, SF, EL)\n\n54 stemmer imod forslaget (V, DF, LA, KF)\n\n0 stemmer hverken for eller imod forslaget\n\n"      
[4] "Vedtaget\n\n72 stemmer for forslaget (S, DF, RV, SF, EL)\n\n10 stemmer imod forslaget (LA, KF)\n\n26 stemmer hverken for eller imod forslaget (V)\n\n"    
[5] "Vedtaget\n\n98 stemmer for forslaget (V, S, DF, RV, SF, EL)\n\n10 stemmer imod forslaget (LA, KF)\n\n0 stemmer hverken for eller imod forslaget\n\n"      
[6] "\nVedtaget\n\n104 stemmer for forslaget (V, S, DF, RV, SF, EL, LA, KF, UFG)\n\n0 stemmer imod forslaget\n\n0 stemmer hverken for eller imod forslaget\n\n"

roll_call_info_raw$vedtaget

See roll_call_results_ft$roll_call_pass. In the raw data, vedtaget is stored as logical value.

summary(roll_call_info_raw$vedtaget)
   Mode   FALSE    TRUE 
logical    4840    5638 

roll_call_info_raw$kommentar

See roll_call_results_ft$comment. In the raw data, kommentar is stored as character value.

head(roll_call_info_raw$kommentar)
[1] NA NA "" "" "" ""

roll_call_info_raw$mødeid

See roll_call_results_ft$meeting_id. In the raw data, mødeid is stored as integer value.

head(roll_call_info_raw$mødeid)
[1]  17  18  41 156  18  15

roll_call_info_raw$typeid

See roll_call_results_ft$roll_call_type_id. In the raw data, typeid is stored as integer value.

table(roll_call_info_raw$typeid)

   1    2    3    4 
6038   14  923 3503 

roll_call_info_raw$sagstrinid

See roll_call_results_ft$ft_process_id. In the raw data, sagstrinid is stored as integer value. Take care not to confuse sagstrinid with roll_call_info_raw$sagid.

head(roll_call_info_raw$sagstrinid)
[1]    NA  4849 17351 18370  4849 16581

roll_call_info_raw$sagstrin_titel

See roll_call_results_ft$ft_process_step. In the raw data, sagstrin_titel is stored as character value.

head(roll_call_info_raw$sagstrin_titel)
[1] NA                       "3. behandling"          "Behandling"            
[4] "3. behandling"          "3. behandling"          "2. (sidste) behandling"

roll_call_info_raw$sagid

All legislation in Folketinget are assigned an ID by Folketingets åbne data service (ODA). Each sagid is thus a unique identifier for one issue being handled in Folketinget. All IDs are stored as values of the type integer. Take care not to confuse sagid with roll_call_info_raw$sagstrinid. sagid is used to match the responsible ministry to each proposal in roll_call_results_ft.

This variable corresponds to the sagid variable and the Sag resource in the Folketing online database.

head(roll_call_info_raw$sagid)
[1]   NA 1449 5604 5904 1449 5384

roll_call_info_raw$sag_titel

See roll_call_results_ft$ft_topic. In the raw data, sag_titel is stored as character value.

head(roll_call_info_raw$sag_titel)
[1] NA                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
[2] "Forslag til lov om ændring af virksomhedsskatteloven og kildeskatteloven. (Indgreb mod utilsigtet udnyttelse af virksomhedsordningen ved indskud af privat gæld m.v.)."                                                                                                                                                                                                                                                                                                                                                   
[3] "Folketinget konstaterer, at Danmark stod dårligt rustet til at stå imod den økonomiske krise og derfor mistede uforholdsmæssigt mange arbejdspladser. Den økonomiske krise har fortsat et alvorligt tag i Danmark.\n\nI den situation er der fortsat behov for en politisk indsats for at skabe arbejdspladser på kort og på lang sigt, bl.a. gennem grøn omstilling, at bekæmpe ulighed, fattigdom og social dumping samt at løfte Danmark uddannelsesmæssigt, så den næste generation bliver den dygtigste nogen sinde."
[4] "Forslag til lov om akutjob og jobpræmie til arbejdsgivere."                                                                                                                                                                                                                                                                                                                                                                                                                                                               
[5] "Forslag til lov om ændring af virksomhedsskatteloven og kildeskatteloven. (Indgreb mod utilsigtet udnyttelse af virksomhedsordningen ved indskud af privat gæld m.v.)."                                                                                                                                                                                                                                                                                                                                                   
[6] "Forslag til folketingsbeslutning om dansk militært bidrag til støtte for indsatsen i Irak."                                                                                                                                                                                                                                                                                                                                                                                                                               

roll_call_info_raw$dato

See roll_call_results_ft$date. In the raw data, dato is stored as POSIXct, POSIXt value.

head(roll_call_info_raw$dato)
[1] "2014-09-09 09:00:00 UTC" "2014-09-09 09:15:00 UTC"
[3] "2012-10-04 10:00:00 UTC" "2012-11-06 00:00:00 UTC"
[5] "2014-09-09 09:15:00 UTC" "2014-08-27 17:00:00 UTC"

roll_call_info_raw$opdateringsdato

This variable is used to check against the API for updated records. In the raw data, opdateringsdato is stored as POSIXct, POSIXt value.

head(roll_call_info_raw$opdateringsdato)
[1] "2014-09-09 09:05:59 UTC" "2014-09-09 09:25:05 UTC"
[3] "2018-01-24 16:46:33 UTC" "2018-01-25 10:25:25 UTC"
[5] "2017-08-10 12:57:52 UTC" "2017-08-10 12:57:52 UTC"

ministries_lookup

ministries_lookup contains information on the ministry assigned to each proposal (Sag). As per February 2026, ministries_lookup.rds contains 72366 observations of 3 variables.

ministries_lookup is provided as rds file in /data/raw/. It is being joined to roll_call_results_ft by matching with roll_call_info_raw$sagid.

str(ministries_lookup)
tibble [72,366 × 3] (S3: tbl_df/tbl/data.frame)
 $ sagid          : int [1:72366] 1 2 3 8 9 12 13 14 15 16 ...
 $ ministerium    : chr [1:72366] "Finansministeriet" "Forsvarsministeriet" "Undervisningsministeriet" "Finansministeriet" ...
 $ opdateringsdato: POSIXct[1:72366], format: "2015-06-23 10:32:14" "2017-12-05 19:42:22" ...

Descriptions of all variables in ministries_lookup are provided in the following sections.

ministries_lookup$sagid

See roll_call_results_raw$sagid.

head(ministries_lookup$sagid)
[1]  1  2  3  8  9 12

ministries_lookup$ministerium

See roll_call_results_ft$ministry.

head(ministries_lookup$ministerium)
[1] "Finansministeriet"             "Forsvarsministeriet"          
[3] "Undervisningsministeriet"      "Finansministeriet"            
[5] "Erhvervs- og Vækstministeriet" "Udenrigsministeriet"          

ministries_lookup$opdateringsdato

This variable is used to check against the API for updated records. In the raw data, opdateringsdato is stored as POSIXct, POSIXt value.

head(ministries_lookup$opdateringsdato)
[1] "2015-06-23 10:32:14 UTC" "2017-12-05 19:42:22 UTC"
[3] "2017-12-05 19:43:50 UTC" "2017-12-05 19:44:13 UTC"
[5] "2017-12-05 19:44:13 UTC" "2017-12-05 19:44:13 UTC"

cabinets_fo

The dataset contains information on the coalition governments of the Faroe Islands (Landsstýri), in particular a timeline including the parties that are part of each cabinet. As per February 2026, cabinets_fo contains information on 10 cabinets stored in 12 variables. This data set spans the timeframe covered by the voting database – from October 07, 2004 until the most recent update of this data set on February 15, 2026.

cabinets_fo is provided as rds file in /data/processed and csv file in /data/processed/csv. Metadata for the csv file is provided in an accompanying json metadata file.

See also cabinets_gl and cabinets_dk.

str(cabinets_fo)
'data.frame':   10 obs. of  12 variables:
 $ cabinet    : chr  "kallsberg_2" "eidesgaard_1" "eidesgaard_2" "johannesen-k-l_1-1" ...
 $ wikidata_id: Factor w/ 8 levels "Q115858267","Q1212499",..: 6 4 2 8 8 5 5 3 7 1
 $ location   : Factor w/ 1 level "FO": 1 1 1 1 1 1 1 1 1 1
 $ start      : Date, format: "2002-06-06" "2004-02-03" ...
 $ end        : Date, format: "2004-02-03" "2008-02-04" ...
 $ FO_A       : logi  TRUE TRUE FALSE TRUE FALSE TRUE ...
 $ FO_B       : logi  FALSE TRUE FALSE TRUE TRUE TRUE ...
 $ FO_C       : logi  FALSE TRUE TRUE TRUE TRUE FALSE ...
 $ FO_D       : logi  TRUE FALSE FALSE FALSE FALSE TRUE ...
 $ FO_E       : logi  TRUE FALSE TRUE FALSE FALSE FALSE ...
 $ FO_F       : logi  FALSE FALSE FALSE FALSE FALSE FALSE ...
 $ FO_H       : logi  TRUE FALSE TRUE FALSE FALSE TRUE ...

Descriptions of all variables in cabinets_fo are provided in the following sections.

cabinets_fo$cabinet

Each cabinet formed in the Faroe Islands (Landsstýri) is assigned a human-readable identifier. The cabinets are usually named after the head of government, using their surname(s), followed by an integer number for multiple cabinets headed by the same person. Because in the timeframe covered by this data set, there have been two Faroese governments with a PM named Johannesen, the first letter of their first name is also appended to the cabinet variable. This variable is stored as value of the type character as character variable.

head(cabinets_fo$cabinet)
[1] "kallsberg_2"        "eidesgaard_1"       "eidesgaard_2"      
[4] "johannesen-k-l_1-1" "johannesen-k-l_1-2" "johannesen-k-l_2-1"

cabinets_fo$wikidata_id

The wikidata_id variable stores the QID linking to the Wikidata entity representing the cabinet in question, making it easy to retrieve additional information from Wikidata, if necessary. This variable is stored as value of the type integer as factor variable.

head(cabinets_fo$wikidata_id)
[1] Q531981  Q368075  Q1212499 Q989048  Q989048  Q5203949
8 Levels: Q115858267 Q1212499 Q20972153 Q368075 Q5203949 Q531981 ... Q989048

cabinets_fo$location

location indicates where a cabinet is formed – in the Faroe Islands (FO). This variable is stored as value of the type integer as factor variable. When merging data, this proved to be helpful to distinguish between the different political parties, some of which share a common abbreviation across regions.

summary(cabinets_fo$location)
FO 
10 

cabinets_fo$start

The date on which each cabinet is formed is stored as Date variable of the type double. Calendar information is formatted as %Y-%m-%d, the earliest entry being from June 06, 2002 (2002-06-06) and the most recent entry from December 22, 2022 (2022-12-22) as of February 2026.

head(cabinets_fo$start)
[1] "2002-06-06" "2004-02-03" "2008-02-04" "2008-09-26" "2011-04-06"
[6] "2011-11-14"

cabinets_fo$end

The date on which each cabinet is succeeded by the next one is stored as Date variable of the type double. Calendar information is formatted as %Y-%m-%d, the earliest entry being from February 03, 2004 (2004-02-03) as of February 2026.

Note that this date does not necessarily correspond to the date when a government ‘collapses’ or officially announces its resignation. Rather, the date denotes the day of the transition of power to the next cabinet.

head(cabinets_fo$end)
[1] "2004-02-03" "2008-02-04" "2008-09-26" "2011-04-06" "2011-11-14"
[6] "2013-09-09"

cabinets_fo$FO_A

FO_A indicates whether the Faroese political party Fólkaflokkurin (A) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in FO_A which only stores statements on official cabinet membership.

summary(cabinets_fo$FO_A)
   Mode   FALSE    TRUE 
logical       4       6 

cabinets_fo$FO_B

FO_B indicates whether the Faroese political party Sambandsflokkurin (B) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in FO_B which only stores statements on official cabinet membership.

summary(cabinets_fo$FO_B)
   Mode   FALSE    TRUE 
logical       4       6 

cabinets_fo$FO_C

FO_C indicates whether the Faroese political party Javnaðarflokkurin (C) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in FO_C which only stores statements on official cabinet membership.

summary(cabinets_fo$FO_C)
   Mode   FALSE    TRUE 
logical       4       6 

cabinets_fo$FO_D

FO_D indicates whether the Faroese political party Sjálvstýri (D) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in FO_D which only stores statements on official cabinet membership.

summary(cabinets_fo$FO_D)
   Mode   FALSE    TRUE 
logical       8       2 

cabinets_fo$FO_E

FO_E indicates whether the Faroese political party Tjóðveldi (E) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in FO_E which only stores statements on official cabinet membership.

summary(cabinets_fo$FO_E)
   Mode   FALSE    TRUE 
logical       6       4 

cabinets_fo$FO_F

FO_F indicates whether the Faroese political party Framsókn (F) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in FO_F which only stores statements on official cabinet membership.

summary(cabinets_fo$FO_F)
   Mode   FALSE    TRUE 
logical       8       2 

cabinets_fo$FO_H

FO_H indicates whether the Faroese political party Miðflokkurin (H) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in FO_H which only stores statements on official cabinet membership.

summary(cabinets_fo$FO_H)
   Mode   FALSE    TRUE 
logical       5       5 

cabinets_gl

The dataset contains information on the coalition governments of Greenland (Naalakersuisut), in particular a timeline including the parties that are part of each cabinet. As per February 2026, cabinets_gl contains information on 18 cabinets stored in 13 variables. This data set spans the timeframe covered by the voting database – from October 07, 2004 until the most recent update of this data set on February 15, 2026.

cabinets_gl is provided as rds file in /data/processed and csv file in /data/processed/csv. Metadata for the csv file is provided in an accompanying json metadata file.

See also cabinets_fo and cabinets_dk.

str(cabinets_gl)
'data.frame':   18 obs. of  13 variables:
 $ cabinet    : chr  "enoksen_3" "enoksen_4" "enoksen_5" "kleist_1" ...
 $ wikidata_id: Factor w/ 18 levels "Q105834380","Q106797236",..: 15 16 12 11 4 17 18 6 7 8 ...
 $ location   : Factor w/ 1 level "GL": 1 1 1 1 1 1 1 1 1 1 ...
 $ start      : Date, format: "2003-09-13" "2005-12-01" ...
 $ end        : Date, format: "2005-12-01" "2007-05-01" ...
 $ GL_A       : logi  FALSE TRUE TRUE FALSE TRUE TRUE ...
 $ GL_D       : logi  FALSE FALSE FALSE TRUE FALSE FALSE ...
 $ GL_IA      : logi  TRUE TRUE FALSE TRUE FALSE FALSE ...
 $ GL_KP      : logi  FALSE FALSE FALSE TRUE FALSE FALSE ...
 $ GL_N       : logi  FALSE FALSE FALSE FALSE FALSE FALSE ...
 $ GL_NQ      : logi  FALSE FALSE FALSE FALSE FALSE FALSE ...
 $ GL_PI      : logi  FALSE FALSE FALSE FALSE TRUE FALSE ...
 $ GL_SIU     : logi  TRUE TRUE TRUE FALSE TRUE TRUE ...

Descriptions of all variables in cabinets_gl are provided in the following sections.

cabinets_gl$cabinet

Each cabinet formed in Greenland (Naalakkersuisut) is assigned a human-readable identifier. The cabinets are usually named after the head of government, using their surname(s), followed by an integer number for multiple cabinets headed by the same person. Because in the timeframe covered by this data set, there have been two Faroese governments with a PM named Johannesen, the first letter of their first name is also appended to the cabinet variable. This variable is stored as value of the type character as character variable.

head(cabinets_gl$cabinet)
[1] "enoksen_3" "enoksen_4" "enoksen_5" "kleist_1"  "hammond_1" "hammond_2"

cabinets_gl$wikidata_id

The wikidata_id variable stores the QID linking to the Wikidata entity representing the cabinet in question, making it easy to retrieve additional information from Wikidata, if necessary. This variable is stored as value of the type integer as factor variable.

head(cabinets_gl$wikidata_id)
[1] Q99672345 Q99673310 Q7604757  Q7604603  Q12333085 Q99736342
18 Levels: Q105834380 Q106797236 Q111486937 Q12333085 Q133576206 ... Q99736347

cabinets_gl$location

location indicates where a cabinet is formed – in Greenland (GL). This variable is stored as value of the type integer as factor variable. When merging data, this proved to be helpful to distinguish between the different political parties, some of which share a common abbreviation across regions.

summary(cabinets_gl$location)
GL 
18 

cabinets_gl$start

The date on which each cabinet is formed is stored as Date variable of the type double. Calendar information is formatted as %Y-%m-%d, the earliest entry being from September 13, 2003 (2003-09-13) and the most recent entry from April 07, 2025 (2025-04-07) as of February 2026.

head(cabinets_gl$start)
[1] "2003-09-13" "2005-12-01" "2007-05-01" "2009-06-12" "2013-04-05"
[6] "2013-11-05"

cabinets_gl$end

The date on which each cabinet is succeeded by the next one is stored as Date variable of the type double. Calendar information is formatted as %Y-%m-%d, the earliest entry being from December 01, 2005 (2005-12-01) as of February 2026.

Note that this date does not necessarily correspond to the date when a government ‘collapses’ or officially announces its resignation. Rather, the date denotes the day of the transition of power to the next cabinet.

head(cabinets_gl$end)
[1] "2005-12-01" "2007-05-01" "2009-06-12" "2013-04-05" "2013-11-05"
[6] "2014-10-01"

cabinets_gl$GL_A

GL_A indicates whether the Greenlandic political party Atassut (A) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in GL_A which only stores statements on official cabinet membership.

summary(cabinets_gl$GL_A)
   Mode   FALSE    TRUE 
logical       9       9 

cabinets_gl$GL_D

GL_D indicates whether the Greenlandic political party Demokraatit (D) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in GL_D which only stores statements on official cabinet membership.

summary(cabinets_gl$GL_D)
   Mode   FALSE    TRUE 
logical      13       5 

cabinets_gl$GL_IA

GL_IA indicates whether the Greenlandic political party Inuit Ataqatigiit (IA) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in GL_IA which only stores statements on official cabinet membership.

summary(cabinets_gl$GL_IA)
   Mode   FALSE    TRUE 
logical      11       7 

cabinets_gl$GL_KP

GL_KP indicates whether the Greenlandic political party Kattusseqatigiit Partiiat (KP) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in GL_KP which only stores statements on official cabinet membership.

summary(cabinets_gl$GL_KP)
   Mode   FALSE    TRUE 
logical      17       1 

cabinets_gl$GL_N

GL_N indicates whether the Greenlandic political party Naleraq (N) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in GL_N which only stores statements on official cabinet membership.

summary(cabinets_gl$GL_N)
   Mode   FALSE    TRUE 
logical      15       3 

cabinets_gl$GL_NQ

GL_NQ indicates whether the Greenlandic political party Nunatta Qitornai (NQ) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in GL_NQ which only stores statements on official cabinet membership.

summary(cabinets_gl$GL_NQ)
   Mode   FALSE    TRUE 
logical      13       5 

cabinets_gl$GL_PI

GL_PI indicates whether the Greenlandic political party Partii Inuit (PI) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in GL_PI which only stores statements on official cabinet membership.

summary(cabinets_gl$GL_PI)
   Mode   FALSE    TRUE 
logical      17       1 

cabinets_gl$GL_SIU

GL_SIU indicates whether the Greenlandic political party Siumut (SIU) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in GL_SIU which only stores statements on official cabinet membership.

summary(cabinets_gl$GL_SIU)
   Mode   FALSE    TRUE 
logical       2      16 

cabinets_dk

The dataset contains information on coalition governments of Denmark, in particular a timeline including the parties that are part of each cabinet. As per February 2026, cabinets_dk contains information on 10 cabinets stored in 13 variables. On this list are 3 red bloc/left-wing, 6 blue/right-wing and 1 cross-bloc cabinets. This data set spans the timeframe covered by the voting database – from October 07, 2004 until the most recent update of this data set on February 15, 2026.

cabinets_dk is provided as rds file in /data/processed and csv file in /data/processed/csv. Metadata for the csv file is provided in an accompanying json metadata file.

See also cabinets_fo and cabinets_gl.

str(cabinets_dk)
'data.frame':   10 obs. of  13 variables:
 $ cabinet    : chr  "rasmussen-a-f_1" "rasmussen-a-f_2" "rasmussen-a-f_3" "rasmussen-l-l_1" ...
 $ wikidata_id: Factor w/ 10 levels "Q115694681","Q1485892",..: 3 7 5 2 9 4 6 8 10 1
 $ bloc       : Factor w/ 3 levels "across","left",..: 3 3 3 3 2 2 3 3 2 1
 $ type       : Factor w/ 2 levels "coalition","single_party": 1 1 1 1 1 1 2 1 2 1
 $ start      : Date, format: "2001-11-27" "2005-02-18" ...
 $ end        : Date, format: "2005-02-18" "2007-11-23" ...
 $ DK_A       : logi  FALSE FALSE FALSE FALSE TRUE TRUE ...
 $ DK_B       : logi  FALSE FALSE FALSE FALSE TRUE TRUE ...
 $ DK_C       : logi  TRUE TRUE TRUE TRUE FALSE FALSE ...
 $ DK_F       : logi  FALSE FALSE FALSE FALSE TRUE FALSE ...
 $ DK_I       : logi  FALSE FALSE FALSE FALSE FALSE FALSE ...
 $ DK_M       : logi  FALSE FALSE FALSE FALSE FALSE FALSE ...
 $ DK_V       : logi  TRUE TRUE TRUE TRUE FALSE FALSE ...

Descriptions of all variables in cabinets_dk are provided in the following sections.

cabinets_dk$cabinet

Each cabinet formed in Denmark is assigned a human-readable identifier. The cabinets are usually named after the head of government, using their surname(s), followed by an integer number for multiple cabinets headed by the same person. Because in the timeframe covered by this data set, there have been two Danish governments with a PM named Rasmussen, the first letter of their first name is also appended to the cabinet variable. This variable is stored as value of the type character as character variable.

head(cabinets_dk$cabinet)
[1] "rasmussen-a-f_1"    "rasmussen-a-f_2"    "rasmussen-a-f_3"   
[4] "rasmussen-l-l_1"    "thorning-schmidt_1" "thorning-schmidt_2"

cabinets_dk$wikidata_id

The wikidata_id variable stores the QID linking to the Wikidata entity representing the cabinet in question, making it easy to retrieve additional information from Wikidata, if necessary. This variable is stored as value of the type integer as factor variable.

head(cabinets_dk$wikidata_id)
[1] Q1549269  Q2137611  Q1890260  Q1485892  Q283704   Q15707210
10 Levels: Q115694681 Q1485892 Q1549269 Q15707210 Q1890260 ... Q64831553

cabinets_dk$bloc

bloc indicates whether a cabinet belongs to either the red/left or blue/right section of the political spectrum or if it is formed across both blocs. This variable is stored as value of the type integer as factor variable.

summary(cabinets_dk$bloc)
across   left  right 
     1      3      6 

cabinets_dk$type

type indicates whether a cabinet is formed by a single politial party or if it is a coalition government. This variable is stored as value of the type integer as factor variable.

Note that a single_party cabinet does not necessarily have the majority of seats in parliament. The cabinet in question may instead rely on informal support agreements with other political parties that are not officially part of the cabinet.

summary(cabinets_dk$type)
   coalition single_party 
           8            2 

cabinets_dk$start

The date on which each cabinet is formed is stored as Date variable of the type double. Calendar information is formatted as %Y-%m-%d, the earliest entry being from November 27, 2001 (2001-11-27) and the most recent entry from December 15, 2022 (2022-12-15) as of February 2026.

head(cabinets_dk$start)
[1] "2001-11-27" "2005-02-18" "2007-11-23" "2009-04-05" "2011-10-03"
[6] "2014-02-03"

cabinets_dk$end

The date on which each cabinet is succeeded by the next one is stored as Date variable of the type double. Calendar information is formatted as %Y-%m-%d, the earliest entry being from February 18, 2005 (2005-02-18) as of February 2026.

Note that this date does not necessarily correspond to the date when a government ‘collapses’ or officially announces its resignation. Rather, the date denotes the day of the transition of power to the next cabinet.

head(cabinets_dk$end)
[1] "2005-02-18" "2007-11-23" "2009-04-05" "2011-10-03" "2014-02-03"
[6] "2015-06-28"

cabinets_dk$DK_A

DK_A indicates whether the Danish political party Socialdemokratiet (A) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in DK_A which only stores statements on official cabinet membership.

summary(cabinets_dk$DK_A)
   Mode   FALSE    TRUE 
logical       6       4 

cabinets_dk$DK_B

DK_B indicates whether the Danish political party Radikale Venstre (B) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in DK_B which only stores statements on official cabinet membership.

summary(cabinets_dk$DK_B)
   Mode   FALSE    TRUE 
logical       8       2 

cabinets_dk$DK_C

DK_C indicates whether the Danish political party Det Konservative Folkeparti (C) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in DK_C which only stores statements on official cabinet membership.

summary(cabinets_dk$DK_C)
   Mode   FALSE    TRUE 
logical       5       5 

cabinets_dk$DK_F

DK_F indicates whether the Danish political party Socialistisk Folkeparti (F) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in DK_F which only stores statements on official cabinet membership.

summary(cabinets_dk$DK_F)
   Mode   FALSE    TRUE 
logical       9       1 

cabinets_dk$DK_I

DK_I indicates whether the Danish political party Liberal Alliance (I) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in DK_I which only stores statements on official cabinet membership.

summary(cabinets_dk$DK_I)
   Mode   FALSE    TRUE 
logical       9       1 

cabinets_dk$DK_M

DK_M indicates whether the Danish political party Moderaterne (M) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in DK_M which only stores statements on official cabinet membership.

summary(cabinets_dk$DK_M)
   Mode   FALSE    TRUE 
logical       9       1 

cabinets_dk$DK_V

DK_V indicates whether the Danish political party Venstre (V) is member of the cabinet. This variable is stored as value of the type logical as logical variable.

Note that a cabinet may rely on more political parties/MPs to maintain a majority. These situations are not reflected in DK_V which only stores statements on official cabinet membership.

summary(cabinets_dk$DK_V)
   Mode   FALSE    TRUE 
logical       3       7 

northatlantic_ft

The dataset contains data on voting records of the MPs specified in MP_names, created by processing and joining roll_call_results_ft, northatlantic_votes and information on cabinets from cabinets_fo, cabinets_gl and cabinets_dk as well as MP membership timelines from MP_dates. As per February 2026, northatlantic_ft contains 40899 observations of 22 variables.

northatlantic_ft is the resulting product of the targets pipeline and is provided as both rds file in /data/processed and csv file in /data/processed/csv. Metadata for the csv file is provided in an accompanying json metadata file.

str(northatlantic_ft)
tibble [40,899 × 22] (S3: tbl_df/tbl/data.frame)
 $ roll_call_id     : int [1:40899] 1 1 1 1 2 2 2 2 283 283 ...
 $ MP_id            : Factor w/ 30 levels "13","247","262",..: 2 3 5 1 2 3 5 1 2 3 ...
 $ surname          : chr [1:40899] "Joensen" "Skaale" "Jakobsen" "Olsvig" ...
 $ origin           : Factor w/ 2 levels "FO","GL": 1 1 2 2 1 1 2 2 1 1 ...
 $ party            : Factor w/ 9 levels "A","B","C","E",..: 2 3 8 5 2 3 8 5 2 3 ...
 $ gvt_party_at_home: logi [1:40899] TRUE FALSE TRUE FALSE TRUE FALSE ...
 $ vote_type_id     : Factor w/ 4 levels "1","2","3","4": 3 3 3 3 3 3 3 3 3 3 ...
 $ vote_id          : Factor w/ 41038 levels "154","158","161",..: 1 2 3 4 5 6 7 8 9 10 ...
 $ roll_call_pass   : logi [1:40899] TRUE TRUE TRUE TRUE TRUE TRUE ...
 $ ft_process_step  : chr [1:40899] NA NA NA NA ...
 $ ministry         : chr [1:40899] NA NA NA NA ...
 $ ft_topic         : chr [1:40899] NA NA NA NA ...
 $ ft_for           : num [1:40899] 108 108 108 108 98 98 98 98 91 91 ...
 $ ft_against       : num [1:40899] 0 0 0 0 10 10 10 10 13 13 ...
 $ ft_abstention    : num [1:40899] 0 0 0 0 0 0 0 0 0 0 ...
 $ ft_absent        : num [1:40899] 71 71 71 71 71 71 71 71 75 75 ...
 $ date             : Date[1:40899], format: "2014-09-09" "2014-09-09" ...
 $ roll_call_type_id: int [1:40899] 2 2 2 2 1 1 1 1 3 3 ...
 $ gvt_type_dk      : Factor w/ 2 levels "coalition","single_party": 1 1 1 1 1 1 1 1 1 1 ...
 $ gvt_bloc_dk      : Factor w/ 3 levels "across","left",..: 2 2 2 2 2 2 2 2 2 2 ...
 $ comment          : chr [1:40899] NA NA NA NA ...
 $ result_string    : chr [1:40899] "Vedtaget\n\n108 stemmer for forslaget (V, S, DF, RV, SF, EL, LA, KF, UFG)\n\n0 stemmer imod forslaget\n\n0 stem"| __truncated__ "Vedtaget\n\n108 stemmer for forslaget (V, S, DF, RV, SF, EL, LA, KF, UFG)\n\n0 stemmer imod forslaget\n\n0 stem"| __truncated__ "Vedtaget\n\n108 stemmer for forslaget (V, S, DF, RV, SF, EL, LA, KF, UFG)\n\n0 stemmer imod forslaget\n\n0 stem"| __truncated__ "Vedtaget\n\n108 stemmer for forslaget (V, S, DF, RV, SF, EL, LA, KF, UFG)\n\n0 stemmer imod forslaget\n\n0 stem"| __truncated__ ...

Descriptions of all variables in northatlantic_ft are provided in the following sections.

northatlantic_ft$roll_call_id

All roll call procedures in Folketinget are assigned an ID by Folketingets åbne data service (ODA). Each roll call ID is thus a unique identifier for one roll call in Folketinget. All IDs are stored as values of the type integer as integer variable.

This variable corresponds to the roll_call_results_ft$roll_call_id and the northatlantic_votes$roll_call_id variable and the Afstemning resource in the Folketing online database.

str(northatlantic_ft$roll_call_id)
 int [1:40899] 1 1 1 1 2 2 2 2 283 283 ...

northatlantic_ft$MP_id

Each MP is assigned an ID by Folketingets åbne data service (ODA). Each MP_id thus is a unique identifier for one member of Folketinget. All IDs are stored as values of the type integer as factor variable. It is possible to use these IDs e.g. for querying the online database to retrieve documents that relate to a given MP or to find out which parliamentary processes this MP has been engaged in. The Folketing ID is also available as Wikidata Property P10207.

str(northatlantic_ft$MP_id)
 Factor w/ 30 levels "13","247","262",..: 2 3 5 1 2 3 5 1 2 3 ...

northatlantic_ft$surname

All surname(s) are stored as values of the type character. Names are spelled according to standardised orthography and, in terms of morphology, in nominative (Faroese) resp. absolutive (Greenlandic) case. Because there are be multiple MPs with the same surname(s), refer to northatlantic_ft$MP_id instead for reliable identification.

str(northatlantic_ft$surname)
 chr [1:40899] "Joensen" "Skaale" "Jakobsen" "Olsvig" "Joensen" "Skaale" ...

northatlantic_ft$origin

Using ISO 3166-2 codes, origin indicates whether an MP was elected in either Greenland (GL) or the Faroe Islands (FO). This variable is stored as value of the type integer as factor variable. Note that this only indicates where the MP in question ran for office. MPs with ties to Greenland or the Faroe Islands who won a Folketinget mandate in a continental election district are thus not part of this data set, as they are not considered Northatlantic MPs.

summary(northatlantic_ft$origin)
   FO    GL 
20453 20446 

northatlantic_ft$party

The political party that each MP belongs to at the time of the vote is stored as value of the type integer as factor variable.

Since 2004, MPs from the Faroe Islands were members of 4 different political parties. Voters in Greenland elected politicians from 2 different political parties. However, as per February 2026, there have been two MPs from Greenland who left their party – Siumut, in both cases – during their time in office and joined other parties (Nunatta Qitornai and Naleraq3).

summary(northatlantic_ft$party)
    A     B     C     E    IA     N    NQ   SIU    UF 
 1269  6941  6885  5358 10219   381   655  8417   774 

northatlantic_ft$gvt_party_at_home

gvt_party_at_home is created by using match_home_government() on northatlantic_ft, and cabinets_fo resp. cabinets_gl, indicating whether the MP is a member of a political party that is part of the governing Naalakkersuisut (GL) resp. Landsstýri (FO) at the time. See cabinets_fo and cabinets_gl.

summary(northatlantic_ft$gvt_party_at_home)
   Mode   FALSE    TRUE 
logical   15750   25149 

northatlantic_ft$vote_type_id

northatlantic_ft is a result of join_results() in which vote_type_id is joined from northatlantic_votes$vote_type_id. See northatlantic_votes$vote_type_id.

summary(northatlantic_ft$vote_type_id)
    1     2     3     4 
  355   326 40085   133 

northatlantic_ft$vote_id

All votes cast in Folketinget are assigned an ID by Folketingets åbne data service (ODA). Each vote ID is thus a unique identifier for one vote cast in Folketinget. All IDs are stored as values of the type integer as factor variable.

This variable corresponds to the id variable and the Stemme resource in the Folketing online database. See northatlantic_votes$votes_id.

str(northatlantic_ft$vote_id)
 Factor w/ 41038 levels "154","158","161",..: 1 2 3 4 5 6 7 8 9 10 ...

northatlantic_ft$roll_call_pass

The result of all roll calls in Folketinget is stored in roll_call_pass as logical variable. If parliament votes in favor of a proposal, it passes and roll_call_pass is assigned TRUE; if parliament votes a proposal down, it does not pass and roll_call_pass is assigned FALSE.

This variable corresponds to the vedtaget variable in the Afstemning resource in the Folketing online database. See roll_call_results_ft$roll_call_pass.

summary(northatlantic_ft$roll_call_pass)
   Mode   FALSE    TRUE 
logical   19019   21880 

northatlantic_ft$ft_process_step

All legislative processes run their course through Folketinget in several steps which is described by ft_process_step. Process steps are stored as values of the type character in Danish language as character variable.

This variable corresponds to the titel variable in the Sagstrin resource in the Folketing online database. See roll_call_results_ft$ft_process_step.

str(northatlantic_ft$ft_process_step)
 chr [1:40899] NA NA NA NA "3. behandling" "3. behandling" "3. behandling" ...

northatlantic_ft$ministry

Each proposal that is being voted on in Folketinget is assigned to one ministry that is responsible for handling the government’s end. The name of that ministry is stored in this variable for each observation. Ministry names are stored as values of the type character in Danish language.

The values of this variable correspond to the navn variable in the SagAktør resource in the Folketing online database, filtered for those aktørid values that are designated as Ministerområde (rolleid = 6) for the Sag in question. See also ministries_lookup.

str(northatlantic_ft$ministry)
 chr [1:40899] NA NA NA NA "Skatteministeriet" "Skatteministeriet" ...

Note that since designations and areas of responsibilities have changed over time, there will be several instances of, e.g. transport ministries (Transportministeriet, Transport- og Energiministeriet, Transport- og Boligministeriet, Transport- og Bygningsministeriet as well as Transport-, Bygnings- og Boligministeriet).

Table 4: List of all ministries associated with a roll call vote including the count of occurrences in the data.
Ministry Count
Beskæftigelsesministeriet 3356
By-, Land- og Kirkeministeriet 64
Børne- og Socialministeriet 168
Børne- og Undervisningsministeriet 544
Digitaliseringsministeriet 16
Energi-, Forsynings- og Klimaministeriet 224
Erhvervs- og Vækstministeriet 668
Erhvervsministeriet 956
Europaministeriet 12
Finansministeriet 6100
Folketinget 524
Forsvarsministeriet 256
Handels- og Udviklingsministeriet 4
Handels- og europaministeriet 4
Indenrigs- og Boligministeriet 128
Indenrigs- og Socialministeriet 44
Indenrigs- og Sundhedsministeriet 812
Justitsministeriet 4303
Kirkeministeriet 248
Klima- og Energiministeriet 180
Klima-, Energi- og Bygningsministeriet 132
Klima-, Energi- og Forsyningsministeriet 456
Kulturministeriet 704
Miljø- og Fødevareministeriet 472
Miljø- og Ligestillingsministeriet 48
Miljøministeriet 1012
Ministeriet for By, Bolig og Landdistrikter 156
Ministeriet for Børn og Undervisning 88
Ministeriet for Børn, Ligestilling, Integration og Sociale Forhold 112
Ministeriet for Børn, Undervisning og Ligestilling 88
Ministeriet for Digitalisering og Ligestilling 44
Ministeriet for Familie- og Forbrugeranliggender 260
Ministeriet for Flygtninge, Indvandrere og Integration 384
Ministeriet for Forskning, Innovation og Videregående Uddannelser 92
Ministeriet for Fødevarer, Landbrug og Fiskeri 732
Ministeriet for Grøn Trepart 16
Ministeriet for Ligestilling 4
Ministeriet for Ligestilling og Kirke 36
Ministeriet for Samfundssikkerhed og Beredskab 20
Ministeriet for Sundhed og Forebyggelse 421
Ministeriet for Udviklingsbistand 8
Ministeriet for Videnskab, Teknologi og Udvikling 248
Skatteministeriet 3203
Social- og Boligministeriet 84
Social- og Indenrigsministeriet 280
Social- og Integrationsministeriet 176
Social- og Ældreministeriet 164
Social-, Bolig- og Ældreministeriet 244
Social-, børne- og integrationsministeriet 36
Socialministeriet 500
Statsministeriet 92
Sundheds- og Ældreministeriet 648
Sundhedsministeriet 184
Trafik- og Energiministeriet 40
Trafikministeriet 24
Transport- og Boligministeriet 120
Transport- og Bygningsministeriet 112
Transport- og Energiministeriet 216
Transport-, Bygnings- og Boligministeriet 276
Transportministeriet 872
Uddannelses- og Forskningsministeriet 340
Udenrigsministeriet 808
Udlændinge- og Integrationsministeriet 1860
Udlændinge-, Integrations- og Boligministeriet 284
Undervisningsministeriet 1052
Velfærdsministeriet 248
Ældreministeriet 4
Økonomi- og Erhvervsministeriet 804
Økonomi- og Indenrigsministeriet 408
Økonomiministeriet 4
NA 3672

northatlantic_ft$ft_topic

Each proposal that is being voted on in Folketinget has a description of the topic(s) that are mentioned in the proposal. This description is stored in ft_topic. Topic descriptions are stored as values of the type character.

This variable corresponds to the titel variable in the Sag resource in the Folketing online database (which additionally provides a shorter version with less formalised language in the titelkort variable). See roll_call_results_ft$ft_topic.

head(northatlantic_ft$ft_topic)
[1] NA                                                                                                                                                                      
[2] NA                                                                                                                                                                      
[3] NA                                                                                                                                                                      
[4] NA                                                                                                                                                                      
[5] "Forslag til lov om ændring af virksomhedsskatteloven og kildeskatteloven. (Indgreb mod utilsigtet udnyttelse af virksomhedsordningen ved indskud af privat gæld m.v.)."
[6] "Forslag til lov om ændring af virksomhedsskatteloven og kildeskatteloven. (Indgreb mod utilsigtet udnyttelse af virksomhedsordningen ved indskud af privat gæld m.v.)."

northatlantic_ft$ft_for

See roll_call_results_ft$ft_for.

summary(northatlantic_ft$ft_for)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
   0.00   28.00   61.00   63.95  101.00  162.00       4 

northatlantic_ft$ft_against

See roll_call_results_ft$ft_against.

summary(northatlantic_ft$ft_against)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
   0.00    2.00   43.00   40.02   72.00  124.00       4 

northatlantic_ft$ft_abstention

See roll_call_results_ft$ft_abstention.

summary(northatlantic_ft$ft_abstention)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
  0.000   0.000   0.000   2.401   0.000  56.000       4 

northatlantic_ft$ft_absent

See roll_call_results_ft$ft_absent.

summary(northatlantic_ft$ft_absent)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
   7.00   69.00   72.00   72.64   75.00  160.00       4 

northatlantic_ft$date

The date on which each roll call takes place in Folketinget is stored as Date variable of the type double. Calendar information is formatted as %Y-%m-%d, the earliest entry being from October 07, 2004 (2004-10-07) and the most recent entry from February 05, 2026 (2026-02-05) as of February 2026.

See roll_call_results_ft$date.

str(northatlantic_ft$date)
 Date[1:40899], format: "2014-09-09" "2014-09-09" "2014-09-09" "2014-09-09" "2014-09-09" ...

northatlantic_ft$roll_call_type_id

See roll_call_results_ft$roll_call_type_id.

table(northatlantic_ft$roll_call_type_id)

    1     2     3     4 
23324    56  3572 13947 

northatlantic_ft$gvt_type_dk

gvt_type_dk is created by using match_danish_government() on cabinets_dk, indicating whether the Danish government is a coalition or a single-party government at the time of the observation. See cabinets_dk$type.

summary(northatlantic_ft$gvt_type_dk)
   coalition single_party 
       31755         9144 

northatlantic_ft$gvt_bloc_dk

gvt_bloc_dk is created by using match_danish_government() on cabinets_dk, indicating the political bloc (left/red, right/blue or across) the Danish government belongs to at the time of the observation. See cabinets_dk$bloc.

summary(northatlantic_ft$gvt_bloc_dk)
across   left  right 
  5804  13651  21444 

northatlantic_ft$comment

See roll_call_results_ft$comment.

str(northatlantic_ft$comment)
 chr [1:40899] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA ...

northatlantic_ft$result_string

See roll_call_results_ft$result_string.

str(northatlantic_ft$result_string)
 chr [1:40899] "Vedtaget\n\n108 stemmer for forslaget (V, S, DF, RV, SF, EL, LA, KF, UFG)\n\n0 stemmer imod forslaget\n\n0 stem"| __truncated__ ...
Back to top

References

Ahlness, Ellen A. 2020. “Nunatta Qitornai: A Party Analysis of the Rhetoric and Future of Greenlandic Separatism.” In Separatism and Regionalism in Modern Europe, edited by Chris Kostov, 157–76. Berlin: Logos-Verlag. https://doi.org/10.30819/5192.
Berntzen, Lasse, Marius Johannessen, Kim Andersen, and Jonathan Crusoe. 2019. “Parliamentary Open Data in Scandinavia.” Computers 8 (3): 65. https://doi.org/10.3390/computers8030065.
Döring, Holger, Constantin Huber, and Philip Manow. 2024. ParlGov 2024 Release.” Harvard Dataverse. https://doi.org/10.7910/DVN/2VZ5ZC.
Folketinget. 2026. “Folketingets Åbne Data.” https://oda.ft.dk.
Harder, Mette Marie Stæhr. 2022. “Færøske Og Grønlandske Mandater i Folketinget.” Politica 54 (1): 5–22. https://doi.org/10.7146/politica.v54i1.130590.
Hviid, Hanna Vestergaard. 2025. “Vittus Qujaukitsoq Melder Sig Ind i Naleraq.” Kalaallit Nunaata Radioa, February. https://knr.gl/da/nyheder/vittus-qujaukitsoq-melder-sig-ind-i-naleraq.
Nolan, Rory. 2024. “Strex: Extra String Manipulation Functions.” https://rorynolan.github.io/strex/.
Statsministeriet. 2022. “Valgdato På Færøerne.” København. https://stm.dk/presse/pressemeddelelser/2022/valgdato-paa-faeroeerne/.
W3C. 2015. W3C Recommendation: Metadata Vocabulary for Tabular Data.” https://www.w3.org/TR/tabular-metadata/.

Footnotes

  1. See README or _targets.R↩︎

  2. Both parties have been formed quite recently. See Ahlness (2020) for general information on Nunatta Qitornai and their policies. Nunatta Qitornai has de facto been dissolved after the 2021 Inatsisartut election (Hviid 2025).↩︎

  3. Both parties have been formed quite recently. See Ahlness (2020) for general information on Nunatta Qitornai and their policies. Nunatta Qitornai has de facto been dissolved after the 2021 Inatsisartut election (Hviid 2025).↩︎