From 20f9338e7158af1df85f9b27b25766a56390034a Mon Sep 17 00:00:00 2001 From: minutechreview <141821420+minutechreview@users.noreply.github.com> Date: Sun, 25 Oct 2026 17:16:55 +0300 Subject: [PATCH] Add a skip link to every explainer page (#1170) Signed-off-by: minutechreview <141821420+minutechreview@users.noreply.github.com> --- assets/explainers.css | 28 +++++++++++++++++++ explainers/accuracy-equality.html | 3 +- .../accuracy-not-enough-healthcare-ai.html | 3 +- explainers/adversarial-debiasing.html | 3 +- explainers/adverse-action-notices.html | 3 +- explainers/aggregation-bias.html | 3 +- explainers/ai-hallucinations.html | 3 +- explainers/ai-objectivity-myth.html | 3 +- explainers/algorithmic-impact-assessment.html | 3 +- explainers/algorithmic-recourse.html | 3 +- explainers/auc-gaps-by-group.html | 3 +- explainers/automation-bias.html | 3 +- explainers/base-rate-fallacy.html | 3 +- explainers/bias-variance-tradeoff.html | 3 +- .../bootstrap-confidence-intervals.html | 3 +- explainers/calibration.html | 3 +- explainers/causal-graphs-for-fairness.html | 3 +- explainers/choosing-a-fairness-metric.html | 3 +- .../choosing-a-mitigation-strategy.html | 3 +- explainers/class-imbalance.html | 3 +- explainers/clinical-score-miscalibration.html | 3 +- explainers/compounding-disparities.html | 3 +- .../conditional-demographic-parity.html | 3 +- .../confidence-intervals-for-ratios.html | 3 +- explainers/confounding-variable.html | 3 +- explainers/confusion-matrix.html | 3 +- explainers/cost-sensitive-evaluation.html | 3 +- explainers/counterfactual-explanation.html | 3 +- explainers/counterfactual-fairness.html | 3 +- explainers/cross-validation-for-fairness.html | 3 +- explainers/data-leakage.html | 3 +- explainers/datasheets-for-datasets.html | 3 +- .../decision-curve-analysis-by-group.html | 3 +- explainers/delayed-feedback.html | 3 +- explainers/demographic-parity.html | 3 +- explainers/differential-privacy.html | 3 +- explainers/differential-validity.html | 3 +- explainers/disaggregated-evaluation.html | 3 +- ...scharge-leakage-in-readmission-models.html | 3 +- explainers/disparate-impact.html | 3 +- explainers/disparate-treatment.html | 3 +- explainers/distribution-shift.html | 3 +- .../distributionally-robust-optimization.html | 3 +- explainers/equal-opportunity.html | 3 +- explainers/equalized-odds.html | 3 +- explainers/explanation-disagreement.html | 3 +- explainers/fair-representation-learning.html | 3 +- .../fairness-accuracy-pareto-frontier.html | 3 +- explainers/fairness-accuracy-tradeoff.html | 3 +- explainers/fairness-in-ranking.html | 3 +- explainers/fairness-metric-conflicts.html | 3 +- explainers/fairness-regularization.html | 3 +- explainers/fairness-through-unawareness.html | 3 +- explainers/fairness-without-demographics.html | 3 +- .../false-positives-vs-false-negatives.html | 3 +- explainers/feature-importance-by-group.html | 3 +- explainers/feedback-loop-bias.html | 3 +- .../geographic-proxies-and-redlining.html | 3 +- explainers/group-specific-thresholds.html | 3 +- .../hiring-pipeline-adverse-impact.html | 3 +- explainers/how-ai-detects-patterns.html | 3 +- explainers/individual-fairness.html | 3 +- .../inferring-protected-attributes.html | 3 +- explainers/intersectional-bias.html | 3 +- explainers/label-bias.html | 3 +- explainers/label-shift-and-fairness.html | 3 +- .../leave-one-group-out-evaluation.html | 3 +- explainers/lime.html | 3 +- explainers/maxmin-fairness.html | 3 +- explainers/measurement-bias.html | 3 +- .../medical-imaging-representation-gaps.html | 3 +- explainers/minimum-detectable-gap.html | 3 +- explainers/missing-data-bias-ehr.html | 3 +- explainers/mitigation-strategies.html | 3 +- explainers/ml-bias.html | 3 +- explainers/model-cards.html | 3 +- explainers/model-drift.html | 3 +- .../monitoring-fairness-in-production.html | 3 +- explainers/multiple-comparisons.html | 3 +- explainers/neural-networks.html | 3 +- explainers/obermeyer-cost-proxy.html | 3 +- explainers/partial-dependence-by-group.html | 3 +- explainers/path-specific-effects.html | 3 +- .../permutation-test-fairness-gaps.html | 3 +- explainers/popularity-bias.html | 3 +- .../position-bias-and-click-models.html | 3 +- explainers/precision-recall-curve.html | 3 +- explainers/predictive-parity.html | 3 +- explainers/protected-attribute.html | 3 +- explainers/proxy-entanglement.html | 3 +- explainers/proxy-variables.html | 3 +- .../race-correction-clinical-algorithms.html | 3 +- explainers/race-in-clinical-models.html | 3 +- explainers/randomized-post-processing.html | 3 +- explainers/reinforcement-learning.html | 3 +- explainers/reject-inference.html | 3 +- explainers/reject-option-classification.html | 3 +- explainers/reweighing.html | 3 +- explainers/risk-based-pricing-gaps.html | 3 +- explainers/roc-curve-auc.html | 3 +- explainers/sampling-bias.html | 3 +- explainers/seed-and-split-sensitivity.html | 3 +- explainers/selection-bias.html | 3 +- explainers/shap-values.html | 3 +- explainers/simpsons-paradox.html | 3 +- explainers/small-group-shrinkage.html | 3 +- .../stratified-test-sets-for-fairness.html | 3 +- explainers/subgroup-fairness.html | 3 +- explainers/supervised-learning.html | 3 +- explainers/survivorship-bias.html | 3 +- explainers/treatment-equality.html | 3 +- explainers/two-sided-fairness.html | 3 +- explainers/underdiagnosis-bias.html | 3 +- explainers/unsupervised-learning.html | 3 +- explainers/utilization-as-a-label.html | 3 +- scripts/build_explainers.py | 3 +- tests/test_build_explainers.py | 15 ++++++++++ 117 files changed, 273 insertions(+), 115 deletions(-) diff --git a/assets/explainers.css b/assets/explainers.css index a0d6e900..573a7822 100644 --- a/assets/explainers.css +++ b/assets/explainers.css @@ -404,3 +404,31 @@ html[data-theme="dark"] .explainer-page { .explainer-grid { grid-template-columns: 1fr; } .explainer-card-link { padding: 22px 20px 18px; } } + +/* Skip link (#1170): hidden until focused, same as the one on index.html. */ +.skip-link { + position: absolute; + left: -999px; + top: auto; + width: 1px; + height: 1px; + overflow: hidden; + z-index: 9999; +} + +.skip-link:focus { + left: 1rem; + top: 1rem; + width: auto; + height: auto; + overflow: visible; + background: var(--bg); + color: var(--text); + padding: 8px 16px; + border-radius: 4px; + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); + font-size: 1rem; + text-decoration: none; +} + +.explainer-hero:focus { outline: none; } diff --git a/explainers/accuracy-equality.html b/explainers/accuracy-equality.html index af70d657..1e815a39 100644 --- a/explainers/accuracy-equality.html +++ b/explainers/accuracy-equality.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is Accuracy Equality?

Equal accuracy across groups can hide two completely different, offsetting error profiles.

diff --git a/explainers/accuracy-not-enough-healthcare-ai.html b/explainers/accuracy-not-enough-healthcare-ai.html index 80e4e1a5..d0eb712b 100644 --- a/explainers/accuracy-not-enough-healthcare-ai.html +++ b/explainers/accuracy-not-enough-healthcare-ai.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Why Accuracy Is Not Enough in Healthcare AI

A 95% accurate model can still miss the sickest patients in one group.

diff --git a/explainers/adversarial-debiasing.html b/explainers/adversarial-debiasing.html index 994a95bc..db808b02 100644 --- a/explainers/adversarial-debiasing.html +++ b/explainers/adversarial-debiasing.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Adversarial Debiasing

Train a predictor against a second model that tries to read the group from its output.

diff --git a/explainers/adverse-action-notices.html b/explainers/adverse-action-notices.html index 1fe1fc30..2f2ef200 100644 --- a/explainers/adverse-action-notices.html +++ b/explainers/adverse-action-notices.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Adverse Action Notices

The reasons a lender must give are the one place a model's inputs are forced into the open.

diff --git a/explainers/aggregation-bias.html b/explainers/aggregation-bias.html index 3a230c66..a59d6b9f 100644 --- a/explainers/aggregation-bias.html +++ b/explainers/aggregation-bias.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Aggregation Bias

One model for everyone assumes one relationship.

diff --git a/explainers/ai-hallucinations.html b/explainers/ai-hallucinations.html index 67483f7f..13b90157 100644 --- a/explainers/ai-hallucinations.html +++ b/explainers/ai-hallucinations.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

AI Hallucinations

Confident outputs that are still wrong.

diff --git a/explainers/ai-objectivity-myth.html b/explainers/ai-objectivity-myth.html index 32554a30..b96e18f7 100644 --- a/explainers/ai-objectivity-myth.html +++ b/explainers/ai-objectivity-myth.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

The Biggest Myth About AI Objectivity

"It's just math" is not a defense

diff --git a/explainers/algorithmic-impact-assessment.html b/explainers/algorithmic-impact-assessment.html index fb3c62df..25b43660 100644 --- a/explainers/algorithmic-impact-assessment.html +++ b/explainers/algorithmic-impact-assessment.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Algorithmic Impact Assessment

Who does the decision affect, and how do you know?

diff --git a/explainers/algorithmic-recourse.html b/explainers/algorithmic-recourse.html index e61bd3f6..0c20535e 100644 --- a/explainers/algorithmic-recourse.html +++ b/explainers/algorithmic-recourse.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Algorithmic Recourse

What you can actually change to flip a model's decision.

diff --git a/explainers/auc-gaps-by-group.html b/explainers/auc-gaps-by-group.html index 29dab8af..0c5de23f 100644 --- a/explainers/auc-gaps-by-group.html +++ b/explainers/auc-gaps-by-group.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is an AUC Gap Between Groups?

Equal ranking quality can hide unequal errors, and a threshold can hide a ranking gap.

diff --git a/explainers/automation-bias.html b/explainers/automation-bias.html index 6adb1a20..388a8356 100644 --- a/explainers/automation-bias.html +++ b/explainers/automation-bias.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is Automation Bias?

When humans defer to algorithms, bias gets automated too.

diff --git a/explainers/base-rate-fallacy.html b/explainers/base-rate-fallacy.html index e3384b5e..4c5e27af 100644 --- a/explainers/base-rate-fallacy.html +++ b/explainers/base-rate-fallacy.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is the Base Rate Fallacy?

Why ignoring background prevalence makes screening tools mostly wrong - and drives fairness metric conflicts.

diff --git a/explainers/bias-variance-tradeoff.html b/explainers/bias-variance-tradeoff.html index 51bf2596..60a943b1 100644 --- a/explainers/bias-variance-tradeoff.html +++ b/explainers/bias-variance-tradeoff.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is the Bias-Variance Trade-off?

Why an overfit model can memorize the majority and fail the minority.

diff --git a/explainers/bootstrap-confidence-intervals.html b/explainers/bootstrap-confidence-intervals.html index f1456cc3..e0e5dae5 100644 --- a/explainers/bootstrap-confidence-intervals.html +++ b/explainers/bootstrap-confidence-intervals.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Bootstrap Confidence Intervals and Permutation Tests

A fairness gap without an interval attached is a number, not a finding.

diff --git a/explainers/calibration.html b/explainers/calibration.html index 12551b33..b9bb1b09 100644 --- a/explainers/calibration.html +++ b/explainers/calibration.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Calibration

When a model score actually means what it says.

diff --git a/explainers/causal-graphs-for-fairness.html b/explainers/causal-graphs-for-fairness.html index cbee5ba4..e7e73b42 100644 --- a/explainers/causal-graphs-for-fairness.html +++ b/explainers/causal-graphs-for-fairness.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Causal Graphs for Fairness

Two analysts, same data, opposite verdicts: the difference is a drawing.

diff --git a/explainers/choosing-a-fairness-metric.html b/explainers/choosing-a-fairness-metric.html index 74501a04..6a4bab92 100644 --- a/explainers/choosing-a-fairness-metric.html +++ b/explainers/choosing-a-fairness-metric.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Choosing a Fairness Metric

Start from the harm, not from the formula.

diff --git a/explainers/choosing-a-mitigation-strategy.html b/explainers/choosing-a-mitigation-strategy.html index 15777e92..c252af9f 100644 --- a/explainers/choosing-a-mitigation-strategy.html +++ b/explainers/choosing-a-mitigation-strategy.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Choosing a Mitigation Strategy

What each of the five strategies needs, costs and leaves.

diff --git a/explainers/class-imbalance.html b/explainers/class-imbalance.html index 75705772..e7aef603 100644 --- a/explainers/class-imbalance.html +++ b/explainers/class-imbalance.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is Class Imbalance?

When a 99% accuracy score just means the model ignored the 1% that mattered.

diff --git a/explainers/clinical-score-miscalibration.html b/explainers/clinical-score-miscalibration.html index 1c6a4e25..67364b1e 100644 --- a/explainers/clinical-score-miscalibration.html +++ b/explainers/clinical-score-miscalibration.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Miscalibration in Clinical Risk Scores Across Groups

The same risk score can mean a different real-world risk depending on the patient's group.

diff --git a/explainers/compounding-disparities.html b/explainers/compounding-disparities.html index b7e1a8c7..7e2752da 100644 --- a/explainers/compounding-disparities.html +++ b/explainers/compounding-disparities.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Compounding Disparities

Four stages at 0.9 are 0.66 end to end.

diff --git a/explainers/conditional-demographic-parity.html b/explainers/conditional-demographic-parity.html index 6ed38ef3..70c64db7 100644 --- a/explainers/conditional-demographic-parity.html +++ b/explainers/conditional-demographic-parity.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is Conditional Demographic Parity?

Checking parity within strata of a chosen legitimate factor, not across the whole population.

diff --git a/explainers/confidence-intervals-for-ratios.html b/explainers/confidence-intervals-for-ratios.html index 610b0520..6b2a59bf 100644 --- a/explainers/confidence-intervals-for-ratios.html +++ b/explainers/confidence-intervals-for-ratios.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Confidence Intervals for Ratios

A ratio of two noisy rates is skewed, and with a near-zero denominator it cannot be estimated.

diff --git a/explainers/confounding-variable.html b/explainers/confounding-variable.html index 645faf21..e268caf8 100644 --- a/explainers/confounding-variable.html +++ b/explainers/confounding-variable.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Confounding Variable

When a hidden cause makes two things look connected.

diff --git a/explainers/confusion-matrix.html b/explainers/confusion-matrix.html index 0ef6af39..4831904f 100644 --- a/explainers/confusion-matrix.html +++ b/explainers/confusion-matrix.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is a Confusion Matrix?

The foundational building block behind most fairness metrics.

diff --git a/explainers/cost-sensitive-evaluation.html b/explainers/cost-sensitive-evaluation.html index e257acfb..9cf36827 100644 --- a/explainers/cost-sensitive-evaluation.html +++ b/explainers/cost-sensitive-evaluation.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

How Does Unequal Cost Change a Fairness Evaluation?

A false positive and a false negative rarely cost the same, and can cost differently by group.

diff --git a/explainers/counterfactual-explanation.html b/explainers/counterfactual-explanation.html index d3efa7db..d6b645f7 100644 --- a/explainers/counterfactual-explanation.html +++ b/explainers/counterfactual-explanation.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is a Counterfactual Explanation?

One asks what changed the outcome. The other asks whether the outcome should have changed at all.

diff --git a/explainers/counterfactual-fairness.html b/explainers/counterfactual-fairness.html index edd2742b..0ab636f8 100644 --- a/explainers/counterfactual-fairness.html +++ b/explainers/counterfactual-fairness.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Counterfactual Fairness

Would the outcome change if identity changed?

diff --git a/explainers/cross-validation-for-fairness.html b/explainers/cross-validation-for-fairness.html index ea296081..d56b3768 100644 --- a/explainers/cross-validation-for-fairness.html +++ b/explainers/cross-validation-for-fairness.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Cross-Validation for Fairness

Test every row once, and protect the small cells.

diff --git a/explainers/data-leakage.html b/explainers/data-leakage.html index e318a029..3e5fa3f9 100644 --- a/explainers/data-leakage.html +++ b/explainers/data-leakage.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is Data Leakage?

When the model has already seen the answer sheet.

diff --git a/explainers/datasheets-for-datasets.html b/explainers/datasheets-for-datasets.html index 58d7effc..2ac9c1b9 100644 --- a/explainers/datasheets-for-datasets.html +++ b/explainers/datasheets-for-datasets.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Datasheets for Datasets

Ask the questions about a dataset that nobody wrote down.

diff --git a/explainers/decision-curve-analysis-by-group.html b/explainers/decision-curve-analysis-by-group.html index 6509d03a..79f9ee1c 100644 --- a/explainers/decision-curve-analysis-by-group.html +++ b/explainers/decision-curve-analysis-by-group.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is Decision Curve Analysis by Group?

The thresholds at which a model helps one group can be the ones where it fails another.

diff --git a/explainers/delayed-feedback.html b/explainers/delayed-feedback.html index 252d99cc..089b2d34 100644 --- a/explainers/delayed-feedback.html +++ b/explainers/delayed-feedback.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Delayed Feedback

Outcomes that have not happened yet look like outcomes that did not happen.

diff --git a/explainers/demographic-parity.html b/explainers/demographic-parity.html index 2a491083..1dcb7712 100644 --- a/explainers/demographic-parity.html +++ b/explainers/demographic-parity.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Demographic Parity

Equal positive rates across groups.

diff --git a/explainers/differential-privacy.html b/explainers/differential-privacy.html index 1d9c118e..1b2885c2 100644 --- a/explainers/differential-privacy.html +++ b/explainers/differential-privacy.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Differential Privacy and Its Tension With Fairness

The accuracy cost of a privacy guarantee falls hardest on underrepresented groups.

diff --git a/explainers/differential-validity.html b/explainers/differential-validity.html index 65b08163..1bce2e8f 100644 --- a/explainers/differential-validity.html +++ b/explainers/differential-validity.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Differential Validity

A score can predict equally well and still be set too high for one group.

diff --git a/explainers/disaggregated-evaluation.html b/explainers/disaggregated-evaluation.html index 176790b5..219a9667 100644 --- a/explainers/disaggregated-evaluation.html +++ b/explainers/disaggregated-evaluation.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Disaggregated Evaluation

One overall number hides who the model fails.

diff --git a/explainers/discharge-leakage-in-readmission-models.html b/explainers/discharge-leakage-in-readmission-models.html index 74e7500d..e6ed9655 100644 --- a/explainers/discharge-leakage-in-readmission-models.html +++ b/explainers/discharge-leakage-in-readmission-models.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Discharge Leakage in Readmission Models

Some columns are only known once the outcome is nearly decided.

diff --git a/explainers/disparate-impact.html b/explainers/disparate-impact.html index 2d00f199..abdaeafa 100644 --- a/explainers/disparate-impact.html +++ b/explainers/disparate-impact.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Disparate Impact

When outcomes differ even without explicit intent.

diff --git a/explainers/disparate-treatment.html b/explainers/disparate-treatment.html index ce8884e7..80c9301a 100644 --- a/explainers/disparate-treatment.html +++ b/explainers/disparate-treatment.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Disparate Treatment

Direct discrimination instead of proxy discrimination.

diff --git a/explainers/distribution-shift.html b/explainers/distribution-shift.html index 6394ee5c..d966e622 100644 --- a/explainers/distribution-shift.html +++ b/explainers/distribution-shift.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Distribution Shift

A fairness audit is only valid for the data it was run on

diff --git a/explainers/distributionally-robust-optimization.html b/explainers/distributionally-robust-optimization.html index 83d3fb94..14f5c17b 100644 --- a/explainers/distributionally-robust-optimization.html +++ b/explainers/distributionally-robust-optimization.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Distributionally Robust Optimization for Fairness

Hedge against the worst group instead of constraining one metric.

diff --git a/explainers/equal-opportunity.html b/explainers/equal-opportunity.html index 798925f5..6009da68 100644 --- a/explainers/equal-opportunity.html +++ b/explainers/equal-opportunity.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Equal Opportunity vs Equalized Odds

Passing the true-positive-rate check doesn't mean passing the false-positive-rate one.

diff --git a/explainers/equalized-odds.html b/explainers/equalized-odds.html index 5f0a1974..3687d7f9 100644 --- a/explainers/equalized-odds.html +++ b/explainers/equalized-odds.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Equalized Odds

A fairness metric that checks error rates, not just accuracy.

diff --git a/explainers/explanation-disagreement.html b/explainers/explanation-disagreement.html index a39e68f5..ab6b5ff4 100644 --- a/explainers/explanation-disagreement.html +++ b/explainers/explanation-disagreement.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Explanation Disagreement

Two explanation methods, one model, different top features.

diff --git a/explainers/fair-representation-learning.html b/explainers/fair-representation-learning.html index 51a0681e..5cf655fb 100644 --- a/explainers/fair-representation-learning.html +++ b/explainers/fair-representation-learning.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Fair Representation Learning

A representation that hides the group from one reader can still leak to another.

diff --git a/explainers/fairness-accuracy-pareto-frontier.html b/explainers/fairness-accuracy-pareto-frontier.html index a977559a..19db8b6f 100644 --- a/explainers/fairness-accuracy-pareto-frontier.html +++ b/explainers/fairness-accuracy-pareto-frontier.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Fairness-Accuracy Pareto Frontier

The set of choices nothing else beats, and it can be short.

diff --git a/explainers/fairness-accuracy-tradeoff.html b/explainers/fairness-accuracy-tradeoff.html index fa84f3ca..879f1ab9 100644 --- a/explainers/fairness-accuracy-tradeoff.html +++ b/explainers/fairness-accuracy-tradeoff.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is the Fairness-Accuracy Trade-off?

Closing a fairness gap is rarely free, and the cost isn't always the same size.

diff --git a/explainers/fairness-in-ranking.html b/explainers/fairness-in-ranking.html index 8c554c21..3039c58e 100644 --- a/explainers/fairness-in-ranking.html +++ b/explainers/fairness-in-ranking.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Fairness in Ranking

Two similar scores can still mean very different attention.

diff --git a/explainers/fairness-metric-conflicts.html b/explainers/fairness-metric-conflicts.html index 130e76bb..34430887 100644 --- a/explainers/fairness-metric-conflicts.html +++ b/explainers/fairness-metric-conflicts.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Fairness Metric Conflicts

Why one fairness definition often breaks another.

diff --git a/explainers/fairness-regularization.html b/explainers/fairness-regularization.html index 1d49c15d..f3127329 100644 --- a/explainers/fairness-regularization.html +++ b/explainers/fairness-regularization.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Fairness Regularization

Put a price on the parity gap and read the trade-off off a curve.

diff --git a/explainers/fairness-through-unawareness.html b/explainers/fairness-through-unawareness.html index c6b0f61d..b16ae02e 100644 --- a/explainers/fairness-through-unawareness.html +++ b/explainers/fairness-through-unawareness.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Why Fairness Through Unawareness Fails

Removing the protected attribute doesn't remove what correlates with it.

diff --git a/explainers/fairness-without-demographics.html b/explainers/fairness-without-demographics.html index a9cd89bb..6c7acede 100644 --- a/explainers/fairness-without-demographics.html +++ b/explainers/fairness-without-demographics.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Fairness Without Demographics

Help the worst-off group when you do not know who they are.

diff --git a/explainers/false-positives-vs-false-negatives.html b/explainers/false-positives-vs-false-negatives.html index cbb5d241..03c6b636 100644 --- a/explainers/false-positives-vs-false-negatives.html +++ b/explainers/false-positives-vs-false-negatives.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

False Positives vs. False Negatives in Medical AI

When a missed high-risk flag costs more than a false alarm

diff --git a/explainers/feature-importance-by-group.html b/explainers/feature-importance-by-group.html index 64d40df2..55f65cfb 100644 --- a/explainers/feature-importance-by-group.html +++ b/explainers/feature-importance-by-group.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Feature Importance by Group

Does the model lean on different features for different people?

diff --git a/explainers/feedback-loop-bias.html b/explainers/feedback-loop-bias.html index c42c4257..4cb33ed3 100644 --- a/explainers/feedback-loop-bias.html +++ b/explainers/feedback-loop-bias.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Feedback Loop Bias

Bias that gets stronger after deployment.

diff --git a/explainers/geographic-proxies-and-redlining.html b/explainers/geographic-proxies-and-redlining.html index e0e9e3f0..e1eb4412 100644 --- a/explainers/geographic-proxies-and-redlining.html +++ b/explainers/geographic-proxies-and-redlining.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Geographic Proxies and Redlining

Where a person lives is the oldest proxy for who they are.

diff --git a/explainers/group-specific-thresholds.html b/explainers/group-specific-thresholds.html index 4b81b494..7a85f861 100644 --- a/explainers/group-specific-thresholds.html +++ b/explainers/group-specific-thresholds.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Group-Specific Thresholds

Keep the model, move the cutoff.

diff --git a/explainers/hiring-pipeline-adverse-impact.html b/explainers/hiring-pipeline-adverse-impact.html index 7292c424..ddf69e75 100644 --- a/explainers/hiring-pipeline-adverse-impact.html +++ b/explainers/hiring-pipeline-adverse-impact.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Hiring Pipeline Adverse Impact

Adverse impact at each stage, not only the last decision.

diff --git a/explainers/how-ai-detects-patterns.html b/explainers/how-ai-detects-patterns.html index 4f856ab5..e5d5c39a 100644 --- a/explainers/how-ai-detects-patterns.html +++ b/explainers/how-ai-detects-patterns.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

How AI Detects Patterns

A model can't tell a cause from a proxy

diff --git a/explainers/individual-fairness.html b/explainers/individual-fairness.html index d4013125..3eca3e06 100644 --- a/explainers/individual-fairness.html +++ b/explainers/individual-fairness.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Individual Fairness

Similar people should get similar outcomes.

diff --git a/explainers/inferring-protected-attributes.html b/explainers/inferring-protected-attributes.html index 036f803f..4d521ce5 100644 --- a/explainers/inferring-protected-attributes.html +++ b/explainers/inferring-protected-attributes.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Inferring Protected Attributes

Measuring a gap when the group is not in the data.

diff --git a/explainers/intersectional-bias.html b/explainers/intersectional-bias.html index b5989728..18e8a2e7 100644 --- a/explainers/intersectional-bias.html +++ b/explainers/intersectional-bias.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is Intersectional Bias?

Checking one protected attribute at a time can hide harm concentrated at the intersection.

diff --git a/explainers/label-bias.html b/explainers/label-bias.html index 78b7d34d..8bd65f19 100644 --- a/explainers/label-bias.html +++ b/explainers/label-bias.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Label Bias

When the target itself is already skewed.

diff --git a/explainers/label-shift-and-fairness.html b/explainers/label-shift-and-fairness.html index c77ad3cb..233313f7 100644 --- a/explainers/label-shift-and-fairness.html +++ b/explainers/label-shift-and-fairness.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Label Shift and Fairness

When the base rate moves, some metrics swing and some stay put.

diff --git a/explainers/leave-one-group-out-evaluation.html b/explainers/leave-one-group-out-evaluation.html index f861a851..3306da16 100644 --- a/explainers/leave-one-group-out-evaluation.html +++ b/explainers/leave-one-group-out-evaluation.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Leave-One-Group-Out Evaluation

How does the model do on a group it never saw?

diff --git a/explainers/lime.html b/explainers/lime.html index 8c8274a6..1624def1 100644 --- a/explainers/lime.html +++ b/explainers/lime.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is LIME?

A local, approximate surrogate model - the other major way to explain one prediction.

diff --git a/explainers/maxmin-fairness.html b/explainers/maxmin-fairness.html index d40f2092..56763fc4 100644 --- a/explainers/maxmin-fairness.html +++ b/explainers/maxmin-fairness.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Max-Min (Rawlsian) Fairness

Make the worst-off group as well off as possible, even if groups end up unequal.

diff --git a/explainers/measurement-bias.html b/explainers/measurement-bias.html index 5248480d..a94ec899 100644 --- a/explainers/measurement-bias.html +++ b/explainers/measurement-bias.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Measurement Bias

When the feature or label measures one group worse than another.

diff --git a/explainers/medical-imaging-representation-gaps.html b/explainers/medical-imaging-representation-gaps.html index 5a1abb0f..3a74741f 100644 --- a/explainers/medical-imaging-representation-gaps.html +++ b/explainers/medical-imaging-representation-gaps.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Why Medical Imaging Models Fail Some Groups

A model trained mostly on one group's images has barely seen the others.

diff --git a/explainers/minimum-detectable-gap.html b/explainers/minimum-detectable-gap.html index acdaa6a4..6d95a6b5 100644 --- a/explainers/minimum-detectable-gap.html +++ b/explainers/minimum-detectable-gap.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Minimum Detectable Gap

A non-significant gap can be a gap the audit could never see.

diff --git a/explainers/missing-data-bias-ehr.html b/explainers/missing-data-bias-ehr.html index 464fbc6f..db1aad1b 100644 --- a/explainers/missing-data-bias-ehr.html +++ b/explainers/missing-data-bias-ehr.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Missing Data as Bias in Electronic Health Records

A patient with fewer recorded labs and visits is less-observed, not lower-risk.

diff --git a/explainers/mitigation-strategies.html b/explainers/mitigation-strategies.html index 2d2f95f1..1810e86f 100644 --- a/explainers/mitigation-strategies.html +++ b/explainers/mitigation-strategies.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Pre-, In-, and Post-Processing Fairness Mitigations

Where in the pipeline you intervene changes what a fairness fix can and can't do.

diff --git a/explainers/ml-bias.html b/explainers/ml-bias.html index 58ab1375..98a62e7d 100644 --- a/explainers/ml-bias.html +++ b/explainers/ml-bias.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is Machine Learning Bias?

Four entry points. One pipeline. Measurable everywhere.

diff --git a/explainers/model-cards.html b/explainers/model-cards.html index 56715cd1..08fceacc 100644 --- a/explainers/model-cards.html +++ b/explainers/model-cards.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Model Cards

A short, standard disclosure of what a model is for and who it fails.

diff --git a/explainers/model-drift.html b/explainers/model-drift.html index 69989619..dde3995d 100644 --- a/explainers/model-drift.html +++ b/explainers/model-drift.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is Model Drift?

A fairness audit is a photograph of a moving room

diff --git a/explainers/monitoring-fairness-in-production.html b/explainers/monitoring-fairness-in-production.html index cdebb538..6686999f 100644 --- a/explainers/monitoring-fairness-in-production.html +++ b/explainers/monitoring-fairness-in-production.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Monitoring Fairness in Production

An audit is a photograph. Monitoring is the film.

diff --git a/explainers/multiple-comparisons.html b/explainers/multiple-comparisons.html index 7428644f..bb7c1601 100644 --- a/explainers/multiple-comparisons.html +++ b/explainers/multiple-comparisons.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Multiple-Comparisons Correction for Fairness Audits

Run enough p-values at 0.05 and some will read "significant" by chance alone.

diff --git a/explainers/neural-networks.html b/explainers/neural-networks.html index a2764190..325d8876 100644 --- a/explainers/neural-networks.html +++ b/explainers/neural-networks.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Neural Networks

How complex models can hide simple bias.

diff --git a/explainers/obermeyer-cost-proxy.html b/explainers/obermeyer-cost-proxy.html index 687b48c7..e698ec4d 100644 --- a/explainers/obermeyer-cost-proxy.html +++ b/explainers/obermeyer-cost-proxy.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

The Obermeyer Case: Cost as a Proxy for Health Need

How predicting healthcare spending instead of illness systematically under-refers sicker Black patients.

diff --git a/explainers/partial-dependence-by-group.html b/explainers/partial-dependence-by-group.html index ad0e1f6e..576f80bf 100644 --- a/explainers/partial-dependence-by-group.html +++ b/explainers/partial-dependence-by-group.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Partial Dependence by Group

What the model does with a feature, drawn once per group.

diff --git a/explainers/path-specific-effects.html b/explainers/path-specific-effects.html index b18ea831..9da6b135 100644 --- a/explainers/path-specific-effects.html +++ b/explainers/path-specific-effects.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Path-Specific Effects

Split a gap into the paths you accept and the ones you do not.

diff --git a/explainers/permutation-test-fairness-gaps.html b/explainers/permutation-test-fairness-gaps.html index de1b373f..560049e2 100644 --- a/explainers/permutation-test-fairness-gaps.html +++ b/explainers/permutation-test-fairness-gaps.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Permutation Tests for Fairness Gaps

Is the gap a finding or a coincidence?

diff --git a/explainers/popularity-bias.html b/explainers/popularity-bias.html index 18fedef8..4f1edc29 100644 --- a/explainers/popularity-bias.html +++ b/explainers/popularity-bias.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is Popularity Bias?

Items that were shown get the clicks that keep them shown; the rest never get a chance.

diff --git a/explainers/position-bias-and-click-models.html b/explainers/position-bias-and-click-models.html index 6bc84fe8..2bb5328b 100644 --- a/explainers/position-bias-and-click-models.html +++ b/explainers/position-bias-and-click-models.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

How Does Position Bias Distort What a Ranking Learns?

Clicks near the top say where an item was, not how good it was.

diff --git a/explainers/precision-recall-curve.html b/explainers/precision-recall-curve.html index 2209a834..3ebea2e4 100644 --- a/explainers/precision-recall-curve.html +++ b/explainers/precision-recall-curve.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is a Precision-Recall Curve?

Why ROC/AUC looks fine while precision collapses under class imbalance.

diff --git a/explainers/predictive-parity.html b/explainers/predictive-parity.html index 9410362d..c5fac141 100644 --- a/explainers/predictive-parity.html +++ b/explainers/predictive-parity.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Predictive Parity

Equally trustworthy is not the same as equally fair

diff --git a/explainers/protected-attribute.html b/explainers/protected-attribute.html index d9c4bf19..a9402cb0 100644 --- a/explainers/protected-attribute.html +++ b/explainers/protected-attribute.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is a Protected Attribute?

Why removing race from a dataset does not remove the bias.

diff --git a/explainers/proxy-entanglement.html b/explainers/proxy-entanglement.html index 1def0653..37882c6d 100644 --- a/explainers/proxy-entanglement.html +++ b/explainers/proxy-entanglement.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Proxy Entanglement

When proxies form clusters instead of single features.

diff --git a/explainers/proxy-variables.html b/explainers/proxy-variables.html index 6e1b69fd..3c207512 100644 --- a/explainers/proxy-variables.html +++ b/explainers/proxy-variables.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Proxy Variables

Why removing race alone does not remove bias.

diff --git a/explainers/race-correction-clinical-algorithms.html b/explainers/race-correction-clinical-algorithms.html index 031a8313..13fce4de 100644 --- a/explainers/race-correction-clinical-algorithms.html +++ b/explainers/race-correction-clinical-algorithms.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Race Correction in Clinical Algorithms

Why race-adjusted clinical formulas bake bias directly into the math.

diff --git a/explainers/race-in-clinical-models.html b/explainers/race-in-clinical-models.html index 9dc45e40..673b1b53 100644 --- a/explainers/race-in-clinical-models.html +++ b/explainers/race-in-clinical-models.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Race in Clinical Models

Whether a model should see race is a values question with a small statistical effect.

diff --git a/explainers/randomized-post-processing.html b/explainers/randomized-post-processing.html index 0738ecc0..7cae2b99 100644 --- a/explainers/randomized-post-processing.html +++ b/explainers/randomized-post-processing.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Randomized Post-Processing

Mix two decisions with a weighted coin to reach equalized odds exactly.

diff --git a/explainers/reinforcement-learning.html b/explainers/reinforcement-learning.html index 4fe47aac..0ff8b5c6 100644 --- a/explainers/reinforcement-learning.html +++ b/explainers/reinforcement-learning.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Reinforcement Learning

When reward signals shape real-world policy.

diff --git a/explainers/reject-inference.html b/explainers/reject-inference.html index a612bbeb..7a6a25ed 100644 --- a/explainers/reject-inference.html +++ b/explainers/reject-inference.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is Reject Inference?

Why models trained only on approved applicants miss the risk of everyone else.

diff --git a/explainers/reject-option-classification.html b/explainers/reject-option-classification.html index 0aa1ba7d..5630b6ca 100644 --- a/explainers/reject-option-classification.html +++ b/explainers/reject-option-classification.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is Reject Option Classification?

Flip the model's least-confident predictions toward the group history treated worst.

diff --git a/explainers/reweighing.html b/explainers/reweighing.html index 7744c938..0ffaba51 100644 --- a/explainers/reweighing.html +++ b/explainers/reweighing.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Reweighing

Fix the training data's group-label link before fitting.

diff --git a/explainers/risk-based-pricing-gaps.html b/explainers/risk-based-pricing-gaps.html index 410099e4..06a71b78 100644 --- a/explainers/risk-based-pricing-gaps.html +++ b/explainers/risk-based-pricing-gaps.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Risk-Based Pricing Gaps

A model can approve everyone and still treat groups differently.

diff --git a/explainers/roc-curve-auc.html b/explainers/roc-curve-auc.html index f749937a..955a41cf 100644 --- a/explainers/roc-curve-auc.html +++ b/explainers/roc-curve-auc.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is a ROC Curve and AUC?

Why one threshold-free score can look great and still be unfair.

diff --git a/explainers/sampling-bias.html b/explainers/sampling-bias.html index 9ceee549..c1af6d9a 100644 --- a/explainers/sampling-bias.html +++ b/explainers/sampling-bias.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Sampling Bias

When your dataset does not reflect the world it claims to describe.

diff --git a/explainers/seed-and-split-sensitivity.html b/explainers/seed-and-split-sensitivity.html index f7e6ef33..765d9867 100644 --- a/explainers/seed-and-split-sensitivity.html +++ b/explainers/seed-and-split-sensitivity.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Seed and Split Sensitivity

Every fairness number here comes from one split. How much of it is the seed?

diff --git a/explainers/selection-bias.html b/explainers/selection-bias.html index c12bb103..86af82cd 100644 --- a/explainers/selection-bias.html +++ b/explainers/selection-bias.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is Selection Bias?

A dataset does not remember the people who were turned away before it was collected.

diff --git a/explainers/shap-values.html b/explainers/shap-values.html index 8b0d6896..0200b788 100644 --- a/explainers/shap-values.html +++ b/explainers/shap-values.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

SHAP Values

Explain model decisions feature by feature.

diff --git a/explainers/simpsons-paradox.html b/explainers/simpsons-paradox.html index 6e4512b5..4173fdda 100644 --- a/explainers/simpsons-paradox.html +++ b/explainers/simpsons-paradox.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is Simpson's Paradox in Fairness Audits?

A gap that shows up in the aggregate can shrink, vanish, or reverse once you disaggregate.

diff --git a/explainers/small-group-shrinkage.html b/explainers/small-group-shrinkage.html index 8e481a5e..ec2b727d 100644 --- a/explainers/small-group-shrinkage.html +++ b/explainers/small-group-shrinkage.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Small-Group Shrinkage

Estimate a rate for a group too small to measure, and know what it hides.

diff --git a/explainers/stratified-test-sets-for-fairness.html b/explainers/stratified-test-sets-for-fairness.html index 2c53376e..65d995c4 100644 --- a/explainers/stratified-test-sets-for-fairness.html +++ b/explainers/stratified-test-sets-for-fairness.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Stratified Test Sets for Fairness

Build an evaluation set that can measure the small group.

diff --git a/explainers/subgroup-fairness.html b/explainers/subgroup-fairness.html index 830243fe..2195f177 100644 --- a/explainers/subgroup-fairness.html +++ b/explainers/subgroup-fairness.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Subgroup Fairness and Fairness Gerrymandering

Passing a fairness check on every attribute separately is not the same as passing it on every combination.

diff --git a/explainers/supervised-learning.html b/explainers/supervised-learning.html index b9e9f24f..defc5fb9 100644 --- a/explainers/supervised-learning.html +++ b/explainers/supervised-learning.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is Supervised Learning?

Teaching a model to reproduce exactly what it was shown

diff --git a/explainers/survivorship-bias.html b/explainers/survivorship-bias.html index 96fe0a64..d94b2f40 100644 --- a/explainers/survivorship-bias.html +++ b/explainers/survivorship-bias.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Survivorship Bias

You only see the people who passed an earlier filter.

diff --git a/explainers/treatment-equality.html b/explainers/treatment-equality.html index 8335ce51..7e3497cb 100644 --- a/explainers/treatment-equality.html +++ b/explainers/treatment-equality.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is Treatment Equality?

Equal error rates across groups can still hide opposite-skewed error types within each group.

diff --git a/explainers/two-sided-fairness.html b/explainers/two-sided-fairness.html index c52e6d7b..018e0783 100644 --- a/explainers/two-sided-fairness.html +++ b/explainers/two-sided-fairness.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is Two-Sided Fairness in a Marketplace?

Fair to the people ranked and good for the people searching: when the two conflict.

diff --git a/explainers/underdiagnosis-bias.html b/explainers/underdiagnosis-bias.html index 303a5668..7dd8d38d 100644 --- a/explainers/underdiagnosis-bias.html +++ b/explainers/underdiagnosis-bias.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Underdiagnosis Bias in Healthcare AI

When the label itself is sicker for one group.

diff --git a/explainers/unsupervised-learning.html b/explainers/unsupervised-learning.html index 8e4c7006..5b589257 100644 --- a/explainers/unsupervised-learning.html +++ b/explainers/unsupervised-learning.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

What Is Unsupervised Learning?

It found the split on its own, because the split was already in the data

diff --git a/explainers/utilization-as-a-label.html b/explainers/utilization-as-a-label.html index 99ea4297..e517a7f0 100644 --- a/explainers/utilization-as-a-label.html +++ b/explainers/utilization-as-a-label.html @@ -173,6 +173,7 @@ +
← Back to explainers @@ -182,7 +183,7 @@
-
+
Explainer

Utilization as a Label

A label that records who came back records who could come back.

diff --git a/scripts/build_explainers.py b/scripts/build_explainers.py index 4ae7106c..d64f43e8 100644 --- a/scripts/build_explainers.py +++ b/scripts/build_explainers.py @@ -425,6 +425,7 @@ def flush_code(): +
← Back to explainers @@ -434,7 +435,7 @@ def flush_code():
-
+
Explainer

{title}

{subtitle}

diff --git a/tests/test_build_explainers.py b/tests/test_build_explainers.py index afdedeec..971c1978 100644 --- a/tests/test_build_explainers.py +++ b/tests/test_build_explainers.py @@ -281,6 +281,21 @@ def test_the_markdown_becomes_html_and_internal_links_resolve(site): assert "', 1)[1] + first_focusable = re.search(r"<(a|button)\b[^>]*>", body).group(0) + assert first_focusable == '