This Polish PESEL validator checks a PESEL number against its official
weighted checksum, and decodes the birth date and sex digit encoded within it. Everything
runs in your browser — nothing is sent anywhere.
How to use it
Enter the 11-digit PESEL and click "Check PESEL". The tool decodes the birth date
(accounting for the century-offset month encoding), reads the sex digit, and verifies the
final digit against the checksum formula.
How the checksum works
Each of the first ten digits is multiplied by a fixed weight —
1, 3, 7, 9, 1, 3, 7, 9, 1, 3 — and the products are summed. The 11th digit
must equal (10 − (sum mod 10)) mod 10. Like similar national-ID checksums, this
construction is sensitive to single-digit typos and adjacent transpositions.
Why the month can exceed 12
To fit birth years spanning five centuries into a 2-digit year field, PESEL shifts the
month digits by a century-specific offset: unmodified for the 1900s, +20 for the 2000s, +40
for the 2100s, +60 for the 2200s, and +80 for the 1800s. A raw month value of "25", for
example, decodes to May of a year in the 2000s.
Frequently asked questions
What is a PESEL?
PESEL (Powszechny Elektroniczny System Ewidencji Ludności) is Poland's 11-digit national identification number, assigned to every resident and encoding their birth date, a serial number, sex, and a checksum.
How is the birth date encoded?
The first 6 digits are YYMMDD, but the month carries a century offset: 01–12 for 1900–1999, 21–32 for 2000–2099 (month + 20), 41–52 for 2100–2199, 61–72 for 2200–2299, and 81–92 for 1800–1899. This tool decodes whichever century the month digits imply.
How do I know the sex encoded in a PESEL?
The 10th digit (the second-to-last) indicates sex: an odd digit means male, an even digit means female. This tool reads that digit directly.
How does the checksum work?
Each of the first 10 digits is multiplied by a fixed weight — 1, 3, 7, 9, 1, 3, 7, 9, 1, 3 — the products are summed, and the check digit is (10 minus the sum modulo 10) modulo 10.
Is my PESEL sent anywhere when I use this tool?
No. Validation happens entirely in your browser via JavaScript. Nothing is transmitted, logged, or stored — worth caring about, since PESEL is one of the most sensitive personal identifiers in Poland.