Large Open Economy & PPP
When a country moves the world rate
A large economy’s saving and investment are big enough to change the world interest rate. Two regions clear together: \(CA_H + CA_{ROW} = 0\), where each current account \(CA = S - I\) depends on \(r\).
- A home fiscal expansion lowers home saving → pushes the world rate up → home investment falls (crowding out) and the current account deteriorates.
- The adjustment is smaller than in a small economy, because the higher \(r\) pulls saving up and investment down everywhere.
Purchasing-power parity (PPP)
The same good should cost the same everywhere once converted: the nominal exchange rate equals the price ratio, \[e = \frac{P_{\text{foreign}}}{P_{\text{home}}}.\] Higher home inflation → the home currency depreciates one-for-one.
#| standalone: true
#| viewerHeight: 540
library(shiny)
ui <- fluidPage(
tags$head(tags$style(HTML("body{font-family:'Inter',system-ui,sans-serif;}
.sb{background:#f0f4f8;border-radius:6px;padding:12px 14px;margin-top:10px;font-size:14px;line-height:1.85;} .sb b{color:#1f3b73;}"))),
tabsetPanel(
tabPanel("Large open economy",
sidebarLayout(
sidebarPanel(width=4,
sliderInput("fisc","Home fiscal expansion (cuts saving):",min=0,max=400,value=0,step=20),
uiOutput("sb1")),
mainPanel(width=8, plotOutput("plot",height="440px")))),
tabPanel("PPP calculator",
sidebarLayout(
sidebarPanel(width=4,
sliderInput("ph","Home price of the good:",min=1,max=20,value=3,step=1),
sliderInput("pf","Foreign price of the good:",min=1,max=40,value=6,step=1),
uiOutput("sb2")),
mainPanel(width=8, plotOutput("ppp",height="440px"))))
))
server <- function(input,output,session){
# Home CA = S_H - I_H = -400 + 60r ; ROW CA = -50 + 30r ; fiscal shift d lowers S_H by d
rstar <- reactive((450+input$fisc)/90)
output$plot <- renderPlot({
r<-rstar(); rg<-seq(0,10,length.out=150)
CAh <- (-400-input$fisc)+60*rg; CAr <- -(-50+30*rg) # ROW read toward left (negated)
par(mar=c(4.2,4.6,2,1))
plot(NA,xlim=c(-400,400),ylim=c(0,10),xlab="Current account (home right, ROW left)",ylab="World rate r (%)",
las=1,bty="l",main=sprintf("World rate clears at r = %.2f%%",r))
lines((-400-input$fisc)+60*rg,rg,col="#1f3b73",lwd=3) # home CA upward
lines(-(-50+30*rg),rg,col="#b5462a",lwd=3) # ROW CA (negated)
abline(h=r,lty=3,col="#5a6472"); abline(v=0,col="#9aa4b2",lty=3)
legend("topleft",c("Home CA","ROW CA (mirrored)"),col=c("#1f3b73","#b5462a"),lwd=3,bty="n")
})
output$sb1 <- renderUI({ r<-rstar(); Ih<-1400-40*r; Sh<-(1000-input$fisc)+20*r; nx<-Sh-Ih
HTML(sprintf("<div class='sb'>World rate <b>r = %.2f%%</b><br>Home saving S = <b>%.0f</b><br>Home investment I = <b>%.0f</b><br>Home NX = S-I = <b>%.0f</b></div>",r,Sh,Ih,nx)) })
output$ppp <- renderPlot({
e <- input$pf/input$ph
par(mar=c(2,2,3,2))
plot.new(); title(main=sprintf("e = P_foreign / P_home = %d / %d = %.2f",input$pf,input$ph,e))
text(0.5,0.6,sprintf("%.2f foreign currency\nper 1 home unit",e),cex=1.8,col="#1f3b73")
text(0.5,0.25,"Higher home inflation lowers e (home currency depreciates).",cex=1.0,col="#5a6472")
})
output$sb2 <- renderUI({ e<-input$pf/input$ph
HTML(sprintf("<div class='sb'>PPP exchange rate<br><b>e = %.2f</b> foreign per home unit</div>",e)) })
}
shinyApp(ui,server)
What to notice
- Home fiscal expansion raises the world rate — unlike a small economy, where \(r^*\) is fixed.
- Because \(r\) rises, home investment falls (crowding out) and the current account worsens by less than in the small-economy case.
- In the PPP tab, raising the home price lowers \(e\) — the home currency buys less foreign currency.