All client stories
UTS logo
Transport & Fleet Operations

UTS

One transport ERP running the whole business — bookings, fleet, fuel, gate passes and invoicing flowing straight into a full double-entry ledger, with an AI layer that audits operations and answers questions across all of it.

The Journey

  1. 1

    Started with role-based access control and the company / multi-branch backbone, so every region, user and permission had one secure home before any data went in.

  2. 2

    Brought the core registers online — customers, vendors, vehicles and drivers — each with documents, compliance dates and automatic renewal tracking.

  3. 3

    Layered the booking and dispatch engine on top: multi-vehicle trips, vehicle and driver conflict checks, advances and activity-based costing.

  4. 4

    Added gate-pass control plus fuel and maintenance tracking, so every vehicle movement, litre of fuel and service job was logged against the right vehicle.

  5. 5

    Wired invoicing into a full double-entry general ledger — completed bookings auto-generate invoices, and every approved invoice, voucher and payment posts straight to the books.

  6. 6

    Closed the finance loop with fixed assets, bank reconciliation, tax handling and revenue recognition — all balanced, all auditable.

  7. 7

    Built the reporting engine and management dashboard — vehicle profitability, receivables aging, client P&L and live KPIs, every report scoped to the right region.

  8. 8

    Finished with an AI intelligence layer that runs operational and financial audits, flags anomalies and answers plain-language questions across the entire system.

Solution 1 of 9 Platform | Access & Audit

Role-based access, multi-branch scoping and a full audit trail

The Problem

A transport business spread across several regional offices cannot run on shared logins. Each office should see only its own data, every sensitive action needs a paper trail, and access has to be granted by role — not by trust.

What We Built

  • Granular permission matrix — over a hundred discrete permissions mapped to roles (Super Admin, Finance, Operations, Regional Manager and more)
  • Region-scoped data access — a regional manager sees only their own branch's customers, bookings and finances
  • Secure authentication with rotating refresh tokens and managed sessions
  • Full audit logging — who did what, when and from where — across every module
  • Encrypted storage of sensitive credentials at rest
Tech: Go, PostgreSQL, JWT, role-based access control
Solution 2 of 9 Operations | Core Registers

Customers, vendors, vehicles and drivers — one master record each, with compliance built in

The Problem

Fleet operators lose money to expired insurance, lapsed licences and missed maintenance far more often than to bad driving. Those details usually live in folders and spreadsheets nobody checks until something has already gone wrong.

What We Built

  • Customer master with agreements, versioned service rates and multi-currency pricing
  • Vehicle register covering ownership type (owned, leased, investor), insurance, lease / instalment schedules and full maintenance history
  • Driver profiles with licence and medical-compliance tracking, statutory contributions, salary components and advances
  • Vendor master with categories, payment terms and a document repository
  • Automatic renewal alerts on every expiring document — insurance, licences and agreements
Tech: Go, PostgreSQL, Next.js
Solution 3 of 9 Operations | Booking & Dispatch

Multi-vehicle bookings with conflict prevention and activity-based costing

The Problem

Booking the same vehicle or driver twice, losing track of advances, and never really knowing whether a trip made money — these are the daily failure modes of dispatch run on paper and memory.

What We Built

  • End-to-end booking flow with a clear state machine — draft → confirmed → in progress → closed
  • Multiple vehicles on a single trip, with shared advances
  • Real-time vehicle and driver availability checks that block double-booking inside a time window
  • Mid-trip vehicle and driver replacement without losing the booking record
  • Activity-based costing so the true cost of every trip is captured as it happens
  • One click turns a closed booking into an invoice
Tech: Go, PostgreSQL, Next.js
Solution 4 of 9 Operations | Gate Pass

Gate-pass control — every vehicle movement logged, odometer to odometer

The Problem

Without a gate log there is no honest record of when a vehicle left, when it returned, how far it actually ran, or what condition it came back in — and fuel and distance claims become impossible to verify.

What We Built

  • Vehicle entry / exit capture with out and in odometer readings and automatic net-distance calculation
  • Expected-return tracking with open-pass visibility on the dashboard
  • Driver remarks and vehicle-condition notes on return
  • Linkage to the originating booking, or stand-alone ad-hoc passes
  • Printable gate-pass slip
Tech: Go, PostgreSQL, PDF generation
Solution 5 of 9 Fleet | Fuel & Maintenance

Fuel and maintenance tracked per vehicle — with distance- and time-based service alerts

The Problem

Fuel is the single biggest controllable cost in transport, and deferred maintenance is the most expensive. Both quietly disappear when they are recorded on receipts and in someone's head.

What We Built

  • Per-vehicle fuel consumption logging with fuel-card and vendor tracking
  • Bulk fuel-log upload from spreadsheets
  • Maintenance scheduling across service categories with a full service history
  • Service alerts triggered by both distance run and elapsed time
Tech: Go, PostgreSQL, spreadsheet import
Solution 6 of 9 Finance | Invoicing & Billing

Auto-generated invoices, multi-currency and multi-level approvals

The Problem

Hand-typed invoices are slow, inconsistent and error-prone — and the moment they are disconnected from the ledger, the books quietly drift away from reality.

What We Built

  • Invoices auto-generated from completed bookings
  • Multiple customizable invoice formats with branded print output
  • Multi-currency invoicing with live exchange rates — a foreign-currency invoice posts its local-currency equivalent to the ledger
  • A multi-level approval workflow before any invoice is issued
  • Sales tax and withholding handled correctly and tracked separately
  • Credit notes and a clean settlement trail back to receipts
Tech: Go, PostgreSQL, PDF generation
Solution 7 of 9 Finance | General Ledger

A full double-entry ledger purpose-built for transport — every operation lands in the books

The Problem

Most operational systems treat accounting as an afterthought, so finance teams re-key everything into separate software and the two never agree. The goal here was one set of books that is always in balance.

What We Built

  • Multi-level chart of accounts with five voucher types (cash and bank receipts, payments and journals)
  • Every booking, invoice, payment and payroll run posts automatically to the general ledger
  • Trial balance, profit & loss, balance sheet and cash-flow statements on demand
  • Fixed-asset register with automatic monthly depreciation and disposal gain / loss
  • Bank reconciliation with statement import and an auto-match engine
  • Tax aggregation with filing-ready packages, plus deferred-revenue recognition schedules
  • Cost centers and a balanced-ledger guarantee enforced at the database level
Tech: Go, PostgreSQL, atomic transactions, PDF / Excel export
Solution 8 of 9 Reporting | Dashboards

Vehicle profitability, receivables aging and live KPIs — every report region-scoped

The Problem

Leadership should not have to wait days for someone to assemble a spreadsheet to answer "which vehicles make money?" or "how much is overdue?" The answers should already be on screen.

What We Built

  • Management dashboard with live KPIs — month-to-date revenue, pending invoices, overdue receivables and fleet utilisation
  • Six-month revenue trend and a finance snapshot on the home screen
  • A reports hub: vehicle profitability, sales, receivables and payables aging, expense summary, booking summary, fuel average, maintenance and more
  • Per-client and per-vehicle profit & loss
  • Role-based views — each manager sees their own region, leadership sees everything
  • CSV export and drill-down on every report
Tech: Go, PostgreSQL, Next.js, Recharts
Solution 9 of 9 AI | Intelligence Layer

An AI layer that audits the business and answers questions across every module

The Problem

A system this large generates more signal than any team can watch. Anomalies, overdue actions and odd entries hide in plain sight — and getting an answer usually means knowing exactly which report to open.

What We Built

  • Plain-language Q&A across the whole system — ask about a vehicle, a customer, the aging report or the trial balance and get a grounded answer
  • Read-only, data-aware tools so the assistant works from live records instead of guessing
  • Scheduled operational audits and monthly financial reviews
  • Anomaly detection that surfaces unusual entries for human review
  • Drafting help for routine communications
  • An admin-curated knowledge base the assistant draws on
  • Resilient by design — if one AI engine is unavailable, the next takes over automatically so the assistant never goes dark
Tech: Go, multi-provider AI engine with automatic failover

Want similar results?

Tell us your problem. We'll show you the modules that solve it.

Talk to us

Need help with your project?

Chat with us on WhatsApp

1