Get startedGet started for free

Is the Rent Too Damn High?

1. Is the Rent Too Damn High?

Housing cost is a hot-button issue, captured memorably in the phrase--and political party!--"The rent is too damn high." In this lesson we will investigate rents and rent burden.

2. Definitions

ACS reports rent in two ways, contract rent and gross rent. Contract rent, the amount paid each month, sometimes includes utilities. Gross rent adds in utility costs for renters who pay a separate utility bill, and is a more consistent measure of total housing costs. In this lesson we will investigate rent burden. Rent burdened households are those paying a large share of their household income on rent. 30% or more is considered rent burdened, and 50% or more is considered severely rent burdened.

3. Rent Share of Income

To study rent burden at various income levels, we can use ACS Table B25074. This table crosses seven income categories with eight categories of the percentage of income spent on rent.

4. United States Rent Share of Income, ACS 2012-2016

Here is an example of data from 2016 for the United States, displayed as a series. As a DataFrame, the names on the left would be column names. Each number represents a number of households in that category. For example, if you look at the last row, 213 thousand households have an annual income of 10 to 20 thousand dollars and pay less than 20 percent of their household income on rent. Note that one of the rent share categories is "rent_not_computed". If we want to calculate the percent of households that are rent burdened, we should remove this category from the denominator, as we don't know whether these households are rent burdened or not.

5. Calculating Rent Burden

In a few slides, we will calculate the percentage of rent burdened households for each income category. The concept is not difficult, but the code is somewhat complex. So in the next slide we will do it in a more verbose way. We will do so only for households in the low income category of 10 to 20 thousand dollars. These are the columns we will be working with.

6. Calculating Rent Burden

We want the result as a percentage, so start by multiplying by 100. Rent burdened households are those paying 30% or more of their income on rent. This covers four rent share categories: 30-35%, 35-40%, 40-50%, and over 50%. Add these together in the numerator to find the total number of rent burdened households. The denominator includes all households in this income category, inc_10k_to_20k. But there are some households for which the rent share of income is unknown. They might be rent burdened, or they might not. We subtract them from the total households in this income category in order to exclude them from the denominator. This code is fairly verbose, and not scalable. We're doing it this way only for teaching purposes.

7. Calculating Rent Burden

Unsuprisingly, the result shows that many low income households--87%--are rent burdened. Now let's to do this for the other income categories, but in a more programmatic way. The column names have a structure to facilitate this: income category, followed by rent share of income.

8. Calculating Rent Burden in a Loop

Let's do this in a loop. First, create a list with these prefixes.

9. Calculating Rent Burden in a Loop

Initialize a target DataFrame, rent_burden, and loop over the list of income categories. On each iteration, a new column will be created in the rent_burden DataFrame with the name of the income category. The calculation is the same as before: 100 times the count of rent burdened households, divided by the number of households in that income category. But the column names are constructed from the variable "income" combined with the rent-share-of-income category.

10. United States Rent Burden by Income Category

Here is the result,... and a barplot of the percent of rent burdened households in each income category. The code is omitted, but you will construct a similar plot in the exercise.

11. Let's practice!

Let's get to it!