Every few months someone asks whether ENTRIX should stop paying AWS for document reading and face checks and run open-source models instead. It is a reasonable question, and it deserves a measured answer rather than an opinion. So we measured it.
The method was deliberately plain. We traced every AWS AI call site in the check-in flow: Textract for reading the document, Rekognition for detecting and comparing faces, and Face Liveness for proving a live person is at the kiosk. We counted how often each one actually fired, from the application's own event log over a common 35-day window, normalised the volume to 30 days, and priced it at published list rates. The model is a script in the repository, so the figures can be re-derived rather than trusted.
The answer: a guest who passes every step first time costs about ten cents in AI calls. The measured average per verified guest was about twenty-seven cents, in a range of twenty-four to thirty.
The gap between ten and twenty-seven cents is entirely retries. A guest who needs a second document scan or another liveness attempt pays for each one. That reframes the whole question. The unit price of a liveness check is a cent and a half; the lever that matters is how often a guest passes first time. A cheaper model that rejects more real guests makes the bill bigger, not smaller, and every extra rejection is a person at a kiosk who may eventually need a member of staff. Ten minutes of staff time costs more than a guest's entire verification footprint for a year.
The same trace showed where money was being spent for no benefit. Three changes stood out, none of which needs new infrastructure. The first is to stop running a general-purpose forms extraction on every identity document when a purpose-built identity API, at a twentieth of the price, already runs on the same image; the general pass becomes a fallback for the documents that need it. The second is to move the live camera preview, which asks only whether a frame is sharp and bright enough, out of the cloud and into the browser, where it is a few milliseconds of arithmetic and the guest gets instant feedback instead of a round trip. The third is to open a liveness session when the guest starts the challenge, not when they arrive on the selfie screen. Modelled together, they take the cost of a verified guest from about twenty-seven cents to about eight.
Then the original question. We evaluated the main open-source face and OCR stacks. The arithmetic does not work at current volume. These models need a persistent host, and even the cheapest viable server costs more per month than the verification bill left after the three fixes. On infrastructure cost alone, self-hosting starts to pay somewhere around six times the volume we measured, and that ignores the weeks of engineering and the ongoing patching of a service that would sit in the check-in critical path.
Licensing closes the case for most of the field. Several popular face-recognition projects publish their code under permissive licences while their pretrained model weights are restricted to non-commercial research. A commercial hotel product built on those weights carries a legal exposure far larger than the few dollars it would save.
Liveness is the component we would change last. AWS Face Liveness is an active challenge-response check validated on the server; the open-source alternatives we found are single-image spoof classifiers that a replayed video on a phone defeats more easily. It is the control that stands between a generated face and a door code, and it costs a cent and a half per attempt. Swapping the hardest security component in the system to save that is the worst trade available.
The conclusion is not a vendor preference. It is a method: trace the calls, count real traffic, price it, and look at the retry rate before the rate card. The numbers hold to roughly ten times current volume, and we will run the model again when the volume says we should.


