Percentage of Households in Each Income Level

Now that we know the cutoffs that make lower-, middle-, and upper-income in each state, we can estimate the percentage of households in each income level. Adjust for people in the household and sort states by highest percentages in the income levels.

Household Income Level Breakdown

Bars represent lower-, middle-, and upper-income percentages for each state.


The data comes from the 5-year American Community Survey from 2017. Middle-income is defined as two-thirds the median income for a group to twice the median. Lower-income is everything below the former, and upper-income is everything greater than the latter.

It’s interesting to see the breakdowns for the one-person households. The relatively high percentages for the upper-income level at or greater than the 50% mark seems to suggest a lot of clustering towards the higher end. Increase the household size, and the upper-income percentages go down to the teens.

I suspect employment, occupations, and family makeup play a big role in the variation. Gonna have to look at that next.

What Qualifies as Middle-Income in Each State

See how income ranges change for each state.


  • The data comes from the 2017 5-year American Community Survey. I downloaded the data through IPUMS, which is my favorite way to get Census microdata.
  • I used R to analyze and prepare the data. I used D3.js to make the chart above.

Become a member. Support an independent site. Make great charts.

See What You Get

Learn to Visualize Data See All →

How to Make a Polar Density Plot in R

With cyclical data, a circular format might be useful. Combine that with a smooth density to reduce noise, and you got yourself a plot.

How to Edit R Charts in Adobe Illustrator

A detailed guide for R users who want to polish their charts in the popular graphic design app for readability and aesthetics.

How to Make a Bump Chart in R

Visualize rankings over time instead of absolute values to focus on order instead of the magnitude of change.

How to Make Variable Width Bar Charts in R

The code to create these bar chart variations is almost the same as if you were to make a standard bar chart. But make sure you get the math right.


Reviving the Statistical Atlas of the United States with New Data

Due to budget cuts, there is no plan for an updated atlas. So I recreated the original 1870 Atlas using today’s publicly available data.

Counting Happiness and Where it Comes From

Researchers asked 10,000 participants to list ten things that recently made them happy. I counted and connected the dots.

10 Best Data Visualization Projects of 2017

It was a rough year, which brought about a lot of good work. Here are my favorite data visualization projects of the year.

Visualizing the Uncertainty in Data

Data is an abstraction, and it’s impossible to encapsulate everything it represents in real life. So there is uncertainty. Here are ways to visualize the uncertainty.