Total Patients Waiting
389,263
Dec 2023 · all 15 trusts
↑ 2,459 vs Nov% Seen Within 18 Wks
87.5%
Target: 92%
4.5pp below targetWaiting Over 52 Weeks
4,146
NHS Constitution breach
Escalation requiredAverage Wait
15.4 wks
Target: <18 weeks
Within rangeAverage DNA Rate
11.2%
Target: <10%
Above thresholdAvg Utilisation
82.7%
Target: >85%
Near targetRTT Performance — Monthly Trend
% patients seen within 18 weeks vs 92% NHS target (Jan–Dec 2023)
Performance Gap: RTT remained consistently below the 92% target throughout 2023 (87.0–88.1%). No trust met the target in December — a systemic gap requiring structural intervention.
Waiting List Size — Monthly Trend
Total patients waiting across all 15 trusts (Jan–Dec 2023)
Demand Pressure: New referrals (51,797) outpace completed pathways (45,375) — a monthly backlog growth of 6,422 patients. Waiting list peaked at 416,042 in May.
Cancelled Operations
Monthly cancellations Jan–Dec 2023
DNA Rate by Month
Did Not Attend % — threshold 10%
Referrals vs Completions
Demand vs capacity monthly
Over 18 Weeks
49,690
12.8% of all waiting
Over 52 Weeks
4,146
NHS Constitution breach
New Referrals (Dec)
51,797
Demand this month
Completed Pathways
45,375
Capacity this month
Backlog Growth
+6,422
Referrals minus completions
Waiting Time Band Distribution
Patients by weeks waiting — Dec 2023
52-Week Breach: 4,146 patients have waited over 52 weeks — a direct breach of the NHS Constitution right to treatment. These require immediate escalation to elective recovery teams.
Referrals vs Completed Pathways
Monthly demand vs capacity gap — Jan–Dec 2023
Throughput Gap: Completed pathways have consistently lagged behind new referrals throughout 2023. Without additional elective capacity, the waiting list will continue to grow.
Trusts Meeting Target
0 / 15
0% compliance Dec 2023
All trusts breachingBest Performer
King's College Hosp
90.2% within 18 wks
Most Pressure
Nottingham Univ Hosps
85.2% within 18 wks
Performance Range
5.0pp
Best to worst trust gap
Trust Ranking — RTT 18-Week Performance Dec 2023
| # | Trust Name | % Within 18 Wks | Bar | Total Waiting | Over 18 Wks | Avg Wait (wks) | DNA Rate | Target |
|---|
Trust RTT Performance
% seen within 18 weeks — red line = 92% target
Trust DNA Rates
Did Not Attend % — threshold = 10%
Worst Specialty
Ophthalmology
84.9% within 18 wks
Second Worst
Neurology
85.8% within 18 wks
Best Performing
Dermatology
89.3% within 18 wks
Specialties Tracked
10
All major clinical areas
RTT Performance by Specialty
% seen within 18 weeks — worst to best — Dec 2023
Priority Action: Ophthalmology (84.9%) and Neurology (85.8%) are more than 7pp below the 92% target. These should be the first focus of elective recovery planning.
Waiting List Size by Specialty
Total patients waiting — Dec 2023
Largest Backlogs: Trauma & Orthopaedics and General Surgery carry the largest waiting lists — typical of post-COVID elective recovery challenges across NHS England.
Automated Analytics Pipeline Python · 5 Scripts
Step 01
Data Extraction
requests · NHS Portal
→
Step 02
Data Cleaning
pandas · ETL
→
Step 03
KPI Calculation
pandas · numpy
→
Step 04
Automation
Orchestrator script
→
Step 05
Email Report
smtplib · Gmail SMTP
Records Processed
18,000
NHS Trusts
15
Specialties
10
Months of Data
12
KPI Files Generated
5 JSON
Pipeline Runtime
~8 sec
Pipeline Scripts
Single responsibility per script — clean, testable, maintainable
| File | Purpose | Libraries |
|---|---|---|
| config.py | Settings — never uploaded to GitHub | .gitignore |
| 01_extract.py | Download NHS RTT data from public portal | requests |
| 02_clean.py | Remove duplicates, fix types, validate | pandas |
| 03_calculate_kpis.py | Calculate all NHS KPIs and alert flags | pandas, numpy |
| 04_automate.py | Run full pipeline in one command | importlib |
| 05_email_report.py | Build HTML email and send via Gmail | smtplib, email |
Automated Email Report
What stakeholders receive every Monday at 07:00 — zero manual effort
🏥 NHS Operational Performance Report — Dec 2023
🔴 RED: 15 trusts breaching 18-week RTT target
Total Waiting: 389,263
RTT 18-wk: 87.5%
Over 52 wks: 4,146
DNA Rate: 11.2%
View Full Dashboard →
Sent automatically · Every Monday 07:00 · Built by Taiwo Tobi Omoyeni
Schedule it: Windows — Task Scheduler. Mac/Linux — Cron:
0 7 * * 1 python /path/04_automate.py