Un cierre multi-empresa que vivía en Excel
Seis entidades de un mismo grupo, cada una con su diario contable, sus operaciones intercompañía y sus obligaciones ante SUNAT. Todo el análisis — ESF, ERI, flujo de efectivo, conciliaciones — se armaba a mano, cada mes, en hojas de cálculo.
Riesgo Sin trazabilidad
Una cifra en el reporte final no podía rastrearse hasta el asiento que la originó. Ante una observación de auditoría o de SUNAT, reconstruir el origen tomaba días.
Riesgo Intercompañía a ciegas
Las eliminaciones entre empresas del grupo se cuadraban manualmente. Las inconsistencias se descubrían tarde — a veces después del cierre.
Riesgo Cumplimiento reactivo
Validar comprobantes contra SUNAT, cruzar detracciones y aplicar el tipo de cambio correcto (SUNAT, SBS, BCRP, reglas D+1) dependía de consultas manuales una por una.
Monolito modular, capas vigiladas por tests
Sin microservicios, sin framework SPA, sin base de datos pesada: cada decisión eligió la herramienta mínima que resuelve el problema. Explora cada capa — el panel muestra la decisión de diseño detrás.
API delgada, permisos centralizados
Doce routers por dominio (contabilidad, ratios, impuestos, conciliación, presupuestos, intercompañía…). Los routers no contienen lógica de negocio: reciben, delegan al core y responden. El contrato OpenAPI se genera y versiona en el repo.
Tres demos, cero datos reales
Contar la trazabilidad es fácil; auditarla con tus propios dedos es otra cosa. Estos demos reproducen, con datos 100% ficticios, lo que la plataforma hace con datos reales.
Del estado de resultados al asiento de origen
Haz clic en cualquier línea y desármala: concepto → cuenta → asiento con documento y glosa. Cada cifra sabe de dónde viene — el Explainability Gap resuelto en miniatura.
Pega códigos CAR y encuentra la plata en riesgo
El parser de códigos de 27 caracteres (RUC 11 + tipo 2 + serie 4 + número 10) es real y corre en tu navegador — prueba pegar los tuyos. La respuesta de SUNAT es simulada con datos ficticios, pero la estructura es la de la plataforma real: estado del comprobante, moneda e importe, tipo de cambio con las reglas finas (EUR vía SBS del día siguiente; las NC con el TC del documento que modifican), conversión a soles y cruce contra Detracciones, comprobante por comprobante.
Pregunta libre, cifras con dueño
Reproducción de una consulta al agente acotado, sobre los mismos datos ficticios del demo 1. Observa el mecanismo: cada cifra la calcula Python; la IA la cita y muestra su traza de origen.
La línea de evolución E0 → E5
El eje que recorre toda la línea: ¿quién decide y cuánto hay que revisar? Cada etapa corre el locus de decisión del humano hacia la IA. Las Big Four ya tienen agentes (E3) — pero nadie ha resuelto la explicabilidad (E4). Esa brecha, el Explainability Gap, es el ángulo de este proyecto.
Las Big Four ya tienen agentes.
Nadie tiene confianza.
La IA calcula; el humano decide todo
Reglas, integraciones SUNAT, reportes con trazabilidad de origen en cada cifra.
Interpreta y decide todo. La máquina nunca asienta sola.
Este proyecto — y sólido. Muchas firmas medianas no llegaron a esta etapa.
El ángulo diferencial: no competir imitando a las Big Four en E3, sino partir de una base obsesivamente auditable — dato de origen en cada export, verificable por el usuario — y apuntar al hueco de E4 que ellas, con todo su presupuesto, aún no cierran. La trazabilidad que en E1 parece "solo buena práctica" es exactamente la munición del Explainability Gap.
Python por defecto, IA por excepción
Meter IA donde un if gana solo agrega costo y riesgo de alucinación. Una firma contable lidera demostrando que su IA es precisa, auditable y sabe cuándo no opinar.
La IA nunca calcula el número
Un total que el LLM "sume" es una alucinación esperando auditoría. Python precalcula; la IA cita, no deriva.
Narrativa y agente acotado
Narrativa: la IA lee evidencia ya computada y la redacta. Agente: elige qué capacidad determinista invocar — con tope de iteraciones y humano en el lazo.
Números → artefacto; prosa → contexto
La IA propone la regla, el humano la firma, Python la corre en cada cierre. Nunca retrocede, nunca avanza sin firma.
Prácticas de producto, no de script
600+ tests, CI obligatorio
Motores contables, contratos de API, auth e incluso el DOM del frontend testeado desde pytest vía jsdom. Cada push corre la suite completa en GitHub Actions.
Capas vigiladas por un test
Un test de arquitectura falla si un router importa lógica de negocio o si el core importa FastAPI. La separación no es una convención: es un contrato ejecutable.
Seguridad sin atajos
Passwords con scrypt (parámetros OWASP) y upgrade transparente de legacy, sesiones HttpOnly con rate-limit, RBAC server-side, secretos fuera del repo.
Clean architecture selectiva
Puertos y adapters solo en los tres subdominios que lo justifican (SUNAT, LLM, cartas) — no dogma en todo el código. Añadir IA a un módulo nuevo = un archivo, cero cambios en el orquestador.
Contrato OpenAPI versionado
El esquema de la API se genera por script, se versiona en el repo y un test rompe el build si el contrato cambia sin querer. La API es un compromiso, no un accidente.
Evals antes que demos
La capa de IA tiene su arnés de evaluación con golden set. El adapter mock permite testear todo el ciclo tool-use con cero tokens: la IA se prueba como se prueba el código.
Estado honesto (jul-2026): MVP avanzado en uso interno — no un prototipo, tampoco un producto terminado. El inventario funcional del proyecto declara módulo por módulo qué está sólido, qué está en construcción y dónde hay deuda técnica. Esa honestidad también es parte del método.
¿Tu cierre todavía vive en Excel?
Esta plataforma empezó exactamente ahí. Si quieres conversar sobre cómo se ve este camino en tu empresa — con tu ERP, tu SUNAT y tu equipo — escríbeme.
Agendar diagnóstico Leer el blog