Add explainers/algorithmic-recourse.md.
None of this repo's 61 explainers cover algorithmic recourse - a genuinely different question from every explainer already here about detecting or measuring bias. Counterfactual Explanation covers finding the nearest input that would flip a model's decision, but stops at "what would have changed the outcome." Recourse asks the practical follow-up: is that counterfactual actually actionable by the person it describes? A counterfactual that tells a rejected loan applicant "you'd have been approved if you were 15 years younger" or "if your income were $40k higher, tomorrow" identifies a flip but offers no real path forward - and a system that only ever offers infeasible recourse to one demographic group while offering achievable recourse to another is a fairness problem distinct from any parity metric already covered here.
Suggested structure (match counterfactual-explanation.md's structure, as the natural next-step explainer): one-sentence definition -> why it matters (a counterfactual is a description, recourse is a recommendation - the difference is whether the suggested change is actually within the person's control: income, employment status, and address are actionable on a real timescale; age, race, and past history are not) -> core concept (constrained counterfactual search: minimize distance to a flipped prediction subject to an actionability constraint - only allowed to move mutable features, and only in directions that make real-world sense, e.g. age can only increase) -> a concrete example - implement a simple actionable-recourse search (e.g. restrict counterfactual search in lime.md's or counterfactual-explanation.md's existing detection code to a fixed set of mutable features) against one of this repo's real audits, and compare recourse cost/feasibility between the disadvantaged and advantaged group - do they need to change the same amount to flip the decision? - with real code and real (not invented) results -> detection/implementation code -> limitations (actionability constraints are themselves a value judgment - who decides which features are "mutable," and how far someone can plausibly move them; recourse cost can vary by unmeasured factors like access to credit-repair services) -> related concepts (counterfactual-explanation, disparate-treatment, fairness-through-unawareness) and projects.
Related: counterfactual-explanation, disparate-treatment, fairness-through-unawareness.
Key citation to verify and use: Ustun, Spangher, Liu (2019), "Actionable Recourse in Linear Classification" (FAT*/FAccT) - confirm the exact venue/year/finding yourself before citing, don't trust this issue's paraphrase.
See CONTRIBUTING.md: add explainers/<slug>.md plus a one-line entry in assets/explainers-data.json; the build script generates the page. Per CLAUDE.md, the paper freeze is lifted - if you quote a Fair Code benchmark result, use the current numbers in results/ (or paper/results-frozen/ for the earlier reference snapshot) and say which one.
Add
explainers/algorithmic-recourse.md.None of this repo's 61 explainers cover algorithmic recourse - a genuinely different question from every explainer already here about detecting or measuring bias. Counterfactual Explanation covers finding the nearest input that would flip a model's decision, but stops at "what would have changed the outcome." Recourse asks the practical follow-up: is that counterfactual actually actionable by the person it describes? A counterfactual that tells a rejected loan applicant "you'd have been approved if you were 15 years younger" or "if your income were $40k higher, tomorrow" identifies a flip but offers no real path forward - and a system that only ever offers infeasible recourse to one demographic group while offering achievable recourse to another is a fairness problem distinct from any parity metric already covered here.
Suggested structure (match counterfactual-explanation.md's structure, as the natural next-step explainer): one-sentence definition -> why it matters (a counterfactual is a description, recourse is a recommendation - the difference is whether the suggested change is actually within the person's control: income, employment status, and address are actionable on a real timescale; age, race, and past history are not) -> core concept (constrained counterfactual search: minimize distance to a flipped prediction subject to an actionability constraint - only allowed to move mutable features, and only in directions that make real-world sense, e.g. age can only increase) -> a concrete example - implement a simple actionable-recourse search (e.g. restrict counterfactual search in
lime.md's orcounterfactual-explanation.md's existing detection code to a fixed set of mutable features) against one of this repo's real audits, and compare recourse cost/feasibility between the disadvantaged and advantaged group - do they need to change the same amount to flip the decision? - with real code and real (not invented) results -> detection/implementation code -> limitations (actionability constraints are themselves a value judgment - who decides which features are "mutable," and how far someone can plausibly move them; recourse cost can vary by unmeasured factors like access to credit-repair services) -> related concepts (counterfactual-explanation,disparate-treatment,fairness-through-unawareness) and projects.Related: counterfactual-explanation, disparate-treatment, fairness-through-unawareness.
Key citation to verify and use: Ustun, Spangher, Liu (2019), "Actionable Recourse in Linear Classification" (FAT*/FAccT) - confirm the exact venue/year/finding yourself before citing, don't trust this issue's paraphrase.
See CONTRIBUTING.md: add
explainers/<slug>.mdplus a one-line entry inassets/explainers-data.json; the build script generates the page. Per CLAUDE.md, the paper freeze is lifted - if you quote a Fair Code benchmark result, use the current numbers inresults/(orpaper/results-frozen/for the earlier reference snapshot) and say which one.