Estonia Isikukood Validator

Verify an Estonian personal ID code — control digit, birth date and gender decoded instantly.

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 Estonia isikukood (Estonian for “personal code”) is the 11-digit national identification number assigned by the Estonian Population Register to every resident of Estonia. It appears on the national ID card, digital signature certificates, health insurance cards, bank records and countless government forms — making it one of the most widely used data fields in Estonian digital infrastructure. This tool validates an isikukood entirely in your browser, explains every rule it checks, and decodes all the information embedded in the number.

What the code encodes

An isikukood has the structure G YY MM DD SSS C where:

  • G — a single digit (1–8) that simultaneously encodes the holder’s gender and birth century. Digits 1 and 2 cover males and females born in the 1900s; 3 and 4 cover the 2000s; 5 and 6 the 2100s; 7 and 8 the 1800s.
  • YY — last two digits of the birth year (00–99).
  • MM — birth month (01–12).
  • DD — birth day (01–31, validated against the actual calendar).
  • SSS — a three-digit birth-order serial within the day (001–999). Odd serials are assigned to males; even serials to females — parity must agree with G.
  • C — the control (check) digit, computed from the other ten digits using a two-stage mod-11 algorithm.

The two-stage mod-11 checksum algorithm

Estonia uses a more robust control-digit scheme than a simple mod-10: it falls back to a second weight set if the first stage produces an ambiguous result.

Stage 1 — multiply each of the first 10 digits by the weights [1, 2, 3, 4, 5, 6, 7, 8, 9, 1], sum the products, and take the remainder mod 11. If the remainder is 0–9, that is the control digit and you are done.

Stage 2 (only reached when Stage 1 gives remainder 10) — repeat with weights [3, 4, 5, 6, 7, 8, 9, 1, 2, 3]. Take the new sum mod 11. A remainder of 0–9 becomes the control digit. The single remaining edge case — Stage 2 also gives 10 — is resolved by setting the control digit to 0.

This two-stage design means the control digit is always a single decimal digit (0–9), and the fall-through to Stage 2 makes it much harder to construct collisions by changing one digit.

Worked example with a fake code

Consider the obviously-fake code 39012045677 (used only to illustrate the format):

PositionDigitsMeaning
13Male, born 2000–2099
2–390Year 2090 within the century
4–512December
6–704Day 4
8–10567Serial 567 (odd → male, matches G=3)
117Control digit

Stage 1 weighted sum for digits 1–10 (3,9,0,1,2,0,4,5,6,7):

(3×1)+(9×2)+(0×3)+(1×4)+(2×5)+(0×6)+(4×7)+(5×8)+(6×9)+(7×1) = 3+18+0+4+10+0+28+40+54+7 = 164 164 mod 11 = 10 — remainder is 10, so Stage 2 is triggered.

Stage 2 weights [3,4,5,6,7,8,9,1,2,3]:

(3×3)+(9×4)+(0×5)+(1×6)+(2×7)+(0×8)+(4×9)+(5×1)+(6×2)+(7×3) = 9+36+0+6+14+0+36+5+12+21 = 139 139 mod 11 = 7 — control digit = 7.

The final digit is therefore 7, giving the complete code 39012045677. Enter it in the tool above to see all four checks pass with the full step-by-step breakdown.

What “valid” means (and does not mean)

A green “valid” verdict confirms four structural properties:

  1. Digit G is in the range 1–8 (a defined gender/century combination).
  2. The six birth-date digits form a real calendar date (including leap-year checks for February 29).
  3. The serial number parity (odd/even) matches the gender declared by G.
  4. The control digit equals the value produced by the two-stage mod-11 algorithm.

It does not mean the code is registered to any real person or that the person still lives in Estonia. Only authorised access to the Estonian Population Register can confirm real-world registration.

All computation happens locally. No digits you enter are ever transmitted over the network.

Ad placeholder (rectangle)