Our data is based on reading the texts of ICCPR derogations at the UN Treaty Collection site at https://treaties.un.org/. We create these variables:
ICCPR derogation filed (iccpr_derogation_filed): Date that derogation notice was filed/received by the UN. This is a dichotomous variable that is TRUE on the day the country files the notice and FALSE otherwise.
Derogation start (derogation_start): This is the date noted within the derogation text of when the emergency provisions and suspension of rights starts. This is a dichotomous variable that is TRUE on the day the country starts its derogation and FALSE otherwise.
Derogation in effect (derogation_ineffect): This is a dichotomous variable that is TRUE if the country is currently derogating and FALSE if not.
Derogation end (derogation_end): This is the date noted within the derogation text of when emergency provisions stop and rights observances resume. This is a dichotomous variable that is TRUE on the day the country finishes its derogation and FALSE otherwise.
Note
In many cases states filed derogations after the derogations actually started, so filed dates are often after the derogation start dates. Also note that states often updated the timing of derogations to extend, so there may be multiple filing dates within one derogation period.
To account for whether countries have engaged with ICCPR derogation procedures prior to the COVID-19 pandemic (signalling that they perhaps care about treaty obligations), we include two binary indicators for (1) whether the country has derogated from the ICCPR in the past and (2) whether the country has completed any other type of ICCPR-related actions. These are time-invariant and act more like overall indicator variables, like continent or region.
WHO region (who_region and who_region_long): One of six WHO regional offices:
Regional Office for Africa (AFRO)
Regional Office for the Americas (AMRO)
Regional Office for the Eastern Mediterranean (EMRO)
Regional Office for Europe (EURO)
Regional Office for South-East Asia (SEARO)
Regional Office for the Western Pacific (WPRO)
New cases (new_cases): New confirmed cases of COVID-19. Calculated by subtracting previous cumulative case count from current cumulative cases count.
Cumulative cases (cumulative_cases): Cumulative confirmed cases of COVID-19 reported to the WHO to date.
New deaths (new_deaths): New confirmed COVID-19 deaths. Calculated by subtracting previous cumulative deaths from current cumulative deaths.
Cumulative deaths (cumulative_deaths): Cumulative confirmed COVID-19 deaths reported to the WHO to date.
We omit all “other” observations not assigned to any country (like cruise ships), and remove all non-states that don’t appear in the UN’s ICCPR list or in V-Dem, including:
To measure the severity of government responses to COVID-19, we use data from the Oxford COVID-19 Government Response Tracker. We use the project’s overall stringency index, as well as several measures of economic policies and containment and closure policies:
Stringency index (stringency_index): Composite measure of multiple indicators (C1–C8 and H1), ranging from 0 to 100. See the complete methodology for more details.
Cancel public events (c3_cancel_events): Indicator of whether the country canceled public events.
0: no measures; 1: recommend canceling; 2: require canceling; Blank: no data
Limits on gatherings (c4_gatherings): Indicator of whether the country limited public gatherings.
0: no restrictions; 1: restrictions on very large gatherings (the limit is above 1000 people); 2: restrictions on gatherings between 101-1000 people; 3: restrictions on gatherings between 11-100 people; 4: restrictions on gatherings of 10 people or less; Blank: no data
Close public transport (c5_public_transport): Indicator of whether the country closed public transport.
0: no measures; 1: recommend closing (or significantly reduce volume/route/means of transport available); 2: require closing (or prohibit most citizens from using it); Blank: no data
Stay at home requirements (c6_stay_at_home): Indicator of whether the country imposed shelter-in-place requirements.
0: no measures; 1: recommend not leaving house; 2: require not leaving house with exceptions for daily exercise, grocery shopping, and ‘essential’ trips; 3: require not leaving house with minimal exceptions (eg allowed to leave once a week, or only one person can leave at a time, etc); Blank: no data
Restrictions on internal movement (c7_internal_movement): Indicator of whether the country imposed restrictions on internal movement between cities or regions.
0: no measures; 1: recommend not to travel between regions/cities; 2: internal movement restrictions in place; Blank: no data
International travel controls (c8_intl_travel): Indicator of whether the country imposed restrictions on international travel (for foreign travellers, not citizens).
0: no restrictions; 1: screening arrivals; 2: quarantine arrivals from some or all regions; 3: ban arrivals from some regions; 4: ban on all regions or total border closure; Blank: no data
Income support (e1_income_support): Indicator of whether the country provided direct cash payments for those unable to work.
0: no income support; 1: government is replacing less than 50% of lost salary (or if a flat sum, it is less than 50% median salary); 2: government is replacing 50% or more of lost salary (or if a flat sum, it is greater than 50% median salary); Blank: no data
Debt relief (e2_debt_relief): Indicator of whether the country froze financial obligations for households (e.g. loan freezes, eviction bans, etc.)
0: no debt/contract relief; 1: narrow relief, specific to one kind of contract; 2: broad debt/contract relief; Blank: no data
Importantly, since these are all measured quarterly and our main data is daily, these variables act more like country-level fixed effects in our models, capturing the overall level of the severity of pandemic response on a given day.
We use the following variables:
Year + quarter (year_quarter): Numeric representation of the year and quarter, with quarter ranging from 0.1 to 0.4 (so 2020.4 is Q4 of 2020). PanDem treats March 11–March 31, 2020 as Q2 instead of Q1, so we recode our data accordingly (i.e. March 13, 2020 is 2020.2)
Pandemic Violations of Democratic Standards Index (pandem): Index measuring the extent to which governments violated democratic standards in their COVID-19 emergency response. Ranges from 0–1 and incorporates details about 7 different types of violations (type1, type2, type3, type4, type5, type6, and type7 from PanDem).
Pandemic Backsliding Index (panback): Index measuring the extent to which democracy has receded because of violations of government standards during COVID-19. Ranges from 0–1 and incorporates both pandem and V-Dem’s liberal democracy index (v2x_libdem) in 2019.
Discriminatory measures (pandem_discrim; originally type1): Ordinal measure of whether emergency measure violated the principle of non-discrimination from the ICCPR.
None: no discrimination; Minor: de facto minor discrimination; Moderate: de jure minor discrimination; Major: major either de factor or de jure discrimination
Derogations from non-derogable rights (pandem_ndrights; originally type2): Ordinal measure of whether countries derogated from non-derogable ICCPR rights.
None: no on all items of ICCPR provisions; Major: yes on any item of ICCPR provisions
Abusive enforcement (pandem_abusive; originally type3): Ordinal measure of whether state security violated physical integrity rights while enforcing emergency measures
None: no to very few reports; Minor: sometimes; Moderate: often; Major: widespread
No time limit (pandem_nolimit; originally type4): Ordinal measure of whether emergency measures failed to state a time limit
None: there is a declared end date for all measures; Minor: there is no end date for some or all measures, but measured ended within the quarter; Moderate: there is no end date for some or all measures and the measures have not ended during the quarter
Restrictions on media freedom (pandem_media; originally type7): Ordinal measure of whether limits were placed on media freedom as part of pandemic emergency measures
None: no de jure or de facto restrictions; Minor: some de jure or de facto restrictions; Moderate: widespread limitations on access to information but few de jure or de facto restrictions on how media can report about the pandemic; Major: severe restrictions, limits, and/or harassment (the PanDem codebook has a lot more detail about how all these are coded; this index is the most complex of the 7 types)
Finally, to measure additional country-level characteristics, we use several variables from the Varieties of Democracy (V-Dem) project.
Warning
Importantly, since these are all measured annually and our main data is daily, these variables act more like country-level fixed effects in our models, capturing the overall level of civil society, human rights, and other characteristics on a given day.
Here’s an overview of these variables:
CSO repression (v2csreprss)
Core civil society index (v2xcs_ccsi): Combination of entry/exit requirements, repression, and participatory environment
Political corruption index (v2x_corr): Combination of public sector, executive, legislative, and judicial corruption (less to more, 0–1)
---title: "Data details"format: html: code-fold: true---```{r setup, include=FALSE}knitr::opts_chunk$set(fig.align = "center", fig.retina = 3, fig.width = 6, fig.height = (6 * 0.618), out.width = "80%", collapse = TRUE, dev = "png", dev.args = list(type = "cairo-png"))options(digits = 3, width = 120, dplyr.summarise.inform = FALSE, knitr.kable.NA = "")``````{r load-libraries, warning=FALSE, message=FALSE}library(tidyverse)library(targets)library(sf)library(gt)library(kableExtra)library(lubridate)matrix_from_vector <- function(x, ncol) { n_balanced <- ceiling(length(x) / ncol) * ncol matrix(c(x, rep(NA, n_balanced - length(x))), ncol = ncol)}clrs_light <- MetBrewer::met.brewer("Tiepolo") %>% colorspace::lighten(0.8)# Generated via random.orgset.seed(2385)# Load targets stufftar_config_set(store = here::here('_targets'), script = here::here('_targets.R'))invisible(list2env(tar_read(graphic_functions), .GlobalEnv))tar_load(c(daily_panel, derogation_map_data))``````{r extract-details}info <- list( n_days = length(unique(daily_panel$day)), n_countries = length(unique(daily_panel$iso3)), n_rows = scales::label_comma()(nrow(daily_panel)), dates = map(list( start_date = min(daily_panel$day), end_date = max(daily_panel$day) ), ~list(date = ., nice = format(., "%B %e, %Y"), year = year(.))))```## OverviewWe combine data from the [International Covenant on Civil and Political Rights](https://www.ohchr.org/en/instruments-mechanisms/instruments/international-covenant-civil-and-political-rights) (ICCPR), the [World Health Organization](https://covid19.who.int/data) (WHO), [Oxford's COVID-19 Government Response Tracker](https://www.bsg.ox.ac.uk/research/research-projects/covid-19-government-response-tracker), the [Pandemic Backsliding Project](https://github.com/vdeminstitute/pandem) (PanDem), and the [Varieties of Democracy](https://www.v-dem.net/) (V-Dem) project to track government responses, COVID case counts, and derogation status at a daily level. ### Countries and dates includedWe include data from `r info$n_countries` countries for `r info$n_days` days from `r info$dates$start_date$nice` to `r info$dates$end_date$nice`, resulting in a panel with `r info$n_rows` country-day observations.```{r show-country-table}countries <- daily_panel %>% distinct(who_region, who_region_long, country_name) %>% arrange(who_region) %>% mutate(who = paste0(who_region_long, " (", who_region, ")")) %>% group_by(who) %>% nest() %>% mutate(nice_matrix = map(data, ~matrix_from_vector(.$country_name, ncol = 6))) %>% mutate(matrix_rows = map_int(nice_matrix, ~nrow(.)))row_groups <- countries$matrix_rows %>% set_names(countries$who)reduce(countries$nice_matrix, rbind) %>% kbl(table.attr = "class=\'table-sm\'") %>% kable_styling(bootstrap_options = c("basic"), full_width = FALSE) %>% pack_rows(index = row_groups, indent = FALSE, label_row_css = 'background-color: rgb(2, 184, 117); color: #ffffff; text-align: center;')```### General overview of full dataHere's an overview of the complete panel data:```{r glimpse-everything}#| code-fold: falseglimpse(daily_panel)```## ICCPR derogationsOur data is based on reading the texts of ICCPR derogations at the UN Treaty Collection site at <https://treaties.un.org/>. We create these variables:- **ICCPR derogation filed** (`iccpr_derogation_filed`): Date that derogation notice was filed/received by the UN. This is a dichotomous variable that is `TRUE` on the day the country files the notice and `FALSE` otherwise.- **Derogation start** (`derogation_start`): This is the date noted within the derogation text of when the emergency provisions and suspension of rights starts. This is a dichotomous variable that is `TRUE` on the day the country starts its derogation and `FALSE` otherwise.- **Derogation in effect** (`derogation_ineffect`): This is a dichotomous variable that is `TRUE` if the country is currently derogating and `FALSE` if not.- **Derogation end** (`derogation_end`): This is the date noted within the derogation text of when emergency provisions stop and rights observances resume. This is a dichotomous variable that is `TRUE` on the day the country finishes its derogation and `FALSE` otherwise.:::{.callout-note}In many cases states filed derogations after the derogations actually started, so filed dates are often after the derogation start dates. Also note that states often updated the timing of derogations to extend, so there may be multiple filing dates within one derogation period.:::Here's an overview of these variables:```{r glimpse-iccpr}#| code-fold: falsedaily_panel %>% select(country_name, iso3, day, iccpr_derogation_filed, derogation_start, derogation_ineffect, derogation_end) %>% glimpse()```And here's an extract of the data from June 11, 2020, the day that Argentina filed a derogation notice:```{r show-iccpr}#| column: page-rightdaily_panel %>% filter(day == ymd("2020-06-11")) %>% select(country_name, iso3, day, iccpr_derogation_filed, derogation_start, derogation_ineffect, derogation_end) %>% gt() %>% cols_width(country_name ~ px(250), iso3 ~ px(60)) %>% data_color(columns = contains("derogation"), fn = scales::col_factor(c(clrs_light[1], clrs_light[8]), domain = c(FALSE, TRUE))) %>% opt_interactive(use_compact_mode = TRUE, use_highlight = TRUE)```And here's a map of all the countries that derogated between January 2020 and June 2021:```{r derogations-map, fig.width=6.5, fig.height=3.5}ggplot() + geom_sf(data = derogation_map_data, aes(fill = derogations_1plus), linewidth = 0.1, color = "white") + coord_sf(crs = st_crs("+proj=robin"), datum = NA) + scale_fill_binned(low = colorspace::lighten(clrs[1], amount = 0.8), high = clrs[1], na.value = "grey85", breaks = c(1, 5, 10, 15, 20), limits = c(1, 20), name = "Derogations filed: ", guide = guide_colorsteps(barwidth = 7, barheight = 0.4, title.vjust = 1)) + theme_pandem() + theme(panel.border = element_blank(), legend.title = element_text(face = "bold"), legend.justification = "center")```## Prior ICCPR actionsTo account for whether countries have engaged with ICCPR derogation procedures prior to the COVID-19 pandemic (signalling that they perhaps care about treaty obligations), we include two binary indicators for (1) whether the country has derogated from the ICCPR in the past and (2) whether the country has completed any other type of ICCPR-related actions. These are time-invariant and act more like overall indicator variables, like continent or region.```{r glimpse-prior-action}#| code-fold: falsedaily_panel %>% group_by(country_name, iso3) %>% summarize(across(starts_with("prior"), ~mean(.))) %>% ungroup() %>% glimpse()```## WHO COVID case countsWe collect daily case counts from the [WHO's COVID-19 Dashboard](https://covid19.who.int/data). We use these variables: - **WHO region** (`who_region` and `who_region_long`): One of six WHO regional offices: - Regional Office for Africa (AFRO) - Regional Office for the Americas (AMRO) - Regional Office for the Eastern Mediterranean (EMRO) - Regional Office for Europe (EURO) - Regional Office for South-East Asia (SEARO) - Regional Office for the Western Pacific (WPRO)- **New cases** (`new_cases`): New confirmed cases of COVID-19. Calculated by subtracting previous cumulative case count from current cumulative cases count.- **Cumulative cases** (`cumulative_cases`): Cumulative confirmed cases of COVID-19 reported to the WHO to date.- **New deaths** (`new_deaths`): New confirmed COVID-19 deaths. Calculated by subtracting previous cumulative deaths from current cumulative deaths.- **Cumulative deaths** (`cumulative_deaths`): Cumulative confirmed COVID-19 deaths reported to the WHO to date.We omit all "other" observations not assigned to any country (like cruise ships), and remove all non-states that don't appear in the UN's ICCPR list or in V-Dem, including:```{r show-nonstate-table}nonstates <- c("Falkland Islands", "Fore Islands", "Guernsey", "Guam", "Isle of Man ", "Jersey", "Saint Pierre and Miquelon", "Pitcairn Islands", "Puerto Rico", "Reunion Island", "Tokelau", "Holy See", "Wallis and Futuna", "Bonaire", "Sint Eustatius", "Saba", "Mayotte", "Gibraltar ", "Greenland", "Guadeloupe")matrix_from_vector(nonstates, ncol = 5) %>% kbl() %>% kable_styling(bootstrap_options = c("basic"), full_width = FALSE) %>% pack_rows("Omitted non-states", 1, 4, indent = FALSE, label_row_css = 'background-color: rgb(184, 71, 67); color: #ffffff; text-align: center;')```Here's an overview of these variables:```{r glimpse-who}#| code-fold: falsedaily_panel %>% select(country_name, iso3, day, who_region, who_region_long, new_cases, cumulative_cases, new_deaths, cumulative_deaths) %>% glimpse()```## Oxford government responsesTo measure the severity of government responses to COVID-19, we use data from the [Oxford COVID-19 Government Response Tracker](https://www.bsg.ox.ac.uk/research/research-projects/covid-19-government-response-tracker). We use the project's overall stringency index, as well as several measures of economic policies and containment and closure policies:- **Stringency index** (`stringency_index`): Composite measure of multiple indicators (C1–C8 and H1), ranging from 0 to 100. [See the complete methodology](https://github.com/OxCGRT/covid-policy-tracker/blob/master/documentation/index_methodology.md) for more details.- **Cancel public events** (`c3_cancel_events`): Indicator of whether the country canceled public events. - **0**: no measures; **1**: recommend canceling; **2**: require canceling; **Blank**: no data- **Limits on gatherings** (`c4_gatherings`): Indicator of whether the country limited public gatherings. - **0**: no restrictions; **1**: restrictions on very large gatherings (the limit is above 1000 people); **2**: restrictions on gatherings between 101-1000 people; **3**: restrictions on gatherings between 11-100 people; **4**: restrictions on gatherings of 10 people or less; **Blank**: no data- **Close public transport** (`c5_public_transport`): Indicator of whether the country closed public transport. - **0**: no measures; **1**: recommend closing (or significantly reduce volume/route/means of transport available); **2**: require closing (or prohibit most citizens from using it); **Blank**: no data- **Stay at home requirements** (`c6_stay_at_home`): Indicator of whether the country imposed shelter-in-place requirements. - **0**: no measures; **1**: recommend not leaving house; **2**: require not leaving house with exceptions for daily exercise, grocery shopping, and 'essential' trips; **3**: require not leaving house with minimal exceptions (eg allowed to leave once a week, or only one person can leave at a time, etc); **Blank**: no data- **Restrictions on internal movement** (`c7_internal_movement`): Indicator of whether the country imposed restrictions on internal movement between cities or regions. - **0**: no measures; **1**: recommend not to travel between regions/cities; **2**: internal movement restrictions in place; **Blank**: no data- **International travel controls** (`c8_intl_travel`): Indicator of whether the country imposed restrictions on international travel (for foreign travellers, not citizens). - **0**: no restrictions; **1**: screening arrivals; **2**: quarantine arrivals from some or all regions; **3**: ban arrivals from some regions; **4**: ban on all regions or total border closure; **Blank**: no data- **Income support** (`e1_income_support`): Indicator of whether the country provided direct cash payments for those unable to work. - **0**: no income support; **1**: government is replacing less than 50% of lost salary (or if a flat sum, it is less than 50% median salary); **2**: government is replacing 50% or more of lost salary (or if a flat sum, it is greater than 50% median salary); **Blank**: no data- **Debt relief** (`e2_debt_relief`): Indicator of whether the country froze financial obligations for households (e.g. loan freezes, eviction bans, etc.) - **0**: no debt/contract relief; **1**: narrow relief, specific to one kind of contract; **2**: broad debt/contract relief; **Blank**: no dataHere's an overview of these variables:```{r glimpse-oxford}#| code-fold: falsedaily_panel %>% select(country_name, iso3, day, stringency_index, c3_cancel_events, c4_gatherings, c5_public_transport, c6_stay_at_home, c7_internal_movement, c8_intl_travel, e1_income_support, e2_debt_relief) %>% glimpse()```And here's an extract of the data from June 11, 2020:```{r show-oxford}#| column: page-rightdaily_panel %>% filter(day == ymd("2020-06-11")) %>% select(country_name, iso3, day, stringency_index, c3_cancel_events, c4_gatherings, c5_public_transport, c6_stay_at_home, c7_internal_movement, c8_intl_travel, e1_income_support, e2_debt_relief) %>% gt() %>% cols_width(country_name ~ px(250), iso3 ~ px(60), day ~ px(150)) %>% opt_interactive(use_compact_mode = TRUE, use_highlight = TRUE)```## Pandemic Backsliding Project (PanDem)We also measure the severity of government responses with data from the [Pandemic Backsliding Project](https://github.com/vdeminstitute/pandem) (PanDem).:::{.callout-warning}Importantly, since these are all measured quarterly and our main data is daily, these variables act more like country-level fixed effects in our models, capturing the overall level of the severity of pandemic response on a given day.:::We use the following variables:- **Year + quarter** (`year_quarter`): Numeric representation of the year and quarter, with quarter ranging from 0.1 to 0.4 (so 2020.4 is Q4 of 2020). PanDem treats March 11–March 31, 2020 as Q2 instead of Q1, so we recode our data accordingly (i.e. March 13, 2020 is 2020.2)- **Pandemic Violations of Democratic Standards Index** (`pandem`): Index measuring the extent to which governments violated democratic standards in their COVID-19 emergency response. Ranges from 0–1 and incorporates details about 7 different types of violations (`type1`, `type2`, `type3`, `type4`, `type5`, `type6`, and `type7` from PanDem).- **Pandemic Backsliding Index** (`panback`): Index measuring the extent to which democracy has receded because of violations of government standards during COVID-19. Ranges from 0–1 and incorporates both `pandem` and V-Dem's liberal democracy index (`v2x_libdem`) in 2019.- **Discriminatory measures** (`pandem_discrim`; originally `type1`): Ordinal measure of whether emergency measure violated the principle of non-discrimination from the ICCPR. - **None**: no discrimination; **Minor**: de facto minor discrimination; **Moderate**: de jure minor discrimination; **Major**: major either de factor or de jure discrimination- **Derogations from non-derogable rights** (`pandem_ndrights`; originally `type2`): Ordinal measure of whether countries derogated from non-derogable ICCPR rights. - **None**: no on all items of ICCPR provisions; **Major**: yes on any item of ICCPR provisions- **Abusive enforcement** (`pandem_abusive`; originally `type3`): Ordinal measure of whether state security violated physical integrity rights while enforcing emergency measures - **None**: no to very few reports; **Minor**: sometimes; **Moderate**: often; **Major**: widespread- **No time limit** (`pandem_nolimit`; originally `type4`): Ordinal measure of whether emergency measures failed to state a time limit - **None**: there is a declared end date for all measures; **Minor**: there is no end date for some or all measures, but measured ended within the quarter; **Moderate**: there is no end date for some or all measures and the measures have not ended during the quarter- **Restrictions on media freedom** (`pandem_media`; originally `type7`): Ordinal measure of whether limits were placed on media freedom as part of pandemic emergency measures - **None**: no de jure or de facto restrictions; **Minor**: some de jure or de facto restrictions; **Moderate**: widespread limitations on access to information but few de jure or de facto restrictions on how media can report about the pandemic; **Major**: severe restrictions, limits, and/or harassment *(the PanDem codebook has a lot more detail about how all these are coded; this index is the most complex of the 7 types)*And here's an overview of these variables:```{r glimpse-pandem}#| code-fold: falsedaily_panel %>% select(country_name, iso3, day, year_quarter, pandem, panback, starts_with("pandem_")) %>% glimpse()```## Varieties of Democracy project (V-Dem)Finally, to measure additional country-level characteristics, we use several variables from the Varieties of Democracy (V-Dem) project. :::{.callout-warning}Importantly, since these are all measured annually and our main data is daily, these variables act more like country-level fixed effects in our models, capturing the overall level of civil society, human rights, and other characteristics on a given day.:::Here's an overview of these variables:- **CSO repression** (`v2csreprss`)- **Core civil society index** (`v2xcs_ccsi`): Combination of entry/exit requirements, repression, and participatory environment- **Political corruption index** (`v2x_corr`): Combination of public sector, executive, legislative, and judicial corruption (less to more, 0–1)- **Rule of law** (`v2x_rule`)- **Civil liberties** (`v2x_civlib`)- **Physical violence** (`v2x_clphy`)- **Private civil liberties** (`v2x_clpriv`)- **Political civil liberties index** (`v2x_clpol`)- **Electoral democracy index** (`v2x_polyarchy`)- **Regimes of the world scores** (`v2x_regime_amb`)```{r glimpse-videm}#| code-fold: falsedaily_panel %>% select(country_name, iso3, day, starts_with("v2")) %>% glimpse()```