Dibee Fleet Platform Handbook
On this page

Odometer and pump photo readings

Reference

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#

StepWhat happens
Photo-quality checkBefore 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 numberOn 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-captureIn 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 checkThe 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:

SituationResult
The two agree within the company's toleranceThe typed value stands and is verified
They disagree by more than the toleranceThe 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 photoThe reading goes to a supervisor
No value was typedThe 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.

Updated 2026-10-31 · Applies to commit afa8d231 · Built 2026-11-02