Search for “age verification cost” and you get price lists. Cents per check, tiers, volume discounts. Most buyers put two of those lists side by side and pick the lower number.
That number answers the wrong question.
You pay per attempt. Your business earns per adult who gets through. The gap between those two is where the real cost sits, and it is usually much larger than the fee. This post shows the arithmetic on one month of 100,000 sign-ups, so you can redo it with your own numbers.
Why the per-check price misleads
A per-check price tells you what one attempt costs. It tells you nothing about what happens to the user after the attempt.
Take two designs. In the first, every new user uploads a government document and takes a selfie. In the second, every user takes a quick browser-based age check, and only the people it cannot clear are sent to a document check.
The first design has a high price per attempt and a high drop-off rate. The second has a low price per attempt and a much lower drop-off rate. Our post on verification drop-off puts document-upload completion at 35% to 65%, and selfie-only age estimation at 75% to 90%. Those ranges are industry figures, not Xident measurements, and your own flow will land somewhere inside or outside them.
Now watch what a price sheet hides. Document-first pays the expensive fee on all 100,000 users, and then loses half of them. You paid the highest price for the worst result. The per-check number never shows you that.
The unit that matters
Use this instead:
Cost per verified adult = all verification fees ÷ adults who completed the check
The top of that fraction is your bill. The bottom is the number of real customers you got for it. A cheaper method that completes more often wins twice: the top goes down and the bottom goes up.
Three things sit outside the formula but belong next to it. Adults who gave up are lost revenue. Minors who got through are a legal problem. Adults wrongly turned away are a support cost and, in some places, an appeals duty. Track them as separate numbers.
One month, 100,000 adults, two designs
Here is the model. I’m using Xident’s Growth plan prices because they are published. A browser age check (a “Check”) costs €0.02. A document verification (a “Verification”) costs €0.20. The plan fee is €199 a month and includes 30,000 Checks. Checks beyond that bill at €0.02 each.
The assumptions are deliberately plain:
- 100,000 people try to sign up in the month, and all of them are adults. That isolates the cost. Real traffic includes minors who should fail.
- Document-first: every user does a document check. 50% complete.
- Estimation-first: every user takes a Check. 20% cannot be cleared and go to a document check. Those escalated users complete at the same 50% rate as the document-first group, so the second design gets no favours.
- Every started document check is billed. Ask your vendor whether abandoned sessions bill. If they don’t, document-first looks a little better than this.
| Document-first | Estimation-first | |
|---|---|---|
| Checks (€0.02, 30,000 included) | 0 | 100,000 → €1,400 over the allowance |
| Verifications (€0.20) | 100,000 → €20,000 | 20,000 → €4,000 |
| Plan fee | €199 | €199 |
| Total bill | €20,199 | €5,599 |
| Adults who completed | 50,000 | 90,000 |
| Adults lost | 50,000 | 10,000 |
| Cost per verified adult | €0.40 | €0.062 |
Estimation-first is about 6.5 times cheaper per verified adult. It also delivers 40,000 more adults. It gets there by sending the expensive check only to the people who need it.
On Xident’s Scale plan (€499 a month, €0.01 per Check, €0.10 per Verification, 150,000 Checks included) the same month costs €10,499 for document-first and €2,499 for estimation-first. That is €0.21 against €0.028 per verified adult. The ratio stays above six. The design choice matters more than the plan.
What if the cheap check clears fewer people?
The 20% escalation rate is a guess. Your real rate depends on your audience, your threshold and your camera conditions. People close to the age line get escalated more, which is why an 18-year line is easier than a 16-year line. So test the model against worse numbers.
| Share escalated to a document | Total bill | Verified adults | Cost per verified adult |
|---|---|---|---|
| 10% | €3,599 | 95,000 | €0.038 |
| 20% | €5,599 | 90,000 | €0.062 |
| 40% | €9,599 | 80,000 | €0.120 |
| 60% | €13,599 | 70,000 | €0.194 |
Even when 60% of users fall through to a document check, estimation-first costs about half as much per verified adult as document-first, and still keeps 20,000 more people. The break-even point is very high. On these prices, estimation-first only loses when about 95% of users fail the first step. At that point the cheap check isn’t working for your audience, and you’d see it in the first week of data.
The fee gap is the small number
Look at the table again. Document-first costs €14,600 more than estimation-first in fees. That feels large.
Now put a value on one adult who gets through. Pick a conservative figure, say €1 of margin over their time with you. The extra 40,000 adults that estimation-first delivers are worth €40,000. That is more than the entire estimation-first bill, seven times over.
You can argue about the €1. Use your own number. The point is the shape: the lost adults cost more than the fees on both sides of the table. A buyer who negotiates the per-check price down by 10% and ignores completion is optimising the smaller number.
This is the same logic we used in our geoblock-or-verify piece. The visible cost of verification looks big until you price the alternative.
When document-first is still the right call
This model does not say “never ask for a document.” It says “don’t ask everyone first, unless you must.”
You must when the law or your regulator demands document-level assurance. That is common in gambling, where identity checks for the know-your-customer rules (KYC, the checks a regulated business must run on its customers) apply anyway. It is common in firearms sales. It can also apply where estimation is not accepted at your threshold, as in many under-16 regimes.
If that is your case, the model changes shape. You can’t skip the expensive step, so the savings come from elsewhere: fewer retries, fewer repeat verifications, reuse of an earlier result, and a flow that people can finish. The rest of this post still applies.
If you aren’t sure which side you are on, our post on layered verification explains how a waterfall routes each user to the cheapest method that is sufficient for them. Check that your regulator accepts the first step before you build on it.
Four things that quietly multiply the bill
The model above is one pass per user. Real systems repeat.
Retries. A user who fails a check tries again. If each try bills, one person can cost you three fees. Some of those users are minors trying until they pass, which is a known abuse pattern. Set an attempt budget per person, and check how your vendor bills the retry.
Re-verification. Age doesn’t expire, but the evidence goes stale. Our post on check expiry covers European guidance that points to re-verification every few months. At four rounds a year, a €0.20 document check becomes €0.80 per user per year. If the three later rounds can be €0.02 Checks against a stored result, it becomes €0.26. The cadence matters as much as the first price.
Appeals and manual review. Wrongly rejected adults write to support. A person reading a case costs more than any API call. The adult lockout problem is a cost problem before it’s a fairness problem.
Data you keep. Holding document images turns a fee into a liability. The IDScan incident showed how a retention setting decides the size of a breach, which we covered in 153 million licences, 21 million checks a month. A vendor that doesn’t keep the document can be cheaper over five years, even at a higher sticker price.
Four questions for every price sheet
Before you compare two vendors, send both the same four questions.
- What bills when a user abandons halfway? A started-but-unfinished session may bill or may not. This one answer moves your cost per verified adult more than a 20% discount.
- Does a retry bill again? And is there a limit?
- What does a returning user cost? If someone you verified last month comes back, do you pay the full price again or a cheap lookup?
- Is the audit record included? Regulators now grade whether you can show what you did, not only that you did it. If the evidence costs extra, add it to the bill. Our vendor checklist lists what to ask for.
Then ask each vendor to price your scenario, not their headline tier. A volume discount you never reach is not a discount.
What this looks like on Xident’s price list
The numbers in the model are the real published ones. On a paid plan, document Verifications bill from the first one: €0.30 on Starter, €0.20 on Growth, €0.10 on Scale. Included monthly volume covers Checks only, at €0.03, €0.02 and €0.01 beyond the allowance. That structure is deliberate. A document scan costs us real money every time, and a browser age check costs far less.
The Basic plan is a flat €99 a month for age checks only, with 100,000 Checks included. It has no document path, and it stops at the limit unless you buy a Check pack. If your regulator accepts estimation at your threshold and you don’t need documents at all, that’s the cheapest way in.
The free sandbox gives you 1,000 Checks and 100 document Verifications, once, with no renewal. That’s enough to measure your own completion rate and escalation share, which are the two numbers the model above depends on.
A returning user who already holds an Xident ID costs one Check, not one Verification. On Growth, that’s €0.02 instead of €0.20, a tenth of the price. That is where the cost per verified adult keeps falling after the first month.
Run your own numbers
Take three figures from your own flow: how many people start, how many complete, and how many need a second method. Put your vendor’s real fees on each step. Divide the bill by adults who finished.
If you want to see it with Xident’s prices, the pricing calculator takes your monthly volumes and shows the bill by plan. To test completion and escalation on real traffic before you commit, talk to us or start with the free sandbox.