Hiding the sensitive attribute from a model does not make it fair. Real feature sets are riddled with correlates, and a capable model simply reconstructs the removed signal from whatever proxies remain. AI fairness has to be measured on outcomes across groups, not inferred from inputs, and the four-fifths disparate-impact rule turns that measurement into a gate that can block deployment.
The naive fix, and why it fails
The intuitive way to make a model fair is to hide the sensitive attribute: do not feed it the protected characteristic, and it cannot discriminate on it. This is fairness through unawareness, and it does not work. Real feature sets are riddled with correlates of the protected attribute, such as postal code, device type, tenure, and browsing patterns, and a capable model will happily reconstruct the very signal you removed from whatever proxies remain.
Removing the column removes your ability to see the bias, not the bias itself. To catch it, you have to measure outcomes across groups rather than inspect inputs.
Measuring disparate impact
The four-fifths rule is the standard test. Compute the rate at which each group receives the favourable decision, take the ratio of the lowest group's rate to the highest group's rate, and require it to be at least four-fifths. A ratio below that is the long-standing threshold for adverse impact.
It is a blunt measure, but it is auditable and hard to argue with, which is exactly what you want in a gate. A number everyone can compute and check is worth more here than a subtler metric that invites dispute.
The demonstration
We ran the personalised-pricing eligibility model two ways on the same synthetic data. The fair configuration excludes the protected attribute and its audited proxies, and scores a disparate-impact ratio close to one, essentially even-handed across groups. Then we sneaked a single proxy back in, a postal-code feature that correlates with the protected group, and retrained.
The model re-learned the bias from that one proxy and its ratio collapsed to roughly a quarter, a flagrant failure. Nothing about the model's stated intent changed; one leaky feature was enough. That is the whole point about proxy leakage: intent is not the control variable, measured outcomes are.
The circuit-breaker, and auditing proxies
Because the test is automated and quantitative, it can gate deployment. The even-handed model passes and is allowed through; the biased one is halted, and critically it is halted even though it had already cleared the legal gate. Legal approval and statistical fairness are separate conditions, and the breaker enforces the second regardless of the first. A model does not get to ship a biased outcome on the strength of a sign-off that predated the bias.
The work, then, is identifying the proxies. We screen candidate features for association with the protected attribute, using correlation and mutual-information measures, and exclude the audited set rather than merely the labelled column. This costs a little raw accuracy, because a proxy is usually predictive precisely because it carries real signal, some of it legitimate. The trade is deliberate: we would rather hold a slightly less sharp model we can defend, audit, and deploy than a sharper one that fails a test regulators and customers will apply. The fairness metric has the same deploy-blocking status as a failing unit test, not a dashboard nobody reads.

