Construyendo Dataspot: lecciones de la detección de fraude real
La obsesión por entender el fraude
Creo que detectar fraude es una de las tareas más interesantes que existen. Durante el tiempo que lideré operaciones de riesgo, lo que más me atrapaba era entender cómo y qué hacían para cometer fraude. Los casos eran infinitamente creativos:
- Ingeniería social. Contactar directamente al CEO para pedir que les activaran productos o cambiaran configuraciones, y así pasar más transacciones.
- Esquemas para evadir impuestos. Pagar con tarjetas de terceros para acumular descuentos al pagar impuestos, aprovechando promociones.
- Corrupción interna. Intentar sobornar a personas dentro de la empresa para activar comercios fraudulentos.
- Y muchos casos más.
Pero durante mucho tiempo me quedó dando vueltas una pregunta: la detección de fraude tiene que tener un punto de partida. Algún patrón, algo en común. Le di vueltas durante meses — mientras dormía, mientras comía, mientras hacía otras cosas. Tenía que haber algo.
El momento clave
La idea que lo cambió todo fue simple: tengo que ver concentraciones.
No todas las concentraciones o anomalías son fraude, pero todo fraude deja alguna concentración o anomalía. Necesitaba algo que las encontrara — y, sobre todo, que no fuera complicado de implementar.
El algoritmo: concentraciones como hilos que se agrupan
Pensé el algoritmo como hilos que se agrupan — la imagen me quedó de algún documental sobre física cuántica y teoría de cuerdas. La intuición era esa: si los datos se concentran por naturaleza, necesito una forma de representarlos que haga visible esa concentración.
No fue inmediato. Después de varios días, llegó la pieza que faltaba: usar los paths de los JSON. Si dos registros comparten estructura, comparten path; si son casi iguales, sus paths se parecen mucho. Esa similitud es, literalmente, la concentración. Empecé a probarlo a mano hasta que entendí que tenía algo entre manos.
Si quieres ver cómo funciona, dejé una visualización del algoritmo y la documentación completa.
Desarrollo silencioso, uso real
Lo desarrollé en silencio durante un buen tiempo. Incluso construí una interfaz para dibujar los nodos y ver los datos con claridad. Terminó siendo una herramienta que usé para dos cosas concretas:
- Evaluar y detectar fraude.
- Ayudar al equipo a entender casos complejos.
No es una solución mágica que resuelve todos los problemas. Es una herramienta para encontrar problemas, visualizar concentraciones con claridad y apoyar la detección — de esas que conviene tener en la caja de herramientas para cuando hacen falta.
Los desafíos técnicos
Construir algo así trae desafíos reales. Al representar los datos como un árbol, hay que lidiar con la complejidad de la recursión, la notación O, los bucles anidados y la visualización. Buena parte del trabajo fue diseñarlo para minimizar el costo de todo eso y que procesara conjuntos de datos grandes sin demorar una eternidad.
Por qué la liberé como open source
El desarrollo fue iterativo: ir quitando lo que sobraba, detectar mejoras, corregir errores en el camino. Al principio ni siquiera la pensé como un proyecto formal — sin pruebas unitarias, sin pruebas de carga, sin API, sin estructura de proyecto.
Con el tiempo sentí que era una herramienta que podía ayudar a otras personas igual que me había ayudado a mí. Por eso decidí formalizarla y liberarla. Siempre quise aportar un proyecto open source a la comunidad, y este me pareció el indicado: un bloque de construcción útil para cualquiera que trabaje en detección de patrones y anomalías.
Construyámoslo juntos
Sigo dándole mantenimiento de a poco, y la idea es que crezca con la comunidad. Si trabajas en detección de fraude o análisis de datos, tu experiencia suma: ideas, mejoras, correcciones de código, casos de uso. Toda contribución es bienvenida.
La mejor detección de fraude no se construye en aislamiento. Se construye compartiendo herramientas e ideas entre quienes enfrentamos los mismos problemas. Dataspot es nuestro aporte a esa conversación.
Dataspot es open source
El motor de concentraciones, disponible como librería Python para toda la comunidad. Úsalo, dale una estrella o aporta ideas y mejoras — construyámoslo juntos.
Ver Dataspot en GitHub