Inspiration

Las PyMEs de comercio/servicio (minisúper, taquerías, tortillerías...) viven al día: cobran en ticket bajo y alta frecuencia, y pagan renta, nómina quincenal e insumos de forma constante. No tienen tesorería activa — se enteran de un bache de liquidez cuando ya está encima. Elegimos el track de Capital One "SMB Cash-Flow & Working Capital Intelligence" porque ahí el valor es cuantificable en pesos (evitar un crunch) y el nicho está menos saturado que el crédito/ahorro B2C típico de hackathon.

What it does

CapitalPyMe es un dashboard que muestra, día por día, el flujo de caja real (histórico) y proyectado (modelo) de un negocio, con:

  • Un calendario donde cada día es "real" o "proyección".
  • KPIs: liquidez actual, proyección a 30 días, y una reserva sugerida.
  • Recomendaciones por lapso del mes (inicio, quincena/nómina, medio mes, cierre) comparando el flujo proyectado contra el promedio histórico de ese mismo periodo en años anteriores — no son mensajes genéricos, salen del dato.

How we built it

Arquitectura de dos motores de pronóstico, separados del servicio que los expone:

  • Motor diario (LightGBM): predice el flujo neto del día a partir de calendario + montos del propio día. Descubrimos que las facturas del negocio solo caen en los días 1, 15, 20 y fin de mes — un patrón quincenal real de nómina — y usamos eso (más promedios por día de semana) para estimar días futuros sin necesitar un forecast recursivo.
  • Motor mensual: agrega a nivel mes y ancla la magnitud del pronóstico a 30+ días con lags propios más un factor de estacionalidad real: el índice de ventas al por menor de México (INEGI, vía la serie FRED MEXSLRTTO01IXOBM, 37+ años, incluye el crash real de COVID). Lo validamos comparando 5 modelos (naive, naive estacional, SARIMAX, LightGBM % cambio, LightGBM nivel) contra baseline ingenuo sobre 50 PyMEs sintéticas — ganó LightGBM nivel absoluto con 9.75% de error vs. 14.15% del baseline.
  • Backend: Python + FastAPI expone el resultado como API REST (/predicciones, /kpis, /recomendaciones).
  • Frontend: React + Vite + Tailwind consume la API en vivo (sin datos quemados) para pintar el calendario y las tarjetas.

Challenges we ran into

Un forecast diario recursivo se desvía rápido pasadas ~2 semanas porque el error de cada día se acumula en el siguiente. Lo resolvimos separando forma de magnitud: el motor diario solo le da la "textura" al calendario, pero el total de cada mes se reescala contra el motor mensual, que sí está validado a 30+ días con dato macro real de por medio.

También decidimos explícitamente no angostar el ruido del dataset sintético para inflar el R² — el techo teórico de varianza explicable por el patrón semanal es ~29%, casi idéntico al R² empírico (27.4%), así que en vez de perseguir un número bonito reportamos la métrica que sí le importa al dueño del negocio: el error del saldo acumulado (<0.2%).

Accomplishments that we're proud of

Un pipeline completo y honesto de dato real a dashboard en vivo: nada de mockups estáticos, cada número que ve el usuario sale del modelo, y cada decisión de diseño del modelo (por qué dos motores, por qué INEGI, por qué no bajar el ruido) está documentada y respaldada con un barrido comparando contra baselines.

What we learned

El flujo neto día a día de un solo negocio pequeño es intrínsecamente ruidoso (domina la varianza del ticket individual) — perseguir precisión diaria perfecta es el objetivo equivocado. Lo que un dueño de PyME realmente necesita es la tendencia del saldo acumulado y saber con antelación cuándo el margen se va a poner ajustado, que es exactamente donde el modelo sí es confiable.

What's next

Conectar cuentas reales vía la Nessie API de Capital One en vez de un histórico en CSV, dejar que el sistema ejecute la recomendación (transferir automáticamente al buffer de reserva, no solo mostrarla), y expandir el motor a más personas de negocio (taquería, tortillería, florería) más allá del minisúper de la demo.

How we built it

Challenges we ran into

Accomplishments that we're proud of

What we learned

What's next for capitalPyMe

Built With

Share this project:

Updates

Submission history