I might be making a really simple mistake somewhere, but I thought I'd ask anyway. I'm trying to replicate the results in Wachter 2005, "Solving models with external habit". (You can also find the prepublication version here for free.) However, I'm getting a slightly different result for some quantities and I'm wondering if I'm interpreting the parameters correctly. In particular, when I input the parameters listed in Table 1, I get a different average risk-free rate in both the "CC value" case and the "Wachter value" case.
From Tables 2 and 3, we see that the "CC value" case should give an average risk-free rate, $E[r^f]$, of $0.94\%$ and the "Wachter value" case should give $1.47\%$.
The value of the average risk-free rate can be derived analytically, and is given in equation (11): $$ E[r^f_t] = - \log \delta + \gamma g - \frac{\gamma (1-\phi) - b}{2}. \tag{11a} $$ When I substitute in the parameter values from Table 1, I get $0.47\%$ for the CC parameterization and $2.47\%$ for the Wachter parameterization.
I wonder if I am annualizing correctly? I'm somewhat confident that I'm inputting the parameters correctly, because the paper does show that for the Campbell Cochrane calibration (CC values), a derived parameter called $S_{\text{max}}$ should be equal to $0.0939$, where
\begin{align} \bar S &= \sigma_\nu \sqrt{\frac{\gamma}{1-\phi - b/\gamma}} \tag{5}\\ s_{\text{max}} &= \bar s + \frac 12 (1 - \bar S^2), \tag{6} \end{align}
Lower case letters denote the natural log of the capitalized variable. When I substitute in the "CC values", I get $S_{\text{max}} = 0.09384$. So, this seems correct. The paper implicitely reports this parameter in a footnote:
Any thoughts as to why I'm getting different values for the average risk-free rate?
I've included Python code below to show what I'm doing.
# Campbell Cochrane parameters
ann_fact = 12 #annualization factor. Monthly
g = 1.89 / ann_fact / 100
sigma_v = 1.50 / np.sqrt(ann_fact) /100
gamma = 2.00
b = 0.00
phi = (0.87)**(1/ann_fact)
delta = (0.90)**(1/ann_fact)
# ## Wachter 2005 Parameters
# ann_fact = 4 #annualization factor. Quarterly
# parameterization_name = 'Wachter (2005)'
# ann_fact = ann_fact
# g = 2.20 / ann_fact / 100
# sigma_v = 0.86 / np.sqrt(ann_fact) / 100
# gamma = 2.00
# b = 0.011
# phi = (0.89)**(1/ann_fact)
# delta = (0.93)**(1/ann_fact)
bar_S = sigma_v * np.sqrt(gamma/(1 - phi - b/gamma))
bar_s = np.log(bar_S)
s_max = bar_s + 1/2 * (1 - bar_S**2)
Smax = np.exp(s_max)
print("Smax ", Smax) # CC1999 should be 0.0939
r_f = (-np.log(delta) + gamma * g - 1/2 * (gamma * (1-phi) - b))
print("Average risk-free rate", r_f * ann_fact * 100)
# CC1999 should be 0.94 %
# Wachter 2005 should be 1.47 %