• John Hawver

The Taylor Rule Revisited

Updated: May 8, 2019

This week we have the third 2019 FOMC meeting.


At one point as a trader, I could have given you a “CNBC” macro story on the Fed, full of very intelligent - sounding economic phrases. Then, as now, those words would be completely unhelpful. (Please see my post on market noise).


Instead, let’s look at the Taylor Rule. Yep, the Taylor Rule. It is not currently in fashion. If you look at Google Trends, searches for “Taylor rule” peaked in 2009. The topic is due for a revival and maybe this blog post will stir some interest. Or not, and this post will be found when someone searches for Taylor Swift and hits the wrong link.


You can find more background on the Taylor Rule at this wiki link; here is the key passage:


“The rule was first proposed by John B. Taylor,[1] and simultaneously by Dale W. Henderson and Warwick McKibbin in 1993.[2] It is intended to foster price stability by systematically reducing uncertainty and increasing the credibility of future actions by the central bank. It may also avoid the inefficiencies of time inconsistency from the exercise of discretionary policy.[3] The Taylor rule synthesized, and provided a compromise between, competing schools of economics thought in a language devoid of rhetorical passion.[4] Although many issues remain unresolved and views still differ about how the Taylor rule can best be applied in practice, research shows that the rule has advanced the practice of central banking.”


In short, it was (is) an attempt to provide systematic guidance for the Fed’s interest rate policy.


Interestingly, in 2018, St Louis Fed President Bullard updated the rule during a presentation to the Economic Club of Memphis.


Below is a plot of all three versions of Taylor’s Rule (the pdf can be found in my Investment Reports).




To my quantitative-non-macro eye, it looks like there was a bit of goal-seeking when each version of the rule was implemented. If we have some expectation that the Fed, or at least President Bullard, looks at the Taylor Rule when they meet, it would seem that Fed policy is pretty close to (the most recent) target.


Let’s see what they do.


John




##### Code to Replicate #####


# https://en.wikipedia.org/wiki/Taylor_rule

#https://www.stlouisfed.org/~/media/files/pdfs/bullard/remarks/2018/bullard_memphis_economic_club_18_october_2018.pdf?la=en


# data

FEDFUNDS <- fGetSymTSData('FEDFUNDS', dataSource = 'FD')

GDPC1 <- fGetSymTSData('GDPC1', dataSource = 'FD') # Real Gross Domestic Product

GDPDEF <- fGetSymTSData('GDPDEF', dataSource = 'FD') # Gross Domestic Product: Implicit Price Deflator

GDPPOT <- fGetSymTSData('GDPPOT', dataSource = 'FD') # Real Potential Gross Domestic Product

FEDBAL <- fGetSymTSData('WALCL', dataSource = 'FD') # Fed Balance sheet


# from wikipedia

fTaylorRule <- function(pi_t, r_star_t, a_pi, pi_star_t, a_y, y_t, y_bar_t) {

pi_t + r_star_t + a_pi * (pi_t - pi_star_t) + a_y * (y_t - y_bar_t)

}


# Taylor rule inputs (these variable names are awful...)

pi_t <- 100 * diff(GDPDEF, 4) / GDPDEF

r_star_t <- 2

a_pi <- .5

a_y <- .5

pi_star_t <- 2

y_t <- log(GDPC1) * 100

y_bar_t <- log(GDPPOT) * 100


# calc Original

taylor_rule <- fTaylorRule(pi_t, r_star_t, a_pi, pi_star_t, a_y, y_t, y_bar_t)

names(taylor_rule) <- "TAYLOR_RULE"


# calc 2 Taylor 1999

a_y <- 0

taylor_rule_2 <- fTaylorRule(pi_t, r_star_t, a_pi, pi_star_t, a_y, y_t, y_bar_t)


# calc 3 Bullard 2018

r_star_t <- 0

a_y <- .1

pi_star_t <- 1.5

taylor_rule_3 <- fTaylorRule(pi_t, r_star_t, a_pi, pi_star_t, a_y, y_t, y_bar_t)


# plot print function

printFFTR <- function() {

DIFF_TAYLOR_RULE <- na.locf(cbind(FEDFUNDS, taylor_rule))

ff_tr_diff <- DIFF_TAYLOR_RULE['1970::', "FEDFUNDS"] - DIFF_TAYLOR_RULE['1970::', "TAYLOR_RULE"]

FEDFUNDS_TAYLOR_RULE <- na.locf(cbind(FEDFUNDS, taylor_rule, taylor_rule_2, taylor_rule_3))

plot(FEDFUNDS_TAYLOR_RULE['1970::',], main='Fed Funds (Black) vs Taylor Rules (Red: Taylor 1993, Green: Taylor 1999, Blue: Bullard 2018)',

major.ticks = 'year', grid.ticks.on = 'quarters')

addSeries(ff_tr_diff, main = paste0('FedFunds - TR_Original: ', round(fLast(ff_tr_diff), 3)), col = 'blue')

}


# plot

print(printFFTR())

©2020 by Mud Muscle and Markets - Disclaimer