The register is the visible problem; the waiting is what it actually costs. So rather than draw the screens, we implemented the clock that watches every job in the yard and ran it against a real Dubai working week — Monday to Thursday 08:00–18:00, Friday split for prayer, Saturday morning only, Sunday closed. Pick a yard in the simulator and watch a job age past its SLA, get attributed to the right party, and land on the 18:00 action list — with nobody remembering to check.
Prototype running in your browser. Screen names and flow follow the six screens the staff actually touch.
| Job no. | Plate | Status | Owner | Promised |
|---|---|---|---|---|
| No rows yet | ||||
| LPO | Item | Kind | Qty | Approved |
|---|---|---|---|---|
| No rows yet | ||||
| At | Job | Kind | Message |
|---|---|---|---|
| No rows yet | |||
| Job | Kind | Owner | Due | Resolved |
|---|---|---|---|---|
| No rows yet | ||||
Eleven checks, in the order they matter to the yard. The prototype ticks each one as the simulation satisfies it. Two of them cannot honestly be proven in a browser — a real WhatsApp send and a real Audatex import are device and integration behaviour — so those are marked device · phase 2 and never faked. We would rather show you the boundary of the claim than blur it.
| # | Check | Where it is proven | Status |
|---|---|---|---|
| 1 | A vehicle is received and a job created in under a minute | Prototype | Not yet run |
| 2 | Every car in the yard is visible on one board | Prototype | Not yet run |
| 3 | An approval pending beyond SLA is flagged with nobody remembering | Prototype | Not yet run |
| 4 | The delay is attributed to the correct party | Prototype | Not yet run |
| 5 | A job that is on time produces no alert | Prototype · control | Not yet run |
| 6 | The 18:00 action list is compiled automatically | Prototype | Not yet run |
| 7 | Invoice splits insurer vs customer with 5% VAT | Prototype | Not yet run |
| 8 | The interface switches to Arabic, right to left | Prototype | Not yet run |
| 9 | Search finds a job by plate, claim number or customer | Prototype | Not yet run |
| 10 | "Your car is ready" reaches the customer on WhatsApp | Real device | ◐ Modelled here |
| 11 | The surveyor's estimate is imported from Audatex | Integration | ◐ Modelled here |
Jump the prototype to any screen. Six screens, all real — intake, the yard board, a job card with its LPO lines, the action centre, the invoice split, and settings. No gallery of dead screens: everything here is wired to the same engine as the simulator.
Tablet screens use the garage's own colour system — set once as --g-*
tokens — never the Analytics AIML teal you see on this page. The vendor and the product speak in
different palettes, on purpose.
Six links. Five of them are ordinary. Link three is the one that decides whether this business makes money on a job, and it is the reason a waiting engine has to exist at all.
Plate, customer and insurer captured, job created — under a minute, no paper.
The surveyor's Audatex estimate lands against the job. We ingest it, we do not author it.
The insurer's Letter of Priority Order — line-level approvals, betterment, excess, salvage. The SLA clock starts here.
Decides whether the job is profitableBody, paint, assembly — each stage carries its own promised-by date, attributed to us the moment it slips.
QC pass, the customer's excess collected, car released — yard space stops costing money.
Invoice splits insurer and customer automatically, 5% VAT applied, ready for e-invoicing.
SLA clocks in this prototype run against a real Dubai working week — Monday to Thursday 08:00–18:00, Friday 08:00–12:00 and 14:00–18:00, Saturday 08:00–13:00, Sunday closed — not wall-clock hours, and a couple of seeded public holidays are excluded too. Default LPO SLA is 72 working hours, per EIA guidance for recovery cases above AED 5,000 non-agency / AED 10,000 agency. That threshold is configuration, not a hard-coded number.
UAE surveyors run Audatex; the labour and paint times are licensed data. Ingest it, don't author it. This is the one finding that takes a line item out of any quote rather than adding one.
Not an approved / not-approved flag — line-level approvals, betterment, excess, salvage return, and a validity window. Model it as a first-class record, not a status field.
Peppol 5-corner / PINT AE, phased in from 2027. No effect on this prototype — expensive to retrofit later if the invoice model is not shaped for it now.
Cheap to design in from day one. Expensive to bolt on after the interface, the data model and the log format are all fixed in English.
The Unified Motor Policy forces agency repair in a vehicle's first year of registration, and it changes which LPO threshold applies. Worth encoding as a rule, not a toggle.
Detail, evidence and the recommendation for each of these belongs in the accompanying response deck, not buried in a prototype screen.
Every string in the tablet frame and the event log ships with an Arabic counterpart — same data, same layout, mirrored right to left. Numerals stay Western, which is standard UAE business practice. Toggle EN / ع in the topbar or on the Settings screen to switch the live system; the two cards below are a static side-by-side so you can compare them without waiting for a run.