Resumen
El flujo de caja (cash flow) suele ser una de las primeras señales de estrés o estabilidad financiera. Incluso cuando los ingresos y gastos parecen manejables hoy en día, los pagos futuros, los gastos irregulares y los cambios en el saldo pueden hacer que sea difícil comprender cuál será la posición de la cuenta en el futuro cercano.
El Neuron Cash Flow Forecasting de Dedomena ayuda a convertir los datos históricos de transacciones en una previsión de saldos a futuro. Utiliza movimientos pasados en la cuenta para estimar cómo puede evolucionar el saldo durante el horizonte de previsión seleccionado, junto con intervalos de confianza que proporcionan un rango de posibles resultados en lugar de un único valor fijo.
Para usar el Neuron, envía al menos 3 meses de historial de transacciones. Cada transacción debe incluir la fecha de la transacción, el monto, la descripción y el saldo de la cuenta después de la transacción. Luego, la API devuelve un pronóstico diario que se puede utilizar para respaldar la planificación, el monitoreo de liquidez y el análisis de riesgos.
???+ warning El pronóstico se realiza sobre la marcha. Dedomena AI nunca retiene ninguna información histórica o pronosticada de flujo de caja, por lo que debes copiar los resultados antes de cerrar la pestaña o ventana para evitar perder la información.
El horizonte de previsión se puede solicitar a través de la API y se limita automáticamente de acuerdo con la cobertura histórica disponible en los datos enviados.
Casos de Uso
Estos son algunos casos de uso clave para el Neuron Cash Flow Forecasting:
-
Planificación Financiera: Ayuda a empresas y particulares a anticipar futuras posiciones de efectivo y a comprender si los saldos esperados son suficientes para cubrir obligaciones futuras.
-
Gestión de Liquidez: Identifica períodos en los que el efectivo disponible puede ser ajustado, lo que permite a los equipos planificar transferencias, financiamiento o el momento de los gastos con anticipación.
-
Gestión de Riesgos: Detecta períodos pronosticados de posibles saldos negativos y respalda decisiones proactivas antes de que ocurran problemas de liquidez.
-
Presupuestación (Budgeting): Mejora la planificación presupuestaria utilizando el comportamiento histórico de las transacciones para estimar la disponibilidad de efectivo a corto y medio plazo.
-
Control de Gastos: Brinda a los usuarios una vista más clara de la evolución esperada del efectivo, ayudándoles a identificar cuándo se debe reducir o posponer el gasto.
-
Planificación de Inversiones: Ayuda a los inversores y equipos de finanzas a evaluar cuándo puede haber excedente de efectivo disponible para depósitos, inversiones o pago de deudas.
-
Monitoreo de Préstamos y Créditos: Apoya a los prestamistas o plataformas financieras a evaluar si es probable que una cuenta mantenga suficiente liquidez durante el horizonte de previsión.
-
Operaciones de Tesorería: Ayuda a los equipos de finanzas en la planificación de necesidades de capital de trabajo, cronogramas de pagos y decisiones de financiamiento de cuentas.
API y Endpoints
/cashflow
POST/v3/cashflow
Este endpoint genera pronósticos de flujo de caja y define intervalos de confianza basados en el historial de transacciones proporcionado. El horizonte de pronóstico se puede solicitar con amount_to_predict, y la API lo limita automáticamente según la cobertura histórica disponible en los datos enviados.
Cabeceras (Headers):
- token: disponible mediante prueba gratuita o suscripción.
Parámetros de Consulta (Query Parameters):
- amount_to_predict (integer, opcional, por defecto: 30): Número de días a pronosticar. El horizonte final está limitado por los datos históricos disponibles y puede ser de hasta 365 días.
Cuerpo de la Solicitud (Request Body):
Arreglo JSON de transacciones:
-
date (string): Fecha de la transacción en formato ISO o datetime string.
-
amount (float): Monto de la transacción. Los valores negativos son gastos y los valores positivos son ingresos.
-
description (string): Descripción o concepto de la transacción.
-
balance (float): Saldo de la cuenta inmediatamente después de la transacción.

Cuerpo de la Solicitud - Arreglo JSON
[
{
"date": "2024-07-22",
"amount": 200.0,
"description": "TRANSFERENCIA DE PEDRO PEREZ PEREZ, CONCEPTO gastos tarjeta bbva.",
"balance": 642.46
},
{
"date": "2024-05-17",
"amount": -34.65,
"description": "COMPRA EN MERCADONA, MADRID, TARJ. :*123456",
"balance": 607.81
},
"..."
{
"date": "2024-08-11",
"amount": -13.4,
"description": "PAGO MOVIL EN SUPERMERCADOS DIA, ZARAGOZA, TARJ. :*123456",
"balance": 1230.41
}
]
Respuesta
200
{
"forecast": [
{
"date": "2024-09-03",
"balance": 311.33,
"expenses_day_min": -136.14,
"incomes_day_min": 0.0,
"balance_day_min": -14.74,
"expenses_day_max": -13.0,
"incomes_day_max": 0.0,
"balance_day_max": 479.15,
"expenses_dayofweek_min": -136.14,
"incomes_dayofweek_min": 0.0,
"balances_dayofweek_min": -14.74,
"expenses_dayofweek_max": 0.0,
"incomes_dayofweek_max": 661.5,
"balances_dayofweek_max": 854.75,
"pred95": 350.12,
"pred05": 301.43
}
]
}
401
{
"detail": "Invalid or missing authentication token"
}
405
{
"detail": "Unable to generate a cashflow forecast with the provided data"
}
406
{
"detail": "The number of observations in the payload exceed the available quote"
}
429
{
"detail": "The maximum monthly number of calls or predictions for your account has been exceeded"
}
Usando Python
Puedes ejecutar este ejemplo desde un Jupyter Notebook o un script de Python.
NOTA: debes reemplazar los ... por la información correcta en el siguiente código:
import pandas as pd
import requests
# Leer los datos
data_request = pd.read_csv(...) ## Actualiza con la ruta del conjunto de datos de al menos 3 meses de transacciones y los parámetros necesarios.
# Cambiar nombres y tipos
data_request.columns = ["date", "description", "amount", "balance"] # Opcional: cambiar nombres de columnas.
# Convertir a records desde el dataframe de Pandas
data_json = data_request.sample(100).to_dict(orient="records") ## Aquí se toman 100 filas de muestra del conjunto original. Por favor, modifícalo según conveniencia.
# Definir el Payload y guardar la solicitud en un objeto response
payload = {"token": "...", "amount_to_predict": 30} ## Actualiza con el token de la pestaña de la API.
response = requests.post(url="https://api.cashflow.dedomena.ai/v3/cashflow", params=payload, json=data_json)
print(response)
# Transformar la respuesta de la solicitud a un dataframe de Pandas
response_forecast = pd.DataFrame(response.json()['forecast'])
# Verificar los resultados
response_forecast