Leverage Shiny to make sense of the Bank of Japan's reserve tiering system
I spend a lot of time looking at how the Bank of Japan (BOJ) manages financial institutions' current account balances, more commonly known as “reserves”. The amount and price of reserves influence financial institutions' net income, so discussions on the BOJ's monetary policy options often look at how these could be tweaked (see these papers here for background). RStudio's Shiny package offers a powerful tool to support the process.
The BOJ has a tiered reserve system made up of a fairly large “basic balance” on which it pays a positive rate of 0.1%, a growing “macro add-on balance” which goes unremunerated, and a smaller “policy rate balance” that's subject to the -0.1% policy rate. Varying the size and interest rate of each tier leads to different results. The BOJ could, for example, lower the policy rate, but if it simultaneously increases the relative share of the positive rate balance, the average rate facing the banking system would increase, as would banks' net interest income. Trying to capture different combinations of these parameters in a spreadsheet often gets quite convoluted. In a spreadsheet there is no clean way to separate logic from presentation, so as time goes on formulae grow more complex and errors inevitably creep in. By contrast, RStudio's Shiny package provides a set of tools to develop interactive web apps that call an R back end to perform calculations or generate plots, which isolates the user interface from the programme's code. This makes it an ideal choice for an app to simulate changes to the BOJ's reserve tiering system.
An interactive online version of the app can be found here, thanks to the magic of RStudio's shinyapps.io platform. The app.R Shiny script can be found here.
Note that the app requires a file
www/data.csv with source data from the BOJ:
date (R date),
pos_bal (positive rate balance in JPY terms),
zer_bal (zero rate balance),
neg_bal (negative rate balance),
pos_rate (rate on positive rate balance),
zer_rate (rate on zero rate balance),
neg_rate (rate on negative rate balance),
tot_bal (total current account balance) and
cal_rate (uncollateralised overnight call rate, currently not used).
It goes without saying that the app is in no way officially related to or endorsed by the Bank of Japan.
- Shiny tutorial that covers basics, reactions and appearance of Shiny apps in a compact three-part course.
- Oxford Economics report looking at BOJ policy options and reserve tiering.