Same earbuds, matched shopping signals. One group sees $74.06, the other $93.47. The engine never sees race or income.
It sees ZIP code and device.
We built the engine and its 10,000 shoppers, synthetic and seeded, so we knew the gap was there to find. The lower price went to shoppers in high-income ZIPs on new phones. The price 26% above it went to shoppers in majority-minority ZIPs on old phones. Averages over roughly 3,000 decisions each.
Held against the EEOC four-fifths rule, the engine as shipped scores 0.43. The line is 0.80.
The usual defence, drop ZIP and device, only lifts it to 0.59. Two signals that look clean on their own (how the shopper arrived, how long they lingered) still give the cohort away together. 🔍
If you run dynamic pricing, split last quarter's decisions by ZIP income and phone age and compare what each group paid for the same SKU. That gap is the easy find; the paired signals are what you need an audit for. Send this to whoever owns that model.
#DynamicPricing #AlgorithmicFairness #AICompliance #AIGovernance #LegalOps
Published on Instagram · September 13, 2026
On social media