Un bandido que jamás vio la raza cobró un 26 % más a una cohorte. Equity detecta los proxies, aplica la regla EEOC 4/5 y sella un informe para requerimientos judiciales.
Gobernanza de la IAPrecios dinámicosEquidad algorítmica

«Eliminamos la raza y los ingresos del modelo» es la frase con la que se pierde el juicio

Ashutosh SinghalAshutosh Singhal22 de julio de 202614 min

En diciembre de 2025, la FTC llegó a un acuerdo de 60 millones de dólares con Instacart en relación con los experimentos de fijación de precios de Eversight, y la demanda documentó precios de artículos idénticos que variaban hasta en un 23 %. La FTC nunca tuvo que demostrar qué se le indicó al algoritmo; la denuncia se fundamentó en los precios que efectivamente se mostraron a distintos compradores por el mismo artículo.

La frase a la que recurre todo equipo de fijación de precios es justo lo opuesto a un argumento basado en resultados: eliminamos la raza y los ingresos del modelo. Creo en los equipos que lo afirman. También creo que es la frase con la que se pierde el juicio, y en lugar de discutirlo en abstracto, construí un motor de tarificación que puede decir eso de sí mismo con total veracidad, y luego lo audité. El motor es un bandido contextual LinUCB con siete brazos de precios, inicializado con la semilla 42, entrenado para maximizar ingresos sobre una población sintética de 10.000 compradores que generé introduciendo deliberadamente una estructura de variables proxy. Llamé al minorista ficticio ShopMart. No se auditó a ningún minorista real ni se cobró de más a ningún cliente verdadero, y esa es precisamente la razón por la que conozco los datos fundamentales objetivos y puedo contrastar la auditoría frente a ellos. La capa superior es una consola que denominé Equity, diseñada para ejecutarse sobre cualquier motor de precios previo de un comercio; en esta implementación, el motor auditado es mi propio bandido. El recorrido completo está disponible en veriprajna.com/demos/ai-pricing-compliance.

Mismos auriculares, demanda emparejada, un 26 % más

Le proporcioné al bandido nueve variables de entrada y ninguna de ellas constituye un atributo protegido: índice de ingresos por código postal, gama del dispositivo, canal de procedencia, tiempo de permanencia, tamaño del carrito, tasa de recurrencia, recuento de sesiones, membresía prémium y hora del día, además de términos cruzados de canal por permanencia. Muchos motores reales incorporan términos cruzados o árboles, y quería que el mío pudiera hacer lo mismo. Luego le permití fijar el precio de un SKU, los Aura Wireless Earbuds, con precio de catálogo de 79.00 $, a lo largo de las 10.000 decisiones.

La tarjeta destacada de la consola es lo primero en pantalla antes de ejecutar nada. Dos cohortes, un producto, señales de demanda emparejadas. El Conjunto de Decisiones A es la cohorte de código postal de altos ingresos y dispositivo nuevo, con 2.880 decisiones, representada en la tarjeta por un código del Upper East Side y un iPhone nuevo: precio mostrado 74.06 $. El Conjunto de Decisiones B es la cohorte de código postal mayoritariamente minoritario y dispositivo antiguo, con 3.037 decisiones, representada por un código de South Bronx y un Android antiguo: 93.47 $. Varianza medida: +26.2 %. Se trata de medias de cohorte sobre unas 3.000 decisiones cada una, de modo que este es el comportamiento sistemático de la política y no el caso de un comprador desafortunado; el código postal y el teléfono de cada tarjeta constituyen el perfil representativo de la cohorte, no su definición.

La tarjeta Equity Pricing Outcome Comparison: Conjunto de Decisiones A, la cohorte de referencia de 2.880 decisiones representada por el código postal 10021 y un iPhone nuevo, a 74.06 $; Conjunto de Decisiones B, la cohorte expuesta de 3.037 decisiones representada por el código postal 10456 y un Android antiguo, a 93.47 $; varianza medida de +26.2 % en los mismos Aura Wireless Earbuds, precio de lista 79.00 $.
La tarjeta principal antes de ejecutar la auditoría. Mismo SKU, señales de demanda emparejadas, 74.06 $ frente a 93.47 $, una brecha del 26.2 % entre las medias de cohorte de unas 3.000 decisiones sintéticas cada una.

Lo que me desconcertó fue que no había escrito nada que pudiera tacharse de regla discriminatoria. Escribí un maximizador de ingresos y le suministré señales que predicen la disposición a pagar. El código postal predice los ingresos, los ingresos predicen la sensibilidad al precio, un Android antiguo predice una menor comparación de ofertas. Ninguna de esas variables es la raza. Todas evolucionan con ella, y un bandido incentivado por los ingresos detecta cada una. Ese 26 % es el aspecto que adopta la optimización de ingresos cuando las señales arrastran a la cohorte.

La variable proxy que se oculta entre dos entradas limpias

Diseñé la auditoría para evaluar cada entrada mediante tres vías, porque cada prueba individual que concebí tenía alguna fisura: correlación lineal de Pearson absoluta frente a la cohorte protegida (etiqueta que la auditoría nunca recibe), información mutua normalizada (NMI) y una reproducción contrafáctica de precios. Esta última sobrescribe esa entrada para la cohorte protegida con el valor de referencia de la cohorte aventajada, mantiene constantes las demás variables, vuelve a ejecutar la política del motor y mide cuánto se desplaza el precio. La reproducción es agnóstica al modelo: varía la entrada y monitoriza la salida, por lo que resulta indiferente si el motor es un bandido, un árbol o una caja negra del cliente.

Las dos primeras filas de la tabla Input Audit son las que cualquiera pronosticaría. Índice de ingresos por código postal: |r| 0.95, MI 1.00, contrafáctico +7.8 %, VIOLATION. La geografía codifica por completo a la clase protegida en esta población y el motor tarifica en función de ella. Gama de dispositivo: 0.32, 0.08, +2.9 %, VIOLATION, una señal aparentemente neutral que supera el umbral de 0.30 de correlación y el de 0.05 de MI que definí en el código.

La tercera VIOLATION es la que una auditoría rasgo por rasgo es incapaz de apreciar. El canal de procedencia aislado: |r| 0.00, MI 0.00, PASS. El tiempo de permanencia aislado: 0.17, 0.03, PASS. Una auditoría por características independientes aprueba ambos y continúa. La fila de interacción Canal de procedencia × Tiempo de permanencia arroja |r| 0.00, MI conjunta de 0.73, contrafáctico +1.7 %, VIOLATION. Eso supone una ganancia por interacción de 0.71 respecto al mejor componente aislado.

El cuadro de diálogo Equity Audit Results, Input Audit: ¿Qué variables son proxies demográficos? Índice de ingresos por código postal 0.95, 1.00, +7.8 %, VIOLATION; Gama de dispositivo 0.32, 0.08, +2.9 %, VIOLATION; fila de interacción Canal × Permanencia 0.00, 0.73, +1.7 %, VIOLATION; Miembro Prémium 0.24, 0.04, ABSTAIN; Canal, Permanencia, Carrito, Recurrencia, Sesiones y Hora todos PASS.
La tabla de auditoría de entradas con el cursor en la fila de interacción. El canal de procedencia y el tiempo de permanencia aprueban cada uno por separado; juntos, su información mutua conjunta con la clase protegida alcanza 0.73.

Introduje esa estructura al estilo de una puerta lógica XOR. Un acceso orgánico con permanencia prolongada marca a la cohorte protegida. Un acceso comparador con permanencia corta también la marca. Los accesos orgánicos cortos y los comparadores largos marcan a la cohorte favorecida. Ni el modo de llegada ni el tiempo de estancia separan a los grupos por sí solos; lo hace el par combinado. La correlación es un instrumento unidimensional y no puede detectarlo. La información mutua sobre el par sí lo hace. Un programa de cumplimiento que audita las entradas de una en una está auditando el objeto equivocado, y no hallé otra forma de demostrarlo que creando una población en la que el análisis individualizado resulta indiscutiblemente erróneo.

La defensa que yo mismo habría esgrimido

Puse a prueba la defensa que antaño yo mismo habría presentado ante un regulador, es decir, la equidad por desconocimiento (fairness through unawareness): retirar las entradas de código postal y dispositivo, reentrenar el motor y documentar el resultado. Sabía que el proxy compuesto seguía ahí. Lo que ignoraba era qué parte de ese 0.43 correspondía exclusivamente al código postal y al dispositivo, y qué parte al par encubierto. Suprimir código postal y dispositivo y reentrenar trasladó el ratio de los cuatro quintos de 0.43 a 0.59. Sigue siendo un suspenso, y la brecha restante es justo la parte que sobrevive a cualquier comprobación individual. La tarjeta de referencia resume el motivo en cuatro palabras: Compound Proxy Still Leaks.

El cuadro de diálogo Equity Benchmark Results, Validation Benchmark: Conjunto de evaluación etiquetado. Precisión 100 %, exhaustividad 100 %, 0 señales legítimas marcadas indebidamente, 1/1 señal de doble uso abstenida con acierto. Referencia base: equidad por desconocimiento, supresión de código postal y dispositivo, ratio de cuatro quintos 0.59, Fails, motivo Compound Proxy Still Leaks. Restricción de Equity 0.82, Pass, coste sobre ingresos -1.3 %, referencia de tope rígido 0.59, Fails.
El benchmark etiquetado sobre el mismo conjunto sintético con semilla. Prescindir de código postal y dispositivo mueve el filtro de 0.43 a 0.59 y continúa suspendiendo; la auditoría identificó 3 de 3 proxies plantados con 0 falsos positivos.

Ese resultado modificó mi percepción de aquella afirmación. El motor descubrió a la cohorte de todos modos, a través de dos señales que superan cada comprobación de columna individual, y seguirá encontrándola, porque encontrarla es precisamente aquello por lo que se recompensa a un maximizador de ingresos. Afirmar la premisa del desconocimiento no le cuesta nada al equipo, pero le entrega un dato numérico que más tarde tendrá que explicar.

El 100 % en esa tarjeta tiene un alcance acotado. La prueba de referencia reconstruye la misma población con semilla 42 y puntúa la auditoría frente a las etiquetas que introduje, de modo que una precisión y exhaustividad del 100 % significan 3 de 3 proxies plantados identificados con 0 falsos positivos en ese conjunto sintético contrastado. Es una autocomprobación frente a una certeza conocida, y no lo citaría como tasa de exactitud en los registros reales de tarificación de nadie, distorsionados de formas imposibles de replicar artificialmente.

Qué significa 0.43 y por qué no permití que un modelo lo decidiera

Me negué a inventar una métrica de equidad corporativa propia, porque un número fabricado internamente carece de legitimidad ante un regulador. La barrera de control en Equity es un estándar legal externo: la regla de los cuatro quintos de la EEOC, 29 CFR 1607.4(D), trasladada de tasas de selección a tramos de precios. Favorable significa acceder a un tramo que no sea el precio máximo. En el motor tal como se entrega, el 36 % de la cohorte protegida accede al tramo favorable frente al 83 % de la cohorte aventajada. 0.36 entre 0.83 arroja 0.43, el umbral normativo se sitúa en 0.80 y el indicador se muestra en rojo con Fail. Junto a él: el 64 % de la cohorte protegida en el tramo de precios más elevado, y un sobreprecio medio de +15.6 % respecto a la cohorte aventajada.

El cuadro de diálogo Equity Audit Results desplazado hasta el filtro de impacto dispar: regla de los cuatro quintos de la EEOC. Un dial rojo señala 0.43, ratio de cuatro quintos (umbral 0.80), Fail; los bloques indican 36 % de cohorte protegida en tramo favorable, 83 % de cohorte aventajada en tramo favorable, 64 % de cohorte protegida en el tramo máximo, +15.6 % de sobrecoste medio: protegida frente a aventajada. Encima, notas de auditor y censor contradictor.
El control. El 36 % de la cohorte protegida en el tramo favorable frente al 83 % de la cohorte aventajada resulta en 0.43, por debajo de la línea de 0.80, por lo que el dial marca rojo. La anotación del censor contradictor superior defiende la justificación de fidelidad para la variable abstenida de Miembro Prémium.

La lógica resolutiva se ejecuta en NumPy puro, fuera de la capa de agentes, en un orden inalterable que puedo detallar ante un tribunal. La señal de doble uso se somete a prueba antes del test de infracción: Miembro Prémium guarda una correlación de 0.24 con la cohorte protegida y es al mismo tiempo una señal legítima de fidelidad, por lo que el código devuelve ABSTAIN y la remite a revisión jurídica en lugar de sancionarla o exculparla, impidiendo que ningún paso posterior la ascienda a infracción. Luego siguen los umbrales de infracción, el rango de abstención y, por último, PASS. El tamaño del carrito, la recurrencia, el número de sesiones y la hora superan la prueba. La auditoría no sanciona indiscriminadamente todo, y una auditoría que lo cuestiona todo resulta tan inútil ante un Requerimiento de Información Civil (CID) como una que no encuentra nada.

Los agentes del equipo colegiado —un auditor de características y un censor contradictor— redactan argumentos; el tercer rol contemplado en el diseño, el asignador regulatorio, consiste en esta versión en una tabla fija de consulta en vez de un modelo. La tarea del contradictor es defender con rigor el beneficio de fidelidad para la entrada abstenida, y así lo refleja en pantalla. Sin embargo, no puede modificar ese 0.24, no puede alterar un dictamen ni puede decidir si 0.43 es inferior a 0.80. Establecí esa delimitación desde el inicio: los agentes asesoran, el código decide, y el modelo es libre de ser tan elocuente como desee acerca de cifras que tiene vedado tocar.

El ajuste que esperaba que funcionara

La primera corrección que ensayé fue un tope, porque es la respuesta por defecto de todo equipo de precios: no tarificar nunca más de un 15 % por encima de la referencia justa. Lo configuré como Hard-Cap Baseline y creí que sería la solución sobria y adecuada. Conllevó un coste del 0.2 % de los ingresos y suspendió el control con 0.59. El patrón de manipulación en la tarjeta evidencia el porqué: el 29 % de la cohorte protegida acabó tarificada a menos del 1 % del límite fijado. El veredicto dicta Gamed To The Boundary. El tope sale barato precisamente porque el motor recalculó los precios de la cohorte afectada hasta situarlos justo por debajo de la barrera; y esa fórmula económica pero fallida es la que luce atractiva en una reunión de presupuestos pero naufraga durante la fase de proposición de pruebas.

Un optimizador de ingresos trata un límite como un objetivo.
El cuadro de diálogo Equity Remediation Results, restricción de equidad: de la detección a la subsanación. Cuatro quintos antes 0.43, Fail, motor original; cuatro quintos después 0.82, Pass, impacto en ingresos -1.3 %. Moldeo de recompensas consciente de equidad, control recomendado: 0.82 Pass, coste en ingresos -1.3 %, patrón de manipulación 2 %, peso de atracción 0.65. Referencia de tope estricto (115 % del precio justo): 0.59 Fail, coste en ingresos -0.2 %, patrón 29 % al límite, veredicto Gamed To The Boundary.
Dos soluciones frente a frente. El moldeo de recompensas supera el examen con 0.82 con un 1.3 % de coste en ingresos y un 2 % de distorsión; el tope estricto del 115 % cuesta un 0.2 %, suspende con 0.59 y apura al 29 % de la cohorte protegida al borde del límite.

El mecanismo que se mantuvo firme es el moldeo de recompensas consciente de equidad (Fairness-Aware Reward Shaping). En lugar de un corte arbitrario, atrae de forma continua cada precio hacia un valor de referencia limpio de proxies —un segundo bandido entrenado sin las variables sesgadas y conservando las señales legítimas—, hallando mediante búsqueda binaria el menor factor de ajuste que supere 0.80. En este motor ese peso es 0.65; un escalón inferior, 0.625, apenas alcanzó 0.778. Cuatro quintos tras la corrección: 0.82, Pass. Coste en ingresos: 1.3 %. Patrón de manipulación del 2 %, porque no existe ningún borde del que aprovecharse. La letra pequeña de la propia consola aclara que el impacto en ingresos es específico para este motor sintético, y lo subrayo abiertamente: el 1.3 % es una medición sobre una población de prueba específica, no una tarifa universal para la equidad.

Para qué sirve el expediente

Elaboré el expediente probatorio al final, porque todo lo anterior solo adquiere valor si un abogado puede presentarlo formalmente. Cuando llega un requerimiento de investigación civil (CID), la compañía que no registró los datos adecuados pasa meses en costosas extracciones periciales. Equity sella el resultado de la auditoría en un paquete JSON con versión HTML imprimible: nombre y versión del motor, las 10.000 decisiones auditadas, el control normativo, la disparidad constatada, el dictamen y fundamentación de cada entrada, el resultado de la subsanación y un hash SHA-256 del cuerpo del expediente para acreditar su inalterabilidad. Cada VIOLATION se vincula a cinco marcos legales: la regla de los cuatro quintos de la EEOC, la Ley de Divulgación de Precios Algorítmicos de Nueva York (vigente el 10 de noviembre de 2025, sanción civil de hasta 1.000 $ por infracción), la Ley de IA de Colorado (SB 24-205, efectiva el 30 de junio de 2026), los artículos 13 y 14 de la Ley de IA de la UE (obligaciones de alto riesgo desde el 2 de agosto de 2026) y el artículo 5 de la Ley de la FTC. La entrada reservada se asocia a una línea de revisión jurídica.

El mapeo regulatorio es una matriz estática. Habría sido sencillo encomendar su redacción a un modelo, pero lo descarté: cada VIOLATION incluye exactamente las cinco mismas referencias legales, la abstención incorpora su indicación de revisión y no se redacta prosa alguna para el mapeo. Un modelo que diserta sobre qué precepto legal aplica es un modelo cuyos criterios varían con la siguiente versión; y un expediente cuyo encaje normativo fluctúa al compás del modelo es un expediente que el perito de un regulador desmontará de inmediato. Los resúmenes del informe son generados por modelo y cacheados; las cifras, veredictos y referencias jurídicas proceden del código. El expediente preserva su validez procesal con independencia del modelo subyacente. El desglose exhaustivo, con el informe examinado en pantalla, se encuentra en veriprajna.com/demos/ai-pricing-compliance.

Veriprajna no fija precios, no sustituye a Pricefx, PROS, Zilliant ni Competera, ni emite dictámenes jurídicos vinculantes. El motor del cliente continúa tarificando. Yo aporto las pruebas concluyentes; su asesoría jurídica toma la decisión.

Y si prefiere presenciar la ejecución de la auditoría en vez de leer mi narración, aquí tiene el procedimiento íntegro de principio a fin.

Vuelvo una y otra vez a la consigna del equipo de tarificación porque es verídica: la raza y los ingresos no figuran en el modelo. En el motor que construí, esa afirmación veraz convive con una brecha del 26 % en los mismos auriculares, un índice de equidad de 0.43 y un tope que fracasó simulando haber funcionado. Nadie le reveló al motor quién era el comprador. Una función de recompensa por ingresos bastó por sí sola, porque inferir el perfil del usuario era la estimación más rentable posible; y la auditoría determinó con precisión milimétrica hasta dónde llegó. La aseveración que resiste en sede judicial es mucho más rotunda: sabíamos que el motor identificaría a la cohorte sin necesidad de decírselo, medimos cuánto se desvió, y esto es lo que nos costó frenarlo.

Investigación relacionada

También publicado en

Construya su IA con confianza.

Colabore con un equipo que cuenta con amplia experiencia en la creación de la próxima generación de IA empresarial. Permítanos ayudarle a diseñar, construir e implementar una estrategia de IA en la que pueda confiar.

Veriprajna consultora de Deep Tech está especializada en la creación de sistemas de IA críticos para la seguridad en los sectores de salud, finanzas y ámbitos regulatorios. Nuestras arquitecturas se validan conforme a protocolos establecidos, con documentación de cumplimiento integral.