Birth control availability was a liberating step towards women having full control of their reproduction. However, female contraceptives being the most effective birth control means that women have to put up with an extensive list of side effects with no equivalent male alternatives. In recent years, health risks associated with hormonal contraceptive usage started being discussed more [1]. Social media plays a significant role in shaping opinions about hormonal contraceptives and in turn their decline in various Western countries [2]. Female contraceptives have been critiqued for their extensive list of side effects. In contrast, the dismissive attitude of general health practitioners when it comes to contraceptive choice has sparked distrust [2].

Nevertheless, female contraceptives remain the most reliable way to prevent unwanted pregnancy [3]. The changes in birth control usage probe the question of how this correlates with further measures to terminate unwanted pregnancies. This report will explore female contraceptive trends in Scotland between 2018 and 2023 and look at how this trend correlated with pregnancy termination statistics.

AIMS of this report:

  1. Is there a national trend in female contraceptives in Scotland between 2018 and 2023?
  2. Is this trend maintained within health boards?
  3. Is there a correlation between contraceptive trends and pregnancy termination trends?

Data used in the report

Abortion and prescription data used in this report has been obtained from Public Health Scotland. For showing the contraceptive usage trend in 8 years all age data was used that includes females under 20 to females over 40.

To ensure comparable figures between different boards the number of pregnancy termination events was calculated per 1000 women in the health board per 2022 Census data (Scotland’s Census 2022 - National Records of Scotland Table UV102a - Age (single year) by sex). While the total population might change over the years we are expecting that the change won’t be significant to impact the overall trends. Only women of biological reproductive age were included as the members of this group were the most likely to get pregnant. The chosen reproductive age span was from 13 (average age of first menstruation) to 50 (average age of natural menopause) [4].

# Health board name and codes selected
health_boards <- read_csv("https://www.opendata.nhs.scot/dataset/9f942fdb-e59e-44f5-b534-d6e17229cc7b/resource/652ff726-e676-4a20-abda-435b98dd7bdc/download/hb14_hb19.csv") %>% 
  clean_names() %>% 
  select(hb, hb_name)
# Combined Boards for NHS Orkney, NHS Shetland and NHS Western Isles that represent the Islands group
other_health_boards <- read_csv("https://www.opendata.nhs.scot/dataset/65402d20-f0f1-4cee-a4f9-a960ca560444/resource/8f0c3067-7b10-44c6-af36-37f87a9e6efa/download/grouped-geography.csv") %>% 
  clean_names() %>%
  rename(hb_name = "grouped_geography_name", hb = "grouped_geography") %>% 
  select(hb_name, hb)
# add Islands heath board to the main list
health_boards <- bind_rows(health_boards, other_health_boards)
# get health board population data and extract female of reproductive age population numbers for each health board
health_board_population <- read_csv(here( "data", "Table_UV102a_Age_by_sex.csv"), skip = 10) %>% 
  clean_names() %>% 
  rename(hb_name = "health_board_area_2019") %>% 
  filter(age %in% c(13:50), sex == "Female") %>% 
  group_by(hb_name) %>% 
  summarise(female_repro_population = sum(count)) %>% 
  mutate(hb_name = paste("NHS", hb_name)) 
## Warning: One or more parsing issues, call `problems()` on your data frame for details,
## e.g.:
##   dat <- vroom(...)
##   problems(dat)
boards_to_sum <- c("NHS Orkney", "NHS Shetland", "NHS Western Isles")
# Calculate the population for the Islands board
islands_population <- health_board_population %>%
  filter(hb_name %in% boards_to_sum) %>%
  summarise(total_population = sum(female_repro_population, na.rm = TRUE)) %>%
  pull(total_population)
# combining health board names and populations, removing NHS from Health board name, and adding Islands population
health_board_population <- full_join(health_board_population, health_boards, by = "hb_name") %>% 
  mutate(hb_name = str_remove(hb_name, "NHS ")) %>% 
  mutate(female_repro_population = case_when(hb_name == "Island Boards" ~ islands_population, .default = female_repro_population))
# data on abortion 2016-2023
abortion_data <- read_csv("https://www.opendata.nhs.scot/dataset/d684d4a5-f7ae-4a1a-ae8d-adf55304274e/resource/342f9627-dfdd-41f5-a27c-0a3c7bcb8672/download/residence_age_2023.csv") %>% 
  clean_names() %>% 
  rename(hb = "hbr", year = "yearof_termination") %>% 
  filter(age_group == "All Ages") %>% 
  select(year, hb, numberof_terminations) %>% 
  left_join(health_board_population, by = "hb")  %>% 
  mutate(abortion_per_1000_women = numberof_terminations/female_repro_population * 1000) %>% 
  filter(!is.na(hb_name)) %>% 
  filter(year %in% c(2016:2023))

Prescription data has been filtered based on the BNF item code. Codes beginning with 0703 and 21040 were selected as representing contraceptive medication and devices. The data was then further divided into long-term contraceptives (IUD, coil, and implant) lasting several years and short-term contraceptives that have to be taken regularly (oral tablets, cervical caps, and injections). The division was based on the BNF codes with 0703022P representing implants, 0703023 representing IUDs, and 210400002 representing copper coils. The remaining birth control was assigned to the short-term category. Same as abortion data the contraceptive data was normalised by women of reproductive age number in the health board for health board comparison.

columns_needed_from_prescription <- c("BNFItemCode", "NumberOfPaidItems", "HBT", "HBT2014", "PaidDateMonth")
read_and_clean <- function(url) {
  # only columns with prescription drug name, health board, and number of items paid selected
  # older data files have column named HBT2014, newer have HBT
  data <- vroom(url, col_select = any_of(c(columns_needed_from_prescription)), skip_empty_rows = TRUE)
  #data filtered for contraceptives (including contraceptive devices) only (based on the BNF code)
  data_filtered <- data %>% 
    filter(str_starts(BNFItemCode, "0703") | str_starts(BNFItemCode, "21040")) %>% 
    clean_names() %>%
    rename(year = "paid_date_month") %>% 
    mutate(year = as.numeric(substr(as.character(year), 1, 4))) 
  colnames(data_filtered)[3] ="hb"
  # assign function used to create an object with the name of the url from named list and assign preprocessed data to it
  name <- names(prescription_data_urls)[which(prescription_data_urls == url)] 
  assign(name, data_filtered, envir = .GlobalEnv) 
}
# apply the outlined function to all data urls in named list or URLs -> prescription_data_urls
lapply(prescription_data_urls, read_and_clean)
# join full prescription dataset with health board names and women populations
full_prescirption_dataset <- bind_rows(mget(names(prescription_data_urls))) %>%
  left_join(health_board_population, by = "hb") %>% 
  mutate(type = case_when(str_detect(bnf_item_code, "0703022P|0703023|210400002") ~ "long-term", .default = "short-term")) 
# contraceptives per 1000 women of reproductive age for each health board added as a new column
contraception_data_hb <- full_prescirption_dataset %>% 
  group_by(year, hb_name, female_repro_population) %>% 
  summarise(total_contraceptives_per_hb=sum(number_of_paid_items)) %>% 
  select(-female_repro_population)
# total contraceptives for all health boards representing Islands health board for each year 
boards_to_sum <- str_remove(boards_to_sum, "NHS ")

islands_contraceptives <- full_prescirption_dataset %>% 
  filter(hb_name %in% boards_to_sum) %>% 
  group_by(year) %>% 
  summarise(total_contraceptives_per_hb = sum(number_of_paid_items)) %>% 
  mutate(hb_name = "Island Boards")
# contraception data combined with Islands health board totals
contraception_data_hb <- bind_rows(contraception_data_hb,islands_contraceptives)  
#combined dataframe created from abortion data and contraception data
combined_data <- left_join(abortion_data, contraception_data_hb, by = c("year", "hb_name")) %>%
  select(year, hb_name, abortion_per_1000_women, total_contraceptives_per_hb, female_repro_population) %>% 
  mutate(contraceptives_per_1000_women = total_contraceptives_per_hb/female_repro_population*1000)

Results

Contraceptives and Pregnancy Termination Correlation across NHS Scotland Health Boards

Each coloured point in Figure 3 represents a data value from a single year, plotted with abortion rates on the y-axis and contraceptive use on the x-axis. Abortion decreases in all health boards when contraceptive prescriptions increase. However, several health boards stand out with slightly different rates from other boards. Dumfries and Galloway has been mentioned before as the board with the highest contraceptive consumption. Interestingly, the abortion rate in this region doesn’t seem to deviate from the values of the cluster of other boards. On the other hand, the Islands have much lower contraceptive use compared to Dumfries and Galloway but have around half of the abortions. Lothian, with the lowest usage of contraceptives, doesn’t display much higher abortion rates. Therefore, abortion rate and contraceptive usage correlate within health boards but such consensus is not maintained across health boards.

  combined_data %>%  
    ggplot(aes(x = contraceptives_per_1000_women, y = abortion_per_1000_women, colour = hb_name)) +
    geom_point(size = 1) +
    geom_smooth(method = "lm", se = FALSE, aes(colour = hb_name)) +
    theme_classic() +
    base_theme +
    labs( title = "Contraceptives and Abortion Trends between 2016 and 2023", x = "Total Contraceptives per year", y = "Total Abortion per year", colour = "Health Boards"
    ) +
    scale_colour_manual(values = color_vector) 
Fig 3. Correlation between aboirtion and ocntraception figures in each health board

Fig 3. Correlation between aboirtion and ocntraception figures in each health board

Conclusions and Future Work

To better understand the changes over the 8 years discussed in this it is crucial to examine the reasons these changes occur. A decline in contraception use might be a direct outcome of social media portrayal of hormonal contraceptives. However, it is not fully understood what other reasons might encourage people to stop using contraception. This report showcases the negative relationship between contraception use and termination of pregnancy occurrence, however, the outlined relationship is not necessarily fatalistically significant. This needs to be explored further to draw more solid conclusions. The relationship between contraceptive use and the number of pregnancy termination procedures might be indirect and influenced by a measure now reflected in the data. Therefore, further analysis is important to understand these trends. Nevertheless, understanding which health boards need further inspection allows a proportionate distribution of resources to tackle these issues.

References

  1. M. L. Guen, C. Schantz, A. Régnier-Loilier, E. de L. Rochebrochard, Social Science & Medicine. 284, 114247 (2021).

  2. A. Schneider-Kamp, J. Takhar, Social Science & Medicine. 331, 116081 (2023).

  3. P. I. Diana Mansour, K. Gemzell-Danielsson, The European Journal of Contraception & Reproductive Health Care. 15, 4–16 (2010).

  4. A. F. Nabhan et al., Human Reproduction Open. 2022, hoac005 (2022).

  5. E. Johnson-Hall, BMJ Sexual & Reproductive Health (2024).