fjc-biographies¶
| Version | |
| Status | |
| Documentation | |
| Tools | |
| Compatibility | |
| Stats | |
What is fjc-biographies?¶
fjc-biographies downloads the Federal Judicial Center's Biographical
Directory of Article III Federal Judges
and turns it into tidy tables, including a roster of judges in two formats:
by appointment (a row for each court that each judge has served on) and by
judge (a row for each judge).
Why use fjc-biographies?¶
- One step.
fjc-biographiesdownloads all six of the FJC's files (demographics, federal judicial service, other federal judicial service, education, professional career, and other nominations) and exports a tidy CSV file of each. - A roster of judges.
build_rostercodes what researchers usually want to know about each appointment: the circuit, the years of service and senior status, the appointing president's party, the ABA rating, the share of senators who voted to confirm, whether it was a recess appointment, the judge's gender and race, etc. - Fields from careers, written in a spreadsheet. A rulebook (a CSV file
of regular expressions) makes new fields from each judge's
employment history. The built-in "judges" rulebook flags whether the judge
was a prosecutor, public defender, law clerk, Supreme Court clerk,
solicitor general, or law professor, and your own rulebook can add flags,
counts, labels, or lists of matches without changing any code.
The employment history itself stays in the roster as
career, one position per line, so every field can be checked against the text it was made from. - Names for matching. Each judge's name is written twelve ways, for matching it against opinions and other datasets: first, middle, and last names; with the middle initial; without the middle name; each with and without the suffix ("Milton Dale Smith, Jr."); and, for the FJC's names with letters in square brackets, both with the brackets removed ("Robert Lanier Anderson") and with the bracketed letters replaced by a period ("R. Lanier Anderson").
- Ideology scores, if you want them.
--jcsadds each appointment's Judicial Common Space score, computed by judicial-common-space, and--martin-quinnadds the justices' Martin-Quinn scores for each appointment to the Supreme Court and exports every justice's score in every term. - Reassignments handled. A judge who was reassigned to another court without a new appointment (as when the Eleventh Circuit was divided from the Fifth) keeps the president, party, rating, and vote of the judge's last appointment.
The roster is the one that courtpy uses to identify the judges of cases, which this package was taken from.
Getting started¶
Requirements¶
Python 3.11 or later. The dependencies are pandas (3.0 or later), numpy,
and judicial-common-space
(0.1.0 or later), which pip installs with it.
Installation¶
To install fjc-biographies, use pip:
Usage¶
From the command line, download the files and export the tidy tables and the roster:
The roster is exported in two formats, as the FJC's own export is:
| File | Rows | Columns |
|---|---|---|
roster_by_appointment.csv |
One for each court that each judge has served on | The judge's fields, repeated on each of the judge's rows, and the appointment's fields (court, start_date, president, party, ...) |
roster_by_judge.csv |
One for each judge | The judge's fields once, appointments (how many courts the judge has served on), and each appointment's fields, numbered in the order of the judge's service (court_1, start_date_1, ..., court_2, ...) |
The FJC updates the directory nightly. Add --update to download the files
again, --download-only to skip exporting, and --data-folder to choose
where the files go. By default, they go in data/courts/fjc_biographies
beside the folder of the repository, or in the user's application data
folder when the package is installed (set FJC_BIOGRAPHIES_DATA_DIR to
choose another).
From Python:
import fjc_biographies
# The tidy table of one file, which is downloaded if it is not there.
service = fjc_biographies.load('service')
# Every file, and the roster made from them.
tables = fjc_biographies.load_all()
roster = fjc_biographies.build_roster(
tables['service'], tables['demographics'], tables['career'])
# The same roster with a row for each judge.
by_judge = fjc_biographies.roster_by_judge(roster)
To make other fields from judges' careers, copy the built-in rulebook
(judges.csv), change or add
rules, and name it:
roster = fjc_biographies.build_roster(
tables['service'], tables['demographics'], tables['career'],
rulebook = 'my_careers.csv')
careers = fjc_biographies.code_careers(tables['career'], rulebook = 'my_careers.csv')
or fjc-biographies --rulebook my_careers.csv from the command line. The
columns of a rulebook and the kinds of rules are described in the
instructions folder.
Scores¶
Judicial Common Space and Martin-Quinn scores are optional:
roster = fjc_biographies.add_jcs(roster)
roster = fjc_biographies.add_martin_quinn(roster)
terms = fjc_biographies.martin_quinn_terms()
| Column | Meaning |
|---|---|
jcs |
The appointment's Judicial Common Space score: the NOMINATE score of the judge's home-state senators of the president's party, or else of the president, and for a justice, the Martin-Quinn score of the appointment's first term on the same scale. |
mq_first, mq_last, mq_mean, mq_terms |
For an appointment to the Supreme Court, the justice's Martin-Quinn scores in its first and last terms, their mean, and the number of terms scored. A justice who became Chief Justice has separate scores for each appointment. |
With --martin-quinn, martin_quinn_terms.csv has every justice's score in
every term, with the FJC's nid and the appointment's sequence.
The files that the scores come from (Voteview's NOMINATE scores, the dates
of senators' service, and the Martin-Quinn scores) are downloaded into
judicial-common-space's data folder, which --scores-folder or the
JUDICIAL_COMMON_SPACE_DATA_DIR environment variable can change, so that
courtpy and judicial-common-space share them. The Martin-Quinn website
sometimes refuses or fails to answer automated requests. Then save
justices.csv from its page in a
browser and pass its path: --martin-quinn ~/Downloads/justices.csv. A copy
that was downloaded before is used if a new one cannot be.
| Category | FJC file | Rows |
|---|---|---|
demographics |
demographics.csv |
One for each judge |
service |
federal-judicial-service.csv |
One for each judge's service on an Article III court |
other_service |
other-federal-judicial-service.csv |
One for each other federal judicial position |
education |
education.csv |
One for each degree |
career |
professional-career.csv |
One for each position in a judge's career |
other_nominations |
other-nominations-recess.csv |
One for each other nomination or recess appointment |
Contributing¶
Contributors are always welcome. Feel free to grab an issue to work on or make a suggested improvement. If you wish to contribute, please read the Contribution Guide and Code of Conduct.
Similar Projects¶
- courtpy collects, parses, and analyzes court opinions, and matches the judges in them to this roster.
- fjc-idb does for the FJC's Integrated Database of cases what this package does for its directory of judges.
Acknowledgments¶
The data are the work of the Federal Judicial Center's Federal Judicial History Office. The FJC asks that published work cite it as: History of the Federal Judiciary. http://www.fjc.gov. Web site of the Federal Judicial Center, Washington, DC.
Citation¶
If you use fjc-biographies in your research, please cite it. GitHub's
"Cite this repository" button reads the same information from
CITATION.cff.
@software{yung_fjc_biographies,
author = {Yung, Corey Rayburn},
title = {fjc-biographies: Downloads and parses the FJC Biographical Directory of Article III Federal Judges},
version = {0.1.0},
year = {2026},
url = {https://github.com/WithPrecedent/fjc_biographies},
license = {Apache-2.0}
}
License¶
Use of this repository is authorized under the Apache Software License 2.0.