Project Overview

This NHS KPI Tree project provides a visual breakdown of hospital-level key performance indicators (KPIs), including ICU capacity, A&E waiting times, elective surgery backlog, and staff absence rates. It scrapes data from publicly available NHS digital reports, performance APIs, and hospital-specific dashboards to generate an up-to-date status overview of individual trusts and hospital sites.

The dashboard transforms these indicators into a simplified, colour-coded format that enables quick triage of operational pressures across the NHS, supporting decision-makers, regional planners, and internal staff prioritisation workflows.

The Challenge

  • Lack of consolidated visual dashboards combining ICU, A&E, and elective care metrics at the trust level
  • Manual data reporting across trusts slows operational response
  • Delayed publication of NHS figures makes it difficult to spot trends in real time
  • Hospital planners require immediate visibility of pressures to inform staff allocation and triage

Solution & Approach

  • Built a web scraping system that retrieves live data from NHS A&E Waiting Times site, hospital dashboards, and regional bed occupancy feeds
  • Standardised scraped data into structured JSON/CSV formats
  • Mapped key KPIs to real-time gauges for ICU capacity, backlog counts, and operational risk
  • Used React and Plotly to create responsive, mobile-friendly dashboard cards
  • Packaged entire pipeline in Docker for local or cloud deployment

Results & Impact

The implementation of this sales performance dashboard delivered clear business value:

30+
NHS Trusts Monitored
4+
Live KPI Categories
5 min
Scraping Frequency
Containerised
  • Delivered a visual early-warning tool for NHS pressures using ICU, A&E, elective and staffing metrics
  • Reduced reliance on spreadsheet-based triage and incident dashboards
  • Created a plug-and-play dashboard suitable for future integration into ICS-level decision platforms

Technical Implementation

  • Scraping: BeautifulSoup with custom headers and fallback API requests
  • Visualisation: React + Plotly with animated progress bars and status alerts
  • Data Engine: Python + Pandas with scheduled parsing of NHS digital CSVs
  • Deployment: Docker container exposing a port-8501 React service

Screenshots