Solution | Financial Forecasting#
Overview#
Business case#
The financial forecasting processes managed by finance teams play a central role in supporting companies to make appropriate cost management and investment decisions. Yet 40 percent of CFOs feel their forecasts aren’t accurate and that the process takes too much time. To be more precise, less costly to produce forecasts are of immediate value.
However, connecting to the data and tapping into the different techniques needed to achieve them can feel out of reach. This can be a result of too little time available to setting up a new forecasting project or a lack of confidence in the statistical and machine learning techniques involved.
Enhancing the efficiency of financial forecasting requires:
Improving the capacity for finance teams to access data and automate data pipelines. Rather than relying on manual checks and merges via spreadsheets, teams can streamline their processes, save time and reduce errors, allowing them to focus more on analysis and decision making.
Easing the comparison of traditional and advanced statistical / machine-learning forecasting techniques, with simple tests and selection of appropriate drivers, developing more accurate projections alongside full ownership and explainability.
Dataiku’s Financial Forecasting Solution offers finance teams an opportunity to confidently transition through a shift in their business impact while retaining full control of process and outputs.
Installation#
From the Design homepage of a Dataiku instance connected to the internet, click + Dataiku Solutions.
Search for and select Financial Forecasting.
If needed, change the folder into which the Solution will be installed, and click Install.
Follow the modal to either install the technical prerequisites below or request an admin to do it for you.
Note
Alternatively, download the Solution’s .zip project file, and import it to your Dataiku instance as a new project.
Technical requirements#
To use this Solution, you must meet the following requirements:
Have access to a Dataiku 15.2+* instance.
A Python code environment named
solution_financial-forecastingwith the following required packages, used by the project’s Python recipes:
--extra-index-url https://download.pytorch.org/whl/cpu
Jinja2>=2.11,<3.2
MarkupSafe<3.1.0
Werkzeug>=3.1.6,<3.2
catboost>=1.2,<1.3
cloudpickle>=3,<4
econml>=0.13,<0.18
fastapi>=0.100.0
fastdigest>=0.8,<0.9
flask>=3.1.3,<3.2
gluonts[torch]>=0.8.1,<0.17
gunicorn
itsdangerous<2.3.0
langchain-core>=0.3.0
lightgbm>=4.6,<4.7
neuralforecast>=3.0.0,<3.2.2
pmdarima>=1.8.5,<2.2
prophet>=1.2.1,<1.4
python-multipart>=0.0.7
scikit-learn>=1.6,<1.9
scikit-optimize>=0.7,<=0.10.2
scipy>=1.15,<1.17
sse-starlette>=1.6.0
statsforecast>=2.0.3,<2.1
statsmodels>=0.14,<0.15
tabicl>=2.0.0,<2.3
torch>=2,<2.10
uvicorn-worker
uvicorn[standard]>=0.20.0
xgboost>=3.2,<3.3
No plugin or SQL connection is required. All datasets are stored on the filesystem connection.
An LLM connection is optional. It’s only required to use the AI assistant of the webapp’s report generator. The Solution was tested with OpenAI GPT-6 Astra, Google Gemini 2.5 Flash, and Anthropic Claude Opus 4.6. Performance isn’t guaranteed with other models.
Data requirements#
The project uses two input datasets with the same time frequency:
historical: past actual values, manual forecasts, and driver values for each category.
to_forecast: future dates and categories to forecast, along with manual forecasts and driver assumptions. It doesn’t contain the actual_value column, since this is the value the models predict.
Each row represents one date and one category. Keep category names and time intervals consistent across both datasets, with future dates following the historical period.
These datasets include the following features:
Feature |
Description |
|---|---|
date |
Date of the observation or forecast period, taken at equally spaced points in time. |
category |
Business unit or time series identifier into which the target value is split. |
actual_value |
Observed value of the financial variable to forecast (historical only). |
manual_forecast |
Forecast figures computed manually by the user, used for comparison with the model forecasts. |
driver_A, driver_B |
Numerical drivers, such as company-specific or macroeconomic information, observed historically and assumed for future periods. |
Two approaches to revenue forecasting#
You can approach revenue forecasting in two main ways:
Approach |
Usage |
Dataiku Solution |
|---|---|---|
Bottom-Up |
This method predicts the quantity of “product” sold at a granular level (for example, units per product or category) and multiplies by price to estimate revenue. Forecasts are based on prior sales data and drivers at equal or greater granularity, such as weather, holidays, or customer/product attributes. |
|
Top-Down |
This method forecasts total revenue directly for a business unit, without using |
Financial Forecasting (this one) |
Each approach lends itself to different industries and expectations. Top-down approaches are most often seen when firms are selling bundles of products, or generating streams of revenue, such that counting individual products with consistent specific prices isn’t well matched to their business reality.
Workflow overview#
You can follow along with the Solution in the Dataiku gallery.
The project has the following high-level steps:
Replace the input data and adjust the project variables.
Explore historical data to identify trends and seasonality.
Analyze the relationship between drivers and the actual value.
Train simple and advanced forecasts and compare their performance.
Run what-if analyses and generate reports in the webapp.
Walkthrough#
Note
In addition to reading this document, it’s recommended to read the wiki of the project before beginning to get a deeper technical understanding of how this Solution was created and more detailed explanations of Solution-specific vocabulary.
Tailor the project to your needs#
This Solution is a template project that you interact with through the Flow and project variables.
The project includes sample data. You need to replace the historical and to_forecast datasets with your own data, assuming that it adopts the data model described above. Then, adjust the project variables, such as the forecast horizon, the number of lag values, and the drivers to use, and rebuild the Flow to update the dashboard and webapp.
Explore historical data#
Before training a financial forecasting model, it’s important first to explore your historical data. Doing so allows you to identify trends and seasonality of the financial values to forecast.
The Data Exploration page of the dashboard summarizes the historical period: its length, the percentage change of the actual value, the number of categories, the time step, and the forecast horizon. You can filter by date range and category, and compare actual values against manual forecast values over time. Explanation boxes accompany each chart.
Analyze drivers#
The Drivers page analyzes the relationship between the drivers selected in the project variables and the actual value. It shows the most and least correlated drivers and the evolution of driver values over the period. Through this, you can determine which drivers may be relevant for the advanced forecast. To run analyses with different drivers, update the project variables and rebuild the Flow.
Train simple and advanced forecasts#
This Solution creates two distinct forecasts with visual ML time series models:
The simple forecast is an AutoARIMA model that uses category as the time series identifier and only relies on historical values.
The advanced forecast is an XGBoost model that also uses the drivers set in the project variables as input features, including their assumed values for the period to forecast.
In the results of each model, you can review diagnostics per category. For example, the residual diagnostics of the XGBoost model show the distribution of standardized residuals, their evolution over time, a normal Q-Q plot, and a correlogram.
Compare forecasts#
The inevitable question is, which approach is better? The Forecast Comparison page of the dashboard answers it by computing the mean absolute percentage error (MAPE) of the manual, simple, and advanced forecasts. The lower the MAPE, the better the forecast. The chart below the metrics shows the actual value alongside the three forecasts, including their predictions over the next horizons. Performance can differ based on your data and additional improvements you may make to the models.
Run what-if analyses#
The What-if Analysis tab of the webapp lets you change driver assumptions and see how the XGBoost forecast responds, without retraining the model. In the Global view, you apply percentage changes to each driver across all business units. The By category view lets you set different assumptions for each business unit.
After clicking Run Analysis, the page compares the model total and the what-if total over the forecast period, and plots actual values, the unchanged model forecast, and the what-if forecast. These results show how the model responds to changed inputs, not a proven causal effect.
Generate reports#
The Report Generator tab of the webapp lets you write reports on selected business units. In the report scope, select a template, the forecast models to include, the report language (English, French, or Spanish), the business units, and the historical and forecast periods. You can then write and preview the report, which summarizes historical actuals and forecasts per model.
If you configured an LLM connection, an AI assistant can help draft or revise the report text using the project results. You can then save the report in the project or download it to share it.
Agent warning#
This Solution includes several prompts linked to various tools and agents. These prompts are tailored specifically to the provided datasets and use cases. You must review and adapt these prompts to your own context before using them in production.
Responsible AI considerations#
This financial forecasting Solution is intended for use at a business level. You shouldn’t use it to evaluate individual performance. Misuse of this Solution, such as using it to make decisions that may lead to individual potential harm, may result in inaccurate or unreliable forecasts.
Review any text suggested by the AI assistant before sharing a report. Likewise, what-if analysis results reflect the model’s response to changed inputs and don’t establish causal effects of drivers on financial values.
Reproducing these processes with minimal effort for your data#
This project equips finance teams to improve accuracy and reduce the required effort for forecasting processes using Dataiku. By creating a singular Solution that can benefit and influence the decisions of various teams in a single organization, you can design smarter and more holistic strategies to transform existing forecasting processes, automate and streamline workflows, and focus on more strategic tasks.
This documentation has provided several suggestions on how to derive value from this Solution. Ultimately however, the “best” approach will depend on your specific needs and data. If you’re interested in adapting this project to the specific goals and needs of your organization, Dataiku offers roll-out and customization services on demand.
