Saltar al contenido principal

Previsión de Flujo de Caja: El Método de Previsión Rodante de 13 Semanas

Esta guía ofrece un método sencillo, de nivel CFO, para gestionar la liquidez de tu empresa. Al construir una previsión de caja rodante de 13 semanas, puedes ver tu pista de caja (cash runway) semana a semana, dirigir estratégicamente los cobros y los pagos, y eliminar las sorpresas financieras. Es un sistema pensado para fundadores, y esta página incluye el modelo real: un libro de trabajo respaldado por fórmulas con datos de ejemplo, además del libro mayor de Beancount de ejemplo detrás de sus dos primeras semanas (consulta las descargas más abajo).

Dos cosas que esta guía no es: una previsión son estimaciones prospectivas que tú escribes, mientras que los datos reales contables son movimientos bancarios ya registrados en tu libro mayor, así que el libro de trabajo los mantiene separados. Congelas una copia de tu plan como una baseline (línea base) fechada, escribes el efectivo bancario de cada semana cerrada en una hoja Actuals separada, y lees la diferencia en una hoja Variance; el plan contra el que comparas nunca se sobrescribe. Nada aquí se sincroniza automáticamente: el libro de trabajo no tiene macros ni conexiones externas, y ningún paso obtiene datos de tu banco o de Beancount por sí solo.

¿Por Qué 13 Semanas?​

Una previsión de 13 semanas es el estándar de oro para la gestión operativa de la caja por varias razones clave:

  • Control a Corto Plazo: Cubre aproximadamente un trimestre comercial, dándote una visión clara de tu liquidez inmediata. Este horizonte es lo suficientemente largo para incluir 2–3 ciclos de nómina, remesas de impuestos y los plazos de pago habituales de proveedores, pero lo suficientemente corto para seguir siendo altamente preciso y accionable.
  • Visión de Cobros y Pagos: La previsión utiliza el "método directo", centrándose puramente en la entrada y salida de efectivo. No se trata de contabilidad por devengo ni de rentabilidad; se trata de lo que realmente entrará o saldrá de tu cuenta bancaria, asegurando que la previsión se vincule directamente con tu saldo bancario.
  • Rodante, No Estática: Esto no es un presupuesto único. Cada semana, eliminas la semana que acaba de pasar, agregas una nueva semana al final (semana 13) y actualizas tus supuestos. Esto mantiene constante el horizonte prospectivo, convirtiendo la previsión en una disciplina dinámica y semanal.

Lo Que Construirás​

  1. Una Cuadrícula de Previsión: El núcleo del sistema es una hoja con 13 columnas (Semana 1 a Semana 13) y secciones claramente definidas: Caja Inicial, Cobros, Pagos, Caja Neta y Caja Final. Tres hojas complementarias con las mismas filas conservan una Baseline (línea base) congelada de ese plan, los Actuals que registró tu banco, y la Variance entre ambos.
  2. Mapeo de Categorías: Un sistema simple para mapear las transacciones de tu libro mayor a las categorías de la previsión (por ejemplo, todos los pagos de Stripe se mapean a "Cobros de Clientes"; los pagos de Gusto se mapean a "Nómina"). La pestaña Vendor Mapping del libro de trabajo ya codifica este mapa, incluida la regla de no doble conteo de banco/tarjeta; parte de ella en lugar de inventar la tuya.
  3. Un Ritmo Semanal: Un proceso repetible para registrar los datos reales, revisar la variación con respecto a la línea base a la que te comprometiste, reestimar las semanas futuras, y un conjunto de disparadores predefinidos para actuar cuando se alcanzan umbrales financieros.

Descarga los archivos iniciales​

Sáltate la configuración desde cero: esta guía incluye un libro de trabajo respaldado por fórmulas con datos de ejemplo, además del libro mayor de ejemplo detrás de sus dos primeras semanas.

  • Libro de trabajo de previsión de 13 semanas (XLSX, v1.1.0) — cash-flow-forecast-13-week-es.xlsx. Supuestos editables, semanas encadenadas por fórmulas, una instantánea de Baseline solo con valores, una hoja de Actuals, una hoja de Variance solo con fórmulas y una pestaña de mapeo de proveedores. Cada número de ejemplo es el ejemplo resuelto; reemplázalo con el tuyo propio (consulta Ejemplo vs. tus datos más abajo).
  • Libro mayor y datos reales de ejemplo (libro mayor de Beancount, .bean) — sample.bean. Libro mayor de ejemplo equilibrado cuyo efectivo bancario de las semanas W1–W2 es exactamente lo que contiene la hoja Actuals del libro de trabajo para sus dos primeras semanas.

Cómo funcionan los archivos iniciales (lee esto antes de escribir)​

Hojas. El libro de trabajo (cash-flow-forecast-13-week-es.xlsx, v1.1.0) tiene seis hojas, en este orden:

  • Forecast — tu plan activo: las 13 semanas fechadas, supuestos, cobros, pagos, caja neta/final. Edítalo tantas veces como quieras.
  • Baseline — una instantánea solo con valores de las filas 2–29 de Forecast, etiquetada con una versión en B31 y una fecha de corte en B32. No contiene fórmulas, así que nada de lo que hagas en otro lugar puede cambiarla.
  • Actuals — el efectivo bancario que realmente se movió en cada semana cerrada, introducido por ti: un estado en la fila 3 (complete o partial), importes por categoría en las mismas filas que Forecast, y un saldo de extracto opcional en la fila 30.
  • Variance — solo fórmulas: Actual − Baseline para cada categoría y total, emparejados por la fecha de inicio de semana, más una leyenda que explica cada palabra de estado. Nunca lee Forecast.
  • Vendor Mapping — el mapa de libro mayor→categoría con la regla de conteo de efectivo de banco/tarjeta por fuente.
  • Notes — mecánica, la revisión semanal, los interruptores de escenarios y la versión, duplicado desde el generador para que el archivo se explique a sí mismo sin conexión.

Las cuatro cuadrículas semanales comparten un solo diseño: las semanas W1–W13 son las columnas B–N, la fila 2 contiene la fecha de inicio de cada semana, la caja inicial es la fila 10, los cobros son las filas 12–14 (total 15), los pagos son las filas 17–26 (total 27), la fila 28 es la neta y la 29 la final. Así que B12 son los cobros de clientes de W1 en todas y cada una de ellas.

Base temporal. Las semanas empiezan en lunes, W1 comienza el 2026-09-14 hasta W13 que comienza el 2026-12-07 (fila 2 de Forecast; edita estas fechas cuando adoptes el modelo — cada fórmula es relativa a la semana, así que la cadena sobrevive — y llévalas a Baseline y Actuals cuando captures tu línea base). Una transacción pertenece a la semana que contiene su fecha de registro, de lunes a domingo.

Unidades. USD enteros en todo momento (formato numérico #,##0). La empresa de ejemplo es un SaaS en etapa semilla que abre con 85.000, con nómina semanal alternando 0 / 11.000, alquiler mensual y un pago automático de préstamo de 900/semana.

Qué escribes tú vs. qué se calcula. En Forecast, las celdas azules son entradas manuales y todo lo demás es una fórmula (Actuals funciona de la misma manera con sus propias entradas, descritas en Capturar una línea base y en la revisión semanal más abajo):

  • Entradas: saldo inicial B5 (85.000), interruptores B6/B7 (1,0), umbral mínimo B8 (40.000), las tres bases de categorías de cobros, las diez bases de categorías de pagos, y las fechas de inicio de semana en Forecast.
  • Fórmulas (mostradas para la columna B, semana 1 — cada semana posterior desplaza la letra de columna): Caja Inicial B10 = $B$5 (las semanas 2–13 en su lugar arrastran el saldo, p. ej. C10 = B29); Total Cobros B15 = B12*$B$6+B13*$B$7+B14; Total Pagos B27 = SUM(B17:B26); Neta B28 = B15-B27; Final B29 = B10+B28.
  • El recálculo es Automático y el archivo establece fullCalcOnLoad, así que Excel, LibreOffice y Numbers recalculan al abrir (el archivo no almacena valores de fórmula en caché). Cambia una celda azul y las 13 semanas se mueven — por ejemplo, poner el interruptor de cobros B6 en 1,2 lleva los cobros de W1 de 12.200 a 14.600 y la caja final de W1 de 87.500 a 89.900.
  • Regenera el archivo prístino en cualquier momento con yarn generate:cash-flow-forecast (generador: scripts/generate-cash-flow-forecast.py, escritor openpyxl 3.1.5; --verify reabre el archivo y comprueba que cada celda de total contiene una fórmula real).

Ejemplo vs. tus datos. Tres cosas vienen precargadas, y las tres son el ejemplo resuelto, no tu negocio:

  • las celdas azules en Forecast (el plan actual de la empresa de ejemplo);
  • la instantánea en Baseline, versión B1 a fecha 2026-09-11 — el plan tal como estaba antes de que cerraran las dos primeras semanas;
  • las entradas de W1–W2 en Actuals (columnas B–C), que son el efectivo bancario del libro mayor de ejemplo (sample.bean, arriba). W3–W13 se dejan en blanco.

Como la Baseline y los Actuals de ejemplo difieren, la hoja Variance se abre en una comparación real: W1 termina +500 por delante del plan y W2 +300 (consulta Revisión de la variación más abajo). Antes de tu propia primera revisión, reemplaza las tres: escribe tu plan en Forecast, borra las entradas de Actuals de ejemplo, y captura tu propia Baseline sobre B1 (pasos más abajo). Los dos interruptores (B6 escala todos los cobros de clientes, B7 escala todos los prepagos) son lo único que está pensado para permanecer genérico, para jugar con escenarios.

¿Vienes de la v1.0.0? El diseño de la hoja Forecast no cambió, así que puedes trasladar tu plan de forma deliberada: en tu archivo antiguo copia solo los rangos de entrada — B2:N2 (fechas), B5:B8, B12:N14 y B17:N26 — y pégalos como valores en las mismas direcciones en el Forecast del archivo nuevo, nunca sobre las filas de fórmulas. La v1.0.0 no conservaba ninguna línea base, así que cualquier semana pasada que sobrescribiste con datos reales no tiene plan recuperable: escribe el efectivo bancario de esas semanas en Actuals y comienza tu primera Baseline desde el Forecast de hoy.

Estructura (Las Filas Que Necesitas)​

Tu hoja de previsión debe estructurarse con las siguientes filas para capturar todos los movimientos de efectivo. Cómo está diseñado el libro de trabajo: las filas siguientes viven en Forecast (las 13 semanas fechadas con Caja Inicial, tres categorías de cobros, diez categorías de pagos, Neta y Final), y Baseline, Actuals y Variance las repiten fila por fila; Vendor Mapping mapea las fuentes del libro mayor a estas categorías, incluida la regla de no doble conteo de banco/tarjeta, y Notes explica la mecánica sin conexión. En Forecast, los cobros se agrupan como Cobros de Clientes, Nuevas Reservas/Prepagos y Otras Entradas; los pagos se agrupan como Nómina, Contratistas, Nube/Hosting, Software/SaaS, Marketing, Alquiler, Legal y Contabilidad, Impuestos y Tasas, Servicio de Deuda y Puntuales; los totales se encadenan Caja Inicial → Total Cobros → Total Pagos → Neta → Final.

  • Saldo de Caja Inicial (Debe cuadrar con el Saldo de Caja Final de la semana anterior)

  • Cobros (Entradas de Efectivo)

    • Cobros de Clientes: Efectivo que esperas cobrar de facturas existentes (Cuentas por Cobrar).
    • Nuevas Reservas/Prepagos: Pagos por adelantado que esperas de nuevos acuerdos que cierran dentro de la ventana de 13 semanas.
    • Otras Entradas: Cualquier otro efectivo que entre, como devoluciones de impuestos, ingresos por intereses o financiación de subvenciones.
  • Pagos (Salidas de Efectivo)

    • Nómina: El coste total en efectivo, incluido el pago neto a empleados y todos los impuestos de nómina a cargo del empleador.
    • Contratistas y Freelancers: Pagos a no empleados.
    • Nube/Hosting (COGS): Costes de infraestructura principales como AWS, GCP, etc.
    • SaaS/Herramientas: Todas tus suscripciones de software.
    • Marketing: Gasto en publicidad, honorarios de agencias y otros costes relacionados con la marca.
    • Alquiler/Oficina: Costes de oficina física.
    • Legal y Contabilidad: Honorarios de servicios profesionales.
    • Impuestos y Tasas: Remesas de impuesto sobre ventas y otros pagos gubernamentales.
    • Servicio de Deuda: Pagos tanto de principal como de intereses de cualquier préstamo.
    • Puntuales: Pagos irregulares e infrecuentes como primas de seguros anuales, depósitos de garantía o hardware/capex (portátiles, equipos) — cualquier cosa sin su propia fila arriba termina aquí.
  • Flujo de Caja Neto (= Total Cobros − Total Pagos)

  • Saldo de Caja Final (= Caja Inicial + Flujo de Caja Neto)

Ejemplo resuelto de 13 semanas (USD)​

La tabla siguiente es la hoja Forecast del libro de trabajo para la empresa de ejemplo, semana a semana — el plan actual, re-previsto después de que cerraran W1 y W2, así que esas dos columnas ahora contienen lo que el banco realmente hizo. W1 y W2 son valores reales del libro mayor — equivalen a los totales que yarn check:cash-flow-actuals deriva de sample.bean (cobros 12.200 / 13.200, pagos 9.700 / 17.200, cierre 87.500 / 83.500). W3–W13 son supuestos del libro de trabajo a partir de las bases de ejemplo del generador (no registrados en el libro mayor). El plan al que la empresa se comprometió de antemano se conserva por separado en Baseline y difiere de estas columnas W1–W2; Revisión de la variación más abajo compara ambos. La moneda es USD entero; Cierre = Inicial + Cobros − Pagos cada semana.

LíneaW1W2W3W4W5W6W7W8W9W10W11W12W13
Inicial85.00087.50083.50092.50082.00081.00072.00080.00072.80075.30063.80079.80071.800
Cobros12.20013.20015.2009.20018.2008.20014.20014.20012.2009.20022.2009.20012.200
Pagos9.70017.2006.20019.70019.20017.2006.20021.4009.70020.7006.20017.2009.700
Neta2.500-4.0009.000-10.500-1.000-9.0008.000-7.2002.500-11.50016.000-8.0002.500
Cierre87.50083.50092.50082.00081.00072.00080.00072.80075.30063.80079.80071.80074.300

La Mecánica Rodante (tal como está construida en el libro de trabajo)​

La lógica de la previsión rodante es simple y potente — y en la descarga ya está cableada como fórmulas en la hoja Forecast (filas entre paréntesis):

  • Caja Inicial (Semana 1) = supuesto de saldo inicial — celda B10 = $B$5.
  • Caja Inicial (Semana n) = Caja Final (Semana n−1) — p. ej. C10 = B29 (fila 10, semanas 2–13).
  • Total Cobros (Semana n) = Cobros de Clientes × interruptor de cobros + Prepagos × interruptor de reservas + Otras — p. ej. B15 = B12*$B$6+B13*$B$7+B14 (fila 15).
  • Total Pagos (Semana n) = SUM de las 10 filas de categorías — p. ej. B27 = SUM(B17:B26) (fila 27).
  • Caja Neta (Semana n) = Total Cobros − Total Pagos — p. ej. B28 = B15-B27 (fila 28).
  • Caja Final (Semana n) = Caja Inicial + Caja Neta — p. ej. B29 = B10+B28 (fila 29).

Las mismas filas existen en Actuals como totales simples (B15 = SUM(B12:B14), B27 = SUM(B17:B26), B28 = B15-B27, B29 = B10+B28, C10 = B29), con la caja inicial real de la semana escrita una vez en Actuals!B10. Actuals no tiene interruptores y nunca hace referencia a otra hoja.

Capturar una línea base (una vez por horizonte)​

Haz esto cuando tu Forecast contenga el plan contra el que quieres ser medido — antes de que cierre la primera semana.

  1. Copia el plan como valores. Selecciona Forecast!B2:N29 y copia. Selecciona Baseline!B2 y pega solo valores — Excel: Pegado Especial → Valores; LibreOffice: Pegado Especial → Solo Valores; Numbers: Edición → Pegar Resultados de Fórmulas. Un pegado normal traería fórmulas activas y la "línea base" seguiría silenciosamente cada edición posterior.
  2. Etiquétala. Escribe una versión (por ejemplo B1) en Baseline!B31 y la fecha de hoy en Baseline!B32. Ambas están debajo del bloque pegado, así que una captura posterior nunca las sobrescribe.
  3. Alinea las semanas. Copia Baseline!B2:N2 y pega valores en Actuals!B2, para que ambas hojas nombren las mismas 13 fechas de inicio de semana, y escribe el saldo bancario con el que empiezas en Actuals!B10.

A partir de aquí, escribir datos reales, editar Forecast o mover un interruptor recalcula Forecast y Variance y deja Baseline exactamente como se capturó.

Tu revisión semanal de lunes (contra este libro de trabajo)​

  1. Registra la semana en Actuals — nunca en Forecast. En la columna cuya fecha de la fila 2 sea el lunes que acaba de cerrar, escribe el efectivo bancario de la semana por categoría en las filas 12–14 y 17–26 (mapeo más abajo). Escribe 0 donde no se movió efectivo: una celda en blanco significa "aún no introducido", no cero. Pon el saldo de cierre del extracto bancario en la fila 30; la fila 31 debería entonces mostrar 0. Cualquier otra cosa es un error de mapeo — normalmente un cargo de tarjeta contado o un barrido (sweep) retenido — no un error del banco.
  2. Comprueba que la semana está completa. Escribe complete en la fila 3 una vez que cada fila de categoría contenga un número, o partial mientras la semana siga abierta (el desplegable ofrece ambas). Variance compara una semana solo cuando está complete, cada categoría está introducida y la fecha de Actuals es igual a la fecha de Baseline en la misma columna.
  3. Lee Variance. La fila 3 nombra el estado de cada semana; solo las semanas compared muestran números, y cualquier otro estado muestra n/a, nunca 0, así que una semana no introducida no puede pasar por "según el plan". Los signos son Actual − Baseline (la columna O los repite): cobros, neta y final positivos = más efectivo de lo previsto; pagos positivos = más gasto de lo previsto. La fila 29 es acumulativa — incluye todas las semanas anteriores — y existe solo mientras todas las semanas hasta ella estén compared. Las filas 32–35 expresan los totales como porcentaje de la línea base (n/a cuando la línea base es cero).
  4. Reestima el futuro en Forecast. Actualiza las celdas azules para las próximas 2–4 semanas con la información más reciente (facturas recién enviadas, próximos pagos a proveedores, fechas de nómina confirmadas). Para mantener una visión prospectiva completa de 13 semanas, rueda la ventana de Forecast: desplaza sus entradas azules, incluidas las fechas de la fila 2, una columna a la izquierda (la antigua Semana 2 se convierte en Semana 1), luego limpia la columna N y dale la nueva fecha de Semana 13. Las fórmulas de arrastre se reanclan automáticamente; Baseline, Actuals y Variance no se tocan.

Rodar el horizonte de revisión (un paso deliberado, no semanal)​

Baseline y Actuals permanecen en el horizonte que capturaste hasta que decidas moverlos — normalmente cuando el Forecast ha rodado un mes o un trimestre hacia adelante, o el plan cambió lo suficiente como para querer una nueva vara de medir.

  1. Archiva. Guarda una copia del libro de trabajo (por ejemplo cash-flow-forecast-B1.xlsx). Conserva la antigua línea base, sus datos reales y su variación juntos; el archivo de trabajo no conserva historial.
  2. Limpia las entradas reales. En Actuals, limpia las filas 3, 12–14, 17–26 y 30 en las columnas B–N, y B10. Deja C10:N10, las filas 15 y 27–29 y la fila 31 en paz — son fórmulas.
  3. Captura una nueva línea base desde el Forecast de hoy con la siguiente versión (B2) y la fecha de hoy, luego alinea las fechas de Actuals y el saldo inicial exactamente como en Capturar una línea base más arriba.

Nunca insertes ni elimines columnas de semanas. Si vuelves a capturar una línea base pero olvidas volver a fechar Actuals, cada semana afectada muestra date mismatch (discrepancia de fecha) en lugar de comparar una semana con el plan de otra semana.

Mapeo de Beancount a Tu Previsión​

Alcance del efectivo bancario (la regla que evita el doble conteo). Los datos reales semanales son registros en Assets:Bank:* únicamente — un solo alcance que resuelve ambas trampas:

  • Tarjetas de crédito: una compra con tarjeta se registra en Liabilities:CreditCard:* y no mueve efectivo bancario, así que no se cuenta cuando se carga. El efectivo sale una vez, en la liquidación (el pago banco→tarjeta). Contar el cargo más la liquidación cuenta el mismo gasto dos veces. En el libro mayor de ejemplo, W1 contiene 420,00 USD de cargos de SaaS con Amex (solo pasivo, ignorados) junto a la liquidación del extracto de agosto de 600,00 USD (contada). El total ingenuo de "salidas bancarias + cargos de tarjeta" para W1 es 10.120,00 USD — exactamente 420,00 demasiado alto; el libro de trabajo cuenta 9.700,00.
  • Transferencias internas: un barrido Checking↔Savings tiene dos patas bancarias opuestas, así que se anula a cero dentro de este alcance y se excluye de ambos cobros y pagos. Los barridos de ejemplo de 3.000,00 USD (W1) y 1.500,00 USD (W2) inflarían si no ambos lados en esos importes.
  • Corolario: mapea las patas bancarias, no las patas de Ingresos/Gastos. El principal del préstamo no es un gasto pero sí es una salida bancaria (los pagos automáticos de ejemplo de 900,00 USD = 800 de principal + 100 de intereses, todos contados en Servicio de Deuda); una compra con tarjeta sí es un gasto pero aún no es una salida bancaria.

División cobros/pagos. A partir de las patas bancarias exportadas: las patas positivas son cobros, las patas negativas son pagos, las patas de transferencias se excluyen. Mapa de categorías (igual que la pestaña Vendor Mapping): pagos de Stripe/PayPal → Cobros de Clientes; transferencias de nuevos clientes → Nuevas Reservas / Prepagos; intereses bancarios/subvenciones → Otras Entradas; Gusto/ADP → Nómina; AWS/GCP → Nube/Hosting; SaaS pagado por banco → Software/SaaS; arrendador → Alquiler; bufete de abogados → Legal/Contabilidad; autoridad fiscal → Impuestos y Tasas; pago automático de préstamo → Servicio de Deuda.

  • Manejo del Impuesto sobre Ventas: Aunque el impuesto sobre ventas no es ingreso, es una partida de flujo de caja. Trata los cobros del impuesto sobre ventas como un cobro de efectivo y la remesa al gobierno como un pago. El impacto en los ingresos vive en tus libros de devengo, pero el movimiento de efectivo importa aquí.

Extracto de Beancount que alimenta W1​

Cada registro a continuación también existe en el sample.bean entregado. Guardado solo, este extracto pasa uvx --from beancount bean-check y produce los cobros (12.200), pagos (9.700) y cierre (87.500) de W1 de la tabla una vez que aplicas el alcance del efectivo bancario anterior (excluye el barrido Checking↔Savings de ambos lados; cuenta la liquidación de Amex, no los cargos del pasivo).

option "title" "Cash forecast sample — W1 excerpt"
option "operating_currency" "USD"
 
2026-09-13 open Assets:Bank:Checking USD
2026-09-13 open Assets:Bank:Savings USD
2026-09-13 open Liabilities:CreditCard:Amex USD
2026-09-13 open Liabilities:Loan USD
2026-09-13 open Equity:Opening-Balances USD
2026-09-13 open Income:Sales USD
2026-09-13 open Income:Interest USD
2026-09-13 open Expenses:Contractors USD
2026-09-13 open Expenses:Cloud USD
2026-09-13 open Expenses:Software USD
2026-09-13 open Expenses:Marketing USD
2026-09-13 open Expenses:Rent USD
2026-09-13 open Expenses:Interest USD
 
2026-09-13 * "Opening balances"
  Assets:Bank:Checking            80000.00 USD
  Assets:Bank:Savings              5000.00 USD
  Liabilities:CreditCard:Amex      -600.00 USD
  Liabilities:Loan               -20000.00 USD
  Equity:Opening-Balances        -64400.00 USD
 
2026-09-14 * "Stripe" "Customer receipts W1"
  Assets:Bank:Checking            12000.00 USD
  Income:Sales                   -12000.00 USD
 
2026-09-15 * "Contractor" "Contractors W1"
  Expenses:Contractors              1500.00 USD
  Assets:Bank:Checking             -1500.00 USD
 
2026-09-15 * "AWS" "Cloud hosting W1"
  Expenses:Cloud                    2200.00 USD
  Assets:Bank:Checking             -2200.00 USD
 
2026-09-16 * "Bank" "Checking -> Savings sweep"
  Assets:Bank:Savings               3000.00 USD
  Assets:Bank:Checking             -3000.00 USD
 
2026-09-17 * "SaaS vendor" "Amex SaaS charges"
  Expenses:Software                  250.00 USD
  Liabilities:CreditCard:Amex       -250.00 USD
 
2026-09-17 * "SaaS vendor" "Amex SaaS charges"
  Expenses:Software                  170.00 USD
  Liabilities:CreditCard:Amex       -170.00 USD
 
2026-09-18 * "Amex" "August statement settlement"
  Liabilities:CreditCard:Amex        600.00 USD
  Assets:Bank:Checking              -600.00 USD
 
2026-09-19 * "Landlord" "Rent W1"
  Expenses:Rent                     3500.00 USD
  Assets:Bank:Checking             -3500.00 USD
 
2026-09-19 * "Agency" "Marketing W1"
  Expenses:Marketing                1000.00 USD
  Assets:Bank:Checking             -1000.00 USD
 
2026-09-19 * "Bank" "Interest W1"
  Assets:Bank:Checking               200.00 USD
  Income:Interest                   -200.00 USD
 
2026-09-19 * "Lender" "Loan autopay W1"
  Liabilities:Loan                   800.00 USD
  Expenses:Interest                  100.00 USD
  Assets:Bank:Checking              -900.00 USD

Semana resuelta: W1 de principio a fin (2026-09-14 – 2026-09-20)​

El efectivo bancario inicial es 85.000,00 (Checking 80.000 + Savings 5.000 el 2026-09-13) — el valor en Actuals!B10. Las patas bancarias de W1 del libro mayor, tras excluir el par de barrido de 3.000,00, van a la columna B de la hoja Actuals; cada categoría no listada se escribe como 0, y la fila 3 se establece en complete:

Línea de Actuals (celda)Patas bancariasImporte
Cobros de Clientes (B12)Stripe 12.00012.000,00
Otras Entradas (B14)Intereses bancarios 200200,00
Total CobrosB15 = SUM(B12:B14) = 12.000 + 0 + 20012.200,00
Contratistas (B18)1.5001.500,00
Nube/Hosting (B19)AWS 2.2002.200,00
Software/SaaS (B20)Liquidación de Amex 600 (cargos excluidos)600,00
Marketing (B21)Agencia 1.0001.000,00
Alquiler (B22)Arrendador 3.5003.500,00
Servicio de Deuda (B25)Pago automático de préstamo 900900,00
Total PagosB27 = SUM(B17:B26)9.700,00
NetaB28 = B15−B27+2.500,00
FinalB29 = B10+B28 = 85.000 + 2.50087.500,00

Arrastre hacia W2. C10 = B29, así que W2 abre en 87.500,00. Sus patas bancarias dan cobros 8.000 (Stripe) + 5.000 (prepago) + 200 (intereses) = 13.200,00 y pagos 11.000 (nómina de Gusto) + 1.500 + 2.200 + 600 (SaaS debitado por banco) + 1.000 + 900 = 17.200,00; neta −4.000,00, final 83.500,00 — exactamente la columna W2 del libro de trabajo en Actuals (y en la hoja Forecast re-prevista). Los saldos de extracto 87.500 y 83.500 están en Actuals!B30:C30, así que la fila 31 muestra 0 para ambas semanas: esa es tu prueba de que el mapeo funciona. Lo que las semanas hicieron contra el plan es una cuestión aparte, respondida en Variance más abajo.

Reprodúcelo (verificado 2026-09-09, Beancount 3.2.3 + beanquery 0.2.0)​

uvx --from beancount bean-check public/downloads/cash-flow-forecast/sample.bean
yarn check:cash-flow-actuals

El verificador ejecuta bean-check (las propias aserciones balance del libro mayor prueban la caja final de cada semana), las consultas de exportación a continuación, y un arrastre independiente en Python que comprueba que los tres coinciden — W1 12.200,00 / 9.700,00 / 87.500,00, W2 13.200,00 / 17.200,00 / 83.500,00:

SELECT date, narration, account, position
FROM date >= 2026-09-14 AND date <= 2026-09-20
WHERE account ~ "^Assets:Bank" ORDER BY date;
 
SELECT sum(position) AS net
FROM date >= 2026-09-14 AND date <= 2026-09-20
WHERE account ~ "^Assets:Bank";
 
SELECT sum(position) AS bank_cash
FROM close ON 2026-09-21 WHERE account ~ "^Assets:Bank";

(Desplaza las fechas en 7 para W2, cerrando el 2026-09-28.) Una limitación de BQL que debes conocer: esta versión de beanquery no puede filtrar registros por signo, así que la división cobros/pagos se aplica a las filas exportadas — patas bancarias positivas a cobros, negativas a pagos, pares de barrido excluidos — exactamente como lo hace el verificador.

El Ritmo de Actualización (30–45 Minutos Semanales)​

  1. Extrae los Datos Reales (15 min): Exporta los registros de la semana en Assets:Bank:* (ejecuta las consultas de arriba, o descarga transacciones de tus cuentas bancarias — los cargos de tarjeta quedan fuera; solo cuenta el pago de liquidación) y escríbelos en la hoja Actuals. Confirma que la Caja Final de la semana en Actuals coincide perfectamente con tu saldo bancario combinado real (Checking + Savings) — la fila 31 muestra 0. Esta conciliación no es negociable.
  2. Revisa las Cuentas por Cobrar (10 min): Enumera todas las facturas pendientes y colócalas en la semana en que esperas el pago. Sé conservador y aplica retrasos de cobro realistas según el desempeño pasado.
  3. Revisa las Cuentas por Pagar y la Nómina (10 min): Coloca las fechas de vencimiento de todas las facturas próximas conocidas. Precarga tus fechas e importes de nómina para todo el trimestre. Programa los pagos no críticos para los viernes para preservar la opcionalidad de efectivo durante la semana.
  4. Reunión de Variación (10 min): Abre la hoja Variance y recorre la columna compared de la semana: qué categorías se movieron, en qué dirección, y qué le hicieron a la caja final acumulada. Anota las causas de cualquier diferencia significativa y decide si necesitas ajustar tus reglas de previsión en adelante.

Precisión y Toma de Decisiones​

Reglas Prácticas de Precisión​

  • Semanas 1–2: Apunta a un error de ±5–10%. Estas fechas e importes deberían ser altamente ciertos.
  • Semanas 3–6: Espera un error de ±10–20%. Este período será una mezcla de facturas conocidas y estimaciones basadas en patrones.
  • Semanas 7–13: Esta parte de la previsión es direccional. Está impulsada por tu pipeline de ventas y tus gastos de ritmo operativo (run-rate).

Códigos de Confianza: Para que la previsión sea más fácil de leer, marca cada fila de previsión con un código de confianza: Comprometido (p. ej., nómina, alquiler), Probable (p. ej., facturas a buenos clientes), o Potencial (p. ej., nuevos acuerdos del pipeline).

Disparadores y Acciones (Decide Esto de Antemano)​

Una previsión es inútil sin un plan. Predefine tus acciones para cuando alcances ciertos umbrales.

  • Umbral Mínimo de Caja: Por ejemplo, tu regla podría ser "Debemos mantener un efectivo ≥ 1,5× el importe de la próxima nómina completa en todo momento." Si la previsión muestra que vas a incumplir este umbral, ejecutas de inmediato un plan preacordado, como un sprint de cobros y una pausa en todo gasto discrecional.
  • Guardarraíl de Pista de Caja: Por ejemplo, "Si la Caja Final en la Semana 13 implica menos de X meses de quema (burn), iniciaremos nuestro plan de financiación." Esto podría implicar buscar una term sheet, ofrecer a los clientes un descuento por prepago de ingresos, o disponer de una línea de crédito.
  • Regla de Gran Salida: Por ejemplo, "Cualquier pago único no de nómina mayor al 5% de nuestro saldo de caja actual debe aprobarse con dos semanas de antelación y tener un plan alternativo."

Plantilla y Escenarios​

Conjunto Simple de Categorías (Para un SaaS en Etapa Semilla)​

  • Cobros: Cobros de Clientes, Otras Entradas (intereses, devoluciones, subvenciones)
  • Pagos: Nómina (neto + impuestos del empleador), Contratistas, Nube/Hosting (COGS), Software/SaaS (OpEx), Marketing (Pagado/Marca), Alquiler/Oficina, Legal/Contabilidad, Impuestos y Tasas, Servicio de Deuda, Puntuales / Anuales
  • Calculado: Caja Neta, Caja Final

Plantilla (ya construida en la descarga; copia esto para reconstruir en blanco)​

La tabla siguiente es la forma de la hoja Forecast — mismas filas, mismas fórmulas — para reconstruir en una hoja en blanco. En la descarga, la fila 2 ya contiene las fechas de inicio de semana (W1 2026-09-14 hasta W13 2026-12-07) y cada total está cableado; congela debajo de la fila 3 y a la derecha de la columna A (B4 en el archivo) para que coincida.

Fila / SemanaW1W2W3...W13
Caja Inicial
--- COBROS ---
Cobros de Clientes
Nuevos Prepagos/Anticipos
Otras Entradas
Total Cobros=SUM()=SUM()=SUM()=SUM()
--- PAGOS ---
Nómina (Neto + Impuestos Empleador)
Contratistas
Nube/Hosting (COGS)
Software/SaaS (OpEx)
Marketing
Alquiler/Oficina
Legal/Contabilidad
Impuestos y Tasas
Servicio de Deuda
Puntuales / Anuales
Total Pagos=SUM()=SUM()=SUM()=SUM()
Caja Neta=Cobros-Pagos
Caja Final=Inicial+Neta

Interruptores de Escenario (Mantenlo Ligero)​

Puedes construir una planificación de escenarios simple sin crear un modelo complejo. Agrega una celda de "interruptor" en la parte superior de tu hoja para los impulsores clave. Por ejemplo:

  • Interruptor de ralentización de cobros B6: [1,0] (Cambia a 1,2 para modelar una ralentización del 20% en los cobros — el Total Cobros de cada semana se recalcula vía COL15 = COL12*$B$6+COL13*$B$7+COL14)
  • Interruptor de nuevas reservas B7: [1,0] (Cambia a 0,8 para modelar un incumplimiento del 20% frente al plan)

Estas son las celdas de supuestos reales en la hoja Forecast — no se necesita cableado adicional.


Aprender y Evitar Errores​

Revisión de la Variación (Haz Que el Aprendizaje Se Acumule)​

El libro de trabajo hace por ti la contabilidad de la variación: Variance = Actual − Baseline, por categoría y por total, para cada semana cuyos Actuals estén complete y fechados como la Baseline. Tu trabajo es explicar los números. Cuando revises, etiqueta las razones de las diferencias importantes: retraso de cobro, desviación de alcance, compra no planificada a proveedor, cambio de calendario. Si el mismo tipo de variación se repite, cambia la regla subyacente de tu modelo. Por ejemplo, si los cobros llegan sistemáticamente con una semana de retraso, cambia tu supuesto de retraso de cobro por defecto de 21 días a 28 días.

Comparación resuelta (el ejemplo entregado). La Baseline B1 se capturó el 2026-09-11 desde una apertura de 85.000; los Actuals son el efectivo bancario del libro mayor de ejemplo. Los signos siguen la hoja Variance: cobros, neta y final positivos = más efectivo de lo previsto, gasto positivo = más gastado de lo previsto.

SemanaBaseline entradas / salidas / finalActual entradas / salidas / finalΔ cobrosΔ gastoΔ netaΔ final (acumulativa)
W1 (2026-09-14)12.000 / 10.000 / 87.00012.200 / 9.700 / 87.500+200−300+500+500
W2 (2026-09-21)13.200 / 17.000 / 83.20013.200 / 17.200 / 83.5000+200−200+300
W3 (2026-09-28)15.200 / 6.000 / 92.400no introducidon/an/an/an/a

Leyéndolo tal como lo presenta la hoja Variance:

  • W1, +500. Los cobros de clientes llegaron 200 por encima de los 11.800 previstos (Variance!B12 = +200) y AWS facturó 2.200 contra 2.500 previstos (Variance!B19 = −300: menos gasto, favorable). 85.000 + 12.200 − 9.700 = 87.500 real contra 85.000 + 12.000 − 10.000 = 87.000 previsto.
  • W2, +300. Los cobros aterrizaron exactamente según el plan, pero la factura de SaaS pagada por banco fue 600 contra 400 previstos (Variance!C20 = +200: más gasto, adverso). La neta de la semana es −200, así que la ventaja final acumulada se reduce de +500 a +300 (Variance!C29): 87.500 + 13.200 − 17.200 = 83.500 contra 87.000 + 13.200 − 17.000 = 83.200.
  • W3 en adelante, not observed (no observado). No se ha introducido nada, así que cada celda muestra n/a — no un reconfortante 0.
  • Como porcentajes (filas 32–33): W1 cobros +1,67% y gasto −3,00%; W2 cobros 0,00% y gasto +1,18%.

De esto salen dos etiquetas: la estimación de AWS va alta, y la línea de SaaS pagada por banco se planificó 200 demasiado baja. Ambas son correcciones a los supuestos de Forecast — la Baseline B1 se mantiene como está, así que el próximo trimestre aún puedes ver cuánto se desvió el plan original.

Errores Comunes (Evítalos)​

  • Sobrescribir el Plan: Escribir datos reales sobre celdas de Forecast (o volver a pegar la Baseline cada semana) destruye el plan contra el que debías ser medido. Los datos reales van en Actuals; la Baseline cambia solo cuando ruedas el horizonte deliberadamente.
  • Mezclar Devengo y Caja: Esta previsión es solo de caja. Los ingresos reconocidos, la depreciación y otros conceptos de devengo pertenecen a tu libro mayor principal, no aquí.
  • Olvidar los Anuales Irregulares: Las primas de seguros anuales, las grandes renovaciones de SaaS y los pagos trimestrales de impuestos pueden ser enormes sorpresas. Prográmalos en tu previsión tan pronto como los conozcas.
  • Ignorar el Efectivo del Impuesto sobre Ventas: Aunque sea un pasivo de paso, el efectivo está en tu cuenta bancaria hasta que lo remites. Modela tanto la entrada como la salida.
  • No Conciliar: Si la Caja Final de la semana en Actuals no coincide con tu saldo bancario combinado real (Checking + Savings; saldos de tarjeta excluidos), tienes un error de mapeo — normalmente un cargo de tarjeta contado o un barrido retenido. Debes corregirlo antes de poder confiar en la previsión.
  • Sin Responsable Claro: Asigna a una persona la responsabilidad de actualizar la previsión cada semana. Nombra un suplente para las vacaciones.

Conexiones Rápidas con Beancount​

  • Plan de Cuentas: Mantén limpios tus bolsillos de efectivo (p. ej., Assets:Bank:Checking, Assets:Bank:Savings, Liabilities:CreditCard:Amex). Los datos reales semanales son solo las patas de Assets:Bank:* — la cuenta de tarjeta existe para que las liquidaciones tengan de dónde venir, no como una segunda fuente de salidas.
  • No uses el Estado de Resultados como la comprobación: El Estado de Resultados de Fava es de devengo — registra las compras con tarjeta cuando se cargan e ignora el principal del préstamo — así que discrepará con esta previsión de caja por diseño. La comprobación de caja es la exportación de bean-query + el arrastre de arriba (yarn check:cash-flow-actuals), que debe cuadrar con la Caja Final cada semana.
  • Documentación: Cuando tengas una partida puntual grande, adjunta el PDF de la factura en tu carpeta documents/ de Beancount y enlázala en la columna de notas de tu previsión.

Paquete para el Consejo/Inversores (Una Diapositiva)​

  1. Gráfico: Un gráfico de líneas simple de tu Caja Final por semana para las 13 semanas. Agrega una línea horizontal que muestre tu umbral mínimo de caja.
  2. Tabla: Una pequeña tabla que muestre los números de Caja Final de W1–W13, más una lista con viñetas de las 5 mayores entradas y salidas esperadas en el trimestre.
  3. Notas: Unos pocos puntos con viñetas sobre supuestos clave que han cambiado desde la última actualización y cualquier disparador que hayas alcanzado o esperes alcanzar.

Configura una contabilidad en la que puedas confiar

Crea ahora un libro contable gratuito o consulta la guía para startups y la comunidad de fundadores cuando necesites más contexto.