Today my government (Croatian) started with distribution of our personal identification number (SSN as Americans know it). It is greatest invention since sliced bread or so they tell us. One could even be puzzled on how we managed to live without it for all these years. But wait, we had that number before.
From ex-Yugoslavian time we inherited our personal number. It was 13 digits, 12 were data and 1 was checksum. When I say data, I mean real data - you could find person's date of birth, gender and region of birth. This came in really handy with medical software. Just take JMBG as unique identifier and extract date from it to get persons age (something that doctors like to know).
Although that was very handy, it was doom of it. Some people here don't like others to know their age and since split of Yugoslavia, ex-republic of their birth became a no-no subject. There was even law passed that removed it from every ID. That was not a smart move.
Our new identification number consists of 11 purely random digits - that means harder to remember of course. It should replace JMBG and since verification algorithm is different that also means update of every application that uses it. But there are good things to it also.
European union uses up to 12 digits so we are compatible with them if we ever enter. Here I need to say that I am sorry it is not 12 digits - plenty of barcode symbologies encode even number of digits more easily. It also uses standard ISO 7064 (aka as modulo 11,10) encoding of check digit which is always good.
There is not even an intent of it.
I do think that they could have done better job at defining that number (e.g. making it even number of digits and/or encoding date of birth inside of it) but we need to learn how to live with it as good as we did with JMBG.
My first step to it was to write some C# code to validate it.