This week’s dataset comes from the {historydata} R package (rOpenSci), which pulls from the Federal Judicial Center’s Biographical Directory of Article III Federal Judges. It covers every appointment to the U.S. federal bench since 1789 — District Courts, Courts of Appeals, the Supreme Court, former Circuit Courts, and special jurisdiction courts. Suggested questions: Which presidents appointed the most judges? How has the demographic makeup of the bench changed over time?
Loading necessary packages
My handy booster pack that allows me to install (if needed) and load my usual and favorite packages, as well as some helpful functions.
raw <- tidytuesdayR::tt_load('2025-06-10')judges_appointments <- raw$judges_appointmentsjudges_people <- raw$judges_people
Exploratory Data Analysis
The my_skim() function is a modified version of skimr::skim() that returns count, min, p25, median, p75, max, mean, geometric mean, standard deviation, and an ASCII histogram.
judges_appointments
Date strings (nomination, confirmation, commission, retirement, termination) and predecessor name fields are dropped for the skim — they’re character columns encoding dates in MM/DD/YYYY format that need parsing, not summarizing raw.
The appointments table covers 4202 records across every federal judicial seat since 1789. The court_type column is almost entirely clean, with two known truncated entries ("U. S. Court of Custo" and "U. S. Court of Inter") noted in the dataset documentation. chief_judge_begin and chief_judge_end are populated for only a handful of records. termination_reason is NA for many appointments — these are judges still serving or records with unknown termination circumstances.
judges_people
Name fields and birth/death cities are dropped for the skim — they’re free-text identifiers with no distributional interpretation.
The people table covers 3532 unique individuals. Birth years span from the late 1700s through the early 2000s. The gender and race columns are as reported by the judiciary — an important caveat, since these categories reflect institutional classification practices that have evolved over time and likely undercount early representation. The birthplace_state and death_state columns offer some geographic texture.
The Presidential Appointment Record
The power to shape the federal judiciary for decades is one of the most consequential — and least perishable — legacies a president leaves behind. Let’s look at who appointed the most judges, and what the party breakdown looks like.
Data Preparation
# Join appointments with judge biographical infojudges <- judges_appointments %>%left_join(judges_people, by ="judge_id") %>%mutate(nom_date = lubridate::mdy(nomination_date),nom_year = lubridate::year(nom_date),nom_decade =floor(nom_year /10) *10 )# Verify exact gender category strings before any filteringcat("=== Gender categories (exact strings) ===\n")
=== Gender categories (exact strings) ===
judges %>%count(gender, sort =TRUE) %>%print()
# A tibble: 2 × 2
gender n
<chr> <int>
1 M 3777
2 F 425
# A tibble: 13 × 2
court_type n
<chr> <int>
1 USDC 3065
2 USCA 767
3 USSC 117
4 USCC (1869) 70
5 Court of Claims 58
6 U. S. Customs Court 36
7 U. S. Court of Customs and Patent Appeals 29
8 U. S. Court of International Trade 25
9 USCC (1801) 16
10 USCC 12
11 Other 5
12 U. S. Court of Custo 1
13 U. S. Court of Inter 1
stopifnot("pres_counts has 0 rows — check filter"=nrow(pres_counts) >0)party_colors <-c("Republican"="#C0392B","Democrat"="#2471A3","Other/Unaffiliated"="#7F8C8D")p_pres <- pres_counts %>%ggplot(aes(x = n, y = president_name, fill = party_group)) +geom_col(width =0.7, alpha =0.9) +geom_text(aes(label = n),hjust =-0.2, size =3.2, color ="grey30" ) +scale_fill_manual(values = party_colors) +scale_x_continuous(expand =expansion(mult =c(0, 0.12))) +labs(title ="Top 20 presidents by federal judicial appointments",subtitle ="Article III appointments (District Courts, Courts of Appeals, Supreme Court, and more)",x ="Number of appointments",y =NULL,fill ="President's party",caption ="Source: historydata R package / Federal Judicial Center | TidyTuesday 2025-06-10" ) +theme_minimal(base_size =12) +theme(plot.title =element_text(face ="bold", size =14),plot.subtitle =element_text(color ="grey45", size =10),legend.position ="bottom",panel.grid.major.y =element_blank(),panel.grid.minor =element_blank(),plot.caption =element_text(color ="grey60", size =8) )p_pres
Reagan and Clinton lead all modern presidents in total appointments — each clearing 380+ during their combined 8-year terms. Reagan’s figure reflects not only longevity in office but a deliberate strategy to reshape the judiciary ideologically; Clinton matched him almost appointment-for-appointment. Carter’s 267 appointments came in just one term, yet his administration’s impact on judicial demographics far outweighs the raw count, as we’ll see below. Congress periodically authorizes new judgeships to manage caseload growth, which is why high-volume decades cluster around specific legislative expansions (the 1978 Omnibus Judgeship Act, for example, added 152 seats at once).
The Changing Face of the Federal Bench
The story of the federal judiciary isn’t just about quantity. For most of U.S. history, federal judges were overwhelmingly white men. That began to change slowly — then faster — over the second half of the 20th century.
Gender Diversification by Decade
# Using verified gender strings from EDA abovefemale_pct_by_decade <- judges %>%filter(!is.na(nom_year), gender %in%c("M", "F"), # verified: actual values are "M" and "F" nom_year >=1900 ) %>%group_by(nom_decade) %>%summarise(total =n(),n_female =sum(gender =="F"),pct_female = n_female / total,.groups ="drop" )cat(sprintf("female_pct_by_decade: %d rows, %d cols\n",nrow(female_pct_by_decade), ncol(female_pct_by_decade)))
female_pct_by_decade: 12 rows, 4 cols
stopifnot("female_pct_by_decade has 0 rows — check filters"=nrow(female_pct_by_decade) >0)# Sanity check: proportions should vary across decadesif (length(unique(round(female_pct_by_decade$pct_female, 4))) ==1) {warning("All pct_female values are identical — check grouping logic")}female_pct_by_decade %>%select(nom_decade, total, n_female, pct_female) %>%mutate(pct_female = scales::percent(pct_female, accuracy =0.1)) %>%print()
stopifnot("race_plot_data empty"=nrow(race_plot_data) >0)p_race <- race_plot_data %>%ggplot(aes(x = nom_decade_label, y = pct, fill = race_group)) +geom_col(position ="stack", width =0.72) +scale_fill_manual(values =setNames(as.character(race_pal),c("White", "African American", "Hispanic", "Asian American", "Other/Multiple") ) ) +scale_y_continuous(labels = scales::percent_format(accuracy =1)) +labs(title ="Racial composition of federal judicial appointments, 1960s–2020s",subtitle ="Share of appointments by reported race/ethnicity per decade",x =NULL,y ="Share of appointments",fill ="Race / ethnicity",caption ="Source: historydata R package / Federal Judicial Center | TidyTuesday 2025-06-10\nNote: race categories as reported by the Federal Judicial Center; classification practices have evolved over time." ) +theme_minimal(base_size =12) +theme(plot.title =element_text(face ="bold", size =14),plot.subtitle =element_text(color ="grey45", size =10),plot.caption =element_text(color ="grey60", size =8, hjust =0),panel.grid.major.x =element_blank(),panel.grid.minor =element_blank(),legend.position ="right" )p_race
Final thoughts and takeaways
The federal bench has changed dramatically — but slowly. For roughly the first 180 years of the republic, the judiciary was the exclusive domain of white men. The data shows near-zero female representation through the 1960s. The inflection point is the Carter administration (1977–81): Carter made a deliberate, structured effort to diversify the bench, appointing women and minority judges at rates that had no historical precedent. Every subsequent president has maintained or extended that trajectory to varying degrees.
By the Obama era, women made up roughly 41% of judicial appointments — a figure that would have been unimaginable a generation earlier. The 2020s data, still accumulating, appears on track to push that share higher.
Note
Methodological caveat: The gender and race fields reflect how the Federal Judicial Center classified judges, not self-identification. Early records in particular may be incomplete or inconsistently coded. The dramatic increase in non-white appointments post-1960 partly reflects better record-keeping as much as actual change — though the demographic shift in appointments since Carter is real and well-documented independently.
The race/ethnicity panel tells a complementary story: the white share of appointments has declined from near-100% to roughly 60–70% in recent decades, with Black and Hispanic judges making up a growing share. The trajectory is clear, even if parity remains distant.
What the data can’t capture is the compounding effect: federal judges serve for life. Every diverse appointment is a multi-decade presence on the bench. Carter’s 1977–81 cohort was still issuing rulings into the 2010s. This is why presidential judicial legacies matter so much — they don’t fade at the end of a term.