U.S. Real GDP Normalized Peak Plot over last 15 Recessions (1929-2022)
Explore the progress of U.S. real GDP (GDPC1, quarterly, seasonally adjusted, $billions 2012 chained) in the first quarters of the last 15 recessions (1929-2022). [Updated Jul. 28, 2022]
About this visualization
I (Richard Evans) first created a version of this plot using STATA in early 2009 during the Great Recession (Dec. 2007 to June 2009), which I posted and wrote about on the now defunct Econosseur.com blog. The updated dynamic visualization on this page was created using the Python prgramming language and the Bokeh plotting library. It shows U.S. real GDP (GDPC1, quarterly, seasonally adjusted, $billions of 2012 chained) during the last 15 recessions, from the Great Depression that started in 1929 to the most recent COVID-19 recession that started in February 2020 and ended in April 2020. I take the GDPC1 level at the beginning of the recession and normalize its value to 1.0. This plot, therefore, shows the percent deviation of the GDPC1 series during each recession relative to its peak at the beginning of the recession. It is a way to compare severity and duration of recession shocks to real GDP across different recessions in different time periods.
Back in 2009, I wanted to highlight how bad the effect of the Great Recession was on U.S. output. This plot shows that the most recent COVID-19 recession (started Feb. 2020) had a historic negative effect on U.S. GDP, with a 10.1% decline in the first two quarters of the recession. None of the previous 14 recessions have come close, with a 5.5% decline in the first two quarters of the Great Depression (1929-1933) being the next biggest. If you zoom out, you will see that U.S. output during the Great Depression (1929-1933) had a decline of 27.5% after 3.5 years and took a full 7 years to get back to its 1929 peak level. The Great Recession (2007-2009) took 3.5 years to get back to its peak level. However, the most recent COVID-19 recession (Q1 to Q2, 2021) took only a year-and-a-half (6 quarters) to get back to its 2019 Q4 peak real GDP of $19.3 trillion. This ends up being the median recovery time over the last 15 recessions.
The data underlying the visualization on this page default to showing GDPC1 series values in the 15 recessions from 3 quarters before the peak to 11 quarters after the peak. However, the data here are available to be viewed from 3 years before the peak to 10 years after the peak.
The quarterly GDPC1 data series begins in Q1 1947. However, annual real GDP data (GDPCA, $billions 2012 chained) are available from 1929 to 2019, from the Federal Reserve Economic Data (FRED) system. In order to have a full time series of quarterly data for all the recessions, I imputed the missing quarters for the annual data portion as a cubic spline that connected the annual data from Q3 1929 to Q1 1947. These annual data are stored as a .csv file (usgdp_anual_1929-1946.csv) in the visualization's GitHub repository. The imputation takes place in the usgdp_npp_bokeh.py file in the GitHub repository and the final GDPC1 quarterly data series from 1929-07 to 2022-04 with the annual data from 1929 to 1946 and the quarterly data from 1947 on is usgdp_2022-04-01.csv. The dataset with each quarterly recession series and the imputed quarterly values for the first and second recessions is usgdp_pk_2022-04-01.csv.
Functionality of the dynamic visualization
This dynamic visualization allows the user to customize some different views and manipulations of the data using the following functionalities.
- Highlight or mute specific recession time series by clicking on the series label in the legend on the right side of the plot. Even when muted, the time series are still faintly visible.
- Hovertool display. If you select the hovertool button on the left side of the plot, which is the default for the plot, information about each point in each time series will be displayed when you hover your cursor over a given point in the plot area.
- Pan different areas of the data. If you click on the pan button on the left side of the plot, you can use your cursor to click and drag on the data window and change your view of the data.
- Zoom in or out on the data. You can zoom in or zoom out on the data series in three different ways. You can use the box zoom functionality by clicking on its button on the left side of the plot and clicking and dragging a box on the area of the plot that you want to zoom in on. You can also zoom in by clicking on the zoom in button on the left side of the plot, then clicking on the area of the plot you want to center your zoom in around. Or you can zoom out by clicking on the zoom out button on the left side of the plot, then clicking on the area of the plot you want to center your zoom out around.
- Save current view of data as .png file. You can save your current view of the data as a .png file to your local hard drive by clicking on the save button on the left side of the plot.
- Undo and redo actions. You can undo or redo any of the plot changes that you make using the undo button or the redo button on the left side of the plot.
- Reset the plot. After any changes you make to the plot, you can reset it to its original position by using the reset button on the left side of the plot.
Contributing to this visualization code
This dynamic visualization was created using the scripts written in the Python programming language. I used the Bokeh plotting library to create the JavaScript for the visualization. All of the scripts, data, and detailed documentation are available on the GitHub page for this visualization (https://github.com/OpenSourceEcon/USgdp_NormPeakPlot). You can fork that repository and follow the instructions in the README.md to create and modify this visualization on your own machine. If you wish to improve or enhance this code or if you find errors or bugs, please consider the following ways to contribute to this project.
- Browse the repository Issues for known areas that need attention.
- Submit questions or suggestions by submitting a new issue in the repository Issues.
- Submit a pull request with your proposed changes.
References
Evans, Richard W., “Code for creating normalized peak plot of U.S. real GDP (GDPC1) in last 15 recessions,” https://github.com/OpenSourceEcon/USgdp_NormPeakPlot, (Jul. 28, 2022).