An Irish PPS Number (Personal Public Service Number, commonly written PPSN) is the unique identifier issued by the Department of Social Protection (DSP) for every individual engaging with Irish public services — from filing a tax return with Revenue to accessing social welfare payments, applying for a driving licence or enrolling a child in school. Data-entry errors are common because the number looks like a simple alphanumeric string, but it carries a carefully designed check character that catches most single-character mistakes. This tool validates a PPSN by running the full modulo-23 algorithm and showing you the step-by-step arithmetic, so you can see exactly why a number passes or fails rather than just receiving a yes-or-no answer.
Format overview
A PPS number consists of three parts:
- 7 numeric digits — a plain sequential serial number with no encoded birth date, gender or region. The digits are simply the next available number in the DSP’s sequence.
- First check character (position 8) — a letter from A to W computed by the mod-23 algorithm described below.
- Optional second check character (position 9, new-format only) — present only on numbers issued or re-issued from around 2013 onward. When a second check character exists, position 8 is always W (acting as a format flag rather than a checksum result).
Old-format numbers are 8 characters (e.g. 1234567T). New-format numbers are 9 characters
(e.g. 1234567WB). Both formats remain in active circulation.
The modulo-23 algorithm explained
First check character (applies to all PPSNs):
| Digit position | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|
| Weight | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
Multiply each digit by its weight and sum all seven products. Divide the sum by 23 and keep the remainder. Map that remainder to a letter using this table:
| Remainder | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Letter | W | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V |
That mapped letter must equal position 8 of the PPSN.
Second check character (new-format 9-character numbers only):
The same seven digits are reweighted differently:
| Digit position | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|
| Weight | 7 | 5 | 8 | 3 | 2 | 9 | 4 |
Again sum the weighted products, mod 23, and map to the same letter table. The result must equal position 9 of the PPSN.
Worked example (obviously fictitious numbers only)
Take the fake number 1234567T (old format):
- Weighted sum: (1×8) + (2×7) + (3×6) + (4×5) + (5×4) + (6×3) + (7×2) = 8 + 14 + 18 + 20 + 20 + 18 + 14 = 112
- 112 mod 23 = 20
- Remainder 20 maps to T in the table above
So 1234567T has a correct check character. The tool performs this working and displays
every intermediate value so you can verify it independently.
Every calculation runs locally in your browser. No PPSN you enter is ever transmitted, stored or logged.