Clunker Busters
A connected platform for customers, inspectors, operations, reporting and payments.
Case study · Digital identity
Reading the machine-readable zone of an ID card accurately, on the device, at a reception desk, so a legal obligation becomes a few seconds of work.
Delivered · Client-led expansion
01The business situation
Hotels in Spain are required to keep guest identity records current with the authorities. Traditionally that means transcribing documents into a book at reception: slow, error-prone, and dependent on whoever is on shift. Every identity document already carries a machine-readable zone designed to be read by a machine. The product simply had to read it, accurately, on whatever hardware the front desk happened to have.
Core challenge
Extract the machine-readable zone accurately across many card variants, on the device, without the guest waiting at the desk.
Before
Documents transcribed by hand at reception
After
Scanned, verified and filed while the guest checks in
Ridid Platform
02The system at a glance
03Workflow 01
The guest hands over their card. The scan reads its machine-readable zone, and the fields that would have been typed appear already filled and already verified against the document itself.
assets/portfolio/ridid/workflow-scan.png · 16 / 11
04Workflow 02
Keeping OCR on the device meant solving accuracy separately for Android and for the browser. Each got its own approach, tuned against the same set of real cards.
1Capture the card
assets/portfolio/ridid/step-capture.png · 1 / 2.04
2Extract & pre-fill
assets/portfolio/ridid/step-extract.png · 1 / 2.04
3Address & signature
assets/portfolio/ridid/step-signature.png · 1 / 2.04
05Workflow 03
The client, Arturo Lopez, an entrepreneur from Andorra and a technologist himself, chose to own the server side, building his API in Flask. Our work was everything the guest and the receptionist touch, plus the extraction, with a clean API boundary between the two.
assets/portfolio/ridid/web-application.png · 16 / 10
assets/portfolio/ridid/android-app.png · 1 / 2.04
06Engineering behind the product
Almost all of the effort went into one number: how often the extraction is right, across every card someone might present.
Extraction runs on the device rather than the server, which keeps the document data local and the capture responsive.
Because the OCR is client-side, accuracy had to be achieved separately in the Android application and in the browser.
Tesseract-OCR and Google Vision AI were tested and tuned per platform, with Vision AI giving the best accuracy until a machine-learning module took over.
Considerable time went into holding accuracy across different national and document formats rather than one ideal card.
Extracted data populates the guest form directly, which is what makes the filing trustworthy.
Later phases added address extraction from the card and an on-screen signature pad to the same flow.
A machine-learning extraction module procured by the client was integrated for later use.
Verify before publishing07Technical architecture
Extraction runs on the client, so accuracy had to be achieved twice: once in Kotlin, once in the browser. The client built the server side himself.
Android
Web
Client-built API
Hardware
08Delivery journey
Interactive form generation for the client
Client validates Android-first
Scanning application with on-device OCR
Tune extraction across card variants
Mirror the flow for front-desk terminals
Address capture and signature
Integrate the client’s ML module and transition
The client is testing with vendors and has taken the project forward himself, with our support through the transition. Dates and durations are withheld until confirmed. Verify before publishing
09What the system enabled