RDP 2022-02: The Yield and Market Function Effects of the Reserve Bank of Australia's Bond Purchases Read me file

This ‘read me’ file contains details of the data and code used for the results presented in RDP 2022-02.

The results presented in Sections 3, 4, 5 and most of Section 7 were produced by one integrated piece of code that loads and processes a large range of data. We call this our ‘main’ data/code. The results presented in Section 6 and the results regarding the bond futures market in Section 7 were produced by other data/code.

Because much of the main data that we used are not available for public release, the main code will not run to reproduce our results. Instead, the code is provided to help you understand our methodology.

The other data/code that we used are either not available for public release or are described well elsewhere.

The data used to plot the figures is also not available for public release.

Main data

The main code loads data from several sources that may be inaccessible to you. This list describes these data and provides suggestions for alternative sources of similar data where possible:

  • Findur/DC. The RBA uses the Findur and DC databases for its financial market operations. The code loads data from Findur on: the RBA's purchases and holdings of government bonds; government bond yields; and overnight indexed swap (OIS) rates. These data are loaded by ‘load_findur_data.R’ and ‘load_mops_data.R’, using the RBA's ‘mops’ package. Some similar data are available in the RBA's statistical tables A3 (Monetary Policy Operations), A3.1 (Holdings of Australian Government Securities and Semis), A3.2 (Securities Lending Repurchase and Switch Transactions in Australian Government Securities and Semis), F1 (Interest Rates and Yields – Money Market – Daily) and F16 (Indicative Mid Rates of Australian Government Securities). DC data are loaded by ‘load_dc_data.R’.
  • Austraclear. Data from Austraclear on the outstanding amounts of semi-government securities (semis) are loaded by ‘load_austraclear_data.R’. Similar data may be available from the borrowing authorities of the states and territories.
  • Bloomberg. When run on a machine with a Bloomberg connection, ‘load_bloomberg_data.R’ loads various data from Bloomberg. Some of the data can be identified by the Bloomberg codes stated/created in the code. Other data are specified using a Bloomberg search, the parameters of which have been provided in ‘Inputs/RDP Bloomberg search.gif’. Some similar data are available in the RBA's statistical tables F1, F16 and F17 (Zero-coupon Interest Rates – Analytical Series). Bloomberg data were used to calculate the yield curve fitting errors loaded by ‘load_iv_data.R’ (the fitting errors were calculated using the method outlined in Appendix A of Finlay and Chambers (2008), which was summarised in Box A of Finlay, Seibold and Xiang (2020)). Other data from Bloomberg are loaded by ‘load_tick_data.R’.
  • Yieldbroker. Data from Yieldbroker on bid-offer spreads and turnover for government bonds are loaded by ‘load_yieldbroker_data.R’. Some less granular but more comprehensive data on turnover are available from the AOFM.

The code also loads data that are either freely accessible or have been provided together with the code:

  • AOFM. The AOFM publishes data on its positions and transactions in Australian Government Securities (AGS) in the data hub on the AOFM's website (https://www.aofm.gov.au/data-hub). These data are loaded by ‘load_aofm_data.R’, using the RBA's ‘readaofm’ package.
  • Auctions. Data on government bonds excluded from the RBA's purchase auctions are loaded by ‘load_auctions_data.R’ from the spreadsheet provided in ‘Inputs/auctions.xlsx’.
  • Survey of Primary Dealers. The Federal Reserve Bank of New York publishes the results from its survey on its website (https://www.newyorkfed.org/markets/primarydealer_survey_questions). These results are provided in ‘Inputs/Raw’ and are processed using ‘Inputs/spd.xlsx’, before being loaded by ‘load_spd_data.R’.
  • Miscellaneous. Data on the baskets used for the bond futures traded on the ASX are provided in ‘Inputs/baskets.xlsx’.

Main code

The main code is written in R. The ‘master.R’ script runs other scripts that: define various settings (‘define_*.R’) load the data required (‘load_*.R’); process these data (‘process_*.R’); estimate our models (‘model_*.R’); and create graphs and tables similar to those presented in the RDP (‘create_*.R’).

RBA R packages

Most of the R packages used in the main code are available in CRAN, but a few are not as they were written for internal RBA use. Two of the internal packages were written by us and are provided together with the main code (‘mops’ and ‘readaofm’). One other internal package, which we used for graphs, is not provided (‘arphit’).

Running the code

To run the main code, we used R (4.0.3) and RStudio (1.4.1103). The steps for running our code are:

  1. Update the files in the ‘Inputs’ folder as necessary
  2. Open ‘rdp-2022-02-supplementary-information.Rproj’ in RStudio
  3. Make any desired adjustments to ‘define_settings.R’
  4. Run ‘master.R’ on a machine that is connected to the data sources required
  5. Use the graphs and tables that have been produced in the ‘Outputs’ folder

Other data/code

The data/code used for the results in Section 6 are described in Hambur and Finlay (2018).

Bloomberg data, which are not available for public release, were used to produce the results regarding the bond futures market in Section 7. The methodology behind these results is similar to the methodology described in Finlay et al (2020).


Finlay R and M Chambers (2008), ‘A Term Structure Decomposition of the Australian Yield Curve’, RBA Research Discussion Paper No 2008-09.

Finlay R, C Seibold and M Xiang (2020), ‘Government Bond Market Functioning and COVID-19’, RBA Bulletin, September.

Hambur J and R Finlay (2018), ‘Affine Endeavour: Estimating a Joint Model of the Nominal and Real Term Structures of Interest Rates in Australia’, RBA Research Discussion Paper No 2018-02.

24 May 2022

  • Supplementary information

Back to abstract