Each incoming case gets a legitimate risk signal from legal-NLP features (prior offenses,
instability) plus a proxy feature (a zip-code / policing-intensity index) that is
historically skewed between cohorts even when true reoffense risk is not. The model scores
every case with logistic regression:
p = σ(w₁x₁ + w₂x₂ + w₃x₃·k + b)
where σ is the sigmoid function and k is the bias-correction multiplier (1 = uncorrected,
≈0.08 = corrected). A case above the decision threshold is flagged "high risk". Comparing
that flag against each case's hidden ground truth gives the false-positive rate per group:
FPR = FP / (FP + TN), and the fairness gap is
Δ = |FPR_B − FPR_A| — an equalized-odds violation. This mirrors
ProPublica's 2016 analysis of the COMPAS recidivism tool, which found one cohort was flagged
as high-risk roughly twice as often despite similar overall accuracy. The scale tips toward
whichever group the model treats less fairly; correcting the proxy weight brings it level.
Group A case
Group B case
Low risk
High risk
Drag to orbit · Scroll to zoom · Case files flow left → right through the model