Motor de flujo de caja con simulación de escenarios. Registra ingresos y egresos, proyecta el saldo día a día, y prueba decisiones hipotéticas antes de tomarlas de verdad — sin tocar tus datos reales.
Este documento es el reporte técnico de la versión actual: qué hace, cómo está construida, qué riesgos conlleva usarla hoy y hacia dónde va. Es honesto sobre sus límites a propósito — es una herramienta en construcción, no un producto terminado.
⚠️ Antes de usarla con datos reales
PragmaCash guarda todo en el navegador (localStorage), no en un servidor. No hay login, no hay copia en la nube y no se sincroniza entre dispositivos. Es útil hoy para finanzas personales de baja complejidad, en un solo equipo — y trae una función de respaldo manual (exportar/restaurar un archivo .json) pensada justamente para no perder nada mientras esto evoluciona. Más detalle en la sección de riesgos, más abajo.
PragmaCash no es un software contable. Es una herramienta de inteligencia financiera operativa: la pregunta que responde no es "qué pasó", sino "qué va a pasar con mi saldo si sigo así — y qué pasaría si hago este otro movimiento". Replica el núcleo del módulo "Projected Cash Flow" de Quicken Simplifi, simplificado a lo esencial, con un motor de simulación propio agregado encima.
Todo lo listado abajo está implementado y en uso — no es un plan, es lo que ya corre en /cash.html.
CRUD completo de movimientos reales, categorizados y asociados a una cuenta y fecha exacta.
Una transacción recurrente se declara una sola vez y se expande sola hacia adelante.
Saldo inicial más cada movimiento real y recurrente, acumulado fecha por fecha.
Overlay de movimientos ficticios sobre la curva real, sin tocar un solo dato guardado.
Área + línea sobre Chart.js, con la curva real y la simulada superpuestas.
Cada egreso se puede marcar como conciliado contra el extracto bancario, o queda pendiente.
Resumen por categoría en cualquier rango de fechas, consolidado y por cuenta a la vez.
Un archivo .json con todo lo cargado, pensado como puente hacia la siguiente versión del sistema.
Deliberadamente simple: un solo archivo HTML, sin build, sin dependencias de servidor. Es la arquitectura correcta para esta fase — no la arquitectura final.
| Capa | Estado actual |
|---|---|
| Frontend | HTML + CSS + JavaScript vanilla, un solo archivo (cash.html), sin framework ni paso de build |
| Gráfica | Chart.js 4 + plugin de anotaciones, cargados desde CDN (jsDelivr) |
| Persistencia | localStorage del navegador — no hay servidor ni base de datos detrás |
| Backend / API | No existe todavía |
| Autenticación | No existe — el control de acceso depende de quién use ese navegador físicamente |
| Multi-dispositivo | No soportado — los datos no se sincronizan entre navegadores ni equipos |
| Respaldo | Manual, vía exportación e importación de un archivo .json (módulo 08) |
| Hosting | Archivo estático servido por Nginx en grupopragma.online, junto al resto del sitio |
Ninguno de estos es un secreto ni un descuido — son consecuencias directas y conocidas de elegir localStorage como persistencia en esta fase. Se listan acá para que quien use la herramienta hoy sepa exactamente qué está aceptando.
Todo vive en el localStorage de un navegador. Borrar la caché, desinstalar el navegador o cambiar de equipo sin haber exportado un respaldo significa perder todo sin posibilidad de recuperación.
Cualquiera con acceso físico o remoto a ese navegador puede ver y modificar los datos financieros cargados. No es apto para un equipo compartido con otras personas.
Cada navegador tiene su propia copia. Usar la app desde el celular y desde la notebook genera dos historiales distintos, no uno solo — no hay fusión automática entre ellos.
Al no existir un backend, nada valida ni protege los datos contra un localStorage editado manualmente o corrompido desde las herramientas de desarrollador del navegador.
La gráfica depende de que jsDelivr esté disponible. Si el CDN falla, el resto de la app sigue funcionando, pero la curva no se dibuja hasta que vuelva.
Si la misma cuenta se abre en dos pestañas a la vez, gana la última que escribe — no hay fusión de cambios entre ellas.
El plan es explícito: no parchar este sistema hasta que se rompa, sino usarlo para acumular experiencia y datos reales, y construir la siguiente versión desde cero cuando corresponda.
Lo que ves acá es lo que existe hoy, no el techo del sistema. Cada módulo — recurrencia, simulación, conciliación, reportes — nació de un caso de uso concreto, y el siguiente probablemente también. Si tu forma de manejar el flujo de caja necesita algo distinto (otra moneda, otro tipo de reporte, una regla de recurrencia particular, una integración puntual), es exactamente el tipo de pedido que da forma a la próxima versión.
Sin cuenta, sin instalación. Se abre y se empieza a cargar cuentas. Los datos son tuyos y quedan en tu navegador — respaldalos seguido.