UK public sector / Does passing an assessment show up in the code?

484 published Service Standard assessments, joined to the repositories of the bodies assessed. The honest answer is that sixteen organisations cannot settle it.

16 August 2026 · method assessment statistics

Every other measurement on this site records what a team did. The Service Standard assessments record what a panel of assessors thought of it — a judgement against a published standard, per service, since 2015. They are the only public quality verdict in UK government digital, and they have never been joined to anything.

The dataset

gov.uk/service-standard-reports carries 484 assessments: 319 passed, 99 did not, and 66 are neither.

That last group is not a data problem. "Amber" and "pass with conditions" mean not met yet, continue anyway, fix within three months, which is genuinely neither a pass nor a failure, and forcing it into one would misrepresent a deliberate piece of assessment design.

Assessments by stage

A service is assessed as it moves through phases. Alpha dominates, because many services are assessed once and never come back.

alphaalpha: 246246betabeta: 141141livelive: 3131beta-reassessmentbeta-reassessment: 2626alpha-reassessmentalpha-reassessment: 1818beta-amber-evidence-reviewbeta-amber-evidence-review: 55(none)(none): 55alpha-reviewalpha-review: 44

Assessments published per year

Reports have been published since 2015.

20132013: 1120142014: 7720152015: 212120162016: 434320172017: 484820182018: 424220192019: 363620202020: 404020212021: 626220222022: 676720232023: 363620242024: 444420252025: 272720262026: 1010

Ten years, four formats

A decade of one publication is a decade of people changing their minds about how to write it down, and every change was found by looking at what broke.

None of that was anticipated. All of it was caught by shouting. The fetcher logs any result value it does not recognise instead of filing it under "indeterminate", and each of those formats announced itself as a warning rather than as a silently wrong number.

One more thing worth saying about the source: the assessed department is not in the structured data at all. links.organisations is always the Government Digital Service, because GDS publishes the report. Whose service it actually was appears only in the body table, so the single field this analysis most needs is the one that had to be scraped. 39 reports do not state it anywhere.

The question

Does passing a Service Standard assessment show up in an organisation's repositories at all?

Restricting to organisations with at least five determinate assessments and at least ten live repositories leaves 16 of them.

OrganisationAssessments passedAssessedLicensedWith tests
hmcts100%569%71%
dvla91%1189%69%
alphagov90%1063%58%
nhsbsa89%986%48%
dvsa86%770%80%
ONSdigital83%669%49%
NHS-digital-website80%518%39%
dwp79%3382%37%
companieshouse79%1485%61%
DEFRA77%132%53%
hmrc76%3398%94%
DFE-Digital75%1263%45%
intellectual-property-office71%780%62%
UKHomeOffice60%1053%45%
cabinetoffice57%1455%52%
defencedigital40%544%33%

The answer is that this cannot answer it

Relationshiprn p
Assessment pass rate vs licence coverage +0.3016 0.26
Assessment pass rate vs test coverage +0.4516 0.08

Both are positive, and neither is statistically significant. A correlation of +0.45 across 16 points is exactly the kind of number that turns into "services that pass assessments write better code" by the time it reaches a slide, and it does not survive its own significance test. The confidence interval spans zero. The honest statement is that the data is consistent with a positive relationship, a negative one, and none at all.

The counter-examples make the point better than the coefficient does. DEFRA passes 77% of its assessments and licenses 2% of its repositories. HMRC passes 76% and licenses 98%. If assessment outcome predicted repository hygiene, those two would not sit next to each other.

Which is what you would expect, on reflection

The Service Standard has fourteen points. They are about understanding user needs, accessibility, iterative delivery, having a multidisciplinary team, reliability, security and measuring success. One of them — point 12 — is about making source code open.

So an assessment is overwhelmingly a judgement about whether a service works for the people using it, and only marginally about whether its repository has a licence file. Finding no strong relationship between the two is not a failure of either measure. It is a reminder that they are measuring different things, and that this site measures the smaller one.

The interesting version of this question is one level down. Not "do organisations that pass assessments have tidy repositories", which is mostly a question about how large the organisation is, but "does this assessed service's code look different from the rest". That needs a service-to-repository mapping, which does not exist and would have to be built by hand.

What it is good for anyway

Even without a correlation, the assessments are the most useful thing added to this project in a while, because they are an independent measure. Everything else here is derived from the same GitHub API by the same code, and a systematic error in that pipeline would be invisible to every page. A dataset with a different provenance, a different publisher and a different definition of quality is the only thing that can contradict it.

Method: 484 assessment reports from the GOV.UK search and content APIs, Open Government Licence v3.0, published by the Government Digital Service. Outcome and stage come from structured metadata where present and from the report body where not; the assessed body is scraped from the body in every case. Correlations are Pearson coefficients across 16 organisations with p-values from the t transform, computed at build time and reported together, because a coefficient published without its sample size invites a conclusion the data does not support. Assessment is concentrated in central government services above a spend threshold, so this is a biased sample of the estate and any comparison has to stay inside it. See Method.

← All writeups