/api/forecast_revenue

Header
X-API-ID: <<your api id>
X-API-SECRET: <<your api secret>>
Content-Type: application/json
Request Body Schema
forecast_period integer, required, ≥ 1
– number of months to predict
data array of objects, required, length ≥ 60
• date string, required, format “YYYY‑MM‑DD”
– ISO date for each day; missing dates are filled with zeroes
• revenue number (float), required, ≥ 0
– gross revenue for that date (single currency)
Example Request Body
 "api_route": "/api/forecast_revenue",
    "payload": {
                "forecast_period": 12,
                "data": [
                    {"date": "2024-01-01", "revenue": 1000.0},
                    {"date": "2024-01-02", "revenue": 1010.0},
                    {"date": "2024-01-03", "revenue": 1020.0},
                    {"date": "2024-01-04", "revenue": 1030.0},
                    {"date": "2024-01-05", "revenue": 1040.0},
                    {"date": "2024-01-06", "revenue": 824.0},
                    {"date": "2024-01-07", "revenue": 832.0},
                    {"date": "2024-01-08", "revenue": 1070.0},
                    {"date": "2024-01-09", "revenue": 1080.0},
                    {"date": "2024-01-10", "revenue": 1090.0},
                    {"date": "2024-01-11", "revenue": 1100.0},
                    {"date": "2024-01-12", "revenue": 1110.0},
                    {"date": "2024-01-13", "revenue": 888.0},
                    {"date": "2024-01-14", "revenue": 896.0},
                    {"date": "2024-01-15", "revenue": 1140.0},
                    {"date": "2024-01-16", "revenue": 1150.0},
                    {"date": "2024-01-17", "revenue": 1160.0},
                    {"date": "2024-01-18", "revenue": 1170.0},
                    {"date": "2024-01-19", "revenue": 1180.0},
                    {"date": "2024-01-20", "revenue": 952.0},
                    {"date": "2024-01-21", "revenue": 960.0},
                    {"date": "2024-01-22", "revenue": 1210.0},
                    {"date": "2024-01-23", "revenue": 1220.0},
                    {"date": "2024-01-24", "revenue": 1230.0},
                    {"date": "2024-01-25", "revenue": 1240.0},
                    {"date": "2024-01-26", "revenue": 1250.0},
                    {"date": "2024-01-27", "revenue": 1016.0},
                    {"date": "2024-01-28", "revenue": 1024.0},
                    {"date": "2024-01-29", "revenue": 1280.0},
                    {"date": "2024-01-30", "revenue": 1290.0},
                    {"date": "2024-01-31", "revenue": 1300.0},
                    {"date": "2024-02-01", "revenue": 1000.0},
                    {"date": "2024-02-02", "revenue": 1010.0},
                    {"date": "2024-02-03", "revenue": 808.0},
                    {"date": "2024-02-04", "revenue": 816.0},
                    {"date": "2024-02-05", "revenue": 1040.0},
                    {"date": "2024-02-06", "revenue": 1050.0},
                    {"date": "2024-02-07", "revenue": 1060.0},
                    {"date": "2024-02-08", "revenue": 1070.0},
                    {"date": "2024-02-09", "revenue": 1080.0},
                    {"date": "2024-02-10", "revenue": 864.0},
                    {"date": "2024-02-11", "revenue": 872.0},
                    {"date": "2024-02-12", "revenue": 1110.0},
                    {"date": "2024-02-13", "revenue": 1120.0},
                    {"date": "2024-02-14", "revenue": 1130.0},
                    {"date": "2024-02-15", "revenue": 1140.0},
                    {"date": "2024-02-16", "revenue": 1150.0},
                    {"date": "2024-02-17", "revenue": 920.0},
                    {"date": "2024-02-18", "revenue": 928.0},
                    {"date": "2024-02-19", "revenue": 1180.0},
                    {"date": "2024-02-20", "revenue": 1190.0},
                    {"date": "2024-02-21", "revenue": 1200.0},
                    {"date": "2024-02-22", "revenue": 1210.0},
                    {"date": "2024-02-23", "revenue": 1220.0},
                    {"date": "2024-02-24", "revenue": 984.0},
                    {"date": "2024-02-25", "revenue": 992.0},
                    {"date": "2024-02-26", "revenue": 1250.0},
                    {"date": "2024-02-27", "revenue": 1260.0},
                    {"date": "2024-02-28", "revenue": 1270.0},
                    {"date": "2024-02-29", "revenue": 1280.0},
                    {"date": "2024-03-01", "revenue": 1000.0},
                    {"date": "2024-03-02", "revenue": 800.0},
                    {"date": "2024-03-03", "revenue": 808.0},
                    {"date": "2024-03-04", "revenue": 1030.0},
                    {"date": "2024-03-05", "revenue": 1040.0},
                    {"date": "2024-03-06", "revenue": 1050.0},
                    {"date": "2024-03-07", "revenue": 1060.0},
                    {"date": "2024-03-08", "revenue": 1070.0},
                    {"date": "2024-03-09", "revenue": 856.0},
                    {"date": "2024-03-10", "revenue": 864.0},
                    {"date": "2024-03-11", "revenue": 1100.0},
                    {"date": "2024-03-12", "revenue": 1110.0},
                    {"date": "2024-03-13", "revenue": 1120.0},
                    {"date": "2024-03-14", "revenue": 1130.0},
                    {"date": "2024-03-15", "revenue": 1140.0},
                    {"date": "2024-03-16", "revenue": 912.0},
                    {"date": "2024-03-17", "revenue": 920.0},
                    {"date": "2024-03-18", "revenue": 1170.0},
                    {"date": "2024-03-19", "revenue": 1180.0},
                    {"date": "2024-03-20", "revenue": 1190.0},
                    {"date": "2024-03-21", "revenue": 1200.0},
                    {"date": "2024-03-22", "revenue": 1210.0},
                    {"date": "2024-03-23", "revenue": 976.0},
                    {"date": "2024-03-24", "revenue": 984.0},
                    {"date": "2024-03-25", "revenue": 1240.0},
                    {"date": "2024-03-26", "revenue": 1250.0},
                    {"date": "2024-03-27", "revenue": 1260.0},
                    {"date": "2024-03-28", "revenue": 1270.0},
                    {"date": "2024-03-29", "revenue": 1280.0},
                    {"date": "2024-03-30", "revenue": 1048.0}
                ]
                },
    "callback_url": null
}
Example Response Body
{
"forecast_period": 12,
"forecast_result": {
"analysis_type": "generic_revenue",
"best_algorithm": "Aggregation",
"evaluation_metrics": {
"RMSE": 111.63593256467632,
"MAE": 109.6766254147977,
"R2": 0.09176299947242217,
"average_daily_revenue": 1105.017787752007,
"Interpretation": "The Aggregation algorithm was selected because it achieved a low RMSE of 111.64, MAE of 109.68, and R² of 0.09. The average daily revenue forecast is 1105.02."
},
"forecast": {
"calendar": [
{ "yyyy-mm": "2024-04", "value": 35509.98094676594 },
{ "yyyy-mm": "2024-05", "value": 36693.6469783248 },
… 10 more months …
{ "yyyy-mm": "2025-03", "value": 36693.6469783248 }
],
"business": [
{ "yyyy-mm": "2024-04", "value": 26040.652694295022 },
{ "yyyy-mm": "2024-05", "value": 27224.31872585389 },
… 10 more months …
{ "yyyy-mm": "2025-03", "value": 24856.98666273616 }
]
}
},
"execution_time_seconds": 0.268125057220459
}
Description

This endpoint generates a multi‑model revenue forecast over a specified horizon (e.g. 12 months). Under the hood it: Cleans and fills the historical series (≥ 60 days). Applies a model zoo (ARIMA, ETS, Prophet, TBATS, Croston, Aggregation). Runs rolling‑origin cross‑validation (4 folds) to score RMSE & MAPE. Selects the champion model by weighted RMSE (60 % calendar, 40 % business). Post‑processes to enforce non‑negativity and restore outliers. It returns both calendar‑day and business‑day (ex‑weekends/holidays) forecasts, error diagnostics, chosen algorithm, and run time.

Business Usage

• “How much cash do we book next quarter?” – Feed calendar forecasts (with 80 % & 95 % CIs) into top‑line decks. • “Which model should we trust?” – Automatically benchmarks and explains best model choice. • “Ops needs both calendar & business views.” – Provides separate matrices for staffing and capacity planning. • Automate weekly runs, store forecast.calendar in BI layer, and trigger alerts if actuals deviate by ± 10 % for two consecutive weeks.

← Back to all routes