Lección 5 de 21Módulo 2: Clasificación automática de transacciones

05. Caso práctico: clasificar 10.000 transacciones bancarias

Workflow completo end-to-end: Excel → API → clasificación → output JSON validado. Costo real, tiempo y precisión esperados.

30 minutos

Esta es la lección donde lo conceptual se convierte en operativo. Vamos a recorrer, paso a paso, cómo procesar 10.000 transacciones bancarias de una empresa LATAM mediana usando GPT-5.5 (o Claude Sonnet 4.6) con few-shot learning.

No vas a programar. Vas a ver el setup como lo configurarías en n8n o Make, con todos los números reales: costo, tiempo, precisión, validación.

🎯 Antes de empezar

El caso que vamos a recorrer es representativo de una empresa retail mediana chilena/argentina/colombiana con 10.000 transacciones bancarias mensuales. Los números (costos, tiempos, precisión) son rangos típicos observados en implementaciones reales. Tu caso puede variar ±30% según calidad del extracto, claridad del plan de cuentas y complejidad del cliente.


El escenario

Cliente: empresa retail con 4 sucursales en Santiago, factura electrónica activa, plan de cuentas chileno PCGA estándar.

Input: extracto bancario mensual del Banco BCI, exportado como Excel con 10.000 movimientos.

Output esperado: el mismo archivo enriquecido con:

  • Cuenta sugerida del plan de cuentas
  • Nombre de la cuenta
  • Confidence score (0 a 1)
  • Justificación breve
  • Flag de "necesita revisión humana"

Equipo antes: 1 junior dedicado 3 días completos al mes a esta tarea (~24 horas).

Equipo después: el mismo junior, dedicando 2-3 horas a revisar los casos de confidence bajo y validar muestras del confidence alto.


Paso 1: el Excel de input

El extracto bancario llega con la estructura típica de cualquier banco LATAM:

Fecha Detalle Monto Tipo
01/05/2026 PAGO FALABELLA RETAIL 145.000 -145.000 Débito
01/05/2026 TEF MERPAGO LIQUIDACION VENTAS +1.245.700 Crédito
02/05/2026 PAGO ESSO COMBUSTIBLES -78.500 Débito
02/05/2026 COMISION MANT CTA CTE -3.500 Débito
03/05/2026 PAGO GOOGLE ADS LATAM -890.000 Débito
... ... ... ...

10.000 filas, formato consistente. Este es el formato ideal para procesar con LLM: una columna con texto descriptivo + montos.

⚠️ Lo que sí va a fallar

Si tu extracto viene como PDF mal escaneado, con columnas mezcladas o con encoding raro (UTF-8 vs Latin-1), resolvé eso primero. El LLM no es un parser de archivos: necesita texto limpio. Document AI o un parser simple en n8n resuelve esto en 5 minutos.


Paso 2: el prompt completo

Acá está el prompt que vamos a usar, construido con los 5 bloques de la Lección 4:

Eres un contador senior chileno especializado en retail.
Tu tarea: clasificar transacciones del extracto bancario
contra el plan de cuentas estándar del cliente.

PLAN DE CUENTAS (extracto operativo):
- 1102 Banco BCI cta cte
- 1107 IVA crédito fiscal
- 1108 Cuentas por cobrar empleados
- 2101 Proveedores nacionales
- 2103 IVA débito fiscal
- 4101 Ventas afectas
- 4102 Ventas exentas
- 5101 Costo de ventas
- 5202 Marketing y publicidad
- 5203 Servicios profesionales
- 5204 Combustibles y lubricantes
- 5205 Arriendos
- 5210 Compras menores / gastos generales
- 5301 Comisiones bancarias
- 5302 Intereses y gastos financieros

REGLAS OBLIGATORIAS:
- "GOOGLE ADS" o "META ADS" o "FACEBOOK ADS" → 5202 (confidence 0.99)
- "ESSO" o "COPEC" o "SHELL" → 5204 (confidence 0.97)
- "COMISION MANT" o "COMISION TRANSF" → 5301 (confidence 0.99)
- "MERPAGO LIQUIDACION" o "TRANSBANK" → 4101 (confidence 0.95)
- Cualquier "REEMBOLSO" en el texto → 1108

EJEMPLOS DE CLASIFICACIÓN CORRECTA:

Transacción: "PAGO FALABELLA RETAIL 145.000"
Respuesta: {"cuenta":"5210","cuenta_nombre":"Compras menores","confidence":0.78,"justificacion":"Retail sin contexto adicional, asumo gasto operativo menor","necesita_revision":true}

Transacción: "TEF MERPAGO LIQUIDACION VENTAS 1.245.700"
Respuesta: {"cuenta":"4101","cuenta_nombre":"Ventas afectas","confidence":0.95,"justificacion":"Liquidación de marketplace, regla aplicada","necesita_revision":false}

Transacción: "PAGO ESSO COMBUSTIBLES 78.500"
Respuesta: {"cuenta":"5204","cuenta_nombre":"Combustibles","confidence":0.97,"justificacion":"Combustible, regla automática","necesita_revision":false}

Transacción: "PAGO GOOGLE ADS LATAM 890.000"
Respuesta: {"cuenta":"5202","cuenta_nombre":"Marketing","confidence":0.99,"justificacion":"Marketing digital, regla automática","necesita_revision":false}

Transacción: "PAGO PROVEEDOR JC LOGISTICA SPA 2.400.000"
Respuesta: {"cuenta":"2101","cuenta_nombre":"Proveedores nacionales","confidence":0.82,"justificacion":"Pago a proveedor identificado por razón social, sin maestro de proveedores no se valida","necesita_revision":true}

AHORA CLASIFICA LA SIGUIENTE TRANSACCIÓN.
Devuelve SOLO el JSON, sin texto adicional.

Transacción: "{texto_transaccion}"

💡 Por qué este prompt funciona

Cinco bloques claros: rol, plan de cuentas, reglas, 5 ejemplos LATAM reales, output JSON estricto. Las reglas cubren ~40-60% del volumen automáticamente con confidence alto. Los ejemplos enseñan al modelo cómo manejar la ambigüedad. El output estructurado permite procesar 10.000 respuestas sin parsing manual.


Paso 3: el workflow en n8n

En n8n (o Make), el workflow es así de simple:

[Trigger: archivo Excel subido]
        ↓
[Parse Excel: 10.000 filas]
        ↓
[Loop sobre cada fila]
        ↓
[Aplicar reglas locales primero] ← evita llamada API si la regla matchea
        ↓
[Si no matchea: llamar GPT-5.5 API con prompt]
        ↓
[Parse JSON response]
        ↓
[Guardar en CSV/Sheets: transacción + cuenta + confidence]
        ↓
[Si confidence < 0.85: marcar para revisión]
        ↓
[Enviar email al contador con resumen]

Lo importante: las reglas locales se aplican antes de llamar al LLM. Si el texto contiene "GOOGLE ADS", el workflow asigna directamente 5202 sin gastar un token. Esto baja el costo entre 30% y 50%.


Paso 4: el costo real

Acá los números, con la pricing pública de mayo 2026 (verificá en el provider porque cambia):

Modelo Input por 1M tokens Output por 1M tokens Costo estimado 10K trans.
GPT-5.5 $5 USD $30 USD $8 - $12 USD
Claude Sonnet 4.6 $3 USD $15 USD $4 - $7 USD
Gemini 3 Flash ~$1 USD ~$5 USD $2 - $4 USD
Claude Haiku 4 ~$1 USD ~$5 USD $2 - $3 USD

Cálculo aproximado:

  • Prompt promedio: ~800 tokens (instrucciones + plan de cuentas + few-shot)
  • Output promedio: ~80 tokens (JSON)
  • 10.000 transacciones × 880 tokens ≈ 8.8M tokens totales
  • Reglas locales filtran ~40%, así que llamás a API ~6.000 veces
  • Con GPT-5.5: ~$8-12 USD

💰 Comparativa de costo

Procesar 10.000 transacciones manualmente: ~24 horas-junior × $15-25 USD/hora = $360 a $600 USD.

Procesar con LLM + revisión humana de excepciones: ~$10 USD API + 2-3 horas-junior = $40 a $85 USD.

Reducción de costo: 80-90%. Y el junior ahora tiene tiempo para tareas de mayor valor.


Paso 5: el tiempo real

Acá el dato que más impacta a los socios de firmas:

Etapa Tiempo
Subir Excel + iniciar workflow 2 minutos
Procesamiento LLM (10K transacciones) 15-30 minutos
Generación de CSV output con confidence < 1 minuto
Revisión humana de casos confidence < 0.85 (~10-15%) 1-2 horas
Validación de muestras (100 al azar de alto confidence) 30-45 minutos
Total proceso completo 2-4 horas

Compará con el flujo manual tradicional: 24 horas-junior distribuidas en 3-5 días.

La velocidad no es solo eficiencia. Es cambio de modelo operativo: el cierre mensual ya no espera la clasificación. La clasificación se hace en una mañana del día 1, no a lo largo del primer tercio del mes.


Paso 6: la precisión esperada

Con este setup (LLM moderno + few-shot + reglas + plan de cuentas bien delimitado), los rangos típicos observados son:

Métrica Rango típico Comentario
Precisión global 95-98% En clasificación contable bien delimitada
Confidence > 0.9 (auto-aceptable) 60-75% del volumen Validar con muestras
Confidence 0.6 - 0.9 (revisar) 20-35% del volumen Acá entra el contador
Confidence < 0.6 (rechazar/clarificar) 2-5% del volumen Casos ambiguos genuinos

⚠️ Cuidado con "95-98% precisión"

Estos rangos vienen de implementaciones bien hechas con buen few-shot. Si tu primer corrida da 80%, no es problema del LLM: es problema del prompt. Iterá los ejemplos, agregá reglas explícitas, refiná el plan de cuentas en el contexto. La diferencia entre un prompt amateur (80-85%) y uno profesional (95-98%) está en 5-10 iteraciones de ajuste sobre datos reales del cliente.


Paso 7: validación contra muestras manuales

Esta es la parte que no podés saltarte. Te lo dice la NIA 530 (Muestreo de Auditoría) y el sentido común.

Protocolo de validación inicial

  1. Tomá 100 transacciones al azar del output del LLM (mezclá confidences altos y bajos).
  2. Clasificá esas 100 manualmente sin ver la respuesta del LLM.
  3. Compará:
    • ¿En cuántas coincidiste con el LLM?
    • ¿En cuáles diferiste y por qué?
    • ¿Hubo patrones sistemáticos de error?

Qué hacer con los resultados

Coincidencia Acción
> 95% Workflow listo para producción. Validar con muestras mensuales.
90-95% Ajustar prompt (más ejemplos, más reglas explícitas). Re-correr.
80-90% Revisar plan de cuentas en el prompt. Faltan cuentas o están ambiguas.
< 80% El caso de uso necesita más estructura. Volvé a la Lección 4.

🎯 La validación es continua

Una vez en producción, no dejes de muestrear. Tomá 50-100 transacciones al azar cada mes y validá manualmente. Esto cumple NIA 315 (riesgos de la herramienta) y NIA 530 (suficiencia de la evidencia). Si la precisión empieza a degradarse (cambio de mix transaccional del cliente, por ejemplo), te enterás temprano.


Showcase: antes vs después

Antes (proceso manual tradicional)

  • Quién: María, contadora junior con 2 años de experiencia.
  • Tarea: clasificar 10.000 transacciones del extracto BCI del mes.
  • Tiempo: 3 días completos (24 horas).
  • Calidad: ~98% (humano experimentado), pero con cansancio y errores hacia el final.
  • Costo: 24 horas × tarifa interna $20 USD = $480 USD.
  • Experiencia de María: agotador, repetitivo, sin aprendizaje. Renunció hace 6 meses para ir a otra firma con "mejor stack tecnológico".

Después (workflow con LLM + human-in-the-loop)

  • Quién: María (la sucesora de María, que se quedó porque le ofrecieron trabajar con IA).
  • Tarea: supervisar workflow de clasificación.
  • Tiempo: 2-4 horas (revisión + validación de muestras).
  • Calidad: ~98% combinado (95-98% del LLM + revisión humana de excepciones).
  • Costo: $10 API + 3 horas × $20 = $70 USD.
  • Experiencia de María: trabajo de juicio profesional, no de data entry. Aprende sobre patrones del cliente, no sobre teclado.

📊 El cálculo que importa al socio

Si la firma factura este servicio a $800 USD/mes al cliente:

  • Antes: margen = $800 - $480 = $320 USD (40%).
  • Después: margen = $800 - $70 = $730 USD (91%).

La pregunta no es si vale la pena adoptar IA. Es cuánto cuesta NO adoptarla cuando tus competidores ya lo hicieron.


Lo que NO resuelve este workflow

Para ser honestos sobre los límites:

  • No detecta fraude. Si hay transacciones falsas en el extracto, las clasifica igual de bien. Eso lo cubre el Módulo 4 (Auditoría asistida).
  • No reconcilia con facturas. Eso requiere cruzar el extracto bancario con el maestro de facturas. Lo vemos en el Módulo 3.
  • No genera asientos contables. Devuelve la cuenta sugerida. El paso de generar el asiento (con doble entrada, IVA, etc.) requiere reglas adicionales que dependen del ERP del cliente.
  • No reemplaza al contador firmante. NIA 240/315/530 siguen aplicando. El contador valida, firma, asume responsabilidad.

Próximos pasos

En la Lección 6 cerramos el Módulo 2 con la pieza que hace que todo esto sea profesionalmente aceptable: human-in-the-loop + audit trail. Vas a aprender cómo configurar thresholds de confidence, qué guardar como evidencia, y cómo escalar excepciones para cumplir NIA 315.

💡 Ejercicio opcional

Si querés practicar antes de la próxima lección:

  1. Tomá un extracto bancario real (anonimizado) de 50-100 transacciones.
  2. Copialo en ChatGPT o Claude (versión web).
  3. Pegale el prompt de arriba adaptado a tu plan de cuentas.
  4. Procesá 10 transacciones a la vez.
  5. Calculá tu precisión manual vs la del LLM.

Vas a ver, en 30 minutos, lo que este Módulo 2 prometió. Y vas a tener data real para la Lección 6.

Próxima lección: 06. Human-in-the-loop: validación humana + confidence scores

Checkpoint de comprensión

3 preguntas para verificar lo aprendido. No afecta tu nota del examen final.

1En el caso de la empresa retail chilena con 10.000 transacciones/mes, ¿cuál es la comparativa de costo aproximada entre el flujo manual y el flujo con LLM + human-in-the-loop?
2¿Por qué la lección recomienda aplicar primero las reglas locales en n8n antes de llamar a la API del LLM?
3Tu primera corrida del prompt da 95-98% de precisión global. Según el rango típico de la lección, ¿qué porcentaje del volumen estará en cada zona de confidence?

Completaste esta leccion?

Marca esta leccion como completada. Tu progreso se guardara en tu navegador.