# Setup: Country A imports good X.
# Partner B price PB = 8; Rest-of-World price Pw = 6; MFN tariff t = 4.
# Domestic supply Qs = 2P - 4; Domestic demand Qd = 40 - 2P.
# Pre-FTA (Pw+t=10): Qs=16, Qd=20, M=4.
# Post-FTA with B (PB=8): Qs=12, Qd=24, M=12.
p1 <- ggplot() +
geom_segment(aes(x = 0, y = 20, xend = 40, yend = 0),
colour = "#012169", linewidth = 1.5) +
geom_segment(aes(x = 0, y = 2, xend = 36, yend = 20),
colour = "#B9975B", linewidth = 1.5) +
geom_hline(yintercept = 10, colour = "red", linetype = "dashed", linewidth = 1) +
geom_hline(yintercept = 8, colour = "darkgreen", linetype = "dashed", linewidth = 1) +
annotate("polygon", x = c(16, 20, 20, 16), y = c(8, 8, 10, 10),
fill = "#B9975B", alpha = 0.4) +
annotate("polygon", x = c(20, 24, 20), y = c(8, 8, 10),
fill = "red", alpha = 0.3) +
annotate("polygon", x = c(16, 12, 16), y = c(10, 8, 8),
fill = "red", alpha = 0.3) +
annotate("text", x = 18, y = 9.0, label = "PS\nloss", size = 2.8, colour = "#B9975B") +
annotate("text", x = 21.5, y = 8.7, label = "TC\ngain", size = 2.8, colour = "darkgreen") +
annotate("text", x = 14, y = 8.7, label = "TC\ngain", size = 2.8, colour = "darkgreen") +
annotate("text", x = 41, y = 0.5, label = "D", size = 4, colour = "#012169") +
annotate("text", x = 37, y = 19.5, label = "S", size = 4, colour = "#B9975B") +
annotate("text", x = 26, y = 10.5, label = "Pw+t=10", size = 3, colour = "red") +
annotate("text", x = 26, y = 7.5, label = "P[B]==8", size = 3, colour = "darkgreen", parse = TRUE) +
labs(title = "Trade Creation",
subtitle = "Domestic production → cheaper partner imports",
x = "Quantity", y = "Price") +
scale_x_continuous(limits = c(0, 45)) +
theme_minimal(base_size = 10)
p2 <- ggplot() +
geom_segment(aes(x = 0, y = 20, xend = 40, yend = 0),
colour = "#012169", linewidth = 1.5) +
geom_segment(aes(x = 0, y = 2, xend = 36, yend = 20),
colour = "#B9975B", linewidth = 1.5) +
geom_hline(yintercept = 10, colour = "red", linetype = "dashed", linewidth = 1) +
geom_hline(yintercept = 8, colour = "orange", linetype = "dashed", linewidth = 1.2) +
geom_hline(yintercept = 6, colour = "darkgreen", linetype = "dashed", linewidth = 1) +
annotate("polygon",
x = c(12, 16, 20, 24, 12),
y = c( 8, 10, 10, 8, 8),
fill = "orange", alpha = 0.35) +
annotate("text", x = 18, y = 9.0, label = "TD\nloss", size = 2.8, colour = "darkorange") +
annotate("text", x = 26, y = 10.5, label = "Pw+t=10", size = 3, colour = "red") +
annotate("text", x = 26, y = 7.5, label = "P[B]==8~(FTA)", size = 3, colour = "orange", parse = TRUE) +
annotate("text", x = 26, y = 5.5, label = "P[w]==6~(ROW)", size = 3, colour = "darkgreen", parse = TRUE) +
annotate("text", x = 41, y = 0.5, label = "D", size = 4, colour = "#012169") +
annotate("text", x = 37, y = 19.5, label = "S", size = 4, colour = "#B9975B") +
labs(title = "Trade Diversion",
subtitle = "Imports shift from cheap ROW to dearer partner — net welfare loss",
x = "Quantity", y = "Price") +
scale_x_continuous(limits = c(0, 45)) +
theme_minimal(base_size = 10)
p1 + p2 +
plot_annotation(
title = "Free Trade Area: Trade Creation (Beneficial) vs Trade Diversion (Harmful)",
subtitle = expression(paste("Net welfare = TC ", phantom(x), "-", phantom(x), " TD. FTA beneficial only if TC > TD"))
)