The document discusses reverse engineering the algorithm used to compute the check digit for Singapore identity card numbers (NRIC/FIN). Through analyzing a sample of FIN numbers from a public database and using a "virtual experimentation" approach with an online library database, the author determines:
1) The same modulo 11 checksum algorithm is used for all prefixes (S,T,F,G), but the mapping of the check digit (letter) is shifted by 4 positions between S/T prefixes and F/G prefixes.
2) A universal algorithm is presented that works for any UIN/FIN, depending on the century prefix.
3) Some open questions about the algorithm design are also discussed.