United Kingdom · Validation
NHS Number validator.
Verify a UK NHS Number's real Modulus 11 check digit, as specified by the NHS Data Dictionary. Everything runs in your browser: nothing you type is transmitted anywhere.
Inputs
Result
Enter an NHS Number and press Validate.
How the NHS Number check digit works
An NHS Number is 10 digits, conventionally displayed 3-3-4 (e.g. 943 476 5919). The 10th digit is a Modulus 11 check digit computed from the first 9:
- Multiply each of the first 9 digits by a descending weight: 10, 9, 8 … down to 2.
- Sum the 9 products and take the result mod 11.
- The check digit is 11 minus that remainder.
- If that comes to 11, the check digit is 0. If it comes to 10, there is no valid check digit for those 9 digits at all — the number cannot be a real NHS Number regardless of what its 10th digit says.
Verification
The NHS Data Dictionary's own NHS NUMBER page (datadictionary.nhs.uk) returned an HTTP 403 to an automated fetch this session — a bot-blocking WAF, not a sign the algorithm is wrong. The algorithm above was instead cross-verified against the MIT-licensed, open-source nhs-number Python package, whose own check-digit function cites that exact NHS Data Dictionary page (and the CLOSER research-data-linkage resource report) as its source — an independently-published implementation of the same spec, not a guess.
What a passing checksum does and doesn’t tell you
A valid Modulus 11 check digit only proves the 10 digits are internally consistent — it does not confirm the number was ever actually issued to a real patient, or look up any patient record. This tool has no lookup capability and never will: NHS Numbers identify real patients. Runs entirely in your browser: nothing you type is transmitted, stored, or logged.