Add explainers/reject-inference.md.
Directly follows up the selection-bias explainer, which flags that the German Credit dataset contains zero rejected applicants. Explain the reject-inference problem (you only observe outcomes for applicants who were approved), why it silently biases lending/hiring models, and the common (imperfect) correction methods.
Suggested structure (match roc-curve-auc.md / false-positives-vs-false-negatives.md): one-sentence definition → why it matters for fairness → core concept → concrete example tied to a repo audit → runnable detection code → limitations → related concepts/projects/further reading. Use German Credit Lending/ as the worked example.
Related: selection-bias, sampling-bias, label-bias.
See CONTRIBUTING.md: add explainers/<slug>.md plus a one-line entry in assets/explainers-data.json; the build script generates the page.
Freeze-safe: explainers are fully open for contribution during the paper freeze. If you quote any Fair Code benchmark result, use the frozen numbers in paper/results-frozen/ (never re-run your own) — see CLAUDE.md.
Add
explainers/reject-inference.md.Directly follows up the selection-bias explainer, which flags that the German Credit dataset contains zero rejected applicants. Explain the reject-inference problem (you only observe outcomes for applicants who were approved), why it silently biases lending/hiring models, and the common (imperfect) correction methods.
Suggested structure (match roc-curve-auc.md / false-positives-vs-false-negatives.md): one-sentence definition → why it matters for fairness → core concept → concrete example tied to a repo audit → runnable detection code → limitations → related concepts/projects/further reading. Use
German Credit Lending/as the worked example.Related: selection-bias, sampling-bias, label-bias.
See CONTRIBUTING.md: add
explainers/<slug>.mdplus a one-line entry inassets/explainers-data.json; the build script generates the page.