Finance teams tend to know what questions they need to answer, how much revenue will we generate next quarter, how many people do we need to hire to deliver that, what does that hiring cost and when does it land on the P&L. What they often lack is a structured, data, driven way to get there without a spreadsheet that takes a week to rebuild every planning cycle. This project was built to change that.
Challenges Identified:
- Unstructured Historical Data: Financial and operational data was coming in from multiple source systems in different formats. Before any useful analysis could happen, that data needed cleaning and standardising, work that was being done manually and inconsistently.
- Limited Forecasting Capabilities: The existing tools could report on what had happened. They couldn’t project what was likely to happen next, which meant planning conversations were anchored to history rather than forward-looking estimates.
- Disconnected Workforce Planning: Hiring decisions weren’t connected to financial forecasts in any systematic way. Headcount plans were built separately, which led to misalignment between projected demand and actual resource availability.
- Manual Planning Effort: Estimating future hiring needs, how many people, in which skill groups, and when, involved a significant amount of manual calculation and assumption, making that couldn’t be easily audited or update.
Solution Features:
We built a forecasting platform that takes historical financial and operational data and produces structured, actionable forward projections:
- Data Standardisation and Preparation: Revenue, cost, demand, and headcount data was cleaned and transformed into a consistent format suitable for time series analysis. This was unglamorous work but essential, garbage in, garbage out.
- Time Series Forecasting Models: ARIMA and SARIMA models were applied to detect trends, seasonality, and noise in the historical data. Parameters were selected based on what the data actually showed, not generic defaults.
- Automated Model Selection: auto_arima was introduced to dynamically evaluate whether ARIMA or SARIMA was the better fit for each metric and time period, removing the manual model selection step that previously required a statistician’s judgment call.
- Forecast Generation: Models were trained on historical data and used to produce a 15-month forward forecast across the key financial and operational metrics the business was planning against.
- Workforce Planning Logic: Forecast outputs were fed into planning logic that determined hiring requirements: how many people, in which roles, and when. These calculations reflected the actual demand projections rather than flat headcount assumptions.
- Cost and Revenue Impact Analysis: Hiring decisions were mapped back to financial outcomes, what each new hire costs and what revenue contribution they’re expected to generate at a project level. This gave finance and delivery teams a shared view of the trade-offs.
- Scalable System Architecture: The backend runs on Python with FastAPI, the frontend on React 18, and data lives in Azure Blob Storage. The architecture is clean enough to extend as planning requirements evolve.
Advantages:
- Data-Driven Forecasting: Planning conversations shifted from gut feel and spreadsheet extrapolation to statistically grounded projections that can be interrogated and updated as new data comes in.
- Improved Workforce Planning: Hiring decisions are now aligned with demand forecasts. The mismatch between projected need and actual headcount, which was a persistent operational problem, became manageable.
- Reduced Manual Effort: Forecasting and workforce calculations that previously required significant manual work now run automatically. Planning cycles are shorter and less dependent on specific individuals.
- Integrated Financial Insights: Demand, cost, revenue, and headcount data are analysed together rather than in separate reports. Leadership gets a single view that reflects the real interdependencies between these numbers.
Conclusion:
This project demonstrated something straightforward: when forecasting is done well, the planning conversations that depend on it get better too. Using ARIMA, SARIMA, and auto_arima to model financial and operational trends, and connecting those outputs directly to workforce planning logic, gave the organisation a tool that makes planning faster, more honest, and more useful for actual decision-making. The Python and React stack is solid; extending it as the business’s planning needs evolve is a realistic next step rather than a significant engineering lift.