Congress is older than it has ever been. That is the sentence everybody says, and it arrives with its own rebuttal attached: of course they are older, everybody is older, life expectancy has gone up thirty years.
Both halves are testable. Is Congress at its oldest, and does longer life explain it?
Age is not a proxy for competence and nothing here treats it as one. It matters for a narrower reason. Age is a rough guide to how long ago somebody’s politics were formed, and to how much of the future they will personally be present for. The Constitution sets a floor of 25 for a representative, 30 for a senator and 35 for a president, and no ceiling at all.1
The record is Voteview’s member table, maintained at UCLA by Jeffrey
Lewis, Keith Poole, Howard Rosenthal, Adam Boche, Aaron Rudkin and Luke
Sonnet and downloadable by anyone at https://voteview.com/data: one row per member per
Congress, from the first to the 119th. It carries a born
column, a permanent numeric identifier for each person (so that one
member keeps one number across renames, party switches and returns to
Congress), and 51,064 rows in all.
This is the right instrument because it is a complete enumeration rather than a sample: every member of every Congress is in it. So a median — line the members up by age and take the one in the middle — is the actual middle of the chamber and not an estimate of one. The table exists to serve a scaling of roll-call votes, and what that record can bear is the subject of this cluster’s roll-call chapter.
Testing the rebuttal needs a second kind of evidence, from the National Center for Health Statistics, the federal government’s health-statistics agency inside the CDC. Life expectancy at birth — the average length of life for a baby born in a given year, if that year’s death rates held for its whole life — is published as a year-by-year series since 1900 at https://data.cdc.gov/NCHS/NCHS-Death-rates-and-life-expectancy-at-birth/w9j2-ggv5. Remaining life expectancy at 65 and at 75 — the average number of further years for a person who has already reached that age — is printed in Trend Table 4 of Health, United States, 2019, the agency’s annual report to Congress, and had to be read off the published page. Two rows of one government table, about to give two different answers.
One row is one member in one Congress. Here are three of the first Congress’s rows, as this brief holds them:
| Congress | Year | Chamber | Icpsr | Bioname | Born | Age | Entry year | Years since entry |
|---|---|---|---|---|---|---|---|---|
| 1 | 1789 | President | 99869 | WASHINGTON, George | NA | NA | NA | NA |
| 1 | 1789 | House | 4766 | HUNTINGTON, Benjamin | 1736 | 53 | 1789 | 0 |
| 1 | 1789 | House | 8457 | SHERMAN, Roger | 1721 | 68 | 1789 | 0 |
Four of those columns are not in the download. year is
the claim that Congress n begins in 1787 + 2n, checked
against two fixed points rather than trusted: the first Congress
convenes in 1789 and the 119th in 2025. age is
year minus born. entry_year is
the earliest Congress that identifier appears in that chamber, and
years_since_entry is the difference.
born is a year, not a date, so every
age here is right to within twelve months and no better. For anybody
with a December birthday the subtraction overstates their age on opening
day by one. Across 51,064 rows those errors run about half a year and
point in no direction, so medians and trends survive them.
Nothing was dropped and nothing was de-duplicated. 51,064 rows arrived and 51,064 remain, because a member who serves twenty years is supposed to appear ten times. One row is a member in one Congress, not a member. George Washington keeps his row and carries four missing values, which is why 177 rows still have no age.
The rest of the cleaning is a set of checks. No person carries two conflicting birth years, a count that comes to 0. Exactly 1 person has one on some rows and not others, and he is named rather than patched: CLEVELAND, Stephen Grover.
Three more tables come out of it. age_by_congress.csv
collapses 50,935 member-Congress rows into one per chamber per Congress,
with median_age, mean_age,
mean_entry_age, mean_years_since_entry and the
shares aged 65, 70 and 80 or over. It also carries a third chamber
called Congress, the two pooled, which appears nowhere in
the download. entry_tenure.csv has one row per chamber
career, 13,322 of them, with entry_age and
years_served. life_expectancy.csv holds
year, e0_hus and e0_annual for
life expectancy at birth, and e65 and e75 for
the years remaining at those ages.
The join is the calendar year, stated outright rather than left to a merge, because a Congress convenes in an odd year and a life table covers a calendar one.
A fourth output is not a table. ages.json holds the same
ages reshaped from Congress to calendar year – Congress n
occupies 1787 + 2n and the year after it – and ages-page.html
inlines it into a page that plots the median age of each chamber across
all 238 years and draws the full distribution for whichever one you
click. One file, no network calls, so it opens from a memory stick.
Section 9 of build-data.R writes both, and the page names
the four presidents Voteview cannot age rather than leaving a hole where
they sit.
Before you read on, commit to a number. Between 1950 and 2018 the median member of Congress aged 7 years, while life expectancy at birth rose 10.5 years. There is a third way to measure how long people live, and it is the one that applies to a sitting senator: the years a 65-year-old has left. Over those same 68 years, did it rise by more than 10.5, by something between 7 and 10.5, or by less than 7? Write a number down before you read on.
Figure 1. Two and a third centuries of congressional age. Median age of each chamber at every Congress, with the shaded band covering the middle half of the chamber, from the member a quarter of the way up the age order to the member three quarters of the way up. A line over time is the right form because the claim is about a trend, and the band is there because a median alone hides how spread out a chamber is. Each green dot is a president at the start of a term.
| Quantity | Value |
|---|---|
| Youngest Congress on record (median age) | 42 (1793) |
| Oldest Congresses on record (median age) | 60 (2017, 2019, 2021) |
| Median age, most recent Congress | 59 (2025) |
| Post-war low point | 50 (1979) |
| Median senator now | 65 |
| Median representative now | 58 |
The first half of the claim holds. Congress is at or near its oldest recorded point, and the median senator is about 7 years older than the median representative. That gap is old: the Senate has run above the House for most of two centuries, doing what six-year terms and a higher age floor were meant to do.
But the rise is not a long slide. Congress stood at 50 in 1979, the first time it had been that young since 1913. It reached 60 by 2017. Almost the whole increase people argue about happened inside a single working lifetime.
Now the rebuttal, stated as strongly as it deserves. Between 1950 and 2018 American life expectancy at birth rose from 68.2 years to 78.7, a gain of 10.5 years. Over the same span the median member of Congress aged from 53 to 60, a gain of 7 years. On that comparison Congress aged less than the country it governs, and the brief could stop here.
It is a fair comparison and it is not the only one. 78.7 is life expectancy at birth: the average length of a life for a baby born in 2018. It rose so far across the twentieth century mostly because babies and children stopped dying. Antibiotics, sanitation, vaccination and obstetrics are enormous achievements, all of them already behind a sitting senator.
| Measure | 1950 | 2018 | Change |
|---|---|---|---|
| Life expectancy at birth | 68.2 | 78.7 | +10.5 |
| Remaining life expectancy at 65 | 13.9 | 19.5 | +5.6 |
| Remaining life expectancy at 75 | – | 12.3 | +1.9 |
| Median age of Congress | 53 | 60 | +7 |
The quantity that describes an officeholder’s remaining life is the years left at an age they have reached, and NCHS prints it one section further down the same page.
Figure 2. The same 68 years, measured against two rows of one government table. Life expectancy at birth rose 10.5 years, the median age of Congress rose 7, and the remaining life expectancy of a 65-year-old rose 5.6.
| Quantity | Value |
|---|---|
| Gain in life expectancy at birth, 1950-2018 | 10.5 years |
| Gain in remaining life expectancy at 65, 1950-2018 | 5.6 years |
| Share of the headline gain that is about life after 65 | 53% |
At most 53% of the famous rise in life expectancy is a rise in how long a 65-year-old lives. The rest is people who used to die young and now do not, which transforms the average life and changes a senator’s prospects not at all.
So the honest answer to the rebuttal is two answers, and both belong on the page. Measured against life expectancy at birth, Congress aged 7 years while the yardstick grew 10.5, and Congress aged slower than the country. Measured against the years a 65-year-old has left, the yardstick grew 5.6, and Congress aged faster. Same data, same source, same printed table, opposite conclusions.
The choice between them is a choice of denominator, the bottom number you divide by. Nothing in either file makes it, and a denominator picked without thinking can reverse the sign of an answer. The at-65 row is the one that describes people who have already reached the ages members of Congress are, which is why this brief leads with it and reports the other beside it.
A median can rise two ways: new members arrive older, or sitting members stay longer. These have different causes and different remedies, and people assert one or the other without checking. Checking is possible because the two add up exactly, for every member at every Congress:
That is an identity rather than a model, so it survives averaging.
Figure 3. Mean age of Congress, split into its only two components. The lower band is the average age at which sitting members arrived, the upper band the average time they have been there since. The two sum exactly to the mean age, the dark line. Between 1950 and 2018 the mean rose +6.10 years, of which +3.86 is arrival age and +2.25 is time served.
| Chamber | Rise in mean age | From entering older | From staying longer | Entering older, share |
|---|---|---|---|---|
| Congress | +6.10 | +3.86 | +2.25 | 63% |
| House | +6.28 | +4.25 | +2.03 | 68% |
| Senate | +5.55 | +2.40 | +3.15 | 43% |
For Congress as a whole, 63% of the rise between 1950 and 2018 is people arriving older. The popular explanation, that incumbents — the members already in office — cling on, is the smaller half. And the two chambers disagree: in the House 68% of the rise is arrival age, in the Senate 43%. Most of the Senate’s ageing really is senators staying, which six-year terms and very high re-election rates would predict.
Ages are approximate to within a year, because
born is a year, and 177 rows have none at all. Those sit in
the first twenty Congresses, so the earliest part of Figure 1 rests on
fewer people than it appears to.
The at-65 series is sparse and begins in 1950. It is published for 25 years up to 2018, and nothing between them has been filled in. So the most tempting version of the comparison, 1900 against today, cannot honestly be made and is not made here.
Two NCHS sources disagree in 2003, 2004 years. On 24 of 26 shared years they agree to the tenth. That is small and real, and reported rather than resolved.
Members used to die in office far more often, and every such death removed an old member from every later Congress here. That biases the historical series downward, in the direction that flatters the reading that Congress used to be young.
No measure of what the institution does appears in this file. Seniority concentrates power, so a chamber’s leadership may matter more than its median member, and neither is measured here.
None of these is answered above, and every one can be answered by sorting or grouping in a spreadsheet.
age_by_congress.csv has median_age and
mean_entry_age. Filter chamber to Congress and
compare the two columns decade by decade. Which one turns first?age_by_congress.csv to
life_expectancy.csv on year. Compare the rise
in median_age against e0_annual, then against
e65. Which yardstick would you put in a headline?entry_tenure.csv has entry_age and
years_served for every career. Group by the decade of
entry_year and take the median of each. Has the path into
Congress changed?age_by_congress.csv splits by chamber.
Subtract the House median_age from the Senate’s, Congress
by Congress. Is the gap growing, shrinking, or steady?Two stretch ideas point past the spreadsheet.
members.csv has died as well as
born, so you can count member-terms ending in a death in
office by decade and ask how much of the historical series that
explains. And no series here measures the age of the country itself:
download the Census Bureau’s median age by year and ask whether Congress
has aged faster than its electorate.
Data
The data itself
Every figure above is drawn from these tables. They are plain CSV, they open in a spreadsheet, and they are yours to take further.
age_by_congress.csv,
entry_tenure.csv,
life_expectancy.csv,
members.csv, presidents.csv
Two more hold the same numbers in a different shape, by calendar year
instead of by Congress: ages.json and the page
that draws it, ages-page.html.
One more file is not data about the subject – it is how this chapter
checked its own work: checks.csv, the
arithmetic verified before anything was drawn.
I want to rebuild a public dataset from its original sources, without any starting files. Please do the following and show your work. THE FIRST SOURCE. Voteview, the congressional roll-call database. One CSV, about 6 MB, no account or key: https://voteview.com/static/data/out/members/HSall_members.csv One row per member per Congress, every Congress since 1789, presidents included. Birth and death arrive as YEARS, not dates, so every age computed from it is approximate to a year. Congress n begins in the year 1787 plus twice n. THE SECOND SOURCE. CDC/NCHS, life expectancy at birth, annual back to 1900, from the CDC's open-data portal: https://data.cdc.gov/api/views/w9j2-ggv5/rows.csv?accessType=DOWNLOAD A small CSV: three race groups by three sex groups by year. THE THIRD SOURCE, AND THE CATCH. Life expectancy AT AGE 65 — the honest comparison for an officeholder, who has already survived everything that kills children — is NOT in the open-data portal. It lives in a published PDF: "Health, United States, 2019", Trend Table 4, at https://www.cdc.gov/nchs/data/hus/2019/004-508.pdf The table has a real text layer and extracts with any PDF-to-text tool. It covers selected years from 1950 to 2018 only, and skips 2011. WHAT TO BUILD. 1. Every member's approximate age in every Congress they served, and each president's age on taking office. 2. One life-expectancy table joining the annual at-birth series with the selected-year at-65 and at-75 series, so either can be held up against the ages in the first table — and the choice between them can be seen to matter. CHECK YOUR WORK. The copies this book used were downloaded in September 2026. If your rebuild matches them, you should find: - 51,064 rows in the Voteview file, Congresses 1 through 119 - 177 member-Congress rows carry no birth year, and 45 presidents are in the file - 1,071 rows in the at-birth file, and 25 published years of at-65 values, 1950 through 2018 Voteview re-estimates continuously and the CDC extends its series; larger counts mean the sources moved on, not that you erred.
Article I, Section 2 and Section 3, https://www.law.cornell.edu/constitution/articlei; Article II, Section 1, https://www.law.cornell.edu/constitution/articleii.↩︎