Proxy audit assembly Proxy audit: delete the column, keep the correlation SYNTHETIC demo n=2000 seed 14 - inputs zone + device - group column never read 1 - protected column: DELETED group A - group B (hidden) never an input to the model law says: do not use LOCKED dropping it changes nothing: the model never read it X 2 - proxies the model DOES read postcode zone P(high|A)=0.756 P(high|B)=0.245 device tier correlated with group (synthetic) each innocent alone - together a rebuild rebuilds 3 - opaque model decides score = 2*zone + device accept if score >= 2 accept A 0.756 - B 0.245 gap A-B = 0.511 no reason code - audit in/out only appeal needs a human + a record P(zone=high | A) 0.756 P(zone=high | B) 0.245 accept rate A / B 0.756 / 0.245 acceptance gap A-B 0.511 verdict: gap 0.511 with the column deleted - proxies rebuilt it SYNTHETIC mechanism demo - correlation is not intent - never social evidence rejected loans have no outcome label: equal-opportunity needs care, see follow-up