Skip to main content

fjc-biographies

Version PyPI Latest Release GitHub Latest Release
Status Build Status Code Coverage Development Status Project Stability
Documentation Hosted By
Tools Documentation Linter Type Checker Dependency Manager Pre-commit CI Editor Settings Repository Template Dependency Maintainer
Compatibility Compatible Python Versions Linux MacOS Windows
Stats PyPI Download Rate (per month) GitHub Stars GitHub Contributors GitHub Issues GitHub Forks

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-biographies downloads 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_roster codes 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. --jcs adds each appointment's Judicial Common Space score, computed by judicial-common-space, and --martin-quinn adds 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:

pip install fjc-biographies

Usage

From the command line, download the files and export the tidy tables and the roster:

fjc-biographies

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:

fjc-biographies --jcs --martin-quinn
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.

Metadata

Release files for fjc-biographies 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fjc-biographies 0.1.0
File Size Uploaded Provenance
fjc_biographies-0.1.0.tar.gz 166.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for fjc-biographies 0.1.0
File Interpreter ABI Platform
fjc_biographies-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 203.9 kB

Release files / fjc_biographies-0.1.0.tar.gz

Download URL fjc_biographies-0.1.0.tar.gz
Size 166.0 kB
Tags Source
SHA-256 checksum
How to use checksums
9d2d4dc67192e8233986ecac2eb991039a972ac6894c112b040467872edb1a29
BLAKE2b-256 checksum
How to use checksums
77daf2106cb43c369d56d492b726ee99a3565132335be0e7ebd2ead5a087cea3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / fjc_biographies-0.1.0-py3-none-any.whl

Download URL fjc_biographies-0.1.0-py3-none-any.whl
Size 37.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3d40033a15ab377ef10af7cf53ee0d1d6cf95f1693abbf08733b614ba2c1ade7
BLAKE2b-256 checksum
How to use checksums
c508313a1e59c9be5cdf99ce1ffffa8add2d6469229ba5359be06789b5c8c057
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for fjc-biographies 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page