Introduction

This study investigates the endurance and legitimacy of Intergovernmental Organizations (IGOs) through three broad conjectures. Each conjecture emphasizes a different set of institutional design features and contextual conditions:

To examine these conjectures rigorously, we constructed datasets that isolate the relevant dimensions of institutional attributes, allowing each conjecture to be tested on its own terms.

1. Conjecture 1 — Institutional Design, Coordination, and Endurance in Global Ocean Economy Governance

Tools and Setup

# ===== Packages =====
library(dplyr)
library(janitor)
library(dplyr)
library(tidyverse)
library(readr)

2. Data

# Load all datasets
df_year <- read_csv("Data/year_data.csv") %>%
  clean_names()

df_spatial <- read_csv("Data/spatial_jurisdiction_data.csv") %>%
  clean_names()

df_vertical <- read_csv("Data/vertical_coordinations_data.csv") %>%
  clean_names()

df_subject <- read_csv("Data/subject_matter_jurisdiction_data.csv") %>%
  clean_names()

df_strategies <- read_csv("Data/strategies_data.csv") %>%
  clean_names()

df_objectives <- read_csv("Data/defined_objectives_data.csv") %>%
  clean_names()

df_relationships <- read_csv("Data/defined_inter_institutional_relationships_data.csv") %>%
  clean_names()

df_sources <- read_csv("Data/sources_of_jurisdiction_data.csv") %>%
  clean_names()

df_horizontal <- read_csv("Data/horizontal_coordination.csv") %>%
  clean_names()

Data Preparation

# ==== Merge All Data ====
df <- df_year %>%
  left_join(df_spatial, by = "institution") %>%
  left_join(df_vertical, by = "institution") %>%
  left_join(df_subject, by = "institution") %>%
  left_join(df_strategies, by = "institution") %>%
  left_join(df_objectives, by = "institution") %>%
  left_join(df_relationships, by = "institution") %>%
  left_join(df_sources, by = "institution") %>%
  left_join(df_horizontal, by = "institution")

The raw data set contained 173 columns capturing institutional identifiers, historical context, spatial and subject-matter jurisdictions, vertical and horizontal coordination mechanisms, strategic orientations, objectives, and sources of legal authority.

To align with the theoretical framework, we prepared three tailored data sets:

  • Conjecture 1 data set (conj1_df): Focuses on institutional design coherence, combining measures of spatial and subject-matter breadth, vertical coordination, strategies, defined objectives, and sources of jurisdiction.
  • Conjecture 2 data set (conj2_df): Focuses on ecological pressures, retaining measures of density and cumulative stock alongside subject–spatial niches and adaptive strategies/objectives.
  • Conjecture 3 data set (conj3_df): Focuses on legitimacy and embeddedness, emphasizing inter-institutional relationships, compliance mechanisms, strategies linked to inclusion and accountability, objectives tied to governance and partnerships, and sources of authority.

Each data set was created using systematic column selection from the master file. The R code ensured reproducibility by grouping columns into families (e.g., spatial, subject-matter, strategies) and extracting them consistently across “within-IGO” and “across-IGO” dimensions. This produced three clean analytical subsets, each suited to test a distinct conjecture.

view(df_horizontal)
full <- df
nms <- names(full)

# helper: build family columns (within/across variants)
fam_cols <- function(terms, nms) {
  pat <- paste0("^(", paste(terms, collapse="|"), ")_(within|across)_igo$")
  out <- grep(pat, nms, value = TRUE)
  return(out)
}

# Families (prefixes as in your dataset)
spatial_terms <- c(
  "archipelago","coastal_zone","contiguous_zone_cz","enclosed_or_semi_enclosed_sea",
  "exclusive_economic_zone_eez","extended_continental_shelf_cs","high_seas",
  "internal_waters","territorial_sea_ts","the_area"
)

subject_terms <- c(
  "biodiversity_ecosystem_conservation","cultural_heritage_traditional_knowledge_data_governance",
  "disaster_risk_reduction_resilience","environmental_protection_climate_change",
  "human_rights_social_justice_advocacy","international_cooperation_governance",
  "research_science_innovation","security_safety",
  "sustainable_development_capacity_building","trade_investment_economic_cooperation"
)

vertical_terms <- c(
  "data_integration_systems","global_regional_national_coordination",
  "intergovernmental_to_national_institutions","multi_level_planning_structures",
  "policy_alignment_with_national_plans","regional_implementing_partners",
  "reporting_compliance_mechanisms","sectoral_to_national_coordination",
  "technical_assistance_to_states","un_to_member_states"
)

horizontal_terms <- c(
  "advocacy_and_communication","cross_border_initiatives",
  "cross_sectoral_collaboration","inter_agency_technical_cooperation",
  "joint_research_and_projects","multi_stakeholder_platforms",
  "peer_to_peer_learning_mechanisms","regional_economic_community_coordination",
  "shared_monitoring_frameworks","thematic_working_groups" 
)

strategy_terms <- c(
  "capacity_development_operational_delivery","collaboration_partnerships_networks",
  "environmental_climate_biodiversity_action","financial_budgetary_management",
  "inclusion_rights_social_justice","innovation_technology_development",
  "knowledge_research_data_systems","monitoring_evaluation_accountability",
  "policy_regulation_legal_frameworks","strategic_institutional_planning"
)

objective_terms <- c(
  "environmental_action","financial_stewardship","governance_planning","inclusion_rights",
  "innovation_technology","knowledge_data","monitoring_accountability","operational_delivery",
  "partnerships_networks","policy_regulation"
)

inter_terms <- c(
  "civil_society_engagement","donor_partnerships","intergovernmental_consultations",
  "ngo_engagement","private_sector_partnerships","regional_body_coordination",
  "scientific_community_linkages","technical_or_expert_groups",
  "treaty_body_coordination","un_system_collaboration"
)

source_terms <- c(
  "bilateral_multilateral_arrangements","binding_secondary_law","compliance_oversight",
  "customary_soft_law","delegated_or_derived_powers","foundational_treaties_charters",
  "non_binding_secondary_law","other_governance_instruments",
  "strategic_frameworks","technical_norms_standards"
)

# --- collect actual column names from families -------------------------------
spatial_cols   <- fam_cols(spatial_terms, nms)
subject_cols   <- fam_cols(subject_terms, nms)
vertical_cols  <- fam_cols(vertical_terms, nms)
strategy_cols  <- fam_cols(strategy_terms, nms)
objective_cols <- fam_cols(objective_terms, nms)
inter_cols     <- fam_cols(inter_terms, nms)
source_cols    <- fam_cols(source_terms, nms)
horizontal_cols <-fam_cols(horizontal_terms, nms)

# Scores and identifiers
score_cols <- intersect(c(
  "ordinal_score_spatial","ordinal_score_vertical_coordination",
  "ordinal_score_subject_matter","ordinal_score_strategies",
  "ordinal_score_defined_objectives","ordinal_score_defined_inter",
  "ordinal_score_sources", "ordinal_score_horizontal"
), nms)

id_cols <- intersect(c("institution","year_cleaned","founding_era_category"), nms)
density_cols <- intersect(c("founding_density_5yr","cumulative_stock"), nms)

# --- Conjecture 1: design coherence -----------------------------------------
c1_cols <- unique(c(
  id_cols, density_cols,
  intersect(c("ordinal_score_spatial","ordinal_score_subject_matter",
              "ordinal_score_vertical_coordination",
              "ordinal_score_strategies","ordinal_score_defined_objectives",
              "ordinal_score_sources",
              "ordinal_score_horizontal"), score_cols),
  spatial_cols, subject_cols, vertical_cols, strategy_cols, objective_cols, source_cols, horizontal_cols
))
conj1_df <- dplyr::select(full, all_of(c1_cols))

# --- Conjecture 2: density → niche & adaptation -----------------------------
strategy_adapt <- grep("^(innovation_technology_development|knowledge_research_data_systems|capacity_development_operational_delivery|monitoring_evaluation_accountability|collaboration_partnerships_networks)_(within|across)_igo$", nms, value = TRUE)
objective_adapt <- grep("^(innovation_technology|knowledge_data|monitoring_accountability|operational_delivery|partnerships_networks)_(within|across)_igo$", nms, value = TRUE)

c2_cols <- unique(c(
  id_cols, density_cols,
  intersect(c("ordinal_score_subject_matter","ordinal_score_spatial",
              "ordinal_score_strategies","ordinal_score_defined_objectives"), score_cols),
  subject_cols, spatial_cols, strategy_adapt, objective_adapt
))
conj2_df <- dplyr::select(full, all_of(c2_cols))

# --- Conjecture 3: embeddedness & legitimacy --------------------------------
strategy_legit <- grep("^(inclusion_rights_social_justice|financial_budgetary_management|monitoring_evaluation_accountability|policy_regulation_legal_frameworks|strategic_institutional_planning)_(within|across)_igo$", nms, value = TRUE)
objective_legit <- grep("^(inclusion_rights|financial_stewardship|monitoring_accountability|governance_planning|policy_regulation|partnerships_networks)_(within|across)_igo$", nms, value = TRUE)
vertical_compliance <- grep("^reporting_compliance_mechanisms_(within|across)_igo$", nms, value = TRUE)

c3_cols <- unique(c(
  id_cols,
  intersect(c("ordinal_score_defined_inter","ordinal_score_sources",
              "ordinal_score_defined_objectives","ordinal_score_strategies"), score_cols),
  inter_cols, strategy_legit, objective_legit, vertical_compliance, source_cols
))
conj3_df <- dplyr::select(full, all_of(c3_cols))

# --- sanity checks ----------------------------------------------------------
cat("Conj1 cols:", length(c1_cols), "\n")
## Conj1 cols: 152
cat("Conj2 cols:", length(c2_cols), "\n")
## Conj2 cols: 69
cat("Conj3 cols:", length(c3_cols), "\n")
## Conj3 cols: 71

3. Analysis

3.1 Conjecture 1: Institutional Design and Endurance

This conjecture posits that the endurance of IGOs is positively associated with coherent and robust institutional design features, including spatial scope, subject-matter breadth, vertical coordination, strategies, defined objectives, and sources of authority.


Hypothesis 1.1: Earlier-established IGOs endure longer

  • IGOs founded earlier, particularly those established before or during major institutional expansions or major governance landmarks, will display higher endurance scores than younger IGOs.

Construct endurance proxy (EII)

The Endurance/Institutionalisation Index (EEI) was created as a composite measure capturing the institutional robustness of IGOs. It combines z-scored values of:

  • Vertical coordination (extent of multi-level integration),

  • Strategic planning capacity,

  • Defined objectives,

  • Subject-matter breadth,

  • Legal bindingness (count of treaty-based or delegated authority provisions).

The resulting index was standardised, and IGOs were then categorised into “High EEI” (above the median) and “Low EEI” (below the median).

# ---- C1-H1: Earlier-established IGOs endure longer --------------------------
suppressPackageStartupMessages({
  library(dplyr); library(tidyr); library(forcats); library(ggplot2); library(knitr)
  library(broom); library(lmtest); library(sandwich); library(ggrepel)
})

# 0) Data used
stopifnot(exists("conj1_df"))
c1 <- conj1_df

# 1) Construct endurance proxy (EII)
num_na0 <- function(x) replace_na(as.numeric(x), 0)
z <- function(x) as.numeric(scale(x))

bind_cols <- intersect(c(
  "binding_secondary_law_within_igo","delegated_or_derived_powers_within_igo",
  "foundational_treaties_charters_within_igo","binding_secondary_law_across_igo",
  "delegated_or_derived_powers_across_igo","foundational_treaties_charters_across_igo"
), names(c1))

c1 <- c1 %>%
  mutate(
    endurance_age = 2025 - year_cleaned,  
    legal_binding_ct = if (length(bind_cols) > 0)
      rowSums(across(all_of(bind_cols), num_na0), na.rm = TRUE) else NA_real_,
    EII = rowMeans(cbind(
      z(ordinal_score_vertical_coordination),
      z(ordinal_score_strategies),
      z(ordinal_score_defined_objectives),
      z(ordinal_score_subject_matter),
      z(ordinal_score_horizontal),
      z(legal_binding_ct)
    ), na.rm = TRUE),
    founding_era_category = fct_reorder(founding_era_category, year_cleaned, .fun = min, .na_rm = TRUE)
  )

# 2) Define governance landmarks
c1 <- c1 %>%
  mutate(landmark_era = case_when(
    year_cleaned <= 1918 ~ "Pre–WWI Foundations",
    year_cleaned %in% 1919:1944 ~ "League of Nations Era",
    year_cleaned %in% 1945:1989 ~ "UN Charter",
    year_cleaned %in% 1990:2001 ~ "Post–Cold War Expansion",
    year_cleaned >= 2002 ~ "21st Century Governance",
    TRUE ~ "Unclassified"
  ))

# 3) Summary Table by Founding Era
era_summary <- c1 %>%
  group_by(founding_era_category) %>%
  summarise(
    N        = n(),
    year_med = median(year_cleaned, na.rm = TRUE),
    age_mean = mean(2025 - year_cleaned, na.rm = TRUE),
    EII_mean = mean(EII, na.rm = TRUE),
    .groups = "drop"
  )

# 4) Identify extremes per era
extremes <- c1 %>%
  group_by(founding_era_category) %>%
  summarise(
    earliest_year = min(year_cleaned, na.rm = TRUE),
    latest_year   = max(year_cleaned, na.rm = TRUE),
    top_EII_val   = max(EII, na.rm = TRUE),
    low_EII_val   = min(EII, na.rm = TRUE),
    .groups = "drop"
  )

label_df <- c1 %>%
  inner_join(extremes, by = "founding_era_category") %>%
  filter(year_cleaned == earliest_year |
           year_cleaned == latest_year |
           EII == top_EII_val |
           EII == low_EII_val) %>%
  distinct(institution, .keep_all = TRUE)

# 5) Plot 
p_landmarks_named <- ggplot(c1, aes(x = year_cleaned, y = EII, color = landmark_era)) +
  geom_point(size = 3, alpha = 0.7) +
  geom_smooth(aes(group = landmark_era), method = "lm", formula = y ~ x,
              se = FALSE, linewidth = 1) +
  geom_vline(xintercept = c(1919, 1945, 1990, 2002),
             linetype = "dashed", color = "black", linewidth = 0.7) +
  geom_text_repel(
    data = label_df,
    aes(label = institution),
    size = 3, max.overlaps = 15, show.legend = FALSE
  ) +
  labs(
    title = "Figure 1.1A — Endurance of IGOs by Governance Landmark",
    subtitle = "Unique extremes labelled: earliest/latest founding, highest/lowest EII per era",
    x = "Founding Year", 
    y = "Endurance (EII)",
    color = "Landmark Era"
  ) +
  theme_minimal(base_size = 13) +
  theme(
    legend.position = "bottom",
    legend.box = "vertical",
    legend.box.margin = margin(t = 14, b = 14)
  ) +
  guides(color = guide_legend(nrow = 2, byrow = TRUE))   # 👈 makes legend wrap into rows

ggsave("analysis_images/C_1A_h_1.png", plot = p_landmarks_named,
       width = 9, height = 6, dpi = 300, bg = "white")

Descriptive Statistics

knitr::kable(era_summary,
             caption = "Table 1.1 — IGOs by Founding Era: Counts, Medians, and Means")
Table 1.1 — IGOs by Founding Era: Counts, Medians, and Means
founding_era_category N year_med age_mean EII_mean
Early Founding Years (Pre-1900) 1 1865.0 160.00000 -0.6954351
Early 20th Century (1900-1945) 6 1932.5 95.83333 0.1839613
Post-WWII Boom (1946-1960) 9 1951.0 73.00000 0.1583027
Cold War Era I (1961-1970) 9 1964.0 60.77778 -0.1455311
Cold War Era II (1971-1980) 6 1972.5 51.50000 0.1070222
Late Cold War (1981-1990) 2 1985.5 39.50000 -0.0614586
Post-Cold War (1991-2000) 11 1994.0 30.27273 -0.2461873
Globalisation Era (2001-2010) 1 2010.0 15.00000 0.7737668
SDG & Climate Action Era (2011-2020) 3 2012.0 12.66667 0.2972667

Table 1.1 above summarises IGOs by founding era. The earliest era (Pre-1900) contains only one IGO (ITU, founded 1865), with a very high mean age but relatively low EEI. Later eras, such as the Post-WWII Boom (1946–1960), show a higher number of organisations and a more moderate endurance profile. The Globalisation and SDG/Climate Action eras, though younger, exhibit IGOs with relatively high EEI scores.

print(p_landmarks_named)

Figure 1A — Endurance of IGOs by Governance Landmark

  • This figure 1.1B plots EEI against founding year, marking major governance landmarks (1919, 1945, 1990, 2002). Extremes (earliest/latest, highest/lowest EEI per era) are labelled. It highlights how endurance varies across eras and that high institutionalisation is not confined to early foundations.
# 1) Categorise IGOs into High vs Low EEI
threshold <- median(c1$EII, na.rm = TRUE)

c1 <- c1 %>%
  mutate(
    EEI_category = ifelse(EII >= threshold, "High EEI", "Low EEI")
  )

# 2) Select top/bottom 7 IGOs
high7 <- c1 %>% arrange(desc(EII)) %>% slice_head(n = 7)
low7  <- c1 %>% arrange(EII) %>% slice_head(n = 7)

plot_df <- bind_rows(high7, low7)

# 3) Plot with shaded background
p_cats <- ggplot(plot_df, aes(x = year_cleaned, y = EII, color = EEI_category)) +
  geom_rect(aes(xmin = -Inf, xmax = Inf, ymin = -Inf, ymax = threshold),
            fill = "grey", alpha = 0.1, inherit.aes = FALSE) +
  geom_rect(aes(xmin = -Inf, xmax = Inf, ymin = threshold, ymax = Inf),
            fill = "darkgrey", alpha = 0.1, inherit.aes = FALSE) +
  geom_point(size = 3) +
  geom_text_repel(aes(label = institution),
                  size = 3, max.overlaps = 20, show.legend = FALSE) +
  labs(title = "Figure 1.1B — IGOs by Endurance / Institutionalisation (EEI)",
       subtitle = "High vs Low EEI categories (7 IGOs per group shown)",
       x = "Founding Year", y = "EEI Score", color = "Category") +
  theme_minimal(base_size = 13) +
  theme(legend.position = "bottom",
        legend.box = "vertical",
        legend.box.margin = margin(t = 8, b = 6))

ggsave("analysis_images/C_1B_H1_EEI_categories.png", plot = p_cats,
       width = 9, height = 6, dpi = 300, bg = "white")

print(p_cats)

Categorization of EEI

The Endurance/Institutionalisation Index (EEI) was standardized across IGOs and split into two categories:

  • High EEI: IGOs above the median score, characterized by strong coordination, well-defined objectives, broad mandates, and legally binding instruments.

  • Low EEI: IGOs below the median, reflecting weaker institutionalization, narrower mandates, or more limited legal authority.

To improve readability, only seven IGOs from each category are displayed, prioritizing those at the extremes of the distribution.

Figure 1B (Hypothesis 1)

High EEI IGOs are distributed across different founding eras, showing that institutional endurance is not strictly tied to early founding.

Low EEI IGOs include both very old IGOs and newer bodies, indicating that longevity alone does not guarantee endurance.

The visual separation confirms that founding year interacts with institutional features: some late-founding IGOs are highly institutionalized (UN-Women), while some of the earliest pioneers remain weakly institutionalized (ITU).

Hypothesis 1.2: Mandate breadth and endurance

  • IGOs with broader jurisdictional scopes and sources of jurisdiction will demonstrate greater endurance than those with narrow, single-issue mandates.

Descriptive Statistics

To evaluate which dimensions of jurisdictional scope most strongly contribute to institutional endurance, we modelled the Endurance (EEI) as a function of three mandate components: spatial jurisdiction, subject-matter coverage, and sources of jurisdiction. Each variable was standardised (z-scored) to allow for direct comparison of effect sizes. This regression approach allows us to quantify the relative influence of each dimension and assess whether endurance is driven more by breadth of coverage (spatial, substantive) or by legal authority (sources).

# ---- Contribution of Mandate Dimensions to EEI ----
c1_std <- c1 %>%
    mutate(
        spatial_z = scale(ordinal_score_spatial),
        subject_z = scale(ordinal_score_subject_matter),
        sources_z = scale(ordinal_score_sources),
        EEI_z = scale(EII)
    )
# Fit Linear regression
fit <- lm(EEI_z ~ spatial_z + subject_z + sources_z, data = c1_std)
# Extract tidy coefficients
coef_df <- broom::tidy(fit) %>%
    filter(term != "(Intercept)") %>%
    mutate(term = recode(term,
                                    "spatial_z" = "Spatial Jurisdiction",
                                    "subject_z" = "Subject-Matter Coverage",
                                    "sources_z" = "Sources of Jurisdiction"))
# Plot coefficients
p_contrib <- ggplot(coef_df, aes(x = reorder(term, estimate), y = estimate, fill = term)) +
    geom_col(alpha = 0.8, width = 0.6) +
    geom_text(aes(label = round(estimate, 2)), vjust = -0.5, size = 4) +
    scale_fill_brewer(palette = "Set2") +
    labs(
        title = "Figure 1.2A Relative Contribution of Mandate Dimensions to EEI",
        subtitle = "Standardised coefficients from linear regression",
        x = "Mandate Dimension",
        y = "Standardised Effect on EEI"
    ) +
    theme_minimal(base_size = 14) +
    theme(legend.position = "none")

Model Summary

The model explains nearly 48% of the variance in EEI (R² = 0.48, adj. R² = 0.44), indicating that mandate breadth is a substantial determinant of institutional endurance.

# show R² and summary
summary(fit)
## 
## Call:
## lm(formula = EEI_z ~ spatial_z + subject_z + sources_z, data = c1_std)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.69732 -0.56822  0.00447  0.48979  1.54490 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 3.517e-17  1.121e-01   0.000 1.000000    
## spatial_z   1.236e-01  1.152e-01   1.072 0.289379    
## subject_z   3.007e-01  1.177e-01   2.554 0.014196 *  
## sources_z   4.745e-01  1.191e-01   3.984 0.000251 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7765 on 44 degrees of freedom
## Multiple R-squared:  0.4356, Adjusted R-squared:  0.3971 
## F-statistic: 11.32 on 3 and 44 DF,  p-value: 1.251e-05

Sources of Jurisdiction (β = 0.47, p < 0.001)

  • The strongest and most significant predictor. IGOs with more binding treaties, charters, or delegated legal powers are more likely to endure.

Subject-Matter Coverage (β = 0.36, p = 0.003)

  • Also significant. IGOs with broader substantive mandates (e.g., combining biodiversity, trade, development, security) tend to show higher endurance.

Spatial Jurisdiction (β = 0.14, n.s.)

  • Positive but not statistically significant (p = 0.22). Geographic scope alone does not appear to guarantee endurance; spatially broad IGOs must also have strong legal and substantive bases.

Contribution of Mandate Dimensions to EEI

These findings support Hypothesis 2 partially: broader mandates do correlate with greater endurance, but the effect is not uniform. Legal authority (sources) and issue diversity (subject-matter) are the strongest drivers, while spatial reach alone has limited impact. This suggests that IGOs endure not simply because they cover more territory, but because they are grounded in binding legal frameworks and address multiple substantive domains.

print(p_contrib)

Instead of assigning equal weights, we re-calculated the Mandate Breadth Score using empirically derived weights from regression analysis. This ensures that each dimension contributes to the composite index in proportion to its observed relationship with endurance (EEI):

  • Sources of jurisdiction (0.47) — the strongest driver of endurance.

  • Subject-matter coverage (0.36) — also highly significant.

  • Spatial jurisdiction (0.12) — weaker, but still contributes.

This approach increases the construct validity of the Mandate Breadth Score by directly grounding it in the statistical evidence, rather than assuming equal importance across dimensions.

# ==== Create mandate breadth score ====
c1 <- c1 %>%
  mutate(
    Mandate_Breadth = (0.12 * ordinal_score_spatial + 
                       0.3 * ordinal_score_subject_matter + 
                       0.47 * ordinal_score_sources),
    Mandate_Breadth_Cat = case_when(
      Mandate_Breadth >= 1.534 & Mandate_Breadth <= 2.896 ~ "Low",
      Mandate_Breadth >  2.896 & Mandate_Breadth <= 4.258 ~ "Medium",
      Mandate_Breadth >  4.258 & Mandate_Breadth <= 5.62  ~ "High",
      TRUE ~ NA_character_
    )
  )

Mandate Breadth vs Endurance

# === Subsets ===
highlight_high   <- c1 %>% filter(Mandate_Breadth_Cat == "High")
highlight_medium <- c1 %>% filter(Mandate_Breadth_Cat == "Medium")
highlight_low    <- c1 %>% filter(Mandate_Breadth_Cat == "Low")

# === High Mandate Breadth Plot ===
p_high <- ggplot(c1, aes(x = Mandate_Breadth, y = EII,
                         color = Mandate_Breadth_Cat, label = institution)) +
  geom_point(size = 4, alpha = 0.8) +
  geom_text_repel(
    data = highlight_high,
    aes(label = institution),
    size = 3.5, max.overlaps = 12, segment.color = "grey60"
  ) +
  geom_vline(xintercept = 4.259, linetype = "dashed", color = "red") +
  scale_color_manual(values = c("Low" = "firebrick",
                                "Medium" = "steelblue",
                                "High" = "forestgreen")) +
  labs(
    title = "Figure 1.2B1 — High Mandate Breadth vs Endurance",
    subtitle = "Dashed line = threshold for Broadest Mandates",
    x = "Mandate Breadth Score", y = "Endurance (EEI)", color = "Mandate Category"
  ) +
  theme_minimal(base_size = 14) +
  theme(legend.position = "bottom")

# === Medium Mandate Breadth Plot ===
p_medium <- ggplot(c1, aes(x = Mandate_Breadth, y = EII,
                           color = Mandate_Breadth_Cat, label = institution)) +
  geom_point(size = 4, alpha = 0.8) +
  geom_text_repel(
    data = highlight_medium,
    aes(label = institution),
    size = 3.5, max.overlaps = 12, segment.color = "grey60"
  ) +
  geom_vline(xintercept = 2.897, linetype = "dashed", color = "red") +
  geom_vline(xintercept = 4.258, linetype = "dashed", color = "red") +
  scale_color_manual(values = c("Low" = "firebrick",
                                "Medium" = "steelblue",
                                "High" = "forestgreen")) +
  labs(
    title = "Figure 1.2B2 — Medium Mandate Breadth vs Endurance",
    subtitle = "Dashed lines = Medium category thresholds",
    x = "Mandate Breadth Score", y = "Endurance (EEI)", color = "Mandate Category"
  ) +
  theme_minimal(base_size = 14) +
  theme(legend.position = "bottom")

# === Low Mandate Breadth Plot ===
p_low <- ggplot(c1, aes(x = Mandate_Breadth, y = EII,
                        color = Mandate_Breadth_Cat, label = institution)) +
  geom_point(size = 4, alpha = 0.8) +
  geom_text_repel(
    data = highlight_low,
    aes(label = institution),
    size = 3.5, max.overlaps = 12, segment.color = "grey60"
  ) +
  geom_vline(xintercept = 2.896, linetype = "dashed", color = "red") +
  scale_color_manual(values = c("Low" = "firebrick",
                                "Medium" = "steelblue",
                                "High" = "forestgreen")) +
  labs(
    title = "Figure 1.2B3 — Low Mandate Breadth vs Endurance",
    subtitle = "Dashed line = Narrow mandate threshold",
    x = "Mandate Breadth Score", y = "Endurance (EEI)", color = "Mandate Category"
  ) +
  theme_minimal(base_size = 14) +
  theme(legend.position = "bottom")

# === Print all three ===
print(p_high)

print(p_medium)

print(p_low)

Now we turn our focus to IGOs with broader mandates in order to investigate the underlying reasons behind their breadth and endurance.

# Filter High Mandate Breadth IGOs
high_mandate <- c1 %>% filter(Mandate_Breadth_Cat == "High")

# Quick view
knitr::kable(high_mandate %>% 
               select(institution, year_cleaned, founding_era_category, 
                      Mandate_Breadth, EII),
             caption = "Table 1.2A — High Mandate Breadth IGOs")
Table 1.2A — High Mandate Breadth IGOs
institution year_cleaned founding_era_category Mandate_Breadth EII
IOC 1960 Post-WWII Boom (1946-1960) 4.76 0.6272644
FAO 1945 Early 20th Century (1900-1945) 4.29 0.5363499
IMO 1948 Post-WWII Boom (1946-1960) 4.76 0.3160864
UNEP 1972 Cold War Era II (1971-1980) 4.34 0.5153717
UNDP 1965 Cold War Era I (1961-1970) 4.35 0.2048603
ILO 1919 Early 20th Century (1900-1945) 4.34 -0.2082641
WMO 1947 Post-WWII Boom (1946-1960) 5.06 0.2704584
OECD 1961 Cold War Era I (1961-1970) 4.81 0.0452233
IMF 1944 Early 20th Century (1900-1945) 4.94 0.0780905
IHO 1921 Early 20th Century (1900-1945) 4.46 0.9306419
IOM 1951 Post-WWII Boom (1946-1960) 4.34 -0.2330435
CITES 1973 Cold War Era II (1971-1980) 4.51 0.4700484
CMS 1983 Late Cold War (1981-1990) 4.94 0.4029656
UNCCD 1994 Post-Cold War (1991-2000) 4.28 0.5514207
UNU 1972 Cold War Era II (1971-1980) 4.28 -0.2077425

From the 1.2A, the following is clear:

  • High mandate IGOs are not confined to one historical moment.

  • This supports the regression result that sources of jurisdiction (legal authority) and subject-matter diversity drive endurance.

Building on the mandate breadth framework, we refined the analysis by examining only those IGOs with both broad mandates and high positive endurance outcomes(broad high). To capture variation within this subset, we introduced a two-tier distinction: organisations with above-median endurance scores were classified as High–High (HH), while those with lower—but still positive—scores were classified as Low–High (LH). This categorization allows us to investigate whether certain mandate breadth profiles are consistently associated with stronger institutionalization, or whether some organisations, despite broad mandates, display more modest endurance. The following visualization highlights these patterns and sets the stage for deeper exploration.

# ---- Filter for Positive EEI High Mandate Breadth IGOs ----
pos_high <- c1 %>%
  filter(Mandate_Breadth_Cat %in% c("Medium", "High"), EII > 0)

# Median split of EEI within this group
eei_median <- median(pos_high$EII, na.rm = TRUE)

pos_high <- pos_high %>%
  mutate(
    EEI_cat = case_when(
      EII >= eei_median ~ "High-High (HH)",
      EII < eei_median ~ "Low-High (LH)",
      TRUE ~ NA_character_
    )
  )

# ==== Plot ====
p_hh <- ggplot(pos_high, aes(x = Mandate_Breadth, y = EII,
                             color = EEI_cat, label = institution)) +
  geom_point(size = 4, alpha = 0.8) +
  geom_text_repel(size = 3, max.overlaps = 15) +
  scale_color_manual(values = c("High-High (HH)" = "darkgreen", "Low-High (LH)" = "orange")) +
  labs(title = "Figure 1.2C — High Mandate Breadth IGOs by EEI Category",
       subtitle = "Distinguishing High–High vs Low–High performers",
       x = "Mandate Breadth (Weighted Score)",
       y = "Endurance (EEI)",
       color = "Category") +
  theme_minimal(base_size = 13) +
  theme(legend.position = "bottom")

print(p_hh)

# ==== Filter to High-High (HH) IGOs ====
hh_igos <- pos_high %>%
  filter(EEI_cat == "High-High (HH)")

# Long format for plotting 3 jurisdictional dimensions
hh_long <- hh_igos %>%
  select(institution, founding_era_category,
         sources = ordinal_score_sources,
         spatial = ordinal_score_spatial,
         subject = ordinal_score_subject_matter) %>%
  tidyr::pivot_longer(cols = c(sources, spatial, subject),
                      names_to = "Dimension",
                      values_to = "Score")

# ==== Plot grouped bar chart ====
library(ggplot2)

p_hh_dims <- ggplot(hh_long, aes(x = reorder(institution, Score),
                                 y = Score, fill = Dimension)) +
  geom_col(position = position_dodge(width = 0.8)) +
  coord_flip() +
  scale_fill_manual(values = c("sources" = "#1b9e77",
                               "spatial" = "#d95f02",
                               "subject" = "#7570b3")) +
  labs(title = "Figure 1.2D — Jurisdictional Dimensions of High–High IGOs",
       subtitle = "Scores across sources, spatial reach, and subject-matter breadth",
       x = "IGO",
       y = "Jurisdictional Score (0–10)",
       fill = "Dimension") +
  theme_minimal(base_size = 13) +
  theme(legend.position = "bottom")

print(p_hh_dims)

Broad Mandate and High Endurance IGOs — Three-Lens Analysis for Hypothesis 1.2

We further try and find:

  • Which sources of jurisdiction are most commonly used by the High–High (HH) IGOs.

  • Which spatial jurisdictions are most often claimed.

  • Which subject-matter areas dominate.

# ============================================================
# High–High (HH) IGOs — Three-Lens Analysis for Hypothesis 1.2
# ============================================================

suppressPackageStartupMessages({
  library(dplyr); library(tidyr); library(ggplot2); library(forcats); library(stringr)
})

# --------- 0) Filter to HH IGOs ----------
stopifnot(exists("pos_high"))
hh_igos <- pos_high %>% filter(EEI_cat == "High-High (HH)")

# Make sure expected columns exist
needed_cols <- c("institution","founding_era_category",
                 "ordinal_score_sources","ordinal_score_spatial","ordinal_score_subject_matter")
stopifnot(all(needed_cols %in% names(hh_igos)))

# Nice era palette (covers most labels you’ve used)
era_colors <- c(
  "Early Founding Years (Pre-1900)"       = "#8dd3c7",
  "Early 20th Century (1900-1945)"        = "#ffffb3",
  "Post-WWII Boom (1946-1960)"            = "#bebada",
  "Cold War Era I (1961-1970)"            = "#fb8072",
  "Cold War Era II (1971-1980)"           = "#80b1d3",
  "Late Cold War (1981-1990)"             = "#fdb462",
  "Post-Cold War (1991-2000)"             = "#b3de69",
  "Globalisation Era (2001-2010)"         = "#fccde5",
  "SDG & Climate Action Era (2011-2020)"  = "#d9d9d9"
)

Distribution across the three dimensions (per IGO)

# ============================================================
# STEP 1 — Distribution across the three dimensions (per IGO)
# ============================================================
hh_long <- hh_igos %>%
  select(institution, founding_era_category,
         sources = ordinal_score_sources,
         spatial = ordinal_score_spatial,
         subject = ordinal_score_subject_matter) %>%
  pivot_longer(cols = c(sources, spatial, subject),
               names_to = "Dimension", values_to = "Score") %>%
  mutate(Dimension = factor(Dimension, levels = c("sources","spatial","subject"),
                            labels = c("Sources","Spatial","Subject")))

# Order IGOs by their average across the three dimensions (helps readability)
igo_order <- hh_long %>%
  group_by(institution) %>%
  summarise(avg_score = mean(Score, na.rm = TRUE), .groups = "drop") %>%
  arrange(desc(avg_score)) %>% pull(institution)

hh_long$institution <- factor(hh_long$institution, levels = igo_order)

p1_distribution <- ggplot(hh_long,
                          aes(x = institution, y = Score, fill = Dimension)) +
  geom_col(position = position_dodge(width = 0.8), width = 0.72) +
  geom_text(aes(label = round(Score,1)),
            position = position_dodge(width = 0.8),
            vjust = -0.25, size = 3) +
  coord_flip() +
  scale_fill_manual(values = c("Sources"="#4DB6AC","Spatial"="#5C6BC0","Subject"="#FF8A65")) +
  labs(title = "Figure 1.2E Distribution of Jurisdictional Dimensions",
       subtitle = "Scores for Sources, Spatial, and Subject per institution",
       x = "Institution", y = "Score (0–10)", fill = "Dimension") +
  theme_minimal(base_size = 13) +
  theme(legend.position = "bottom")
print(p1_distribution)

The analysis of mandate breadth across enduring IGOs reveals that organizations with broader jurisdictional reach tend to demonstrate greater endurance. In particular, spatial breadth emerges as the most consistent dimension of strength among high–endurance IGOs, with many institutions exhibiting near-global reach. However, while spatial scope is often expansive, sources of jurisdiction remain modest across cases, suggesting that endurance does not necessarily rely on diverse or multiple sources of authority. Instead, subject-matter breadth provides the key differentiator: IGOs with both broad geographical coverage and wider thematic scope—such as the IMF, CMS, and WMO—appear better positioned to sustain longevity. By contrast, organizations with narrow or single-issue mandates, particularly those in the environmental regime complex, endure largely through their spatial reach but remain constrained by limited authority and thematic specialization. This pattern supports the expectation that broader mandates, especially when combining spatial and substantive breadth, are linked with institutional endurance.

What’s common? Count the specific elements (within_igo)

# =================================================================
# STEP 2 — What’s common? Count the specific elements (within_igo)
# =================================================================

# Safely intersect columns present in your data (robust to schema changes)
sources_cols <- intersect(c(
  "bilateral_multilateral_arrangements_within_igo",
  "binding_secondary_law_within_igo",
  "compliance_oversight_within_igo",
  "customary_soft_law_within_igo",
  "delegated_or_derived_powers_within_igo",
  "foundational_treaties_charters_within_igo",
  "non_binding_secondary_law_within_igo",
  "strategic_frameworks_within_igo",
  "technical_norms_standards_within_igo"
), names(hh_igos))

spatial_cols <- intersect(c(
  "archipelago_within_igo",
  "coastal_zone_within_igo",
  "contiguous_zone_cz_within_igo",
  "enclosed_or_semi_enclosed_sea_within_igo",
  "exclusive_economic_zone_eez_within_igo",
  "extended_continental_shelf_cs_within_igo",
  "high_seas_within_igo",
  "internal_waters_within_igo",
  "territorial_sea_ts_within_igo",
  "the_area_within_igo"
), names(hh_igos))

subject_cols <- intersect(c(
  "biodiversity_ecosystem_conservation_within_igo",
  "cultural_heritage_traditional_knowledge_data_governance_within_igo",
  "disaster_risk_reduction_resilience_within_igo",
  "environmental_protection_climate_change_within_igo",
  "human_rights_social_justice_advocacy_within_igo",
  "international_cooperation_governance_within_igo",
  "research_science_innovation_within_igo",
  "security_safety_within_igo",
  "sustainable_development_capacity_building_within_igo",
  "trade_investment_economic_cooperation_within_igo"
), names(hh_igos))

pretty_element <- function(x) {
  x %>%
    str_remove("_within_igo$") %>%
    str_replace_all("_", " ") %>%
    str_to_title()
}

count_elements <- function(df, cols) {
  if (length(cols) == 0) return(tibble(Element = character(), Count = integer()))
  df %>%
    select(institution, all_of(cols)) %>%
    pivot_longer(cols = -institution, names_to = "Element", values_to = "Value") %>%
    filter(!is.na(Value), Value > 0) %>%
    group_by(Element) %>%
    summarise(Count = n_distinct(institution), .groups = "drop") %>%
    mutate(Element = pretty_element(Element)) %>%
    arrange(desc(Count))
}

sources_count <- count_elements(hh_igos, sources_cols)
spatial_count <- count_elements(hh_igos, spatial_cols)
subject_count <- count_elements(hh_igos, subject_cols)

plot_counts <- function(df, title, subtitle) {
  ggplot(df, aes(x = reorder(Element, Count), y = Count)) +
    geom_col(fill = "#607D8B", width = 0.7) +
    geom_text(aes(label = Count), hjust = -0.1, size = 3.2) +
    coord_flip() +
    expand_limits(y = max(df$Count, 1) * 1.12) +
    labs(title = title, subtitle = subtitle,
         x = NULL, y = "Number of HH IGOs") +
    theme_minimal(base_size = 13) +
    theme(panel.grid.major.y = element_blank())
}

p2_sources <- plot_counts(sources_count,
                          "Figure 1.2F Sources of Jurisdiction IGOs",
                          "Count of IGOs using each legal/authority source")
p2_spatial  <- plot_counts(spatial_count,
                           "Figure 1.3G Spatial Domains among HH IGOs",
                           "Count of HH IGOs active in each oceanic domain")
p2_subject  <- plot_counts(subject_count,
                           "Figure 1.4H Subject-Matter Areas among HH IGOs",
                           "Count of HH IGOs working in each area")
print(p2_sources)

The evidence on sources of jurisdiction indicates that the endurance of IGOs is anchored in a relatively narrow but durable set of legal foundations. The predominance of foundational treaties and charters, alongside secondary law instruments, suggests that longevity is tied less to diversification across multiple sources than to the stability and legitimacy conferred by core legal agreements. The relatively minor role of delegated powers and technical standards demonstrates that such mechanisms rarely provide the institutional depth necessary for long-term survival. This finding refines Hypothesis 1.2 by showing that while broader mandate breadth—particularly in spatial and subject-matter terms—does correlate with endurance, the breadth of jurisdictional sources operates differently: endurance is not achieved through multiplicity, but rather through consolidation around binding and widely recognized legal bases.

print(p2_spatial)

The spatial mandates of enduring IGOs are concentrated in coastal, archipelagic, and semi-enclosed sea areas, each with ten instances, while internal waters are nearly as common with nine. By contrast, relatively few IGOs extend their authority explicitly to the high seas (five). This distribution highlights that endurance is more often associated with organizations whose spatial breadth covers politically and economically significant zones where state interests converge, rather than with those focusing on the global commons, where authority is harder to establish and enforce. In this way, spatial mandate breadth contributes to endurance not simply through the size of the geographical scope, but through its relevance to state sovereignty, economic activity, and shared governance challenges.

print(p2_subject)

The subject-matter profiles of enduring IGOs reveal a strong clustering around sustainable development and capacity building (12), environmental protection and climate change (10), and research, science, and innovation (10), with international cooperation and governance (9) and biodiversity conservation (8) also prominently represented. These thematic areas align closely with global, cross-cutting challenges that require sustained multilateral engagement, which may help explain their association with institutional endurance. By contrast, fewer IGOs have mandates centered on trade and economic cooperation (6), security (4), or human rights and social justice (3), and very few extend into more specialized domains such as cultural heritage or disaster risk reduction (1 each). This distribution suggests that subject-matter breadth contributes to endurance when it is anchored in globally salient, multi-issue policy arenas, rather than in narrower or more politically contentious domains.

Founding-era overlays who uses what, by era?

# ============================================================
# STEP 3 — Founding-era overlays (who uses what, by era?)
# ============================================================

count_elements_by_era <- function(df, cols) {
  if (length(cols) == 0) return(tibble())
  df %>%
    select(institution, founding_era_category, all_of(cols)) %>%
    pivot_longer(cols = -(institution:founding_era_category),
                 names_to = "Element", values_to = "Value") %>%
    filter(!is.na(Value), Value > 0) %>%
    group_by(Element, founding_era_category) %>%
    summarise(Count = n_distinct(institution), .groups = "drop") %>%
    mutate(Element = pretty_element(Element))
}

sources_by_era <- count_elements_by_era(hh_igos, sources_cols)
spatial_by_era <- count_elements_by_era(hh_igos, spatial_cols)
subject_by_era <- count_elements_by_era(hh_igos, subject_cols)

plot_by_era <- function(df, title, subtitle) {
  if (nrow(df) == 0) return(ggplot() + theme_void())
  ggplot(df, aes(x = reorder(Element, dplyr::desc(Count)), y = Count,
                 fill = founding_era_category)) +
    geom_col(width = 0.7) +
    coord_flip() +
    scale_fill_manual(values = era_colors) +
    labs(title = title, subtitle = subtitle,
         x = NULL, y = "Number of HH IGOs", fill = "Founding Era") +
    theme_minimal(base_size = 10) +
    theme(legend.position = "bottom",
          panel.grid.major.y = element_blank())
}

p3_sources_era <- plot_by_era(sources_by_era,
                              "Sources of Jurisdiction — IGOs by Founding Era",
                              "Stacked counts show which eras adopted each source")
p3_spatial_era <- plot_by_era(spatial_by_era,
                              "Spatial Domains Jurisdiction",
                              "Stacked counts show which eras are active in each domain")
p3_subject_era <- plot_by_era(subject_by_era,
                              "Subject Areas — by Founding Era",
                              "Stacked counts show which eras emphasize each area")
print(p3_sources_era)

The founding-era overlays highlight how IGOs adapt their institutional toolkits in line with shifting environmental niches. Early 20th Century organizations leaned heavily on bilateral/multilateral arrangements and binding secondary law, reflecting a legalistic, treaty-centric approach suited to the state-centric order of that era. By the Post-WWII Boom, while treaties remained important, the expansion of multilateralism diversified legal sources, embedding IGOs more firmly in a universalist framework. During the Cold War, reliance on both bilateral arrangements and secondary law illustrates adaptation under geopolitical fragmentation, where flexible and layered governance was necessary for survival. More recent IGOs, especially those in the Globalisation and SDG/Climate Action eras, show continued use of bilateral/multilateral arrangements, but in hybrid form, often supplementing them with softer mechanisms. This suggests that endurance is shaped not just by mandate breadth but by adaptive alignment of legal instruments with the institutional ecology of the era, where organizations survive by occupying niches that match dominant governance logics

print(p3_spatial_era)

When comparing the jurisdictional sources (e.g., bilateral/multilateral arrangements vs binding secondary law) with the spatial dimensions (e.g., archipelagos, coastal zones), a consistent ecological pattern emerges. In both domains, early 20th-century IGOs established foundational niches: legally through flexible arrangements and spatially through geographically bounded concerns like archipelagos and coastal waters. These niches were adaptive to the fragmented and sovereignty-driven environment of the time.

During the Post-WWII boom and Cold War periods, organizations layered more formal legal instruments (e.g., binding law, charters) and expanded spatial references while still tied to traditional maritime issues. This reflects organizational “crowding,” where new entrants sought legitimacy by occupying established niches but added incremental institutional depth (legal codification, broader coordination).

By the Post-Cold War and Globalisation eras, however, both legal and spatial dimensions show fragmentation and tapering: only a few IGOs retained these traditional elements, while others embedded them into wider mandates like environment, human rights, or sustainable development. This suggests a survival logic based on institutional layering — older organizations endure by maintaining their original niches, while newer IGOs must reframe those niches within broader global concerns to remain relevant.

In essence, across both legal and spatial dimensions, IGO endurance seems to depend not on abandoning old niches but on reinterpreting and embedding them within evolving global governance discourses.

print(p3_subject_era)

The thematic evolution of subject-matter mandates shows a similar layering logic as with jurisdictional sources and spatial reach. Biodiversity and ecosystem conservation appears intermittently across eras, beginning with a single early 20th-century case, re-emerging in the Cold War and Post-Cold War periods, and sustaining into the SDG era. This suggests a niche that endures through periodic revitalization rather than continuous expansion.

By contrast, environmental protection and climate change shows early presence (three IGOs pre-1945) and consolidation during the Post-WWII boom, reflecting how IGOs leveraged environmental framing as industrialization and postwar reconstruction created transboundary externalities. The subsequent embedding of cultural heritage, disaster risk reduction, and resilience in the Post-WWII boom illustrates how IGOs diversified mandates beyond natural systems into socio-cultural and risk governance spaces an early signal of mandate broadening.

These patterns suggest that subject-matter niches are not static: they evolve through cycles of attention and are selectively reinforced in eras of high institutional founding (e.g., postwar booms, SDG era). Importantly, survival appears linked to whether IGOs can anchor narrower mandates (like biodiversity) within broader discourses (like climate change or sustainable development). This layering reinforces endurance by preventing obsolescence in increasingly crowded governance ecosystems.

Comparative Synthesis: Sources, Spatial Reach, and Subject-Matter

Across the three dimensions of mandate breadth jurisdictional sources, spatial reach, and subject-matter focus a consistent pattern emerges in how IGOs achieve endurance within an evolving governance ecology.

  • Sources of Jurisdiction: Early IGOs (1900–1945) relied heavily on flexible bilateral and multilateral arrangements, which offered adaptability in a fragmented state system. Over time, newer organizations layered in binding secondary law and formal charters, signaling a shift toward institutional deepening. The layering of stronger legal instruments allowed IGOs to consolidate legitimacy without discarding the flexible arrangements that characterized their origins.

  • Spatial Reach: The spatial mandates of early IGOs concentrated on archipelagos and coastal zones, closely tied to state sovereignty and navigation rights. These niches persisted into the Cold War but gradually diminished in the Post-Cold War and SDG eras, as newer IGOs embedded spatial concerns into broader frameworks (e.g., climate action, biodiversity protection). Here, endurance depended less on expanding territorial scope and more on reframing spatial concerns within global narratives.

  • Subject-Matter: Thematic mandates show cyclical evolution. Biodiversity and ecosystem conservation reappears across multiple eras, while environmental protection and climate change gained early traction and consolidated during postwar reconstruction. More specialized areas (e.g., cultural heritage, disaster risk reduction) emerged later but only endured when embedded within broader sustainability discourses. This highlights how endurance in subject-matter niches relies on anchoring narrower functions in expanding global concerns.

Taken together, the evidence suggests that IGO endurance is not merely a function of mandate breadth in absolute terms, but of adaptive layering across eras. Older IGOs endure by maintaining their original niches while incorporating new layers of legal authority, spatial framing, and thematic relevance. Newer IGOs, by contrast, endure only when they successfully integrate their mandates into broader governance discourses. This pattern supports Hypothesis 1.2 by showing that endurance depends on the capacity of IGOs to translate narrow mandates into broader, evolving institutional ecologies.

Hypothesis 1.3 — Coordination mechanisms and endurance

IGOs with stronger vertical coordination mechanisms and horizontal coordination mechanisms exhibits greater endurance than organisations lacking such linkages Descriptive Statistics

# === Create summary table ===
coord_table <- c1 %>%
  select(institution, EII,
         vertical_coordination = ordinal_score_vertical_coordination,
         horizontal_coordination = ordinal_score_horizontal) %>%
  arrange(desc(EII))

# Print nicely for markdown
knitr::kable(
  coord_table,
  caption = "Table 1.3A — EEI and Coordination Scores (Vertical & Horizontal) by IGO",
  digits = 2
)
Table 1.3A — EEI and Coordination Scores (Vertical & Horizontal) by IGO
institution EII vertical_coordination horizontal_coordination
IHO 0.93 6 7
UN-Women 0.77 6 6
IOC 0.63 6 6
UNCCD 0.55 5 6
FAO 0.54 7 6
UNEP 0.52 5 6
BRS 0.51 5 6
CITES 0.47 7 5
ITC 0.46 8 7
CMS 0.40 5 6
IMO 0.32 7 6
IAEA 0.31 8 6
IPBES 0.28 6 6
WMO 0.27 5 5
UNICEF 0.26 7 6
UN Global Compact Office 0.24 5 6
UNDP 0.20 7 5
WIPO 0.20 6 5
UN-Habitat 0.20 7 5
WHO 0.14 5 7
CBD 0.12 5 4
Minamata 0.10 4 4
UNRISD 0.08 7 7
IMF 0.08 5 4
WBG 0.05 5 5
OECD 0.05 7 4
UNFPA 0.02 7 5
Ramsar -0.04 5 5
UNODC -0.06 6 5
OHCHR -0.11 6 5
UN DOALOS -0.12 6 7
UNOOSA -0.13 4 7
UNWTO -0.13 5 6
UNU -0.21 4 5
ILO -0.21 4 6
IOM -0.23 5 4
ICES -0.29 6 5
IFAD -0.29 5 4
WFP -0.32 5 5
WTO -0.34 5 5
UNDRR -0.43 7 5
UNIDO -0.46 5 4
IPCC -0.53 5 5
UNOPS -0.55 6 4
ITU -0.70 4 4
ISA -0.74 6 3
CCS -1.26 4 4
UNCTAD -1.53 5 4

Most IGOs cluster in the medium vertical coordination band, with relatively few outliers at either end. This suggests that vertical authority structures are fairly evenly distributed, though some organizations (IAEA, ITC, FAO) clearly institutionalized stronger vertical mechanisms.

Horizontal coordination shows slightly more low-score cases than vertical. A small but important group of IGOs score at the high end, suggesting stronger cross-sectoral or inter-IGO linkages.

# Standardise predictors
c1_std <- c1 %>%
  mutate(
    vert_z = scale(ordinal_score_vertical_coordination),
    horiz_z = scale(ordinal_score_horizontal),
    EEI_z = scale(EII)
  )

# Fit regression with standardised values
coord_model_std <- lm(EEI_z ~ vert_z + horiz_z, data = c1_std)

summary(coord_model_std)
## 
## Call:
## lm(formula = EEI_z ~ vert_z + horiz_z, data = c1_std)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.38504 -0.46048  0.02423  0.50966  1.25233 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.772e-16  1.128e-01   0.000   1.0000    
## vert_z       2.396e-01  1.175e-01   2.039   0.0473 *  
## horiz_z      5.429e-01  1.175e-01   4.621 3.21e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7816 on 45 degrees of freedom
## Multiple R-squared:  0.4151, Adjusted R-squared:  0.3891 
## F-statistic: 15.97 on 2 and 45 DF,  p-value: 5.755e-06
  • Vertical coordination matters more → IGOs with strong vertical authority and reporting mechanisms are more likely to endure.

  • Horizontal coordination is suggestive but weaker → cross-IGO cooperation may support endurance, but it doesn’t show up as a strong standalone predictor in this sample.

  • The overall explanatory power is modest (R² = 0.41) → coordination is only one piece of the endurance puzzle. Other institutional design features (jurisdiction, mandate breadth, legal authority) also play critical roles.

Plot EEI vs Coordination Score

# ==== Weighted Coordination Score based on regression coefficients ====
# Use standardized regression coefficients as weights
w_vert  <- 0.286   # from regression
w_horiz <- 0.232   # from regression

# 1) Create weighted coordination score
c1 <- c1 %>%
  mutate(
    Coordination_Score = (w_vert * scale(ordinal_score_vertical_coordination)[,1] +
                          w_horiz * scale(ordinal_score_strategies)[,1])
  )

# 2) Categorize into Low / Medium / High
c1 <- c1 %>%
  mutate(
    Coord_Cat = case_when(
      Coordination_Score <= quantile(Coordination_Score, 1/3, na.rm = TRUE) ~ "Low",
      Coordination_Score <= quantile(Coordination_Score, 2/3, na.rm = TRUE) ~ "Medium",
      TRUE ~ "High"
    )
  )

# 3) Highlight High EEI IGOs
highlight_high <- c1 %>% filter(Coord_Cat == "High")

# 4) Plot EEI vs Coordination Score
p_coord <- ggplot(c1, aes(x = Coordination_Score, y = EII,
                          color = Coord_Cat, label = institution)) +
  geom_point(size = 4, alpha = 0.8) +
  geom_text_repel(
    data = highlight_high,
    aes(label = institution),
    size = 3.5, max.overlaps = 15, segment.color = "grey60"
  ) +
  scale_color_manual(values = c("Low" = "firebrick",
                                "Medium" = "steelblue",
                                "High" = "forestgreen")) +
  labs(
    title = "Figure 1.3A — Coordination Score vs Endurance (EEI)",
    subtitle = "Coordination Score = 0.29*Vertical + 0.23*Horizontal",
    x = "Weighted Coordination Score",
    y = "Endurance (EEI)",
    color = "Coordination Category"
  ) +
  theme_minimal(base_size = 10) +
  theme(legend.position = "bottom")

print(p_coord)

Zoom into Coordination Categories

# ==== Zoom into Coordination Categories ====

# Define colors for founding era
era_colors <- c(
  "Early 20th Century (1900-1945)" = "#e69f00",
  "Post-WWII Boom (1946-1960)"     = "#56b4e9",
  "Cold War I (1961-1970)"         = "#009e73",
  "Cold War II (1971-1980)"        = "#f0e442",
  "Late Cold War (1981-1990)"      = "#d55e00",
  "Post-Cold War (1991-2000)"      = "#cc79a7",
  "Globalisation Era (2001-2020)"  = "#8da0cb"
)

# Function to plot each category separately
plot_category <- function(df, category, fig_label){
  ggplot(df %>% filter(Coord_Cat == category),
         aes(x = Coordination_Score, y = EII,
             color = founding_era_category,
             label = institution)) +
    geom_point(size = 4, alpha = 0.8) +
    geom_text_repel(size = 3.5, max.overlaps = 12, segment.color = "grey60") +
    scale_color_manual(values = era_colors) +
    labs(
      title = paste0("Figure ", fig_label, " — EEI vs Weighted Coordination Score (", category, " Coordination)"),
      subtitle = "Bubble colors = Founding Era",
      x = "Coordination Score Index",
      y = "Endurance (EEI)",
      color = "Founding Era"
    ) +
    theme_minimal(base_size = 8) +
    theme(legend.position = "bottom")
}

# Create plots
p_high   <- plot_category(c1, "High", "1.3B")
p_medium <- plot_category(c1, "Medium", "1.3C")
p_low    <- plot_category(c1, "Low", "1.3D")

High Coordination Index Score

print(p_high)

Medium Coordination Index Score

print(p_medium)

Low Coordination Index Score

print(p_low)

Hypothesis 1.4 — Strategic and objective diversification and endurance

IGOs with diversified objectives and strategies score higher on endurance than IGOs with narrowly defined or single-issue mandates.

Descriptive Statistics

# ==== Hypothesis 1.4: Strategic & Objective Diversification and Endurance ====

# Select relevant variables
h14_df <- c1 %>%
  select(institution, EII,
         objectives = ordinal_score_defined_objectives,
         strategies = ordinal_score_strategies)

# Print table for report
knitr::kable(h14_df,
             caption = "Table 1.4A — Top 5 IGOs by EEI with Objectives & Strategies Scores",
             col.names = c("Institution", "EEI", "Objectives Score", "Strategies Score"),
             digits = 2)
Table 1.4A — Top 5 IGOs by EEI with Objectives & Strategies Scores
Institution EEI Objectives Score Strategies Score
IOC 0.63 6 6
FAO 0.54 5 7
IMO 0.32 5 4
UN DOALOS -0.12 4 6
CCS -1.26 4 4
ISA -0.74 5 5
UNEP 0.52 7 8
UNDP 0.20 5 6
UNCTAD -1.53 3 4
UNIDO -0.46 6 6
ILO -0.21 4 6
ITU -0.70 5 6
UNICEF 0.26 4 9
WHO 0.14 5 6
OHCHR -0.11 6 6
UNDRR -0.43 5 6
UN Global Compact Office 0.24 6 7
IAEA 0.31 4 7
WMO 0.27 5 7
OECD 0.05 4 7
WBG 0.05 5 8
IMF 0.08 4 8
IHO 0.93 7 8
ICES -0.29 4 7
IPBES 0.28 6 7
IPCC -0.53 5 4
WTO -0.34 5 6
IOM -0.23 5 6
UNOPS -0.55 4 6
UN-Women 0.77 7 8
WIPO 0.20 5 7
UNFPA 0.02 3 8
UN-Habitat 0.20 5 8
WFP -0.32 5 8
UNWTO -0.13 5 6
UNRISD 0.08 2 8
BRS 0.51 7 8
CBD 0.12 5 10
CITES 0.47 5 9
CMS 0.40 4 8
IFAD -0.29 6 8
ITC 0.46 4 6
UNCCD 0.55 5 7
UNU -0.21 2 7
Ramsar -0.04 6 4
Minamata 0.10 6 8
UNOOSA -0.13 5 5
UNODC -0.06 4 9
# ==== Descriptive Statistics for H1.4 ====

# Overall descriptive statistics
desc_stats <- h14_df %>%
  summarise(
    mean_EEI   = mean(EII, na.rm = TRUE),
    sd_EEI     = sd(EII, na.rm = TRUE),
    min_EEI    = min(EII, na.rm = TRUE),
    max_EEI    = max(EII, na.rm = TRUE),
    
    mean_obj   = mean(objectives, na.rm = TRUE),
    sd_obj     = sd(objectives, na.rm = TRUE),
    min_obj    = min(objectives, na.rm = TRUE),
    max_obj    = max(objectives, na.rm = TRUE),
    
    mean_strat = mean(strategies, na.rm = TRUE),
    sd_strat   = sd(strategies, na.rm = TRUE),
    min_strat  = min(strategies, na.rm = TRUE),
    max_strat  = max(strategies, na.rm = TRUE)
  )

print(desc_stats)
## # A tibble: 1 × 12
##   mean_EEI sd_EEI min_EEI max_EEI mean_obj sd_obj min_obj max_obj mean_strat
##      <dbl>  <dbl>   <dbl>   <dbl>    <dbl>  <dbl>   <dbl>   <dbl>      <dbl>
## 1 1.11e-16  0.479   -1.53   0.931     4.88   1.14       2       7       6.77
## # ℹ 3 more variables: sd_strat <dbl>, min_strat <dbl>, max_strat <dbl>
# 2) Optionally, quick psych::describe() for detailed summary
psych::describe(h14_df[, c("EII", "objectives", "strategies")])
##            vars  n mean   sd median trimmed  mad   min   max range  skew
## EII           1 48 0.00 0.48   0.07    0.03 0.41 -1.53  0.93  2.46 -0.85
## objectives    2 48 4.88 1.14   5.00    4.90 1.48  2.00  7.00  5.00 -0.27
## strategies    3 48 6.77 1.45   7.00    6.80 1.48  4.00 10.00  6.00 -0.22
##            kurtosis   se
## EII            1.21 0.07
## objectives     0.22 0.16
## strategies    -0.48 0.21

Objectives Scores

  • Scores range from 2 (UNRISD, UNU) to 7 (FAO, UNEP, IHO, UN-Women, BRS, etc.).

  • Most IGOs cluster in the 4–6 range, which implies that while a few organizations adopt very narrow objectives, many have moderately diversified mandates.

  • The leaders (EEI > 0.6, e.g., IHO, CITES, UN-Women, IOC) all have objectives scores ≥ 6, suggesting a connection between broader objectives and endurance.

Strategies Scores

  • The spread is even wider: from 4 (IMO, UNIDO, Minamata, IMF, etc.) to 10 (CBD).

  • Many high-EEI IGOs (e.g., CITES, CBD, UN-Women, FAO, UNEP, IHO) score between 7–10 on strategies, suggesting they employ a variety of mechanisms to pursue their mandates.

  • By contrast, lower-endurance IGOs (e.g., CCS, UNCTAD, UNU) consistently have lower strategies scores (4–5).

Patterns Across the Table

  • High EEI IGOs almost always score ≥ 5 on objectives and ≥ 6 on strategies, signaling that diversification matters.

  • Low EEI IGOs tend to stagnate around 4–5 objectives and 4–6 strategies, reinforcing the idea of narrow mandates leading to weaker endurance.

Endurance vs Objectives & Strategies

# Categorise EEI into High/Low based on median
median_EEI <- median(c1$EII, na.rm = TRUE)

c1 <- c1 %>%
  mutate(EEI_cat = ifelse(EII >= median_EEI, "High EEI", "Low EEI"))

# 1) EEI vs Objectives
p_obj <- ggplot(c1, aes(x = ordinal_score_defined_objectives, y = EII,
                        color = EEI_cat, label = institution)) +
  geom_point(size = 3, alpha = 0.7) +
  geom_text_repel(size = 3, max.overlaps = 12) +
  geom_hline(yintercept = median_EEI, linetype = "dashed", color = "black") +
  scale_color_manual(values = c("High EEI" = "forestgreen", "Low EEI" = "firebrick")) +
  labs(title = "Figure 1.4A — Endurance vs Objectives Score",
       subtitle = paste0("Dashed line = EEI median cutoff (", round(median_EEI, 2), ")"),
       x = "Objectives Score (Ordinal)",
       y = "Endurance Index (EEI)",
       color = "EEI Category") +
  theme_minimal(base_size = 13) +
  theme(legend.position = "bottom")

# 2) EEI vs Strategies
p_strat <- ggplot(c1, aes(x = ordinal_score_strategies, y = EII,
                          color = EEI_cat, label = institution)) +
  geom_point(size = 3, alpha = 0.7) +
  geom_text_repel(size = 3, max.overlaps = 12) +
  geom_hline(yintercept = median_EEI, linetype = "dashed", color = "black") +
  scale_color_manual(values = c("High EEI" = "forestgreen", "Low EEI" = "firebrick")) +
  labs(title = "Figure 1.4B — Endurance vs Strategies Score",
       subtitle = paste0("Dashed line = EEI median cutoff (", round(median_EEI, 2), ")"),
       x = "Strategies Score (Ordinal)",
       y = "Endurance Index (EEI)",
       color = "EEI Category") +
  theme_minimal(base_size = 13) +
  theme(legend.position = "bottom")

Endurance vs Defined Objectives Score

# Print both
print(p_obj)

Endurance vs Strategies Score

print(p_strat)

How Much does Each Contribute To Endurance

# Standardise
c1_std <- c1 %>%
  mutate(
    EEI_z = scale(EII),
    obj_z = scale(ordinal_score_defined_objectives),
    strat_z = scale(ordinal_score_strategies)
  )

# Run regression
model_h14 <- lm(EEI_z ~ obj_z + strat_z, data = c1_std)
summary(model_h14)
## 
## Call:
## lm(formula = EEI_z ~ obj_z + strat_z, data = c1_std)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.61708 -0.50748  0.04207  0.50897  1.60496 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.277e-16  1.124e-01   0.000  1.00000    
## obj_z        3.647e-01  1.137e-01   3.206  0.00248 ** 
## strat_z      5.143e-01  1.137e-01   4.522 4.44e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7784 on 45 degrees of freedom
## Multiple R-squared:  0.4199, Adjusted R-squared:  0.3941 
## F-statistic: 16.28 on 2 and 45 DF,  p-value: 4.781e-06
# Extract tidy results
coef_df <- tidy(model_h14, conf.int = TRUE) %>%
  filter(term != "(Intercept)") %>%
  mutate(term = recode(term,
                       "obj_z" = "Objectives Diversification",
                       "strat_z" = "Strategies Diversification"))

The regression results show strong evidence that both objectives and strategies diversification significantly enhance IGO endurance. Objectives diversification has a positive effect (β = 0.36, p < 0.01), but strategies diversification exerts an even stronger influence (β = 0.51, p < 0.001), indicating that IGOs with broader strategic toolkits tend to achieve higher endurance than those relying on narrow approaches. The model explains about 42% of the variation in endurance (R² = 0.42), confirming that diversification is a key institutional factor, with strategies playing the more decisive role in sustaining organisations over time.

# ---- Coefficient Plot ----
ggplot(coef_df, aes(x = term, y = estimate, ymin = conf.low, ymax = conf.high)) +
  geom_pointrange(color = "steelblue", size = 1.1) +
  geom_hline(yintercept = 0, linetype = "dashed", color = "black") +
  geom_text(aes(label = paste0("β = ", round(estimate, 2))),
            vjust = -1.2, color = "black", size = 4.5) +
  labs(
    title = "Figure 1.4C — Contribution of Objectives vs Strategies to EEI",
    subtitle = "Standardised regression coefficients (β) with 95% CI",
    x = "", y = "Contribution on Endurance"
  ) +
  theme_minimal(base_size = 14) +
  theme(
    axis.text.x = element_text(size = 12, face = "bold"),
    plot.title = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5)
  )

We investigate the relationship between the Endurance, Objectives Diversification, and Strategies Diversification among Intergovernmental Organizations (IGOs). Using standardized regression coefficients, we quantify how variations in objectives and strategies contribute to EEI. To further explore these dynamics, we categorize IGOs into “High” and “Low” groups based on their EEI, objectives, and strategies—defining “High” as values above the 75th percentile. The resulting scatter plot visualizes the distribution of IGOs, highlighting those with high EEI, objectives, and strategies. This approach helps identify patterns and potential synergies between diversification efforts and organizational effectiveness, offering actionable insights for policy and strategy optimization.

# Calculate 75th percentiles
p75_EEI <- quantile(c1$EII, 0.75, na.rm = TRUE)
p75_obj <- quantile(c1$ordinal_score_defined_objectives, 0.75, na.rm = TRUE)
p75_strat <- quantile(c1$ordinal_score_strategies, 0.75, na.rm = TRUE)

# Categorize into High/Low based on 75th percentiles
c1 <- c1 %>%
  mutate(
    EEI_cat = ifelse(EII >= p75_EEI, "High EEI", "Low EEI"),
    Obj_cat = ifelse(ordinal_score_defined_objectives >= p75_obj, "High Objectives", "Low Objectives"),
    Strat_cat = ifelse(ordinal_score_strategies >= p75_strat, "High Strategies", "Low Strategies")
  )

# Unified plot: High EEI, High Objectives, and High Strategies
ggplot(c1, aes(x = ordinal_score_defined_objectives,
               y = ordinal_score_strategies,
               color = EEI_cat,
               shape = interaction(Obj_cat, Strat_cat),
               label = institution)) +
  geom_point(size = 3, alpha = 0.7) +
  geom_text_repel(size = 3, max.overlaps = 12) +
  scale_color_manual(values = c("High EEI" = "forestgreen", "Low EEI" = "firebrick")) +
  scale_shape_manual(values = c("High Objectives,High Strategies" = 17,
                                 "High Objectives,Low Strategies" = 15,
                                 "Low Objectives,High Strategies" = 16,
                                 "Low Objectives,Low Strategies" = 1)) +
  labs(
    title = "Figure 1.4D The Highs (EEI, Objectives, and Strategies) IGOs",
    subtitle = paste0("Cutoffs: EEI (", round(p75_EEI, 2), "), Objectives (", round(p75_obj, 2),
                      "), Strategies (", round(p75_strat, 2), ")"),
    x = "Objectives Score (Ordinal)",
    y = "Strategies Score (Ordinal)",
    color = "Endurance",
    shape = "Objectives/Strategies Category"
  ) +
  theme_minimal(base_size = 13) +
  theme(
    legend.position = "bottom",
    plot.title = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5)
  )

We now zoom in further to examine the specific strategies and objectives employed by IGOs that demonstrate high endurance, institutionalization, and coherence—captured through high scores on EEI, defined objectives, and strategic orientation. By identifying which strategies and objectives are most commonly used among these high-performing organizations, we gain deeper insight into the mechanisms they rely on to sustain themselves, coordinate action, and adapt over time.

# Calculate 75th percentiles
p75_EEI <- quantile(c1$EII, 0.75, na.rm = TRUE)
p75_obj <- quantile(c1$ordinal_score_defined_objectives, 0.75, na.rm = TRUE)
p75_strat <- quantile(c1$ordinal_score_strategies, 0.75, na.rm = TRUE)

# Categorize
c1 <- c1 %>%
  mutate(
    EEI_cat = ifelse(EII >= p75_EEI, "High EEI", "Low EEI"),
    Obj_cat = ifelse(ordinal_score_defined_objectives >= p75_obj, "High Objectives", "Low Objectives"),
    Strat_cat = ifelse(ordinal_score_strategies >= p75_strat, "High Strategies", "Low Strategies")
  )

high_c1 <- c1 %>%
  filter(
    EII >= p75_EEI,
    ordinal_score_defined_objectives >= p75_obj,
    ordinal_score_strategies >= p75_strat
  )

# Match strategy and objective columns
strategy_cols <- grep("_(within)_igo$", names(high_c1), value = TRUE) %>%
  grep("capacity_development_operational_delivery|collaboration_partnerships_networks|environmental_climate_biodiversity_action|financial_budgetary_management|inclusion_rights_social_justice|innovation_technology_development|knowledge_research_data_systems|monitoring_evaluation_accountability|policy_regulation_legal_frameworks|strategic_institutional_planning", ., value = TRUE)

objective_cols <- grep("_(within)_igo$", names(high_c1), value = TRUE) %>%
  grep("environmental_action|financial_stewardship|governance_planning|inclusion_rights|innovation_technology|knowledge_data|monitoring_accountability|operational_delivery|partnerships_networks|policy_regulation", ., value = TRUE)

# Sum across IGOs for each strategy and objective
strategy_summary <- colSums(high_c1[, strategy_cols], na.rm = TRUE)
objective_summary <- colSums(high_c1[, objective_cols], na.rm = TRUE)

# Turn into data frames
strategy_df <- data.frame(
  Strategy = names(strategy_summary),
  Count = as.integer(strategy_summary)
)

objective_df <- data.frame(
  Objective = names(objective_summary),
  Count = as.integer(objective_summary)
)

# Optional: Clean names
clean_names <- function(x) {
  gsub("_(within|across)_igo$", "", x)
}
strategy_df$Strategy <- clean_names(strategy_df$Strategy)
objective_df$Objective <- clean_names(objective_df$Objective)

Key Strategic Functions Among High-EEI IGOs by Founding Era

# For strategies
strategy_df <- strategy_df %>%
  mutate(Pct = round(Count / sum(Count) * 100, 1))

ggplot(strategy_df, aes(x = reorder(Strategy, Count), y = Count)) +
  geom_col(fill = "steelblue") +
  geom_text(aes(label = paste0(Pct, "%")), hjust = -0.1, size = 4) +
  coord_flip() +
  labs(
    title = "Figure 1.4E Strategies Among High-EEI IGOs",
    x = "Strategy",
    y = "Number of IGOs"
  ) +
  theme_minimal(base_size = 10)

The analysis reveals that IGOs with high environmental and institutional intensity (High-EEI) employ a diverse range of strategies, reflecting a broad and multifaceted approach to governance.This diversity in strategies suggests that these organizations are not narrowly specialized but rather adopt a wide array of tools and approaches to enhance their adaptability and relevance across various domains. Such strategy breadth aligns with theoretical expectations that diversified strategic portfolios help IGOs maintain legitimacy and efficacy in complex governance environments.

# Same for objectives
objective_df <- objective_df %>%
  mutate(Pct = round(Count / sum(Count) * 100, 1))

ggplot(objective_df, aes(x = reorder(Objective, Count), y = Count)) +
  geom_col(fill = "darkorange") +
  geom_text(aes(label = paste0(Pct, "%")), hjust = -0.1, size = 4) +
  coord_flip() +
  labs(
    title = "Figure 1.4F Objectives Among High-EEI IGOs",
    x = "Objective",
    y = "Number of IGOs"
  ) +
  theme_minimal(base_size = 10)

Similarly, the objectives of High-EEI IGOs demonstrate a broad focus across multiple key areas. Collaboration and partnerships again stand out. Unlike strategies, some objectives such as cultural heritage and financial stewardship are notably absent or minimal, suggesting these areas may be less prioritized within this group of IGOs. Overall, this diverse range of objectives indicates that High-EEI IGOs pursue multiple, often complementary goals that together support their legitimacy and capacity to address multifaceted global challenges.

Institutional Design, Coordination, and Endurance in Global Ocean Economy Governance

library(ggplot2)
library(dplyr)
library(ggrepel)

# Improved reusable plot function
plot_igo <- function(data, title, subtitle = NULL) {
  
  # Optional: extract unique levels for shape and size mappings
  shape_levels <- unique(data$Coord_Cat)
  size_levels <- unique(data$Mandate_Breadth_Cat)
  
  # Custom shape and size values — adapt if levels vary
  shape_vals <- c(16, 17, 15)[seq_along(shape_levels)]
  size_vals <- c(3, 5, 7)[seq_along(size_levels)]
  
  ggplot(data, aes(
    x = ordinal_score_defined_objectives,
    y = ordinal_score_strategies,
    shape = Coord_Cat,
    size = Mandate_Breadth_Cat,
    color = EEI_category,
    label = institution
  )) +
    geom_point(alpha = 0.8, stroke = 0.2) +
    geom_text_repel(size = 3, max.overlaps = 15) +
    facet_wrap(~ founding_era_category) +
    
    # Manual scales
    scale_color_manual(
      values = c("High EEI" = "forestgreen", "Low EEI" = "firebrick"),
      drop = FALSE
    ) +
    scale_shape_manual(
      values = setNames(shape_vals, shape_levels),
      drop = FALSE
    ) +
    scale_size_manual(
      values = setNames(size_vals, size_levels),
      drop = FALSE
    ) +
    
    # Labels
    labs(
      title = title,
      subtitle = subtitle,
      x = "Objectives Score",
      y = "Strategies Score",
      color = "Endurance Intensity (EEI)",
      shape = "Coordination Category",
      size = "Mandate Breadth"
    ) +
    
    # Theme customization
    theme_minimal(base_size = 10) +
    theme(
      legend.position = "bottom",
      legend.box = "vertical",
      legend.title = element_text(face = "bold"),
      legend.text = element_text(size = 8),
      legend.key.size = unit(0.6, "cm"),
      legend.spacing.y = unit(0.2, "cm"),
      strip.text = element_text(face = "bold"),
      plot.title = element_text(face = "bold", hjust = 0.5),
      plot.subtitle = element_text(hjust = 0.5)
    ) +
    
    # Arrange legends in rows
    guides(
      color = guide_legend(nrow = 1, byrow = TRUE, override.aes = list(size = 4)),
      shape = guide_legend(nrow = 1, byrow = TRUE),
      size = guide_legend(nrow = 1, byrow = TRUE)
    )
}

# Create filtered data
high_eei_data <- c1 %>% filter(EEI_category == "High EEI")
low_eei_data  <- c1 %>% filter(EEI_category == "Low EEI")

# Generate plots
plot_high <- plot_igo(high_eei_data, 
                      title = "High EEI IGOs: Institutional Design and Endurance")

plot_low <- plot_igo(low_eei_data, 
                     title = "Low EEI IGOs: Institutional Design and Endurance")

Highs

plot_high 

The comparative visualization of High EEI and Low EEI intergovernmental organizations (IGOs) strongly supports the conjecture that robust institutional design contributes to greater endurance in global ocean economy governance. High EEI IGOs consistently display high scores on both strategic and objective dimensions, broader mandates, and stronger vertical and horizontal coordination mechanisms. These organizations are often treaty-based, with diversified objectives and jurisdictional scope, and they appear across multiple founding eras—particularly during the Post-WWII and SDG/Climate Action periods—suggesting that design coherence, rather than age alone, underpins their sustained relevance and effectiveness. Lows

plot_low 

In contrast, Low EEI IGOs exhibit more fragmented design profiles. They tend to have narrower mandates, weaker coordination structures, and lower alignment between strategic and objective frameworks. While some of these organizations are long-standing, their institutional features appear less adaptive or comprehensive, limiting their endurance capacity.

The evidence thus validates the core of Conjecture 1: IGOs with coherent and well-integrated institutional design elements are significantly more likely to endure and remain effective actors in the evolving and complex landscape of global ocean economy governance.