ASK

Main Question:

How does the Iran conflict affect the global economy under different levels of severity, and which macroeconomic indicators shift the most?

Indicators we will analyze:

PREPARE

We create the dataset directly inside R so it is reproducible and self‑contained.

data <- data.frame(
  year = c(2023,2024,2025,2026,
           2023,2024,2025,2026,
           2023,2024,2025,2026),
  scenario = c("baseline","baseline","baseline","baseline",
               "moderate_shock","moderate_shock","moderate_shock","moderate_shock",
               "severe_shock","severe_shock","severe_shock","severe_shock"),
  oil_price_brent = c(82,85,88,90,
                      82,102,108,104,
                      82,128,142,130),
  global_gdp_growth = c(3.0,2.9,2.8,2.9,
                        3.0,2.5,2.3,2.4,
                        3.0,1.6,1.2,1.4),
  global_inflation = c(6.8,5.4,4.8,4.5,
                       6.8,6.2,5.8,5.3,
                       6.8,7.9,7.1,6.5),
  mena_gdp_growth = c(1.9,2.1,2.3,2.4,
                      1.9,1.4,1.6,1.8,
                      1.9,0.2,0.5,0.9),
  shipping_cost_index = c(100,102,103,104,
                          100,115,118,114,
                          100,138,145,135),
  fertilizer_price_index = c(100,101,102,103,
                             100,112,115,110,
                             100,130,138,128),
  conflict_severity = c(0,0,0,0,
                        1,1,1,1,
                        2,2,2,2)
)

str(data)
## 'data.frame':    12 obs. of  9 variables:
##  $ year                  : num  2023 2024 2025 2026 2023 ...
##  $ scenario              : chr  "baseline" "baseline" "baseline" "baseline" ...
##  $ oil_price_brent       : num  82 85 88 90 82 102 108 104 82 128 ...
##  $ global_gdp_growth     : num  3 2.9 2.8 2.9 3 2.5 2.3 2.4 3 1.6 ...
##  $ global_inflation      : num  6.8 5.4 4.8 4.5 6.8 6.2 5.8 5.3 6.8 7.9 ...
##  $ mena_gdp_growth       : num  1.9 2.1 2.3 2.4 1.9 1.4 1.6 1.8 1.9 0.2 ...
##  $ shipping_cost_index   : num  100 102 103 104 100 115 118 114 100 138 ...
##  $ fertilizer_price_index: num  100 101 102 103 100 112 115 110 100 130 ...
##  $ conflict_severity     : num  0 0 0 0 1 1 1 1 2 2 ...
summary(data)
##       year        scenario         oil_price_brent  global_gdp_growth
##  Min.   :2023   Length:12          Min.   : 82.00   Min.   :1.200    
##  1st Qu.:2024   Class :character   1st Qu.: 84.25   1st Qu.:2.125    
##  Median :2024   Mode  :character   Median : 96.00   Median :2.650    
##  Mean   :2024                      Mean   :101.92   Mean   :2.417    
##  3rd Qu.:2025                      3rd Qu.:113.00   3rd Qu.:2.925    
##  Max.   :2026                      Max.   :142.00   Max.   :3.000    
##  global_inflation mena_gdp_growth shipping_cost_index fertilizer_price_index
##  Min.   :4.500    Min.   :0.200   Min.   :100.0       Min.   :100.0         
##  1st Qu.:5.375    1st Qu.:1.275   1st Qu.:101.5       1st Qu.:100.8         
##  Median :6.350    Median :1.850   Median :109.0       Median :106.5         
##  Mean   :6.158    Mean   :1.575   Mean   :114.5       Mean   :111.6         
##  3rd Qu.:6.800    3rd Qu.:1.950   3rd Qu.:122.2       3rd Qu.:118.2         
##  Max.   :7.900    Max.   :2.400   Max.   :145.0       Max.   :138.0         
##  conflict_severity
##  Min.   :0        
##  1st Qu.:0        
##  Median :1        
##  Mean   :1        
##  3rd Qu.:2        
##  Max.   :2

PROCESS

We reshape and prepare the data for analysis.

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyr)

data <- data %>%
  mutate(scenario = factor(scenario,
                           levels = c("baseline","moderate_shock","severe_shock")))

data_long <- data %>%
  pivot_longer(cols = c(oil_price_brent, global_gdp_growth, global_inflation,
                        mena_gdp_growth, shipping_cost_index, fertilizer_price_index),
               names_to = "indicator",
               values_to = "value")

head(data_long)
## # A tibble: 6 Ă— 5
##    year scenario conflict_severity indicator              value
##   <dbl> <fct>                <dbl> <chr>                  <dbl>
## 1  2023 baseline                 0 oil_price_brent         82  
## 2  2023 baseline                 0 global_gdp_growth        3  
## 3  2023 baseline                 0 global_inflation         6.8
## 4  2023 baseline                 0 mena_gdp_growth          1.9
## 5  2023 baseline                 0 shipping_cost_index    100  
## 6  2023 baseline                 0 fertilizer_price_index 100

ANALYZE

📉 1. Oil Price Trajectory by Scenario

We visualize how key indicators change under each conflict scenario.

library(ggplot2)

ggplot(data, aes(x = year, y = oil_price_brent, color = scenario)) +
  geom_line(linewidth = 1.2) +
  geom_point(size = 3) +
  labs(title = "Brent Oil Price Under Conflict Scenarios",
       x = "Year", y = "USD per barrel")

📉 2. Global GDP Growth Under Conflict Scenarios

This visual makes the economic slowdown easy to see.

ggplot(data, aes(x = year, y = global_gdp_growth, color = scenario)) +
  geom_line(linewidth = 1.3) +
  geom_point(size = 3) +
  scale_color_manual(values = c("baseline" = "#1b9e77",
                                "moderate_shock" = "#d95f02",
                                "severe_shock" = "#7570b3")) +
  labs(
    title = "Global GDP Growth Under Conflict Scenarios",
    x = "Year",
    y = "Percent",
    color = "Scenario"
  ) +
  theme_minimal(base_size = 14)

🌍 3. MENA vs Global GDP Comparison

This one is powerful — it shows how the region closest to the conflict is hit hardest.

ggplot(data_long %>% 
         filter(indicator %in% c("global_gdp_growth", "mena_gdp_growth")),
       aes(x = year, y = value, color = scenario)) +
  geom_line(linewidth = 1.2) +
  geom_point(size = 3) +
  facet_wrap(~ indicator, scales = "free_y",
             labeller = labeller(indicator = c(
               global_gdp_growth = "Global GDP Growth",
               mena_gdp_growth = "MENA GDP Growth"
             ))) +
  scale_color_manual(values = c("baseline" = "#1b9e77",
                                "moderate_shock" = "#d95f02",
                                "severe_shock" = "#7570b3")) +
  labs(
    title = "Global vs MENA GDP Growth Under Conflict Scenarios",
    x = "Year",
    y = "Percent",
    color = "Scenario"
  ) +
  theme_minimal(base_size = 14)

FORECAST

Using the modeled scenarios (baseline, moderate shock, severe shock), we can outline a forward-looking economic forecast that reflects how the Iran conflict may influence global macroeconomic conditions.

Baseline Scenario — Conflict Contained

Under the baseline path, the conflict remains geographically limited and does not significantly disrupt global supply chains or energy markets. Oil prices remain in the $82–$90 range, global GDP growth stays near 2.8–3.0%, and inflation continues to cool. The MENA region grows modestly, supported by stable energy revenues. This scenario represents a continuation of pre-conflict economic momentum.

Moderate Shock Scenario — Regional Disruption

In the moderate shock scenario, the conflict causes temporary disruptions to shipping routes and energy flows. Oil prices rise into the $102–$108 range, global GDP growth slows to 2.3–2.5%, and inflation remains elevated. MENA growth softens but stays positive. Shipping and fertilizer costs increase sharply, signaling stress in global supply chains. This scenario reflects a world experiencing economic friction but avoiding a global downturn.

Severe Shock Scenario — Major Escalation

The severe scenario models a broader and more sustained disruption. Oil prices spike to $128–$142, global GDP growth falls to 1.2–1.6%, and inflation accelerates again. MENA growth nearly stalls, and global supply chains face significant pressure as shipping and fertilizer costs surge. This scenario resembles a stagflationary environment: weak growth combined with high prices.

Overall Outlook

Across all scenarios, the global economy remains resilient but vulnerable. The severity and duration of the conflict determine whether the world experiences a mild slowdown or a deeper period of stagflation-like conditions. Energy markets act as the primary transmission channel, with secondary effects emerging through inflation, supply chain costs, and regional growth disparities.

SHARE

The moderate and severe scenarios show clear macroeconomic stress:

  • Oil prices spike sharply.
  • Global GDP growth slows.
  • Inflation rises.
  • MENA GDP growth is most sensitive.
  • Shipping and fertilizer costs surge.

ACT

Recommendations:

  • Energy‑importing countries should prepare for inflation pressure.
  • Businesses should diversify supply chains.
  • Governments should monitor fertilizer prices to prevent food shocks.
  • Investors should expect volatility in energy markets.