Inflation

Introduction

Let’s turn our attention to the economic phenomenon that has been top of mind for much of the last few years: inflation. Shortly after the global financial crisis we were puzzled by the lack of inflation, and now after the Covid-19 shock we are surprised by the ferocity of inflation. Our goal in this section is to equip ourselves with the tools to understand inflation beyond the headlines.

Like a lot of macroeconomics, inflation seems deceptively simple concept. If we paid $2 for a gallon of milk last week, and this week we paid $2.20, there has been $0.20 of inflation on that milk (a week-on-week rate of inflation of 10%!). Simple and explainable to our kids.

But what happens when we consider overall inflation? What if the price of eggs has fallen 10% concurrently with the change in milk? What if we don’t buy milk, but only eggs—has there been deflation? And what is causing the inflation in milk? A shortage of cows (supply constraints) or a abundance of milk drinkers (demand push)?

Measures of Inflation

There are two measures of inflation that we will cover: the Consumer Price Index (CPI) and Personal Consumption Expenditures Index (PCEPI). The CPI is the more commonly referenced measure; when media and market participants say “inflation is increasing”, they are generally referring to CPI. For a strict definition of CPI, it can be considered “a measure of the average change overtime in the prices paid by urban consumers for a market basket of consumer goods and services.”1 CPI is calculated and constructed by the Bureau of Labor Statistics (the BLS) and is published each month. How large is the market basket of goods and services referenced above? It consists of about 80,000 items that people purchase for consumption on a regular basis. As we will discuss below, different weights are assigned to different categories of goods, based on their importance. As with all indexes, CPI is an average of prices faced by consumers. It does not reflect the exact prices or price changes faced by a specific consumer.

PCEPI, though less discussed in the media, is an equally important measure to keep in mind because this is the measure preferred by the Federal Reserve.2 PCEPI and CPI are similar, in that they both measure a price index of consumption, but as we will see they differ in weights and rates of change. A few key differences are: the PCEPI measures all items consumed, not just items paid out of pocket. This means health care, for which most people don’t pay out of pocket, has a higher weight in PCEPI (and housing has a lower weight in PCEPI). PCEPI is also a chained index, meaning it can take account of substitution between items when one becomes more expensive. This makes PCEPI more adaptive, and also less prone to a large rates of increase. For our purposes and for the purposes of market participants, the upshot is that the Federal Reserve tracks a price index that tends to move less quickly than what the media typically calls “inflation”.

Before we dive in and study both CPI and PCEPI, let’s take a quick look at their histories. We first create a dataframe called pce_cpi to hold both times series and their year-over-year changes; we then chart their time series. When market participants reference “Inflation”, that reference is usually to the year-over-year percent change in prices. Let’s start by pulling these two measures of inflation from FRED.

pce_cpi = (
    pdr.get_data_fred(['PCEPI', 'CPIAUCSL'],
                    start='1979-01-01',
                    end='2023-12-31')
        .reset_index()
        .rename(columns={'DATE': 'Date',
                        'PCEPI': 'PCE Inflation',
                        'CPIAUCSL': 'CPI Inflation'})
        .melt(id_vars='Date',
             var_name='series',
             value_name='index')
        .assign(yoy_change = lambda df: df.groupby('series')['index'].pct_change(12))
        .dropna(subset='yoy_change')
)

pce_cpi.groupby('series').nth([0,-1]).round(4)
           Date         series    index  yoy_change
12   1980-01-01  PCE Inflation   37.124      0.1050
539  2023-12-01  PCE Inflation  121.448      0.0262
552  1980-01-01  CPI Inflation   78.000      0.1387
1079 2023-12-01  CPI Inflation  308.742      0.0332

Let’s now chart the time series of different annual inflations and add our recession shading. For a different look, we will drop the legend and instead label each series directly in the chart.

(
    alt.Chart(pce_cpi,
        title = alt.Title('CPI v. PCEPI Annual Rates of Inflation',
            subtitle='source: FRED'))
       .mark_line()
       .encode(
            alt.X('Date:T').title(None),
            alt.Y('yoy_change:Q').title(None)
                .axis(format='%'),
            alt.Color('series:N').title(None)
                .scale(domain=['PCE Inflation','CPI Inflation'],
                       range=['seagreen', 'maroon'])
                .legend(None)
        )
    
    # dashed horizontal line at 0
    + alt.Chart()
        .mark_rule(strokeDash=[5,3])
        .encode(y=alt.datum(0))

    # labels
    + alt.Chart(pce_cpi)
        .mark_text(baseline = 'bottom', 
                align='left',
                fontWeight='bolder', 
                dx=5)
        .encode(alt.X('max(Date):T'),
                alt.Y('yoy_change:Q').aggregate({'argmax': 'Date'}),
                alt.Text('series:N'),
                alt.Color('series:N')
        )

    # recession shades
    + recession_shade
)

Core Inflation

Components of CPI

Components of PCEPI

More Inflation Data

Real Interest

Unexpected Inflation

Money Supply

Money Velocity

Inflation and 10-Year Yields

Inflation Announcement and Market Returns

International Comparison

Conclusion

Footnotes

  1. For more on CPI, see <www.bls.gov/cpi/questions-and-answers.htm>↩︎

  2. See <www.stlouisfed.org/publications/regional-economist/july-2013/cpi-vs-pce-inflation–choosing-a-standardmeasure>↩︎