Odometer and pump photo readings
When a driver or merchant photographs an odometer or a pump display, the app suggests a number, the platform checks the photo with an AI vision model in the background, and nobody waits for the check. A typed odometer value stands when the check agrees; a clear disagreement goes to a supervisor.
Overview#
Photo readings are taken for four values: the odometer on a refuel order, the odometer on a work order, the driver's pump reading and the merchant's pump reading. The number the app reads on the phone is only a suggestion; the platform's server-side check decides what counts as verified. The check runs in the background, so a refuel or work order is never held up waiting for it. Refuels at PVoil and Petrolimex stations take no pump photo. How the server-side check works in detail is internal; what supervisors do with flagged readings is on Review queue.
Taking the photo#
| Step | What happens |
|---|---|
| Photo-quality check | Before anything is sent, the app checks the photo for blur, glare and missing digits. If it finds a problem it shows Photo looks unclear with Retake and Use anyway. The warning never blocks: the user can keep the photo |
| Suggested number | On the standard refuel and work-order screens, the app fills in the number it read on the phone. The user can change it before saving |
| Re-capture | In the Driver App, taking a new photo replaces the number in the field, including one typed by hand, with the new photo's reading; if the new photo gives no reading, the field is cleared |
| Background check | The photo is sent for the server-side check, even when the phone read no number, for the driver's odometer photo on a standard refuel or a work order and for the driver's pump photo. The merchant's pump photo is sent when the app read a number from it |
In the Driver App, Reading being verified… appears next to the value once the platform has accepted the photo for checking, never for a photo still waiting to be sent.
Odometer photos are stored on the order#
Refuel orders and work orders each keep their odometer photo on the order itself, in the same way, and the server-side check reads that photo; it is not uploaded a second time. If the photo cannot be stored on the order, the reading is not checked.
No connection#
When a photo is stored but the check cannot be sent, the app keeps the request on the phone and sends it when the connection returns, including after the app is restarted. A request still waiting after about a day (23 hours on the phone; the platform refuses captures older than 24 hours) is dropped without being checked. Verification never holds up the order.
Rules#
When the typed odometer value stands#
For an odometer, the server compares the value the user typed, as saved on the order, with the AI reading:
| Situation | Result |
|---|---|
| The two agree within the company's tolerance | The typed value stands and is verified |
| They disagree by more than the tolerance | The reading goes to a supervisor with both values; the order keeps the typed value and the verified reading waits for the supervisor |
| A value was typed but the AI could not read the photo | The reading goes to a supervisor |
| No value was typed | The AI reading is accepted when its confidence is at or above the company's OCR accept threshold, and otherwise goes to a supervisor |
The tolerance is the larger of a fixed amount (5 by default) and a percentage (2% by default) of the larger of the two readings, set per company. The AI never overwrites the value the user typed, and the comparison cannot be skipped from the app. A verified odometer reading updates the vehicle's verified odometer; see Vehicle odometer.
Pump readings#
A pump photo is read for litres, unit price and total, which are checked against each other. The litres reading is accepted when the AI is confident enough, and goes to a supervisor otherwise; a pump display whose three numbers do not add up counts as less confident. When both the driver's and the merchant's pump readings for the same refuel have been accepted, the two are compared, and a difference beyond the company's pump tolerance shows up in the review queue as a pump discrepancy; see Review queue.
Related#
- Review queue
- Review flagged odometer readings
- Resolve OCR corrections and pump discrepancies
- Vehicle odometer
- Photo evidence for driver orders