The EGN of people born after 2000
Published
The EGN (Bulgarian personal number) of a child born in 2005 starts with 05, and its “month” is something like 43. That's not a typo: it's how the civil-registration regulation defines it. Here is how to read such a number and where older software trips over it.
The rule: add 40 to the month
The first six digits of an EGN are the date of birth: the last two digits of the year, the month and the day. With only two digits for the year, someone born in 1905 and someone born in 2005 would look the same, so the regulation separates the centuries through the month:
- born 1900–1999: the month is unchanged, 01 to 12;
- born 1 January 2000 to 31 December 2099: 40 is added, so 41 (January) to 52 (December);
- born on or before 31 December 1899: 20 is added, so 21 to 32.
The rule is in Article 104(3) of Regulation No. RD-02-20-9 of 21 May 2012 on the Unified Civil Registration System (ESGRAON).
Reading such a number
Take 0543031240 (a test number generated for this example):
- 05 — the year ends in 05;
- 43 — a month above 40 means the century is 2000–2099 and the month is 43 − 40 = 3 (March). The year is 2005;
- 03 — the 3rd day;
- 124 — the unique combination for that day. Its last digit (4) is even, so the person is male; an odd digit means female;
- 0 — the check digit.
Result: a man born on 3 March 2005.
The check digit works the same way
The century doesn't change the formula. Multiply each of the first nine digits by its weight: 2, 4, 8, 5, 10, 9, 7, 3, 6. Add the products and divide by 11. The remainder is the check digit; a remainder of 10 gives 0.
0·2 + 5·4 + 4·8 + 3·5 + 0·10 + 3·9 + 1·7 + 2·3 + 4·6 = 131
131 = 11·11 + 10 → remainder 10 → check digit 0Another example: a woman born on 28 December 2012 with the combination 137 gives 12 52 28 137. The sum is 210, the remainder after dividing by 11 is 1, and the number is 1252281371.
Where software gets these numbers wrong
- The leading zero. Anyone born 2000–2009 has an EGN starting with 0. A spreadsheet or database column that stores it as a number drops the zero and leaves nine digits. Store EGNs as text.
- A “month must be ≤ 12” check. A form that rejects months 41–52 rejects everyone born after 2000. Validate against the regulation's rule, not a plain date.
- Age calculation. If the code assumes “05” means 1905, the child comes out over a hundred years old. The century comes from the month, not the year.
The checker on /en/egn applies the rules for all three centuries. It runs entirely in your browser; the number you type is never sent to our server.