2 August 2026 · 4 min read
Two things a free NHS waiting-times tool made obvious
I put a free explorer for NHS England's monthly RTT and DM01 releases on this site last week. Building it, then verifying it against the raw CSVs, surfaced two things worth writing down — one about the data itself, one about a major NHS trust that hasn't been filing.
Dr Jez McCole
UK GP · Founder, Kairos Medical Informatics
1. The “All Specialties” aggregate is not the sum of the specialty rows
NHS England's monthly RTT Commissioner full-extract publishes one row per Integrated Care Board × Provider × Specialty × RTT Part Type. It also publishes one row per ICB × Provider with Treatment Function Code C_999 — labelled “All Specialties”.
The intuitive move is to compute an ICB total by summing every specialty row for that ICB and skipping the aggregate. It gives you a clean-looking number. It also under-reports.
C_999 includes patients on incomplete pathways who havenot been attributed to a specific treatment function — typically because coding is missing or in flux. So the specialty rows can sum to a smaller number than C_999. My first pipeline did exactly this and produced a QF7 South Yorkshire total that was consistently a few thousand under the authoritative figure. The fix is one line: derive ICB and provider top-line totals from C_999 rows only, and use the specialty rows solely to populate the per-specialty breakdown. Once I aligned to that rule, my numbers matched the NHS-official aggregate byte-for-byte.
If you're building anything on top of RTT data, this is worth knowing on the way in rather than on the way out.
2. Sheffield Teaching Hospitals hasn't filed an RTT return for six months
I noticed this by accident. The tool has a small trend line — six-month history for each ICB. QF7 South Yorkshire had a big month-on-month drop that didn't match reality. So I looked at which providers had disappeared between one month and the next, and one dominated: Sheffield Teaching Hospitals NHS Foundation Trust, provider code RHQ.
The raw NHS extracts confirm it. Between the December 2025 and May 2026 releases inclusive, RHQ has zero rows in the RTT Commissioner full-extract:
$ grep -c ',RHQ,' data/raw/*RTT*.csv 20251231-RTT-December-2025-full-extract-revised.csv:0 20260131-RTT-January-2026-full-extract.csv:0 20260228-RTT-February-2026-full-extract.csv:0 20260331-RTT-March-2026-full-extract-revised.csv:0 20260430-RTT-April-2026-full-extract.csv:0 20260531-RTT-May-2026-full-extract.csv:0
The last time RHQ appears in an RTT return I have on file was the July 2025 extract, where they reported about 91,000 patients on incomplete pathways. Their absence since then means the QF7 South Yorkshire ICB total is under-reported by roughly that many patients every month. It also means the population-facing waiting-time picture for anyone whose care route runs through STH is not showing up in the national dataset at all.
The reason for the gap is documented elsewhere — an ongoing data-quality remediation programme following the trust's waiting-list validation issues. There's nothing surprising about that in isolation. What is worth naming is the second-order effect: analysts, commissioners, GPs and patients working from the published national dataset are, for QF7, working from a substantially incomplete picture. And the standard tools around RTT data don't make that obvious.
Full disclosure: STH is my local trust. I'm a Sheffield GP and the practice I work in refers into it every week. This isn't a gotcha — it's the kind of thing a public tool with a bit of memory can make visible in a way spreadsheets can't.
Why free tools like this help
NHS England's open datasets are excellent. The tooling around them is patchier: dashboards inside trusts, PDFs from central bodies, spreadsheets on personal laptops. A public, free, no-login tool doesn't replace any of that — but it lowers the bar for a GP or a patient to answer a two-minute question, and it surfaces anomalies (like the STH gap) that aggregate dashboards smooth away.
Both findings above went into the tool itself. The C_999 rule is applied automatically in the monthly refresh. The missing-trust check runs as part of the trend build and will surface a warning banner the moment STH files again — or the moment any other provider drops out mid-series.
