How I would fix Nepal’s NID registration system (for Kathmandu)

Samridh Tuladhar
6 min readDec 11, 2022

Around 2021, Nepal introduced a new identification program called the National Identity Card. ( राष्ट्रिय परिचय पत्र )

This card is very similar to India’s concept of the Adhar Card, where all your information ( esp. biometric ) is stored on the government’s server, and if at any moment you have to prove your identity, all you’d have to do is:

  1. Recall your identity number.
  2. Provide biometric proof.

Done. No need to carry around a document and losing the paper they provide with the identification number has no consequence — all you have to do is recall the identity number.

Sure, this system has its flaws — there are privacy concerns and security measures are lacking on the government’s side.

But I’m not here to fix that, I’m here to fix the onboarding process.

So, what’s the onboarding process like?

  1. Fill up the form at
  2. Print out the final form & go to your nearest district office.
  3. Submit the form & get your biometrics taken.
  4. You will return home with your identity number.

Pretty simple right?

And that’s correct, it is simple, it’s a 1–2–3-go type of system that I love, but, they have forgotten one major thing: scale.

People waiting in line to get the National Identity Card

At step 3, in Kathmandu, only 100 people are allowed to be onboarded in a day, and they have to wait in line to do so. The wait, on average is 3 hours.

Also, the 100 people aren’t enough for the size of Kathmandu and its population. So, let’s assess the damage that’s happening right now:

One can safely assume that an average Kathmandu citizen earns about Rs. 1000 a day — i.e.,

Rs. 1000 in 8 hours
=> Rs. 125 per hour
=> Rs. 375 in 3 hours
=> Rs. 37,500 in 3 hours for 100 people in a day
=> Rs. 1,36,87,500 money lost in 365 days.

This was just accounting for the people waiting in line. Many economic damages happen for the people who couldn’t get the ID card on time as it’s required to obtain a passport.

The amount of money lost is staggering and not to mention the amount of time lost. The time that never returns — wasted by standing in line, all for a document.

Yes, everyone can complain, but what about a solution? Can I give you one?

Of course, I can. That’s why I wrote this article. 😎

So, what’s your genius solution?

  1. Keep the initial onboarding same — no need to change the part where people fill up the forms online.
  2. Now, with the filled-up forms, instead of going to the nearest district office — we go to our nearest photography studio.
  3. These guys will be trained by the government. They will be licensed to onboard a person to the NID system.
  4. Once onboarded, they will be given a pre-enrollment number — which they can take to their nearest district office, which is now outfitted with 10 ATM-like self-service machines.
  5. The customer will type in the pre-enrollment number & get their fingerprint scanned and finally the machine will give them their final National Identity Number.

Hmm, you made a 3 step task into a 5 step task. How does it help with the scaling issue? And how will it be done at a reasonable cost?

Allow me to explain:

Let’s start with the new people in the scene, the photography studios — these shops are common throughout Kathmandu, they typically take your photo and pump out passport-size photos and provide photocopy facilities.

So, I would open up a center for training, the entry cost would be Rs. 1000 per person — this would be a one-day training course where the prospective “onboarder” will be trained to use the equipment. In all honesty, the machines aren’t that hard to operate it’s just a fingerprint sensor and a camera.

This training facility does not need to run daily, it can be operated once in 15 days or can be scaled for even training multiple sessions a day, after all, assuming one person can train 30 people a day. 10 can train 300.

The prospective onboarder should purchase any equipment from the training center, which will have their IDs linked down to every screw on the machine. This is to avoid any cheating or black market purchase of this equipment — to double check on this, the onboarder must also provide their biometrics when onboarding a new customer.

The salary of the trainer can be completely derived from the Rs. 1000 fee that is paid by the prospective onboarder who can train multiple of them on the same day.

Now, a new rule can be added — that the onboarders may not charge more than Rs. 300 per person. This will prevent syndicate-like behavior where all the onboarders collaborate and start increasing the price of onboarding. Rs. 300 per person is an acceptable amount as most Kathmandu people earn more than triple that amount in a day, and if they would have wasted Rs. 375 waiting in line, then spending Rs. 300 makes sense. There are 1.5 million people in Kathmandu, and even with 10,000 onboarders working at the same time. They will earn:

1.5 million people ✖ Rs. 300
=> Rs. 450 million => Rs. 450,000,000 total generated
=> Rs. 450,000,000 for 10,000 operators => Rs. 45,000

Each operator will earn Rs. 45,000 if there are 10,000 operators in Kathmandu ( on average ). All we have to do is find equipment that is below that cost and that will justify the businesses to attend the training and purchase the equipment.

Now, onto the self-service machines.

There are so many ATMs and other self-service recharge stations started by companies like NTC and Ncell. Similar technology can be used with this solution, and to mass manufacture this — you can have the National Innovation Center do it. The line waiting is costing Kathmandu Rs. 1,36,87,500 per year. These manufacturing machines are a one-time cost along with the positive press obtained by contacting the mighty innovation institution.

What about the currently onboarded information?

If you’re still here and interested in the solution. Then I have a solution for this too. The current information already stored in the database need not be modified, only an additional column “onboarded by” needs to be added.

For previously inserted data, the information can be set to: “DAO KTM”, as it’s the actual place where the people have been onboarded, and the newer people can have their businesses or onboarding license numbers added.

It’s so easy that I’m going to make an AI do it.

The AI is suggesting that 255 characters be used, which implies:

1 character takes 4 bytes of space
=> 255 characters take 1020 bytes of space
=> 255 characters take 1kB of space
=> there are 1.5 million people in Kathmandu, they require 1kB each
=> total, we would require additional space of 1,500,000 kB
=> 1,500,000kB = 1,500 GB = 1.5 TB
=> a 2TB HDD costs around Rs. 12,000.

So, only an additional cost of Rs. 12,000 will be required to be added to the current infrastructure.

Will this scale well?

It will, after all, if the National ID card is that important, then more people will want it and more photography studios will line up to get the training and purchase the equipment, even a sudden influx of half a million people can be consumed by the 10,000 onboarders in less than 2 weeks.

500,000 people and 10,000 onboarders
=> 50 people per onboarder
This is easily doable in 2 weeks.

Feel free to criticize my suggestions and let me know of them, I’ll try to come up with solutions to your problems. And if you agree with me please share this article with someone who can make a difference.

You can always contact me if you have any doubts regarding implementation.

Your engineer that hates to wait,
Samridh Tuladhar (@tsamridh86 )



Samridh Tuladhar

A computer engineer, with a passion for cheap, affordable & environmentally friendly automation and utter disdain for paperwork and waiting.