CUF forecasts hospital demand 20% more accurately than its manual method

Daily demand forecasts across every hospital unit, on their first ML platform
- Industry
- Life Sciences & Health
- Solution
- Optimisation
- Built in
- 2 months to MVP

Daily demand forecasts across every hospital unit, on their first ML platform
- Industry
- Life Sciences & Health
- Solution
- Optimisation
- Built in
- 2 months to MVP
CUF forecasts hospital demand 20% moreaccurately than its manual method
- Client
- CUF
- Industry
- Life Sciences & Health
- Solution
- Optimisation
- Built in
- 2 months to MVP
- Technology
- Machine Learning
- Team
- 4 DareData engineers
CUF planned hospitalisation and emergency demand with a simple rule, produced by hand once a year during the October budget cycle. A forecasting system now produces three-month rolling forecasts at daily granularity for every hospital unit, clinical scope and emergency typology, with a model chosen per segment and a monthly pipeline that picks the champion. Validated against the October to December hard close, it is 20% more accurate than the manual method.
With DareData, CUF:
- Forecasts 20% more accurately than the manual budgeting method, validated against the hard close
- Produces three-month rolling forecasts at daily granularity for every unit and typology
- Runs 46 models in production, with a champion picked every month
- Keeps absolute error at 4.2% for hospitalisations and 4.4% for emergency demand
- Supports 9 budget cycles a year instead of one manual round
- Delivered a complete MVP across both workstreams in 2 months
The challenge
One manual forecast a year
CUF runs 11 hospital units with around 10,000 staff. Planning beds, staffing and budgets across that network depends on knowing how many patients will be admitted and how many will walk into emergency care, unit by unit and day by day.
A yearly forecast made by hand
Demand was forecast with a simple rule, produced manually once a year during the October budget cycle. Individual judgement shaped both the forecast and every revision that followed, with no standard method behind it.
No daily or unit-level view
The forecast had no daily granularity and no breakdown by unit, clinical scope or emergency typology. Planning teams could not see how demand would differ between a large medical unit and a small one, or between adult, paediatric and obstetric emergencies.
Starting machine learning from zero
There were no models in production and no infrastructure to run them. Any forecasting system had to arrive with its own production discipline, and leave CUF's team able to build on it.

The solution
A model chosen for every segment
The system forecasts daily hospitalisation volumes and emergency demand across all CUF hospital units, broken down by unit, clinical scope (medical or surgical) and emergency typology (adults, paediatrics and obstetrics). It produces three-month rolling forecasts and delivers them on a business dashboard.
The work ran as two parallel workstreams on one shared foundation. Hospitalisations were led by DareData, while emergency demand was developed by CUF’s own team with DareData mentoring. Before any model could train, data from two hospital registry systems had to be unified in CUF’s Databricks warehouse, then aggregated from individual patient records into daily admission counts per unit, scope and typology, using history from 2019 onward.
Segments behave differently enough that one model does not fit them all. Statistical, machine learning and heuristic approaches were compared for each combination, and the best one was kept per segment: Prophet for scheduled surgery, which follows a strong planned pattern, ensembles for large medical units, and simpler heuristics for small units where volume is too low to learn from.
Production discipline was built from scratch alongside the models. MLflow handles the model registry and experiment tracking, a monthly pipeline runs every model automatically and selects the champion, and unit, integration and data-quality tests cover every layer. Everything runs on Databricks, with PySpark for large-scale aggregation.
How it works
From data to decisions, in 4 steps.
- 01Unify the dataTwo hospital registry systems are brought together in the Databricks warehouse.
- 02Count demand dailyPatient records become daily admission counts per unit, scope and typology, from 2019.
- 03Pick a model per segmentStatistical, machine learning and heuristic approaches are compared for each unit and scope.
- 04Run it every monthAn automated monthly pipeline selects the champion model and feeds a business dashboard.
The impact
Sharper forecasts, nine budget cycles a year
- 20%better forecast accuracy than the manual method, validated against the October to December hard close
- 46models running in production
- 9budget cycles a year, instead of one manual round in October
Forecasts are now 20% more accurate than the manual budgeting method, measured against the October to December hard close: the real accounting close, not a test set. Absolute error sits at 4.2% for hospitalisation forecasts and 4.4% for emergency forecasts.
Instead of a single manual round in October, the business can run 9 budget cycles a year, each starting from a data-informed forecast. 46 models run in production across every unit and typology, and the complete MVP across both workstreams reached the business in 2 months.
The project was also CUF's first machine learning platform. Emergency demand was built by CUF's own team with mentoring, on the same MLOps foundation, so the capability stays in house. The client rated the project 9 out of 10.

Your AI story, next.
Tell us what you want AI to do for your business. We design, build and run it with your teams, and measure it like the stories above.
- 01Use cases chosen for value, not hype
- 02Systems built into your stack and data
- 03Run, monitored and improved after go-live






















