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.
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.
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.
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.
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.
The evidence shows the driver really exceeded the limit of the road they were on.
Strong signs of a device, GPS or geofence error. Pull the raw log and dispute it.
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.
| Rule | What it tests | Catches |
|---|---|---|
| R1 | Trip distance ÷ duration vs the reported speed | Speed readings that the odometer doesn't support |
| R2 | Point-to-point GPS speed between trace endpoints | GPS jumps that imply impossible speeds |
| R3 | Duration vs the policy threshold for that event type | Over-speed events shorter than 30 s (Reckless has no minimum) |
| R4 | Speed vs the policy trigger (Reckless = limit + 20 km/h) | Events that never reached the threshold |
| R5 | Is the GPS point on a real road? What's that road's posted limit? | Off-road fixes and the wrong speed zone being applied |
| R6 | Odometer progress between consecutive events | Implausible jumps or rollbacks |
| R7 | Counts agree with the Road Safety RAG report, and the RAG colour impact | Reporting inconsistencies; shows e.g. Red → Amber if overturned |
| R8 | Zone limit vs the policy for the vehicle class, and zone road type vs the real road | Off-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.
| Provider | API 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.
Connect
Open the app, pick Claude, ChatGPT or Gemini and paste your API key. Gemini offers a free-tier key.
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.
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.