R&D LAB Método En uso Construido para nuestra propia planificación financiera

Chronos Ledger

Proyección de liquidez e impuestos para una GmbH, calculada de forma determinista

¿Cuánto dinero hay en qué cuenta un día dado y qué impuestos vencen hasta entonces? Calculado según las normas alemanas, sin modelo de lenguaje.

  • 0dependencias de ejecución, solo Node y SQLite
  • 1lista de filas de la que se calcula cada vista
  • 12vistas sobre la misma proyección
  • P10a P90: una banda alrededor de la curva, calculada analíticamente
Vista general de Chronos Ledger para la Beispiel GmbH: arriba el control de tiempo en el 11 de septiembre de 2026, debajo tarjetas de liquidez en la fecha elegida, punto más bajo y más alto del horizonte, posición no líquida y autonomía, y después las tarjetas Locked in vs modelled, Backtest y Actual balance

Todas las capturas de este artículo muestran una base de datos de demostración aparte, con cifras inventadas para una Beispiel GmbH. Las personas aparecen solo por su función.

Por qué se publica

Vendemos software y automatización, también allí donde las reglas son densas y tienen consecuencias. Chronos Ledger muestra cómo traducimos reglas fiscales y contables a código: cada regla en un solo lugar, la aritmética fiscal asegurada por una autoprueba, los totales centrales recalculados por un script de auditoría independiente. La aplicación es además un contraejemplo a la idea de que hoy un modelo de lenguaje tiene cabida en todo. Aquí no la tiene, porque una cifra de liquidez o de impuestos debe ser la misma en cada ejecución y poder comprobarse paso a paso.

La contabilidad mira hacia atrás: registra lo que ha ocurrido. Para planificar una empresa pequeña falta la otra dirección. Chronos Ledger calcula hacia delante y responde cuánto dinero habrá en qué cuenta un día determinado y qué habrá vencido hasta entonces en IVA, impuestos sobre beneficios y salarios. Para ello, la aplicación lleva en paralelo las cuentas de la empresa y las privadas, modela el IVA según la Ist-Versteuerung con Dauerfristverlängerung, calcula Körperschaftsteuer, Solidaritätszuschlag y Gewerbesteuer, proyecta el impuesto sobre la renta según el § 32a EStG y traslada cada plazo al siguiente día hábil según el § 108 AO. Un control deslizante de tiempo recalcula cada cifra para cualquier fecha elegida. Funciona en local con Node y SQLite y no presenta nada.

La decisión

Una cifra fiscal que sale distinta la segunda vez no es una cifra

Para una aplicación de planificación, hoy lo evidente es incorporar un modelo de lenguaje: una pregunta en palabras, una respuesta en palabras. Chronos Ledger no tiene ninguno, a propósito. Una previsión de liquidez se convierte en la base de decisiones sobre salarios, compras y reservas fiscales. Para eso, los mismos datos deben dar la misma cifra en cada ejecución, y cada cifra debe poder remontarse a los apuntes de los que salió. Se barajó un panel de preguntas y no se construyó; habría sido la primera llamada de API hacia fuera de esta aplicación.

La segunda decisión sostiene toda la aplicación. En cada petición, el horizonte de planificación se construye una sola vez como lista plana de filas con fecha: movimientos contabilizados, órdenes permanentes desplegadas, nóminas, los pagos derivados de IVA y de impuestos sobre beneficios, inversiones aprobadas y devoluciones esperadas del impuesto sobre la renta. Cada gráfico y cada tabla se calcula a partir de esa única lista. Dos vistas no deben discrepar nunca sobre el mismo día. Cuando la cabecera y la curva lo hicieron una vez, porque dos funciones recorrían por separado las mismas filas, el script de auditoría encontró la diferencia.

La tercera afecta a los impuestos. Qué es un apunte, qué ve de él la declaración de IVA y qué ve de él el cálculo del beneficio son tres columnas separadas. Un único tipo por apunte no puede expresar una transferencia entre cuentas propias, que mueve dinero en dos cuentas y no es ingreso en ninguna. Las categorías rellenan de antemano los tres valores, pero cada apunte conserva su propia copia.

Lo que a propósito no sale de aquí es una declaración de impuestos. La aplicación proyecta y prepara; no transmite nada a ELSTER, y cada vista fiscal lleva la advertencia de que se trata de una estimación.

Una previsión que no se puede recalcular es una opinión con decimales.

De la orden permanente a la curva

Cómo nace una cifra para un día cualquiera

  1. 01 Movimientos y series Los movimientos contabilizados y previstos están en la misma tabla, y un estado los distingue. Las órdenes permanentes se despliegan en fechas concretas y terminan en su fecha final, tras un número fijo de pagos o al final del horizonte. Una serie del día 31 cae el 28 en febrero y vuelve al 31 en marzo.
  2. 02 Pagos de impuestos derivados De las filas sale la Zahllast trimestral según la Ist-Versteuerung, que vence con la Dauerfristverlängerung el día 10 del segundo mes siguiente, y el siguiente día hábil si cae en fin de semana o festivo. Los impuestos sobre beneficios se colocan en sus fechas legales de pagos a cuenta. Un exceso de IVA soportado no llega el día del vencimiento, sino 21 días después.
  3. 03 Una lista Todo junto forma la única lista de filas. Los importes son céntimos enteros y las fechas, cadenas ISO sin zona horaria. Solo la tarifa del impuesto sobre la renta calcula en euros, porque la ley expresa sus constantes en euros.
  4. 04 Curva y banda De la lista sale la curva de liquidez por cuenta y en total. Cada fila prevista es una moneda al aire con su probabilidad introducida; de ahí se derivan el valor esperado, la varianza y una banda P10/P50/P90 en forma cerrada, sin números aleatorios. Los mismos datos dibujan siempre la misma banda.
  5. 05 Control de tiempo El control salta entre los días en que el dinero se mueve de verdad y los finales de mes. En cada punto se recalculan la cabecera, los saldos y las cuentas de créditos. Los gráficos, en cambio, están escalados por tiempo, para que el punto más bajo aparezca donde cae en el calendario.

IVA por fecha de pago, y por nada más

Con la Ist-Versteuerung, el IVA nace en el periodo en que se mueve el dinero. Por eso la aplicación guarda una fecha de pago y ninguna fecha de factura. Una segunda columna de fecha acabaría usándose tarde o temprano para un total, y entonces la declaración ya no cuadraría.

La misma vista indica lo que no ocurre: quien declara trimestralmente con Dauerfristverlängerung no realiza Sondervorauszahlung, porque el onceavo solo se aplica a quien declara mensualmente. En los servicios de proveedores extranjeros según el § 13b UStG, el impuesto se calcula sobre el importe en lugar de extraerse de él, y se registra en ambos lados de la declaración, sin efecto en la caja ni en la Zahllast.

El IVA ni siquiera puede recaer sobre dinero que no es una prestación. Salarios, transferencias entre cuentas propias, pagos de impuestos y préstamos quedan excluidos del IVA soportado en el cálculo, se haya marcado lo que se haya marcado en el formulario.

Vista de IVA con datos de demostración: una nota sobre Ist-Versteuerung, Dauerfristverlängerung y § 108 AO, seis tarjetas de cifras y un gráfico de barras con IVA repercutido, IVA soportado y Zahllast por trimestre de 2026 a 2029
Las reglas están encima de las cifras para que nadie lea las tarjetas sin ellas. Todos los importes son valores de demostración inventados.

Lo que está fijado en el código

01 Céntimos enteros, impuesto en puntos básicos Ningún importe en coma flotante llega al almacenamiento. El IVA se calcula en puntos básicos: extraído de un importe bruto, o añadido sobre el importe en inversión del sujeto pasivo, redondeado en ambos casos a céntimos enteros.
02 Un saldo constatado prevalece Cuando alguien introduce lo que una cuenta tenía realmente un día, la aplicación registra la diferencia como una fila de ajuste visible en lugar de cambiar el pasado. Esa fila es neutra para el beneficio y el IVA: una diferencia sin explicar no se convierte ni en ingreso ni en gasto.
03 Los apartados reparten, nunca suman Las reservas dentro de una cuenta son un reparto de su saldo. Lo que ningún apartado reclama aparece como no asignado. Existe exactamente una cifra de liquidez.
04 Créditos sin dinero no son liquidez Favores, remuneraciones aplazadas y deudas acordadas están en cuentas propias que no entran en la liquidez, y se suman por separado.
05 Impuestos sobre beneficios según la ley Körperschaftsteuer al 15 por ciento, Solidaritätszuschlag al 5,5 por ciento de ella, Gewerbesteuer como tipo base del 3,5 por ciento por el Hebesatz, que es un ajuste. Sin mínimo exento para una sociedad de capital, y la Gewerbesteuer no reduce su propia base.
06 Impuesto sobre la renta según el § 32a EStG La tarifa de 2026 en sus cinco tramos, con el tipo marginal derivado analíticamente y no por diferencias, porque la tarifa redondea hacia abajo a euros enteros. La implementación se contrastó con un cálculo independiente. Una devolución esperada se planifica como entrada con fecha, por defecto el 30 de septiembre del año siguiente.
07 Personas: valor frente a coste A una persona se le imputan todos los gastos asignados a ella, incluidos los honorarios de órdenes permanentes. El valor asignado se introduce a mano y exige una justificación, porque no hay una forma automática honesta de derivarlo.

Una inversión se aprueba, no se enumera

Una inversión prevista recibe dos condiciones: un beneficio mínimo después de impuestos en el ejercicio y un suelo de liquidez que no debe perforarse durante un periodo de comprobación tras el pago, incluidos los costes mensuales corrientes. Solo se pone en verde cuando se cumplen ambas.

La respuesta no es sí o no, sino una fecha. La aplicación recorre la curva hacia delante e indica el primer día a partir del cual la liquidez soporta el pago. Si una inversión tiene una fecha límite y no la alcanza, cuenta como perdida, para que una opción cerrada deje de presentarse como abierta.

Los escenarios actúan sobre el mismo cálculo. Inversiones, órdenes permanentes y apuntes se pueden asignar a un escenario y activar o desactivar con él. Quitar un elemento de un escenario lo devuelve a la planificación base en lugar de borrarlo.

Vista de inversiones con datos de demostración: tres posiciones, una aprobada y dos en espera, cada una con importe, umbral de beneficio, beneficio proyectado, liquidez mínima, fecha más temprana y periodo de comprobación
Tres posiciones inventadas. Dos esperan porque el beneficio proyectado está por debajo de su umbral, aunque la liquidez las soportaría.

Verificación

Tres maneras de desconfiar de la propia cifra

Una autoprueba asegura la aritmética: importes, plazos con sus traslados, IVA, impuestos sobre beneficios, los tramos de la tarifa del impuesto sobre la renta, series, filas de ajuste y la banda de incertidumbre. Quien cambia un tipo o una constante de la tarifa cambia en el mismo paso la comprobación correspondiente. Un cambio silencioso de constante es exactamente el fallo que esta aplicación no puede absorber.

Un script de auditoría recalcula por segunda vez los totales centrales directamente a partir de las tablas en bruto, con código propio: liquidez de hoy, punto más bajo, final del horizonte, IVA y base del beneficio. También señala apuntes que se contradicen a sí mismos, por ejemplo una salida clasificada como ingreso. Fue revelador de dónde venían las discrepancias: más de una vez el fallo estaba en el script de auditoría, porque todavía no conocía una regla que el motor ya tenía. Desde entonces, cada regla nueva lleva la pregunta de si el script de auditoría la conoce.

Y la aplicación registra sus propias previsiones: una vez al día, solo finales de mes, nunca sobrescritas. Más tarde se evalúan frente a lo que las cuentas tenían de verdad según los movimientos contabilizados, nunca frente a una previsión más reciente. El error se promedia en valor absoluto, para que una cifra demasiado alta y otra demasiado baja no se anulen entre sí.

Lo que calcula y lo que a propósito no hace

Calculado

  • Liquidez por cuenta y en total, para cada día del horizonte.
  • IVA por trimestre con plazos, traslados e inversión del sujeto pasivo.
  • Körperschaftsteuer, Solidaritätszuschlag, Gewerbesteuer y sus fechas de pagos a cuenta.
  • Un impuesto sobre la renta proyectado según el § 32a EStG con su devolución esperada.
  • El primer día en que una inversión cumple ambas condiciones.
  • Una banda P10/P50/P90 a partir de probabilidades introducidas.

A propósito no

  • Ninguna transmisión a ELSTER y ningún asesoramiento fiscal. La presentación se hace en otro sitio.
  • Sin contabilidad por partida doble. La aplicación proyecta, no contabiliza.
  • Sin retención salarial calculada desde el bruto. Se adoptan las cifras de la nómina.
  • Sin modelo de lenguaje y sin simulación con números aleatorios.
  • Sin correlación entre pagos dentro de la banda. Si los impagos están relacionados, la dispersión real es mayor, y eso se indica junto a la banda.
  • Sin compensación de pérdidas. Una pérdida, por ahora, simplemente no produce impuesto.

Personas y hoja, con datos inventados

Vista de personas con datos de demostración: cuatro tarjetas de cifras, un diagrama de dispersión de valor asignado frente a coste con diagonal, un libro de créditos y tres tarjetas de personas nombradas solo por su función
Valor frente a coste por persona. Por encima de la diagonal, alguien aporta más de lo que cuesta; el libro de créditos de al lado no cuenta como liquidez.
Vista de hoja con datos de demostración: una cuadrícula de saldos iniciales para cinco cuentas y debajo otra que reparte las cuentas en apartados con nombre, porcentaje e importe objetivo
Entrada como en una hoja de cálculo, incluido pegar desde Excel. Los apartados reparten una cuenta existente y no añaden dinero.

Para qué sirve esta construcción

  • Pequeñas sociedades de capital que quieren ver si salarios, reservas y fechas fiscales encajan en los próximos meses.
  • Decisiones de compra ligadas al beneficio y a la liquidez en lugar de a una sensación.
  • Aplicaciones de negocio con reglas legales densas, en las que cada cifra debe ser reproducible y trazable.
  • Como plantilla: un conjunto de reglas en código, con autoprueba y script de auditoría independiente, también más allá de los impuestos.

Por qué se publica

Lo que esto significa para su proyecto

Más del laboratorio

¿Tiene un conjunto de reglas que hoy vive en una hoja de cálculo y cuyas cifras alguien debe poder comprobar? Para eso existe un piloto.

Contactar

Grace Hopper

“La frase más dañina del idioma es: siempre se ha hecho así.”