This is the story of how we found we found out the ages of our users without asking for the information.

The Ops team needs demographics data

Aldy, the CMO for LandX, made a request for on demographics data of the users we have in LandX. Seems easy. Because we have a KYC (know your customer) flow, I reckoned that this would be as easy as making a simple SQL query in Redash, our BI (business intelligence) tool and fetching the dates of birth of LandX users.


Not many people know this. But while LandX was a business model pivot, it was not a sharp pivot technically. We reused the entire NuMoney Exchange's platform for LandX. The only thing new we built was the mobile app. So everything was reused, including the KYC workflow.

And guess what? We did not include the date of birth field in the KYC segment. We had assumed that the date of birth information in the ID/Passport photo was sufficient.

But because it was not saved as an entry in the database, we could not retrieve the date of birth information without literally reading hundreds of national ID photos. So I was going to give up.


So, nobody in the team knew that the first 2 characters of the Singapore IDs were the birth year.

Wait a second

KTP is the name of the national ID of Indonesians

Mario, our Indonesian native intern who is working with us in our Singapore office added out of nowhere that hey, his birth date is in his KTP number. Upon verification with more members of the Indonesian team, viola. The birthdate is indeed in the KTP number. And we have the KTP number of every user who has their account verified with us.

We found out that from the KTP number, we can infer

  • Which city and region the user is born at in Indonesia
  • What the gender of the user is

Life has a way of surprising you if you stay curious.

This is why I love programmers. They are ever curious, and a lot of smart (systems) design is embedded in our daily digital lives. And finding out factoid tidbits like this, while insignificant, brings a simple smile to my face.