Saltar al contenido
Agents Finance
Prompt útilEvidencia: Propuesta sin contrastar

Prompt: explicar las anomalías del cierre mensual en el sumas y saldos antes de que las vea dirección, con el cálculo hecho en código

Resumen: Un método en dos partes para el cierre mensual: un script corto (o cinco fórmulas de Excel) puntúa cada cuenta frente a sus últimos 12 meses con un estadístico robusto, y el prompt solo pide al asistente de IA que clasifique y explique lo señalado y redacte las preguntas. Es una propuesta nuestra, probada con datos ficticios, no con un cierre real.

Publicada el 12 min de lectura2532 palabras

Esquema: la exportación del sumas y saldos entra en un script que puntúa cada cuenta, las líneas señaladas pasan a un asistente de IA que las explica y un controller revisa el resultado.
Esquema propio del método.Imagen: Agents Finance · Elaboración propia

Para qué sirve

Divide la revisión de anomalías del cierre en dos trabajos. Un script o unas pocas fórmulas de hoja de cálculo comparan el movimiento de cada cuenta este mes con sus 12 meses anteriores usando la mediana y una puntuación robusta (el z-score modificado), un filtro de importancia relativa y una comprobación frente al mismo mes del año anterior, y señalan importes que faltan y cambios de signo. El asistente de IA recibe solo esas alertas y el contexto que añadas, y su trabajo es clasificarlas, decir qué evidencia las confirmaría y redactar las preguntas para los responsables de cada cuenta.

Resultado esperado y límites

No hay resultados de empresas reales: es una propuesta. En el cierre ficticio que publicamos con esta entrada, el script señala los cinco problemas que sembramos (una periodificación de alquiler que falta, una factura de suministros duplicada, un aumento puntual de nóminas, un cambio de signo en comisiones bancarias y unos honorarios anuales) y marca dos movimientos grandes como coincidentes con el patrón del año anterior.

Ojo con la evidencia. Material redactado por este directorio a partir de prácticas publicadas. No lo hemos probado con datos reales: pruébalo con datos de ejemplo.

Qué se ha probado de verdad

El 19 de octubre de 2026 ejecutamos el script de puntuación publicado aquí sobre el conjunto de datos ficticio de esta entrada, y la tabla de resultados de abajo es su salida real. Comprobamos la fórmula del z-score modificado y el umbral de 3,5 en el manual del NIST. No hemos probado el prompt con un asistente de IA ni sobre el cierre de una empresa real: la respuesta de ejemplo la hemos escrito nosotros para mostrar qué debería contener una buena respuesta.

El prompt

Antes de usarloNo pegues datos confidenciales ni personales (nombres de clientes, NIF, IBAN, nóminas…) en un servicio de IA sin comprobar las condiciones de tu proveedor y el RGPD: usa datos de ejemplo o anonimizados. Revisa siempre el resultado: la IA puede equivocarse con cifras, cuentas o criterios fiscales, y la responsabilidad sigue siendo tuya.
Texto del prompt
Ayudas a un controller a revisar el cierre mensual de {{EMPRESA}} de {{MES}} antes de que llegue a dirección. No cambias ninguna cifra y no contabilizas nada.

Recibes:
1. ALERTAS: la salida de un script que ya ha comparado el movimiento de cada cuenta este mes con sus 12 meses anteriores (mediana, z-score modificado, variación frente al mismo mes del año anterior y marcas como "outlier", "cambio de signo", "falta" y "coincide con el año anterior"). Da esas cifras por buenas y no las recalcules.
2. CONTEXTO: {{CONTEXTO}}
3. Opcional: los apuntes del mayor de las cuentas señaladas en {{ARCHIVO_MAYOR}}.

Para cada cuenta señalada, de mayor a menor diferencia absoluta:
a) Clasifícala en una de estas categorías: probable error de registro, periodificación o corte, hecho puntual, patrón estacional, cambio real del negocio, aún no se puede saber.
b) Da el motivo en una frase, usando solo cifras de ALERTAS o filas del archivo del mayor (cita el número de fila).
c) Indica el documento o la persona que lo confirmaría (factura, contrato, resumen de nóminas, extracto bancario o el responsable de la cuenta según {{RESPONSABLES}}).
d) Si parece un error o una diferencia de periodificación, describe con palabras el asiento de corrección (cuentas y sentido). No des importes que no puedas rastrear.
e) Revisa la cuenta pareja habitual: si se movió un gasto, di si su pareja también se movió (sueldos y Seguridad Social, compras y existencias, ventas y clientes), usando solo ALERTAS.

Reglas:
- Si la información no basta, usa "aún no se puede saber" y escribe la pregunta exacta que hay que hacer.
- No llames "estacional" a una línea salvo que ALERTAS diga que coincide con el año anterior.
- No añadas cuentas que no estén en ALERTAS.
- Mantén el criterio de signos indicado: {{CRITERIO_SIGNOS}}.

Salida:
1. Una tabla: cuenta | clasificación | motivo | evidencia que pedir | acción propuesta | responsable.
2. Hasta cinco preguntas, cada una dirigida a una persona o equipo concreto.
3. Tres frases para el resumen del cierre en lenguaje llano, sin cifras que no estén en ALERTAS.

Sin JavaScript no verás el botón: selecciona el texto del bloque y cópialo. Licencia: Texto original de este directorio, de libre uso y adaptación.

Variables que debes rellenar

Sustituye cada marcador entre dobles llaves por tu dato antes de enviarlo.

{{EMPRESA}}
Nombre de la empresa o sociedad (basta un código interno).
{{MES}}
Mes que se revisa, por ejemplo septiembre de 2026.
{{CONTEXTO}}
Lo que ya sabes que ha pasado este mes: cambios de precios, contratos nuevos, altas de personal, bonus, facturas puntuales, cambios de criterio contable.
{{ARCHIVO_MAYOR}}
Opcional: nombre del archivo adjunto con los apuntes del mayor de las cuentas señaladas.
{{RESPONSABLES}}
Quién lleva cada área o grupo de cuentas (por ejemplo: nóminas, RR. HH.; suministros y alquiler, administración).
{{CRITERIO_SIGNOS}}
Cómo vienen los signos en tu exportación, por ejemplo: debe positivo y haber negativo, de modo que las ventas salen en negativo.

Cómo usarlo

Exporta 13 meses de movimientos por cuenta desde tu ERP, ejecuta el script o pega las fórmulas y entrega al asistente solo las filas señaladas y unas líneas de contexto. Empieza por un mes ya cerrado y revisado, compara la clasificación del asistente con lo que pasó de verdad y ajusta la importancia relativa y el umbral a tu empresa antes de usarlo en un cierre en curso.

En dos frases

Casi todas las sorpresas del cierre se ven en el sumas y saldos antes de que alguien pregunte por ellas: una periodificación de alquiler que nadie registró, una factura de suministros contabilizada dos veces, un haber donde debería haber un debe. Esta entrada te da un script pequeño que encuentra esas líneas con un estadístico difícil de engañar y un prompt que pide al asistente de IA solo lo que hace bien: explicar, clasificar y redactar las preguntas.

Por qué el código puntúa y el asistente explica

Pedir a un asistente de chat que «encuentre las anomalías» en un sumas y saldos pegado tiene dos problemas. El primero es aritmético: los modelos de lenguaje pueden leer mal una columna, perder un signo o calcular un porcentaje sobre la base equivocada, y el error vuelve en una frase muy segura. El segundo es la coherencia: si repites la misma petición, la lista de «anomalías» cambia, porque no hay una regla detrás.

Por eso separamos los trabajos. La detección es una regla determinista que puedes repetir y auditar. El asistente recibe el resultado de esa regla con la instrucción de darlo por bueno. Así, si una cifra está mal, está mal en un script que se puede leer, y el valor del asistente está en lo que le cuesta tiempo al controller: decidir si un movimiento es un error, una periodificación, un hecho puntual o un cambio real, y a quién preguntar.

La regla: mediana, MAD y un mínimo de importancia relativa

Para cada cuenta, el script toma los movimientos de los 12 meses anteriores y calcula su mediana y su desviación absoluta mediana (MAD). El mes actual se puntúa con el z-score modificado:

M = 0,6745 × (actual − mediana) / MAD

El manual de estadística NIST/SEMATECH describe esta puntuación y la recomendación de marcar como posibles outliers los valores con un z-score modificado mayor que 3,5 en valor absoluto. La usamos en lugar de la media y la desviación típica porque un solo mes raro en el histórico (un ajuste de cierre de ejercicio, un bonus) infla la desviación típica y esconde la siguiente anomalía; la mediana y la MAD apenas se mueven.

En contabilidad la puntuación sola no basta, así que el script añade tres reglas nuestras:

  • Importancia relativa: una línea solo es outlier si la diferencia frente a la mediana es de al menos 2.000 € y de al menos el 10 % de la mediana. Ajusta los dos umbrales a tu tamaño.
  • Importe que falta y cambio de signo: una cuenta que suele ser relevante y este mes está a cero, o que cambia de signo, se señala siempre, tenga la puntuación que tenga.
  • Mismo mes del año anterior: si una línea señalada está a ±15 % del mismo mes del año anterior, el script añade «coincide con el año anterior». No quita la alerta: avisa al revisor y al asistente de que la explicación puede ser estacional.

Una cuenta con exactamente el mismo importe cada mes (alquiler, amortización) tiene una MAD de cero. El script no divide por cero: cualquier cambio sobre un importe fijo se trata como infinitamente inusual, y el mínimo de importancia relativa decide si importa.

El cierre ficticio que puedes descargar

La muestra es una pequeña empresa comercial con 15 cuentas de pérdidas y ganancias y 13 meses de movimientos, de septiembre de 2025 a septiembre de 2026, con el signo que dan casi todos los ERP: debe en positivo y haber en negativo, así que las ventas salen negativas. Sembramos cinco problemas en septiembre de 2026 y dejamos dos picos estacionales reales.

Ejecútalo con python3 outlier_score.py trial-balance-movements.es.csv. El núcleo del script es este (los nombres de las marcas salen en inglés):

hist = [float(r[m]) for m in history]          # 12 meses anteriores
x = float(r[cur])                              # mes actual
med = st.median(hist)
mad = st.median(abs(h - med) for h in hist)
z = 0.6745 * (x - med) / mad if mad else (0.0 if x == med else float("inf"))
gap = x - med
material = abs(gap) >= MAT_ABS and abs(gap) >= MAT_PCT * abs(med)
yoy = (x - ly) / ly if ly else None            # mismo mes del año anterior
flags = []
if material and abs(z) > Z_LIMIT: flags.append("outlier")
if med and x * med < 0: flags.append("sign flip")
if med and x == 0 and abs(med) >= MAT_ABS: flags.append("missing")
if flags and yoy is not None and abs(yoy) <= YOY_BAND: flags.append("matches last year")

La misma regla en Excel

Si tu equipo prefiere la hoja de cálculo, pon los 13 meses en las columnas C a O (C es el mismo mes del año anterior y O el mes actual) y añade cinco columnas auxiliares por fila. En Excel 365 funcionan como fórmulas normales; en versiones anteriores, confirma la de la MAD como fórmula matricial. En Excel en español, las funciones son MEDIANA, ABS y SI, con punto y coma como separador.

P  Mediana del histórico        =MEDIANA(C2:N2)
Q  MAD                          =MEDIANA(ABS(C2:N2-P2))
R  z-score modificado           =SI(Q2=0;SI(O2=P2;0;"cambia un importe fijo");0,6745*(O2-P2)/Q2)
S  Diferencia frente a mediana  =O2-P2
T  Variación frente al año ant. =SI(C2=0;"";(O2-C2)/C2)

El histórico de C2:N2 son los 12 meses anteriores al actual, así que el mes actual nunca entra en su propia puntuación. Añade una columna con la prueba de importancia relativa, por ejemplo =Y(ABS(S2)>=2000;ABS(S2)>=0,1*ABS(P2)), y filtra por ella.

Qué encuentra el script en la muestra

Gráfico de barras de las siete cuentas señaladas en el cierre ficticio de septiembre de 2026, ordenadas por la diferencia frente a su mediana de 12 meses; ventas y compras aparecen como coincidentes con el año anterior y el resto como pendientes de explicación.
Salida real del script con nuestros datos ficticios · Agents Finance, elaboración propia
Cuenta Actual Mediana 12 m Diferencia z modificado vs año ant. Marcas
700 Ventas de mercaderías −181.940 −118.490 −63.450 −10,6 +8 % outlier, coincide con el año anterior
600 Compras de mercaderías 101.987 71.485 +30.502 13,9 +1 % outlier, coincide con el año anterior
640 Sueldos y salarios 61.250 47.623 +13.627 21,3 +30 % outlier
623 Servicios de profesionales independientes 9.800 3.049 +6.751 18,8 +3 % outlier, coincide con el año anterior
628 Suministros 7.230 2.269 +4.961 39,1 +240 % outlier
621 Arrendamientos y cánones 0 4.200 −4.200 n/a −100 % outlier, falta
626 Servicios bancarios y similares −310 313 −623 −41,0 −207 % cambio de signo

Hay dos cosas que conviene ver. Septiembre es un mes fuerte para esta empresa, así que ventas y compras salen señaladas pero con «coincide con el año anterior»: el revisor puede confirmarlas rápido. Y la línea de comisiones bancarias está por debajo del mínimo de importancia relativa, pero se señala porque cambió de signo, lo que suele indicar una devolución registrada en el lado equivocado o un asiento invertido.

Cómo usar el prompt

Copia el prompt del bloque de esta página, sustituye las variables y pega las filas señaladas como ALERTAS (la tabla de arriba o la salida del script). Añade dos o tres líneas de CONTEXTO: en nuestro ejemplo, «bonus puntual de permanencia pagado en septiembre; sin contratos nuevos; los honorarios de auditoría anual se facturan cada septiembre». Adjunta los apuntes del mayor de las cuentas señaladas solo si quieres que el asistente apunte a asientos concretos.

Qué debería contener una buena respuesta

No es una salida de un modelo: es la respuesta que esperaríamos de un junior cuidadoso, escrita por nosotros para que puedas juzgar lo que te devuelva el asistente.

  • 621 Arrendamientos, periodificación: falta la periodificación mensual; confirmar con el contrato de alquiler y el mayor de septiembre; acción propuesta: periodificar un mes de alquiler contra acreedores; responsable: administración.
  • 628 Suministros, probable error de registro: más del triple de lo habitual; pedir las facturas de septiembre del proveedor y buscar el mismo número de factura dos veces.
  • 640 Sueldos, hecho puntual: coincide con el bonus del CONTEXTO; revisar la cuenta pareja: la Seguridad Social a cargo de la empresa (642) no se movió, así que hay que preguntar a nóminas si falta la cotización del bonus.
  • 626 Servicios bancarios, aún no se puede saber: saldo acreedor este mes; preguntar a tesorería si se registró una devolución en la cuenta de comisiones.
  • 700, 600 y 623, patrón estacional: en línea con septiembre de 2025; confirmar y seguir.

La línea de sueldos es donde el asistente se gana el sitio: el script no sabe que un bonus lleva normalmente cotización a cargo de la empresa, pero un asistente bien informado puede ver que una cuenta se movió y su pareja no.

Cómo sacar los datos de tu ERP

El script necesita una fila por cuenta y una columna por mes, con movimientos (no saldos acumulados). Casi todos los ERP dan un sumas y saldos por periodo; si el tuyo solo da saldos, resta el mes anterior en una columna antes de puntuar.

  • Odoo: Contabilidad › Informes › Balance de comprobación (Trial Balance), con la comparación de periodos anteriores, exportado a XLSX.
  • Microsoft Dynamics 365 Business Central: el informe de balance de comprobación por periodo, o la página de movimientos de contabilidad abierta en Excel y resumida por cuenta y mes con una tabla dinámica.
  • NetSuite: Reports › Financial › Trial Balance por periodo, o una búsqueda guardada de transacciones resumida por cuenta y periodo.
  • QuickBooks Online y Xero: el informe Trial Balance de cada mes, o una cuenta de resultados por meses, que ya da movimientos.
  • Sage, A3 y Holded: el informe de sumas y saldos de cada mes exportado a Excel; en Holded también puedes leerlo a través de su servidor MCP si has conectado un asistente.

Mantén el criterio de signos de la exportación y díselo al asistente. Mezclar un informe en el que las ventas salen en negativo con otro en el que salen en positivo es la forma más común de obtener un cambio de signo que no es real.

Revisión humana: quién firma qué

  1. Antes de ejecutar: confirma la versión del cierre. Puntuar un sumas y saldos provisional que todavía va a cambiar produce alertas que desaparecen al día siguiente.
  2. Después del script: el controller lee primero la tabla de alertas, sin el asistente, y marca lo evidente.
  3. Después del asistente: cada línea de «probable error» y de «periodificación» se comprueba con el documento que indicó el asistente antes de proponer ningún asiento en el ERP. Los asientos los registra una persona, no el asistente.
  4. Al final: guarda la tabla de alertas, la respuesta del asistente y las decisiones en la carpeta del cierre, para que quien revise el mes siguiente sepa qué alertas se aceptaron y por qué.

Errores típicos

  • Dejar que el asistente calcule las puntuaciones. Pega el resultado, no la tabla en bruto con la instrucción de buscar outliers.
  • Usar la media y la desviación típica. Un solo mes raro en el histórico hace que todas las anomalías posteriores parezcan normales.
  • Mezclar saldos y movimientos. Las cuentas de balance crecen con el tiempo; puntúa sus movimientos o compara los saldos con otra regla.
  • No poner un mínimo de importancia relativa. Una cuenta de 40 € que se duplica puntúa más que una de 40.000 € que crece un 15 %; sin mínimo, la tabla se llena de ruido.
  • Tomar «coincide con el año anterior» como explicación. Significa «probablemente estacional»; alguien tiene que confirmarlo.
  • Olvidar las cuentas pareja. Bonus sin Seguridad Social, ventas sin clientes y compras sin variación de existencias son las anomalías que una regla de cuenta a cuenta no ve.

Límites

  • La regla compara un mes con doce. Las cuentas nuevas, un plan de cuentas reestructurado o un negocio que ha cambiado hace poco necesitan el criterio de una persona.
  • Pegar nombres de cuentas e importes en un servicio de IA saca esos datos de la empresa; usa un plan de empresa aprobado por tu compañía o anonimiza la sociedad.
  • El asistente puede inventarse un motivo que suene verosímil. La regla de «citar solo cifras de ALERTAS o números de fila» hace que sea más fácil detectarlo, no imposible.

Fuentes

Hemos redactado esta ficha con nuestras palabras a partir de las fuentes anteriores y comprobamos que los enlaces funcionaban el 19 de octubre de 2026. ¿Algún dato es incorrecto? Avísanos.

Newsletter

El boletín semanal de Agents Finance

Una vez por semana, los casos de uso, prompts y tutoriales nuevos de IA en finanzas y ERPs. Sin spam; te das de baja con un clic.

Responsable: Agents Finance. Finalidad: enviarte el boletín semanal. Base: tu consentimiento, que puedes retirar en cualquier momento con el enlace de baja de cada email. Encargado: Mailrelay (WEBLEGAL SL). Derechos: acceso, rectificación, supresión y demás, escribiendo a [email protected].

Entradas relacionadas

Seguir explorando