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.
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
- Tomá 100 transacciones al azar del output del LLM (mezclá confidences altos y bajos).
- Clasificá esas 100 manualmente sin ver la respuesta del LLM.
- 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:
- Tomá un extracto bancario real (anonimizado) de 50-100 transacciones.
- Copialo en ChatGPT o Claude (versión web).
- Pegale el prompt de arriba adaptado a tu plan de cuentas.
- Procesá 10 transacciones a la vez.
- 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.
Completaste esta leccion?
Marca esta leccion como completada. Tu progreso se guardara en tu navegador.