Methodology
Reviewed by PlainNHS ·
Data sources
PlainNHS aggregates publicly published NHS performance data from upstream publishers releasing under the UK Open Government Licence v3.0 or equivalent open terms. Every named source below is one click from this page so a reviewer or journalist can verify the provenance chain without trusting our framing alone.
- NHS England (gov.uk organisation page: gov.uk/government/organisations/nhs-england) - the RTT 18-week monthly provider return and the DM01 diagnostic waiting-times publication.
- Care Quality Commission (gov.uk organisation page: gov.uk/government/organisations/care-quality-commission) - published provider overall ratings matched to the trusts we profile, from the CQC's public data portal.
- Open Government Licence - the release terms for the government datasets we re-publish: nationalarchives.gov.uk OGL v3.
Coverage scope. PlainNHS currently profiles 12 NHS Trusts and 10 procedures, with 45 matched CQC overall ratings - a selected subset of England's trusts, not a full national census. We do not publish A&E 4-hour series, cancer waiting-time series, or primary-care surgery directories on this site. The current entity count is shown on the homepage and reflects the live database.
Pipeline
Our ETL pipeline is open-source-style and reproducible. The goal is that another engineer with the same raw files can rebuild the same SQLite tables and get the same numbers on every Trust page.
- Download. Scheduled jobs pull the latest published file from each upstream source. The publication date is recorded as the data vintage.
- Normalise. Files are parsed into the PlainNHS schema:
trusts,procedures,rtt_provider_specialty,rtt_provider_summary,dm01_provider_test,cqc_provider_ratings. Field names are mapped to common identifiers (ODS codes for organisations, NHS-defined procedure codes for pathways). - Validate. Each ingested row is checked for the expected range (e.g. RTT performance is a percentage 0-100; CQC rating is one of four bands). Out-of-range values are flagged for manual review rather than published.
- Serve. Pages are rendered live from the database. Numbers in the page body come from `SELECT` statements against the live table, not hardcoded constants.
We do not hand-type performance percentages into entity pages. A prior fixture era that did so was retired after measured mismatches against NHS England returns; the live surface now reads only from the provider returns above.
Derived figures
We compute three classes of derived figures, each documented inline:
- Per-Trust specialty waits. Median and 92nd-percentile incomplete-pathway waits per Trust per treatment function, taken directly from NHS England's monthly RTT provider return. RTT is reported by specialty, not by individual operation; we do not impute a procedure-level figure from a national median. Specialties below the display floor (100 incomplete pathways on Trust pages; 500 on national-spread charts) are omitted rather than imputed.
- Group means in research papers. The research section computes group means using the live database via documented SQL. Each paper's “Method” section shows the SQL used.
- Trust profile summaries. Plain-language paragraphs are drafted from the underlying data and reviewed against the cited source. No number in a summary paragraph appears that is not also in the table above it on the same page.
Peer blocks and regional comparisons on Trust pages are computed from the same incomplete-pathway rows that power the RTT summary cards. They are descriptive of the profiled subset, not a claim about England's full provider landscape.
Data vintage and updates
NHS performance data is published monthly with a one-to-two-month lag. PlainNHS aims to refresh within a week of each upstream release, though the data on file may lag behind the most recent NHS publication at any given time. The data vintage on every entity and procedure page is the period of the NHS England return that feeds the figures on that page (RTT or DM01) - never a seed placeholder from an older extract. Headline medians, provider tables, and the vintage stamp must share that same period.
When NHS England revises a prior month, we prefer the revised file on the next ingest rather than leaving a stale month live.
Corrections and changelog
If you believe a figure is wrong, email hello@plainnhs.co.uk or use the contact form with the page URL, the value in question, and (where possible) the upstream NHS England or CQC file you checked. We aim to acknowledge within 72 hours. The full process is on our corrections policy.
Every data page footer includes a prefilled report a data error on this page link that passes the current page path in the contact form's about field.
Material pipeline or methodology changes are listed on the public data changelog with dates, we do not backfill invented history.
Handling gaps and uncertainty
When a value is missing from the upstream release, we display “Not reported” on the relevant page rather than imputing a value. We do not extrapolate, model, or interpolate NHS-published figures. Small-number suppression in the official return stays suppressed here.
What this site is not
PlainNHS is not a clinical advice service, not an NHS official channel, and not a complete mirror of every NHS England statistical work area. Pathway guides may explain how A&E or cancer standards work without claiming those series are published here. Readers making referral decisions should confirm pathway details with their GP or the treating Trust.
Download the trust-level RTT extract this pipeline publishes: hospitals.csv · open data
Methodology prose is editorial documentation of the ingest pipeline; coverage counts on this page are live database totals and refresh with each NHS England or CQC ingest. See our editorial standards & corrections policy, the methodology behind these numbers, or report a data error on this page. Data current as of 2026-09-03. Figures here are for context and comparison; clinical pathway decisions belong with your GP, NHS 111, or the treating Trust.