Blog

Congressional Staff Salaries – Updated

I’ve redone some of the congressional staff salary data visualization. These data come from publicly released House and Senate disbursements which list job titles, staffer names, offices, and salaries. I’ve taken a version of these data cleaned by Legistorm, done some further cleaning to job titles and salaries, and adjusted salaries for inflation to 2016 dollars.

In this first figure we can see average salaries by common job title pooling both the House and the Senate together:

However, this figure is a bit misleading because Member Representational Allowances (MRAs) vary significantly between the House and the Senate. In the House, each rank-and-file member is allocated the same amount for spending on staff salaries (though they can then use it as they see fit, including not spending all of it — more here). In the Senate, a complex formula determines how much Senate offices are allocated. As a result, Senate offices have much more to spend on salaries which is plain this figure, where average salaries for common positions in the Senate are much higher:

 

Note the difference now with the House, where Chief of Staff salaries barely get above $125,00 where they are much closer to $175,000 in the Senate. Similarly, Legislative Assistants in the House fluctuate around 40-50k, where in the Senate this is closer to 75k.

 

We can also use these data to look at how much offices spend in the aggregate on salaries. In the House, again, this is limited by the MRA. This figure plots the MRA (adjusted to 2016 dollars) against average aggregate salaries over time (in the House) divided by party:

 

Finally, I’ve plotted aggregate salaries per office (in the House) by congressional term. As members increase in career length, they start to spend more on staffing (relative to other uses, such as franking). However, this starts to plateau around the 5th or 6th term in Congress:

 

 

Congress & Lobbying Data Visualization

I’ve been working on some new data combining lobbying data and congressional staff employment histories. These figures show how many offices hire lobbyists and how many offices lose staffers to lobbying.

Some of the downward trends are surely due to the rise in shadow lobbying, where lobbyists are not registering as often as in the past because of regulatory changes. The partisan trends at different years are interesting in themselves, in my opinion.

All figures were made in R with ggplot2.

Congressional Staff Salaries Over Time

I’ve recently been playing with congressional staff salary data and decided to display some trends graphically. Many observers have noted recently the troubling decline in the number of staffers in Congress — which is problematic if you’re interested in, for example, reforming lobbying or bolstering Congress’ oversight capacity. There’s also some excellent recent academic work systematically analyzing the impact staff have on the policy making process by Jacob Montgomery and Brendan Nyhan (ungated here).

This first graph depicts average salaries overtime by binned job title (salaries are adjusted for inflation):

This one graphs some of the more common job titles over time:

 

There are in fact some downward trends, particularly in the more senior levels of congressional staffers. However, the junior levels have remained largely constant. But the larger point here is these should beĀ increasing. DC is an incredibly expensive place to live (I know–I spent three years working there); the number of staffers are decreasing on average, meaning the same people are taking on more responsibilities; and we should be interested in supplying these public employees with a wage at least in the same ballpark as what they would make in the private sector. Just look at the Legislative Assistant salaries in the second graph — these people do a bulk of the day-to-day policy work and are barely making $50k. Adjusting for cost of living, that’s closer to $35-40k here in Atlanta.

 

Edit: here are the salary densities. The red dashed line is the mean, the black dashed line the median (click for a larger image).

All figures were created in R using ggplot2.