Investigating classification error rates in the COMPAS recidivism risk algorithm across racialized identity groups. Broward County, FL (2013โ2015). N = 7,214 defendants.
Before a defendant's bail hearing, COMPAS assigns a risk score from 1 (lowest) to 10 (highest). Judges use this score โ along with other information โ to decide whether to release the defendant before trial or detain them in jail.
Defendants scoring at or above the threshold are classified as "medium/high risk" โ signaling to the judge that pretrial detention may be warranted. Defendants scoring below are classified as "low risk." The default threshold is 5.
The algorithm flags a defendant as higher risk, but that person is never charged with a new crime. The cost: a defendant who would not have been charged may sit in jail awaiting trial โ losing wages, housing, and custody โ based on a prediction that turned out to be wrong.
The algorithm does not flag a defendant โ classifying them as lower risk โ but that person is later charged with a new crime. The cost: a defendant who will be charged with a new offense is released into the community, a public safety risk the system failed to anticipate.
The central question: Are these errors distributed equally across racial groups โ or does one group bear a disproportionate share of one kind of mistake?
Adjust the risk score threshold. Defendants scoring at or above this value are classified as "medium/high risk" โ signaling to judges that pretrial detention may be warranted. Move the slider to see how the two kinds of errors shift for each racial group.
| Group | N | Flagged, Charged (TP) | Flagged, Not Charged (FP) | Not Flagged, Charged (FN) | Not Flagged, Not Charged (TN) | FPR | FNR | Accuracy |
|---|
FPR (False Positive Rate) = Among defendants who were not charged with a new crime, the share who were flagged as medium/high risk. These defendants were flagged but turned out not to be charged โ the algorithm's false alarm rate.
FNR (False Negative Rate) = Among defendants who were charged with a new crime, the share who were not flagged โ classified as low risk. These defendants were missed by the algorithm.
Note: "Charged" means a new criminal charge was filed within two years โ not a conviction, and not necessarily evidence that a crime was committed. Charging rates are influenced by policing and prosecutorial patterns that correlate with race.
What if different groups had different thresholds? This simulates an identity-conscious algorithm โ adjusting cutoffs by group to equalize error rates. Adjust independently to explore whether error rate parity is achievable, and at what cost to accuracy or to defendants in each group.
Equalizing FPR requires raising the threshold for Black defendants (reducing false positives) and/or lowering it for White defendants (increasing sensitivity). This tradeoff is the core of the fairness debate.
The ROC curve plots True Positive Rate (correctly flagging people who will be charged) against False Positive Rate (incorrectly flagging people who will not be charged) at every possible threshold. A curve that hugs the upper-left corner is a strong classifier โ it catches most of the true risks while generating few false alarms. A curve along the diagonal is no better than a coin flip. AUC (area under the curve) condenses this into one number: 0.5 = random guessing, 1.0 = perfect classification. Higher is better. Red โ marks show where each group falls at the default threshold of 5.
The AUC is nearly identical for Black (.692) and White (.693) defendants. The algorithm ranks defendants with comparable accuracy โ it is equally good at placing those who will be charged above those who will not in both groups. The disparate error rates arise from applying a single fixed threshold to populations with different base rates of being charged, not from differential ranking ability.
Chouldechova (2017) proved: when base rates differ across groups, no algorithm can simultaneously satisfy all three fairness properties. Select any two โ the third becomes mathematically impossible.
Calibration: P(charged | score=x, Black) โ P(charged | score=x, White) โ scores mean the same across groups. COMPAS satisfies this.
Equal FPR: Among defendants not charged, equal proportions flagged across groups. COMPAS violates this (44.9% Black vs. 23.5% White flagged among those not charged).
Equal FNR: Among defendants charged, equal proportions not flagged across groups. COMPAS violates this (28.0% Black vs. 47.7% White not flagged among those charged).