The RNOKPP (Реєстраційний номер облікової картки платника податків — the registration number of the taxpayer’s account card) is Ukraine’s 10-digit personal tax identification number, issued by the State Tax Service. It is also widely called the IPN (Ідентифікаційний номер платника податків). Every employed, banking or property-owning resident needs one. What makes the RNOKPP especially interesting from a data-science perspective is that it is not a random serial: it encodes the holder’s exact date of birth, a daily sequential serial, and a gender indicator — all verifiable with arithmetic alone, entirely in your browser.
How it works
An RNOKPP is exactly 10 decimal digits with a precise internal layout:
| Positions | Field | Meaning |
|---|---|---|
| 1 – 5 | Day count | Days elapsed since 31 December 1899 |
| 6 – 8 | Daily serial | Sequence number within the birth date |
| 9 | Gender digit | Odd = male, even = female |
| 10 | Control digit | Weighted MOD-11 check digit |
Date of birth is recovered by treating the first five digits as a
day count with base date 31 December 1899, so day 00001 is 1 January 1900,
day 36524 is 31 December 1999, and so on. The tool converts this count to a
full calendar date using standard UTC arithmetic — no lookup tables required.
Gender is a single-bit flag embedded in digit nine: any odd digit (1, 3, 5, 7, 9) means male; any even digit (0, 2, 4, 6, 8) means female.
The checksum formula
The control digit in position ten is produced by a weighted MOD-11 algorithm specified in the official DPS registration documentation:
W = [−1, 5, 7, 9, 4, 6, 10, 5, 7]
sum = d1 × (−1) + d2 × 5 + d3 × 7 + d4 × 9 + d5 × 4
- d6 × 6 + d7 × 10 + d8 × 5 + d9 × 7
control = (sum mod 11) mod 10
The intermediate mod 11 prevents an impossible single-digit result (the raw sum can be negative or large). The final mod 10 collapses any value of 10 — which cannot appear as a single decimal digit — to zero.
Worked example
Take the obviously-fake number 3104700111:
- Digits 1–5:
31047→ 31,047 days after 31 Dec 1899 = 1 January 1985 - Digits 6–8:
001→ serial 001 within that day - Digit 9:
1(odd) → Male - Checksum:
| Pos | Digit | Weight | Product |
|---|---|---|---|
| 1 | 3 | −1 | −3 |
| 2 | 1 | 5 | 5 |
| 3 | 0 | 7 | 0 |
| 4 | 4 | 9 | 36 |
| 5 | 7 | 4 | 28 |
| 6 | 0 | 6 | 0 |
| 7 | 0 | 10 | 0 |
| 8 | 1 | 5 | 5 |
| 9 | 1 | 7 | 7 |
| Sum | 78 |
78 mod 11 = 1 → 1 mod 10 = 1 — matches digit ten, so the checksum passes.
This number was constructed specifically for this demonstration and does not correspond to any real person.
Privacy note
Everything in this tool runs locally inside your browser using JavaScript. No number you enter is transmitted, logged or stored anywhere. Tax identification numbers are sensitive personal data — this tool is designed so you never have to share yours with a third party just to check its structure.