Back to home

Case Study · SpeedSense by iVMS

Resolving a traffic fine in seconds, not weeks.

iVMS had a clear idea for how rental fleets should handle traffic violations. Lost Circle built the platform that makes it work, from the moment a camera is triggered to a settled, evidenced record.

Custom SoftwareFleet TelematicsRental & Leasing
Illustration of a connected rental car with its live vehicle data panel

6 modules

across detection, settlement and fleet management

95%

of traffic fines recovered, as published by iVMS

85%

less admin time on violations, as published by iVMS

2 markets

across UAE and UK operations

The situation.

A traffic fine reaches a rental company weeks after the journey it relates to.

By then the vehicle has been hired out twice more and the driver has flown home. The operator has a penalty notice, an approximate date, and no straightforward way to connect the two. The customer, if they are ever contacted, receives a charge for something they cannot place and did not know had happened.

Neither side is well served by that. Operators absorb losses they never planned for. Customers feel charged after the fact for an event nobody told them about. The administrative cost of resolving a single fine frequently exceeds the fine itself.

iVMS saw the opportunity clearly. The gap was engineering. Closing it meant software that could recognise a violation at the moment it happened, record it with evidence both parties could see, connect it to the right rental contract, and resolve it while the customer was still there to be told.

Project snapshot

Client

iVMS

Industry

Fleet telematics, vehicle rental

Engagement

Platform build and systems integration

Platform

Web dashboard, in-vehicle telematics, WhatsApp notifications

Services

Custom software development, systems integration

Markets

UAE and UK

The challenge.

Three problems had to be solved inside one platform.

01

A record both sides can trust

For a violation to be resolved rather than argued about, it has to show where, when, how fast and under which contract. Location, speed, time and driver had to be captured together at the moment of the event rather than reconstructed weeks later.

02

Resolution while the customer is present

Everything that makes traffic fines painful comes from delay. Notification, authorisation and settlement had to happen as one sequence, in seconds, while the hire is still live and the driver can still be reached.

03

A fleet platform, not a fines tool

The same system carries live diagnostics, remote fault clearing, fuel and mileage monitoring, geofencing, driver scoring and digital contracts. All of it reads from one vehicle data stream, so the underlying model had to serve every module.

The practical constraint

Much of what shaped the build sat outside the codebase. Position data comes from telematics units that lose signal in tunnels and car parks, so every event had to survive a delayed replay without being lost or counted twice. Customer messages go through WhatsApp’s pre-approved business templates, so the notification had to be designed to that format from the outset. And settlement depends on a card authorisation taken at the rental counter, so the platform could never charge more than the customer had already agreed to.

How detection works.

The obvious approach fails within a day of going live.

Comparing a vehicle’s GPS speed against a posted limit produces false alerts constantly. Readings fluctuate under multipath in dense urban areas. Limits differ between carriageways, service roads and tunnels. And a violation only exists where a camera exists and is actually facing the vehicle.

So the system treats a violation as an intersection, not a reading. Four conditions have to hold at once: the vehicle was inside a camera’s enforcement zone, travelling in the direction that camera enforces, above the limit for that zone, and doing so consistently rather than for a single noisy sample.

Each enforcement point is stored with its coordinates, the bearing it enforces, the applicable limit, a tolerance margin and a capture radius. Cameras sit in a spatial index, so each position update is checked against nearby points rather than a national registry. That is what makes it viable at fleet scale and high sampling rates.

# Runs on every position update from the telematics unit
on position_update(vehicle_id, lat, lng, speed, heading, accuracy, device_time):

    if accuracy > ACCURACY_THRESHOLD:
        return                                  # reject unreliable fixes

    candidates = camera_index.within_radius(lat, lng, SEARCH_RADIUS)

    for camera in candidates:
        if not camera.zone.contains(lat, lng):          continue
        if angular_diff(heading, camera.bearing) > TOL: continue   # opposite carriageway
        if speed <= camera.limit + camera.tolerance:    continue

        window    = recent_samples(vehicle_id, SUSTAIN_WINDOW)
        breaching = [s for s in window if in_breach(s, camera)]
        if len(breaching) < MIN_SUSTAINED_SAMPLES:      continue   # GPS spike

        contract = contract_at(vehicle_id, device_time)

        event = build_violation_event(
            vehicle_id, camera.id, contract.id, contract.driver_id,
            samples     = window,
            peak_speed  = max(s.speed for s in breaching),
            device_time = device_time,
            device_id   = device.serial)

        event.hash = sha256(canonical_form(event))

        if already_recorded(event.fingerprint):         continue   # replay safety

        persist(event)
        enqueue(NotifyAndSettle, event)

Simplified logic, run on every position update from the telematics unit.

Persistence over instants

A single sample above the limit is discarded. Only a sustained breach across the window is recorded. This is the difference between a system an operator trusts and one they stop believing after the first false alert.

Direction as a first-class filter

Heading compared against the camera’s enforced bearing removes the largest class of false positive, which is a vehicle passing a camera on the opposite carriageway.

Device time, not server time

Units lose signal in tunnels and car parks. Events buffer on the device and replay when the connection returns, so every record is ordered by when it was captured. Fingerprinting stops a buffer flush creating duplicates.

Hashed on write

The record is canonicalised and hashed at creation, so later alteration is detectable. That is what lets it stand as an evidenced record rather than an assertion.

“A record both sides can see is a record neither side has to argue about.”

From detection to settled.

Detecting a violation solves half the problem. The other half is time.

Every difficulty with traffic fines comes from the weeks between the event and the paperwork. SpeedSense removes that gap by making notification and settlement a single sequence that runs while the hire is still live.

The driver receives a WhatsApp message showing where they were, how fast they were going, the posted limit and the time, with a link to the underlying record. The amount is applied to the deposit authorised at the counter, and a receipt follows.

The customer knows what happened while they can still remember the journey. The operator recovers a cost they would previously have absorbed. Neither party has to open a dispute about an event nobody can reconstruct.

  1. Detected

    Sustained breach confirmed inside an enforcement zone.

  2. Recorded

    Evidence sealed and matched to the live rental contract.

  3. Notified

    Driver messaged with location, speed, limit and time.

  4. Settled

    Amount applied to the deposit authorised at the counter.

  5. Receipted

    Confirmation issued and the operator dashboard updated.

Illustrative example. Vehicle, location and amount are sample data.

Why WhatsApp rather than email

The drivers are international visitors on roaming connections who will not check an address they gave at a rental desk. WhatsApp reaches them on the device in their hand, in a channel they already use, with delivery and read status the operator can see. A notification that is not read is not a notification.

Why the record travels with the charge

A charge without context is what customers object to. Sending the location, the speed, the limit and the time in the same message means the settlement explains itself. Most disputes are not about the money. They are about not knowing what the money was for.

Idempotent by design

Notification and settlement both key off the violation fingerprint, so a retry or a device replay can never message twice or charge twice.

Bounded by the event

The amount is limited to the violation value and the authorisation held. The system cannot take more than the record supports.

Built to the messaging rules

Transactional WhatsApp notifications require pre-approved templates. The message structure was designed to that constraint from the start rather than discovered late.

Failure is visible

A declined authorisation or an undelivered message surfaces on the operator dashboard as an exception to action, not a line in a log.

Four goals. One direction.

Evidenced

Every violation carries a record both the operator and the customer can see.

Immediate

Detection, notification and settlement complete while the hire is still live.

Live

Vehicle and driver data reflects reality now, not at the last sync.

Operational

Built for the daily reality of a rental desk, not for a demo.

What we built.

Six modules, all reading from the same vehicle data stream.

Violation detection and evidence

The speed and position pipeline, the camera registry, and the sealed records everything downstream depends on.

Notification and settlement

WhatsApp messaging, banking API authorisation and capture, receipting, and the exception handling when either fails.

Deposit management

3D Secure authorisation at the point of rental, holding through the contract, and release or settlement at the end of hire.

Vehicle health and diagnostics

Live mileage and fuel monitoring, fault detection, remote fault clearing, and parts life tracking.

Tracking and geofencing

Real-time location, full trip history, and zone breach alerting across the fleet.

Driver scoring and contracts

Risk scoring, pre-approval screening, cross-company blacklist integration, and digital contract generation.

Tablet showing a vehicle health dashboard with mileage and usage charts
Remote diagnostics interface with live vehicle data charts
Digital rental contract displayed on a tablet

Vehicle health, remote diagnostics and digital contracts. Imagery courtesy of iVMS.

Built for the rental desk too.

The second person SpeedSense serves is the one behind the counter. Without it, a penalty notice arrives weeks late and someone has to work backwards through old contracts to find out who had the car, then chase a customer who has already gone home.

With it, each violation arrives already matched to the right contract and driver, with the evidence attached and the customer notified. Staff work from one dashboard that shows what has settled, what needs attention and why. A customer who comes back to the counter with a question gets an answer from the record, not a promise to look into it.

Fleet map on a desktop monitor showing rental vehicles and their routes

Why this matters.

Traffic violations cost rental operators in ways that rarely appear as a line item. Fines arriving after a customer has gone are written off quietly. Hours spent reconstructing which hire a penalty belongs to disappear into general admin. A vehicle held off the road by an unresolved violation is counted as downtime rather than as a process failure.

SpeedSense treats the delay itself as the problem. The event is recorded while the vehicle is on hire. The driver is told what happened while they still remember the road they were on. The amount is settled against an authorisation they gave knowingly at the counter, and the record explaining it sits behind a link in the same message.

The result is not a firmer process. It is a shorter one, and shorter turns out to be better for everybody involved.

Working on something similar.

Whether you have an existing platform that needs extending or a commercial idea that needs building properly, we would like to hear about it.

Back to home