Every applicant has a true underlying quality q, drawn identically for both groups. The training data that shaped this model historically under-scored Group B applicants — that legacy skew shows up as a penalty subtracted only from Group B's score. Bias mitigation partially cancels that penalty before the gate applies its threshold:
penalty = skew × 0.4 (skew = historical data bias, 0–1)
score_A = q
score_B = q − penalty × (1 − mitigation) (mitigation = 0–1)
decision = APPROVE if score ≥ threshold, else DENY
demographic parity gap = | P(approve | A) − P(approve | B) |
- Decision threshold — the minimum adjusted score the gate accepts; raising it approves fewer applicants from both groups.
- Historical data bias — how large the legacy scoring penalty against Group B was baked into the training data.
- Bias mitigation strength — a post-processing correction (e.g. reweighing / equalized-odds adjustment) that cancels a fraction of that penalty; 100% removes it entirely.
- EU AI Act audit — when on, a parity gap above 10% is flagged high-risk per Art. 6 (high-risk AI systems used in employment/credit scoring must monitor and mitigate discriminatory outcomes); 5–10% is limited risk, below 5% is minimal risk.
Real-world relevance: this mirrors how fairness metrics like demographic parity and equalized odds are used to audit hiring, lending and welfare-eligibility models, and why regulations such as the EU AI Act require documented risk management and bias testing for high-risk AI systems before deployment.