Polish PESEL decoder
A Polish PESEL packs a lot of information into 11 digits: the date of birth, the person’s sex, and a check digit. This decoder reads the embedded date, works out the sex, and verifies the checksum — useful for understanding a PESEL or confirming one was typed correctly.
How it works
The 11 digits break down as YYMMDD · serial(4) · check:
YYMMDD : date of birth, with the MONTH offset carrying the century
01–12 → 1900s, 21–32 → 2000s, 41–52 → 2100s,
61–72 → 2200s, 81–92 → 1800s
digit 10 : sex — odd = male, even = female
digit 11 : check digit
The checksum multiplies the first ten digits by weights 1,3,7,9,1,3,7,9,1,3, sums them, takes the result mod 10, and the expected check digit is (10 − that) mod 10.
Example
PESEL 44051401359 decodes as:
- YY=44, MM=05 (1–12 → 1900s), DD=14 → date of birth 1944-05-14
- 10th digit = 5 (odd) → Male
- Weighted sum of the first ten digits mod 10 gives expected check digit 9, which matches the final digit → valid checksum
| Field | Digits | Meaning |
|---|---|---|
| Date | 440514 | 14 May 1944 |
| Serial | 0135 | tie-breaker |
| Sex digit | 5 | Male |
| Check | 9 | matches |
Everything runs in your browser, so the PESEL you enter is never uploaded. This is a structure and checksum decoder only — it does not confirm the number exists in the official PESEL register.