Where the drop-off happens
Losing users in a signup flow is rarely one moment. It accumulates across three separate frictions:
- A setup barrier. Asking for an app download or a plugin install puts another step between the user's intent and their action.
- Instruction load. Turn your head, smile, hold this angle — every instruction adds both time and room for error.
- Retries. A user rejected for a blurred frame or weak light usually does not come back for a second attempt.
What all three share: none of them is a security requirement. They are design choices.
Reducing it without lowering the bar
The easy, wrong way to cut drop-off is to loosen the threshold. That lets risk straight in, and you repay the conversion you gained in fraud losses.
The right way is to remove the friction:
- Make passive liveness the default. One frame is enough; the user is asked for no movement at all.
- Ask for no install. On mobile the flow completes inside your app; on web the user reaches the verification page and returns without ever leaving the browser.
- Measure capture quality on the spot. Telling a user about a weak frame immediately beats rejecting them and never seeing them again.
- Do not block the flow. When the result comes back by webhook, you never hold the user on screen.
Write the threshold per flow
A single acceptance threshold does not fit every flow. A high-value financial transaction and a marketplace seller signup do not need the same standard of proof.
If you receive the match score alongside the decision, you can tune the accept, reject and manual-review bands per flow — lowering the bar on a low-risk path to protect conversion, raising it on a high-risk one to raise the proof.
That dissolves the "security or conversion" dilemma by making the two separately adjustable.
You cannot improve what you do not measure
Two metrics are enough: the started-to-completed ratio, and retries per user. Low completion with low retries points at the flow. Both high points at capture quality.



