Fleet Violation AI Agent
Telematics · Road safety · AI

Is that speeding violation real, or a GPS glitch?

In-vehicle monitoring systems (IVMS) flag speeding automatically, and drivers get penalised. Some of those violations are device errors. This agent reads your violation reports and tracking screenshots, runs objective checks and returns a verdict with evidence for every case. It runs right in your browser: no install, no server.

~1 km in 3 s ≈ 1,200 km/h "105 km/h in 80 zone"
A typical false positive: two GPS fixes 3 seconds apart, joined by a straight line through buildings. The speed may be real, but the location and the speed limit applied to it are wrong.

How it works

The AI reads the documents and weighs the evidence. Plain Python code computes every number, so the speeds and distances are always reproducible.

1

Read

The LLM extracts every row from the Violation Details PDF, the optional Road Safety RAG PDF and each Historical Tracking screenshot: times, speeds, odometer, zone limit and coordinates.

2

Check

Eight fixed checks test physics, the ADNOC policy thresholds, zone limits, the OpenStreetMap road network and agreement between the reports. Each one scores PASS / FLAG / FAIL.

3

Decide

An agent looks at the evidence. It can zoom into the map, calculate speeds and look up roads, then gives a verdict with reasons and a recommended next step.

VALID

The evidence shows the driver really exceeded the limit of the road they were on.

LIKELY FALSE

Strong signs of a device, GPS or geofence error. Pull the raw log and dispute it.

NEEDS REVIEW

Mixed evidence. The agent says exactly what a person should check next.

The eight checks

Checked against the ADNOC IVMS & AFDD System Configuration (HRT-2026-01): Reckless = configured limit + 20 km/h with no minimum duration; Over speed = above the limit for 30 s; light vehicles max 140 km/h on black top and 80 km/h off-road.

RuleWhat it testsCatches
R1Trip distance ÷ duration vs the reported speedSpeed readings that the odometer doesn't support
R2Point-to-point GPS speed between trace endpointsGPS jumps that imply impossible speeds
R3Duration vs the policy threshold for that event typeOver-speed events shorter than 30 s (Reckless has no minimum)
R4Speed vs the policy trigger (Reckless = limit + 20 km/h)Events that never reached the threshold
R5Is the GPS point on a real road? What's that road's posted limit?Off-road fixes and the wrong speed zone being applied
R6Odometer progress between consecutive eventsImplausible jumps or rollbacks
R7Counts agree with the Road Safety RAG report, and the RAG colour impactReporting inconsistencies; shows e.g. Red → Amber if overturned
R8Zone limit vs the policy for the vehicle class, and zone road type vs the real roadOff-road limits applied on a highway; misconfigured geofences

Bring your own AI

Choose the provider from a dropdown and paste your API key. The model list loads live from your account. The web app uses API keys. The optional Python version also supports account sign-in.

ProviderAPI key (web app)Account sign-in (Python version)
Claude (Anthropic)✓ console.anthropic.com ✓ Anthropic Console account via ant auth login
ChatGPT (OpenAI)✓ platform.openai.com ✗ Not offered by OpenAI
Gemini (Google)✓ aistudio.google.com (free tier) ✓ Google account via Vertex AI (gcloud auth application-default login)

Consumer chat subscriptions (Claude Pro/Max, Claude Code, ChatGPT Plus/Pro, Gemini Advanced) don't include API access, and their providers don't let other apps use them.

Use it

Everything runs in your browser. There's nothing to install, and there's no server in between.

1

Connect

Open the app, pick Claude, ChatGPT or Gemini and paste your API key. Gemini offers a free-tier key.

2

Upload

Drop in the Violation Details PDF, optionally the Road Safety RAG PDF, and one Historical Tracking screenshot per violation with the event popup open.

3

Review

Read the verdict, reasons and evidence for each violation, then download the report as Markdown or JSON.

Your data stays yours

Your key and reports go straight from your browser to the AI provider you choose, and GPS points go to OpenStreetMap for the road check. Nothing passes through GitHub or us. The key is kept for the tab only, unless you choose to remember it.

A decision aid, not a judge

"Likely false" means "request the raw GPS log and dispute it", not "delete automatically". A person always makes the final call.