
Outline
Interconnected Specialties: Dozens of acute clinical services continuously share and compete for hospital bed capacity.
Ripple Effects & Bed Blocking: Medical discharge delays directly block acute surgical transfers from recovery units.
Patient Off-Placement: When target wards are full, patients are boarded in the “wrong” specialty beds—inflating length of stay and compounding hospital gridlock.

29 Clinical Specialties Medicine, Surgery, Trauma, Cardiology, Haematology, ICU, etc.
2 Flow Types Admissions & Discharges Coupled daily inflows and outflows
58 Series Simultaneous Time Series 5 years of daily data (\(>133,000\) hospital observations)
How should we forecast these 58 streams for next planning periods?
Univariate Modeling
Operational Realities
Information Interdependencies: Admissions and discharges are strongly correlated across specialties (\(r \approx 0.85-1.0\)). Ignoring cross-specialty spillovers creates blind spots in operational planning.
Technical Debt: Maintaining 58 separate models is resource-intensive and error-prone, especially when each model requires independent hyperparameter tuning and monitoring.
Scalability Issues: As the number of specialties grows, the maintenance burden increases linearly, making it unsustainable for large hospitals with many interdependent streams.
➜ What if we could train ONE model that forecasts all 58 series at once?
Outline
Global Functional Mapping:
Rather than fitting 58 single-series models, a single function \(\mathcal{M}\) predicts discharge volume \(y_{i,t}\): \[y_{i, t} = \mathcal{M}\left( s_i, \, \mathbf{X}_{t}^{\text{cross}}, \, \mathbf{Z}_{t} \right) + \epsilon_{i, t}, \qquad i = 1, \dots, N\]
Cross-Specialty Feature Vector:
Captures systemic “ripple effects” by concatenating \(p\) autoregressive lags across all \(M\) clinical specialties: \[\mathbf{X}_{t}^{\text{cross}} = \left[\mathbf{y}_{t-1:t-p}^{(1)}, \, \mathbf{y}_{t-1:t-p}^{(2)}, \, \dots, \, \mathbf{y}_{t-1:t-p}^{(M)}\right] \in \mathbb{R}^{M \cdot p}\]
Pooled Empirical Risk Minimization:
The global estimator \(\mathcal{M}^*\) is learned jointly across all series and time points: \[\min_{\mathcal{M}} \sum_{i=1}^{N} \sum_{t=p+1}^{T} \mathcal{L}\left( y_{i, t}, \, \mathcal{M}\left(s_i, \, \mathbf{X}_{t}^{\text{cross}}, \, \mathbf{Z}_{t}\right) \right) + \Omega(\mathcal{M})\]
Notation & Dimensions:
| Time | Series ID (id_col) |
Specialty A Lags | Specialty B Lags | Specialty C Lags | … | Exog | Target (Y) Flow |
||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| lag 3 | lag 2 | lag 1 | lag 3 | lag 2 | lag 1 | lag 3 | lag 2 | lag 1 | |||||
| t1 | Specialty A | 49 | 52 | 58 | 15 | 18 | 20 | 10 | 12 | 14 | … | exog1 | 65 |
| t2 | Specialty A | 52 | 58 | 65 | 18 | 20 | 22 | 12 | 14 | 16 | … | exog2 | 71 |
| t3 | Specialty A | 58 | 65 | 71 | 20 | 22 | 19 | 14 | 16 | 14 | … | exog3 | 68 |
| ↓ | id_col switches → |
← Cross-Lag Features (X) Repeat Identically Across Series → | Target switches ↓ | ||||||||||
| t1 | Specialty B | 49 | 52 | 58 | 15 | 18 | 20 | 10 | 12 | 14 | … | exog1 | 22 |
| t2 | Specialty B | 52 | 58 | 65 | 18 | 20 | 22 | 12 | 14 | 16 | … | exog2 | 19 |
| t3 | Specialty B | 58 | 65 | 71 | 20 | 22 | 19 | 14 | 16 | 14 | … | exog3 | 21 |
| ↓ | id_col switches → |
← Cross-Lag Features (X) Repeat Identically Across Series → | Target switches ↓ | ||||||||||
| t1 | Specialty C | 49 | 52 | 58 | 15 | 18 | 20 | 10 | 12 | 14 | … | exog1 | 16 |
| t2 | Specialty C | 52 | 58 | 65 | 18 | 20 | 22 | 12 | 14 | 16 | … | exog2 | 14 |
| t3 | Specialty C | 58 | 65 | 71 | 20 | 22 | 19 | 14 | 16 | 14 | … | exog3 | 15 |
| ⋮ | ⋮ (all 58 streams) | ⋮ (cross-lags repeated identically per date across streams) | ⋮ | ||||||||||
Step \(h = 1\) (Known History)
1. Known Observations: Model ingests historical observations up to time \(t\): \[\mathbf{X}_{t} = \left[\mathbf{y}_{t:t-6}^{(1)}, \dots, \mathbf{y}_{t:t-6}^{(29)}, \mathbf{Z}_{t+1}\right]\]
2. Forecast Generation: \[\hat{\mathbf{y}}_{t+1} = \mathcal{M}\left(\mathbf{X}_t\right)\] Generates 1-step ahead predictions for all 58 series simultaneously.
Step \(h = 2\) (AutoReg Roll)
1. Lag Update Feedback: Predicted values \(\hat{\mathbf{y}}_{t+1}\) roll into the most recent lag position: \[\text{Lag}_1 \leftarrow \hat{\mathbf{y}}_{t+1}, \quad \text{Lag}_2 \leftarrow \mathbf{y}_t\]
2. Step-2 Prediction: \[\hat{\mathbf{y}}_{t+2} = \mathcal{M}\left(\mathbf{X}_{t+1}\right)\] Mutual cross-specialty dependencies feed directly into day 2.
Step \(h = 3 \dots H\) (\(H = 42\))
1. Recursive Progression: Repeated iteratively for all 42 days of the operational roster horizon.
2. Full Joint Trajectory: Produces a coherent \(42 \times 58\) matrix of predictions: \[\hat{\mathbf{Y}}_{t+1:t+42} \in \mathbb{R}^{42 \times 58}\]
Outline
NHS Inpatient Dataset & Evaluation Protocol
Data Source: NHS Inpatient dataset (Jan 2021 – Feb 2026, \(>133,000\) points).
Target Dimensions: 29 clinical specialties \(\times\) 2 flow types \(= \mathbf{58}\) time series.
Cross-Lag Features: 29 dominant flow series \(\times\) 7 lags \(= \mathbf{203}\) dynamic features.
Exogenous Variables: Calendar (dow, month), bank holidays, and General Medicine capacity expansion (gm_ch).
Rolling-Origin Cross-Validation:
Competing Models & Benchmarking Protocol
lgb): Fast histogram GBDT with native categorical series handling.xgb): Level-wise gradient boosting with one-hot series encoding.ridge): Linear \(L_2\) regression with Fourier seasonality terms.
Outline
Root Mean Squared Scaled Error (RMSSE)
\[\text{RMSSE} = \sqrt{\frac{\frac{1}{H}\sum_{h=1}^{H}\left(y_{t+h} - \hat{y}_{t+h}\right)^2}{\frac{1}{T-1}\sum_{t=2}^{T}\left(y_t - y_{t-1}\right)^2}}\]
Continuous Ranked Probability Skill Score (CRPSS)
\[\text{CRPS}(F, y) = \int_{-\infty}^{\infty}\left(F(x) - \mathbf{1}(x \ge y)\right)^2 dx\] \[\text{CRPSS} = 1 - \frac{\text{CRPS}_{\text{Multi}}}{\text{CRPS}_{\text{Single}}}\]




| Operational Dimension | Single-Series Models | Proposed Multi-Series | Operational Benefit |
|---|---|---|---|
| Model Footprint | 58 separate models | 1 unified model | Single model to maintain |
| Hyperparameter Tuning | 58 Optuna studies (\(4,350\) CV fits) | 1 Optuna study (\(75\) CV fits) | Substantially faster tuning process |
| Data Utilization | \(58 \times 2,300\) isolated observations | \(133,000+\) collective panel rows | Greater statistical power |
| Drift Monitoring | 58 separate pipelines to track | 1 consolidated pipeline | Minimal maintenance overhead |
| Cross-Specialty Awareness | Limited to own series history | Full cross-series lag visibility | Captures inter-specialty spillover |
| Forecast Accuracy | Mean RMSSE: 0.5989 | Mean RMSSE: 0.5610 | +7.01% average gain across 58 series |
Outline
Probabilistic Scenarios: Generate joint scenario paths across all specialties to capture uncertainty and cross-specialty admission&discharge surges.
Bed Allocation & Reservation Simulation: Simulate downstream bed availability to evaluate proactive reservation policies across clinical wards.
Stochastic Optimization: Formulate stochastic programming models for dynamic bed allocation under uncertainty to reduce patient off-placement.
