Polish PESEL Validator

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.

Polish PESEL Validator Pro

Pro version coming soon — batch validation via CSV upload, exportable results, API access, and an offline version. The free tool stays free.

Pro version coming soon

Batch validation via CSV upload, exportable results, API access, and an offline version are on the way. The free tool stays free.

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.