Skip to contents

This article shows how to calculate the descriptive analysis of equal weight, best case, and worst case for transition risk profile.

Example company-level output of transition risk profile for equal weight, best case, and worst case

companies_id country grouping_transition_risk avg_transition_risk_equal_weight avg_transition_risk_best_case avg_transition_risk_worst_case
comp_1 france 1.5C RPS_2030_unit 0.25 0.25 0.25
comp_1 france NZ 2050_2030_unit 0.85 0.85 0.85
comp_2 france 1.5C RPS_2030_unit 0.10 0.10 0.10
comp_2 france NZ 2050_2030_unit 0.30 0.30 0.30
comp_3 austria 1.5C RPS_2030_unit 0.35 0.35 0.35
comp_3 austria NZ 2050_2030_unit 0.55 0.55 0.55
comp_4 austria 1.5C RPS_2030_unit 0.70 0.70 0.70
comp_4 austria NZ 2050_2030_unit 0.20 0.20 0.20
comp_5 germany 1.5C RPS_2030_unit 0.70 0.70 0.70
comp_5 germany NZ 2050_2030_unit 0.20 0.20 0.20
comp_6 netherlands 1.5C RPS_2030_unit 0.70 0.70 0.70
comp_6 netherlands NZ 2050_2030_unit 0.20 0.20 0.20
comp_7 spain 1.5C RPS_2030_unit 0.70 0.70 0.70
comp_7 spain NZ 2050_2030_unit 0.20 0.20 0.20

Functions

avg_per_benchmark_risk_category <- function(data, col, threshold, benchmark) {
  data |>
    select(all_of(c("companies_id", "grouping_transition_risk", col))) |>
    distinct() |>
    left_join(threshold, by = c("grouping_transition_risk")) |>
    mutate(risk_category = categorize_risk(.data[[col]], transition_risk_low_threshold, transition_risk_high_threshold)) |>
    filter(!is.na(.data[[col]])) |>
    summarise(total_mode = n(), .by = c("grouping_transition_risk", "risk_category")) |>
    mutate(proportion = total_mode / sum(total_mode), .by = c("grouping_transition_risk")) |>
    select(-all_of(c("total_mode"))) |>
    distinct() |>
    filter(str_detect(grouping_transition_risk, paste0(benchmark, "$"))) |>
    filter(!str_detect(grouping_transition_risk, "NA")) |>
    arrange(grouping_transition_risk)
}

score_colors <- function(...) c("low" = "#B3D15D", "medium" = "#F6CB4E", "high" = "#E3693B")
fill_score_colors <- function() scale_fill_manual(values = score_colors())

plot_bar_plot_profile_benchmark <- function(data, col) {
  data <- data %>%
    mutate(risk_category = factor(risk_category, levels = c("high", "medium", "low")))
  
  ggplot(data, aes(x = .data[[col]], y = .data$grouping_transition_risk, fill = .data$risk_category)) +
    geom_col(position = position_stack(reverse = TRUE), width = 0.5) +
    fill_score_colors() +
    tiltPlot::theme_tiltplot() +
    xlim(0, NA)
}

Bar plots for companies share of avg_transition_risk_equal_weight per grouping_transition_risk and transition_risk_category

Bar plots for companies share of avg_transition_risk_best_case per grouping_transition_risk and transition_risk_category

Bar plots for companies share of avg_transition_risk_worst_case per grouping_transition_risk and transition_risk_category

Bar plots for companies share of avg_transition_risk_equal_weight per grouping_transition_risk and transition_risk_category for a country

Bar plots for companies share of avg_transition_risk_best_case per grouping_transition_risk and transition_risk_category for a country

Bar plots for companies share of avg_transition_risk_worst_case per grouping_transition_risk and transition_risk_category for a country

Example company-level output of transition risk profile for best case and worst case

companies_id country grouping_transition_risk avg_transition_risk_equal_weight avg_transition_risk_best_case avg_transition_risk_worst_case
comp_1 france 1.5C RPS_2030_unit 0.25 0.25 0.25
comp_1 france NZ 2050_2030_unit 0.85 0.85 0.85
comp_2 france 1.5C RPS_2030_unit 0.10 0.10 0.10
comp_2 france NZ 2050_2030_unit 0.30 0.30 0.30
comp_3 austria 1.5C RPS_2030_unit 0.35 0.35 0.35
comp_3 austria NZ 2050_2030_unit 0.55 0.55 0.55
comp_4 austria 1.5C RPS_2030_unit 0.70 0.70 0.70
comp_4 austria NZ 2050_2030_unit 0.20 0.20 0.20
comp_5 germany 1.5C RPS_2030_unit 0.70 0.70 0.70
comp_5 germany NZ 2050_2030_unit 0.20 0.20 0.20
comp_6 netherlands 1.5C RPS_2030_unit 0.70 0.70 0.70
comp_6 netherlands NZ 2050_2030_unit 0.20 0.20 0.20
comp_7 spain 1.5C RPS_2030_unit 0.70 0.70 0.70
comp_7 spain NZ 2050_2030_unit 0.20 0.20 0.20

Descriptive analysis of avg_transition_risk_equal_weight per grouping_transition_risk

Descriptive analysis of avg_transition_risk_equal_weight per grouping_transition_risk
avg_transition_risk_equal_weight
grouping_transition_risk average median 25th_quantile 75th_quantile
1.5C RPS_2030_unit 0.5000000 0.7 0.3 0.700
NZ 2050_2030_unit 0.3571429 0.2 0.2 0.425

Descriptive analysis of avg_transition_risk_best_case per grouping_transition_risk

Descriptive analysis of avg_transition_risk_best_case per grouping_transition_risk
avg_transition_risk_best_case
grouping_transition_risk average median 25th_quantile 75th_quantile
1.5C RPS_2030_unit 0.5000000 0.7 0.3 0.700
NZ 2050_2030_unit 0.3571429 0.2 0.2 0.425

Descriptive analysis of avg_transition_risk_worst_case per grouping_transition_risk

Descriptive analysis of avg_transition_risk_worst_case per grouping_transition_risk
avg_transition_risk_worst_case
grouping_transition_risk average median 25th_quantile 75th_quantile
1.5C RPS_2030_unit 0.5000000 0.7 0.3 0.700
NZ 2050_2030_unit 0.3571429 0.2 0.2 0.425

Descriptive analysis of avg_transition_risk_equal_weight per grouping_transition_risk for a country

Descriptive analysis of avg_transition_risk_equal_weight per grouping_transition_risk for country france
avg_transition_risk_equal_weight
country grouping_transition_risk average median 25th_quantile 75th_quantile
france 1.5C RPS_2030_unit 0.175 0.175 0.1375 0.2125
france NZ 2050_2030_unit 0.575 0.575 0.4375 0.7125
Descriptive analysis of avg_transition_risk_equal_weight per grouping_transition_risk for country austria
avg_transition_risk_equal_weight
country grouping_transition_risk average median 25th_quantile 75th_quantile
austria 1.5C RPS_2030_unit 0.525 0.525 0.4375 0.6125
austria NZ 2050_2030_unit 0.375 0.375 0.2875 0.4625
Descriptive analysis of avg_transition_risk_equal_weight per grouping_transition_risk for country germany
avg_transition_risk_equal_weight
country grouping_transition_risk average median 25th_quantile 75th_quantile
germany 1.5C RPS_2030_unit 0.7 0.7 0.7 0.7
germany NZ 2050_2030_unit 0.2 0.2 0.2 0.2
Descriptive analysis of avg_transition_risk_equal_weight per grouping_transition_risk for country netherlands
avg_transition_risk_equal_weight
country grouping_transition_risk average median 25th_quantile 75th_quantile
netherlands 1.5C RPS_2030_unit 0.7 0.7 0.7 0.7
netherlands NZ 2050_2030_unit 0.2 0.2 0.2 0.2
Descriptive analysis of avg_transition_risk_equal_weight per grouping_transition_risk for country spain
avg_transition_risk_equal_weight
country grouping_transition_risk average median 25th_quantile 75th_quantile
spain 1.5C RPS_2030_unit 0.7 0.7 0.7 0.7
spain NZ 2050_2030_unit 0.2 0.2 0.2 0.2

Descriptive analysis of avg_transition_risk_best_case per grouping_transition_risk for a country

Descriptive analysis of avg_transition_risk_best_case per grouping_transition_risk for country france
avg_transition_risk_best_case
country grouping_transition_risk average median 25th_quantile 75th_quantile
france 1.5C RPS_2030_unit 0.175 0.175 0.1375 0.2125
france NZ 2050_2030_unit 0.575 0.575 0.4375 0.7125
Descriptive analysis of avg_transition_risk_best_case per grouping_transition_risk for country austria
avg_transition_risk_best_case
country grouping_transition_risk average median 25th_quantile 75th_quantile
austria 1.5C RPS_2030_unit 0.525 0.525 0.4375 0.6125
austria NZ 2050_2030_unit 0.375 0.375 0.2875 0.4625
Descriptive analysis of avg_transition_risk_best_case per grouping_transition_risk for country germany
avg_transition_risk_best_case
country grouping_transition_risk average median 25th_quantile 75th_quantile
germany 1.5C RPS_2030_unit 0.7 0.7 0.7 0.7
germany NZ 2050_2030_unit 0.2 0.2 0.2 0.2
Descriptive analysis of avg_transition_risk_best_case per grouping_transition_risk for country netherlands
avg_transition_risk_best_case
country grouping_transition_risk average median 25th_quantile 75th_quantile
netherlands 1.5C RPS_2030_unit 0.7 0.7 0.7 0.7
netherlands NZ 2050_2030_unit 0.2 0.2 0.2 0.2
Descriptive analysis of avg_transition_risk_best_case per grouping_transition_risk for country spain
avg_transition_risk_best_case
country grouping_transition_risk average median 25th_quantile 75th_quantile
spain 1.5C RPS_2030_unit 0.7 0.7 0.7 0.7
spain NZ 2050_2030_unit 0.2 0.2 0.2 0.2

Descriptive analysis of avg_transition_risk_worst_case per grouping_transition_risk for a country

Descriptive analysis of avg_transition_risk_worst_case per grouping_transition_risk for country france
avg_transition_risk_worst_case
country grouping_transition_risk average median 25th_quantile 75th_quantile
france 1.5C RPS_2030_unit 0.175 0.175 0.1375 0.2125
france NZ 2050_2030_unit 0.575 0.575 0.4375 0.7125
Descriptive analysis of avg_transition_risk_worst_case per grouping_transition_risk for country austria
avg_transition_risk_worst_case
country grouping_transition_risk average median 25th_quantile 75th_quantile
austria 1.5C RPS_2030_unit 0.525 0.525 0.4375 0.6125
austria NZ 2050_2030_unit 0.375 0.375 0.2875 0.4625
Descriptive analysis of avg_transition_risk_worst_case per grouping_transition_risk for country germany
avg_transition_risk_worst_case
country grouping_transition_risk average median 25th_quantile 75th_quantile
germany 1.5C RPS_2030_unit 0.7 0.7 0.7 0.7
germany NZ 2050_2030_unit 0.2 0.2 0.2 0.2
Descriptive analysis of avg_transition_risk_worst_case per grouping_transition_risk for country netherlands
avg_transition_risk_worst_case
country grouping_transition_risk average median 25th_quantile 75th_quantile
netherlands 1.5C RPS_2030_unit 0.7 0.7 0.7 0.7
netherlands NZ 2050_2030_unit 0.2 0.2 0.2 0.2
Descriptive analysis of avg_transition_risk_worst_case per grouping_transition_risk for country spain
avg_transition_risk_worst_case
country grouping_transition_risk average median 25th_quantile 75th_quantile
spain 1.5C RPS_2030_unit 0.7 0.7 0.7 0.7
spain NZ 2050_2030_unit 0.2 0.2 0.2 0.2