Poland PESEL Validator

Verify any Polish PESEL number — checksum, birth date, gender, century.

Ad placeholder (leaderboard)
Enjoying the tools? Go Pro for £4.99 (one-time) and remove all ads — forever, on this device. Remove ads — £4.99

The Poland PESEL validator checks whether an 11-digit PESEL number is structurally correct. It runs the official weighted checksum, tells you exactly why the number passes or fails, and decodes every piece of information the format encodes — birth date (including century), and gender. Everything happens locally in your browser; no data is ever transmitted.

What is a PESEL?

PESEL (Powszechny Elektroniczny System Ewidencji Ludności) is Poland’s national population register number, introduced in 1979. Every Polish citizen receives one at birth; foreign nationals who register their residence in Poland also receive one. The number appears on the national identity card (dowód osobisty), passport, tax return, and health insurance card. Because it encodes the holder’s date of birth and gender, it is both an identifier and a compact data record.

Structure of the 11 digits

A PESEL looks like YYMMDDSSSCP, where each group carries a specific meaning:

PositionsLabelMeaning
1-2YYLast two digits of birth year
3-4MMMonth, offset-encoded to carry century
5-6DDDay of birth (01-31)
7-9SSSSerial number within the birth date
10CGender digit (odd = male, even = female)
11PWeighted check digit

Century encoding in the month field

The clever part of PESEL is that the two-digit month field encodes five different centuries by adding a fixed offset:

Raw MM valueReal monthCentury
01-12plain1900s
21-32subtract 202000s
81-92subtract 801800s
41-52subtract 402100s
61-72subtract 602200s

So a person born on 14 May 2000 would have MM = 25 (May + 20) and their PESEL starts 00 25 14 …. A person born on 14 May 1944 would have MM = 05 and their PESEL starts 44 05 14 ….

The checksum algorithm

The check digit at position 11 is computed using a weighted sum over the first 10 digits with the repeating weight pattern 1, 3, 7, 9, 1, 3, 7, 9, 1, 3:

  1. Multiply each of the first 10 digits by its corresponding weight.
  2. Add all 10 products together.
  3. Compute sum mod 10.
  4. Subtract from 10, then take mod 10 again (the second mod handles the case where the remainder is already 0, keeping the result in 0-9).
  5. The result must equal digit 11.

For the obviously-fake sample 44051401359: weights × digits sum to 191, 191 mod 10 = 1, (10 − 1) mod 10 = 9 — which matches the last digit. Expand “Show checksum working” inside the tool to see the full multiplication table for any number you enter.

Example

The sample number 44051401359 is constructed purely to demonstrate a valid format — it is not a real person’s PESEL:

  • Birth date: 14 May 1944 (MM=05, in the 1900-range; DD=14; YY=44)
  • Gender digit: 5 (odd → Male)
  • Checksum: position-11 digit is 9, expected value is 9 — pass

Any number where one digit is wrong will fail the checksum check, and the tool will show both the expected and actual values so you can pinpoint the error immediately.

Ad placeholder (rectangle)