Hodrick Prescott Filter

My most successful product

I believe my work speaks for itself. Browse my most successful project below and enjoy my handmade work.

It began in 2003 when I wrote my diploma thesis in monetary macroeconomics I came the first time in closer contact with a mathematical tool used in macroeconomics, especially in real business cycle theory, to remove the cyclical component of a time series from raw data. Immediately I understood the popularity of the filter among researchers. I am talking about the Hodrick Prescott filter, introduced by Hodrick and Prescott (1980).

During this time, like many others, I used a Matlab code to compute the Hodrick-Prescott filter.  But there were two things that bothered me. First It seemed to me unfortunate that a non-free license of Matlab must be installed on the PC. 15 years ago, around the year 2014, Octave and R as an alternative were still at a fledgling stage and were hard to use. The most alluring reason was the fact that I wanted to evaluate the data directly within Excel. I’ve been hunting around the internet for an Excel Version and found what I was looking for. Unfortunately, the algorithm worked slow that I decided to write my own Excel Add-In.  I studied the Hodrick-Prescott Filter and found a simple solution by taking full account on solving pentadiagonal linear systems. I used a fast algorithm to write a simple VBA Code. [web:reg] HP Filter Add-In was born. The Add-In has become increasingly popular amongst researcher, students and professionals since 2014.

In the last few years I‘ve been asked to program an one-sided Hodrick-Prescott Filter and I wrote an Add-In in C. The Excel Add-In has been extended by the one-sided HP-Filter.

Both Add-In can be downloaded for free.

I thank you for your trust in my Add-Ins.

Kurt Annen

The equation

Let’s suppose that the original time series (y_t)_{t=0}^T  is composed of a trend component\tau_t and and a cyclical component c_t. That is, y_t = \tau_t + c_t The HP-Filter isolates the cycle component by following minimization problem \min_{\tau_1,\dots,\tau_T}\sum_{t=1}^{T} \left ( y_t-\tau_t\right )^2 +\lambda\sum_{t=2}^{T-1}\left [\left ( \tau_{t+1}-\tau_t \right )\left ( \tau_t-\tau_{t-1} \right ) \right ]^2 where \lambda is a positive smoothing parameter that penalizes variability in the trend. The unique solution to the minimization problem is \widehat{\tau}=\left ( I_T+\lambda F \right )^{-1}y where I_T is an T\times T identity matrix and F is the pentadiagonal T\times T matrix.  F=\begin{pmatrix}1& -2& 1& & & & & & &\\ -2& 5& -4& 1& & & & & &\\ 1& -4& 6& -4& 1& & & & &\\ & 1& -4& 6& -4& 1& & &\\& & \ddots& \ddots& \ddots& \ddots& \ddots& & \\& & & 1& -4& 6& -4& 1& &\\ & & & & 1& -4& 6& -4& 1&\\ & & & & & 1& -4& 5& -2&\\ & & & & & & 1&-2& 1&\end{pmatrix}.

The value of \lambda depends on the frequency of the data. In the literature the following values are suggested.


yearly data

quarterly data

monthly data


If you like my Add-Ins, feel free to support me with a PayPal donation with an amount of your choice.

  • SHARE: