Fleet

Transport fleet management: vehicles and drivers, revenue-earning trips (loads) with their revenues and expenses, and per-vehicle expenses — showing each truck's and each trip's profitability, while tracking registration, insurance and driver-license expiry dates. Every posted document generates its journal entry automatically.

Before you start: fleet account setup

Purpose: before the first posting, the module must be linked to the chart of accounts from the Accounts settings screen. Without these two accounts the system refuses to post, with a clear message.

SettingUsed for
Fleet expense accountThe debit side of every vehicle expense and of trip expenses. If unset for vehicle expenses, the system falls back to the general expense account configured in the commercial settings.
Freight revenue accountThe credit side of every trip's fare (freight). Mandatory before posting any trip.
Default cash boxIf no cash box is chosen on the document, the default cash account from settings is used.
ℹ️ Permissions: each screen has its own permissions (view / create / edit / delete, plus a separate Post permission for trips) — granted by the administrator from the roles screen.
⚠️ Common error: the message "Configure Fleet.RevenueAccountCode…" on posting means the freight revenue account is not configured yet — ask the accountant to set it once in the Accounts settings.

Vehicles

Route: Fleet › Vehicles/fleet/vehicles

Vehicles
Vehicle list

Purpose: an identity card for each vehicle in the fleet. Create it once when the vehicle enters service, then return to update registration/insurance dates and operating status. Every trip and every expense is later recorded against a vehicle from this list.

List columns

ColumnDescription
CodeSequential number generated automatically (read-only).
PlateThe vehicle's plate number — this is what appears in vehicle pickers on all screens.
Make / ModelE.g. Mercedes Actros.
DriverThe vehicle's usual assigned driver (optional).
Registration expiry / Insurance expiryExpiry dates of the road registration and the insurance policy — see "Expiry alerts" below.
Expenses totalSum of all vehicle expenses ever recorded against it, with a column total at the bottom.
StatusActive (green) / In maintenance (amber) / Out of service (red).

Add / edit screen fields

FieldDescription
CodeSuggested automatically, read-only.
PlateRequired — the save is blocked without it.
Make / ModelOptional free text.
YearNumber between 1980 and 2100.
DriverPick from active drivers (searchable, clearable).
Registration expiry / Insurance expiryTwo optional, clearable dates.
StatusActive / In maintenance / Out of service.
NotesFree text (chassis number, extra details…).
ActiveEdit mode only — an inactive vehicle disappears from pickers in trips and expenses without losing its history.

Buttons: Save / Save & New / Back, plus a record notes panel beside the form for follow-up notes on the vehicle.

Expiry alerts

The registration expiry and insurance expiry dates are permanent columns in the list. Make reviewing them a monthly habit: sort the list ascending on either column so the vehicles closest to expiry come first, and renew before the deadline. The system does not block operating a vehicle with an expired registration — monitoring is the fleet supervisor's responsibility.

⚠️ Deletion: a vehicle that has recorded expenses cannot be deleted — deactivate it or set the status to "Out of service" instead. The vehicle code is unique and cannot be duplicated.

FAQ

I sold a truck — should I delete it? If it has any expenses the system refuses deletion to preserve history — untick "Active" and set the status to "Out of service".

Does setting a vehicle to "In maintenance" block recording trips on it? No; the status is descriptive, for tracking. What hides the vehicle from pickers is deactivating it.

Where does the "Expenses total" column come from? It is the sum of the "Vehicle expenses" documents recorded against this vehicle (it does not include trip expenses recorded inside trip documents).

Drivers

Route: Fleet › Drivers/fleet/drivers

Drivers
Driver list

Purpose: the driver register. A driver is linked to his usual vehicle from the Vehicles screen, and each trip is attributed to its driver so you know who drove every load — and can track driving-license expiries.

Fields

FieldDescription
CodeSuggested automatically, read-only.
Arabic nameRequired — this is what appears in lists and pickers.
English nameOptional; if left empty the Arabic name is used.
PhoneThe driver's mobile — shown as a list column for quick contact.
License no / License expiryDriving-license details and expiry date (both optional).
ActiveEdit mode only — an inactive driver disappears from pickers.

Expiry alerts

The License expiry column is always visible in the list — sort on it regularly to spot licenses close to expiry before assigning trips to their driver.

⚠️ Deletion: a driver assigned to a vehicle cannot be deleted — unassign him from the vehicle screen first, or better: deactivate him to keep his trip history.

FAQ

Is the driver mandatory on a trip? No, the trip's driver field is optional — but filling it is a prerequisite for driver performance reports.

A driver left the company — what should I do? Unassign him from the vehicle, then untick "Active". His historical trips stay attributed to him.

Does a driver get a custody account in the chart of accounts? The module does not create an account per driver; cash advances are handled from the cash box and settled with actual expenses when the trip is closed (see the example on the Trips screen).

Trips (loads)

Route: Fleet › Trips/fleet/trips

Trips
Trip list
New trip
New trip

Purpose: the trip is the revenue unit — the load notebook, digitized: each load has Freight (revenue) lines, Trip expenses lines and a Net after the load strip. The document has two states: an editable, deletable Draft, then Posted after pressing "Post", which locks it and generates its journal entry.

Trip list

Columns: trip no (TRIP-00001…), start date, vehicle, trip description, freight total, expenses total, net (with totals under the numeric columns), and status. Row buttons: edit/view; View entry for posted trips; delete for drafts.

Document header fields

FieldDescription
Start dateDefaults to today. The journal entry is posted at the end date if set, otherwise the start date.
End dateOptional — fill it when delivery is complete.
VehicleRequired — searchable picker (code - plate) over active vehicles.
DriverOptional — from active drivers.
Trip descriptionRequired — e.g. "Steel haul – Riyadh/Jeddah".
Cash BoxThe cash account that receives the freight and pays the expenses — defaults to the first defined cash box.
From / ToLoading and unloading points (optional free text).
BranchAuto-filled with the default branch, and locked when the company has a single branch. No document is saved without a branch.
NotesFree text at the bottom of the screen.

Freight lines and expense lines

GridColumnsNotes
Freight (revenue)Description + AmountOne line per fare item (multiple items allowed: base fare, waiting, loading…).
Trip expensesExpense type + Description + AmountTypes: Fuel, Oil, Tyres, Repair, Maintenance, Other.
💡 Fast entry: the Enter key walks you cell to cell and adds a new row at the end of the grid, or use the "Add line" button. Lines with no description or a zero amount are dropped automatically on save.

Below the two grids sits the totals strip: Freight totalExpenses total = Net after the load (updated live).

Workflow

  1. From the trip list press Create — a draft document opens; its number is generated on save.
  2. Pick the vehicle and driver, and enter the trip description and the route (from / to).
  3. Enter the freight lines (the trip fare) and any expenses spent on it.
  4. Save keeps it an editable draft — convenient until the trip is finished and actual expenses are known.
  5. When delivery is complete, fill the end date, update expenses with actuals, then press Post.
  6. After posting the document is locked; review its entry with the View entry button.

Journal entry on posting (Dr/Cr)

AccountDebitCredit
Cash box — "trip freight"Freight total
Freight revenue accountFreight total
Fleet expense account — "trip expenses"Expenses total
Cash box — "trip expenses"Expenses total

The net cash effect equals the net after the load. If the trip has no revenue (or no expenses), only the existing leg is created.

Full worked example: a trip with a driver advance

A steel load from Riyadh to Jeddah with a fare of 4,500. Before departure the cashier hands the driver a 600 fuel advance. The driver returns with actual fuel receipts of 540 and hands 60 back to the cash box.

  1. Create the trip: vehicle, driver, description "Steel haul", from "Riyadh" to "Jeddah", and save it as a draft on departure day.
  2. Freight line: "Steel load fare" for 4,500.
  3. After return and settlement: one expense line of type Fuel, description "Trip fuel – advance settlement", amount 540 (the actual, not the 600 handed over).
  4. The strip shows: freight total 4,500 − expenses total 540 = net after the load 3,960.
  5. Fill the end date and press Post.

The generated entry:

AccountDebitCredit
Cash box (trip freight)4,500
Freight revenue4,500
Fleet expenses (trip fuel)540
Cash box (trip expenses)540
ℹ️ Where did the 600 go? The advance is a temporary cash-drawer movement, not recorded on the document: the cash box physically went down 600 at hand-over and got 60 back, i.e. a net decrease of 540 — exactly what the document credits the cash box with. Always record the actual amount from receipts, not the advance; if the driver spent more than his advance, enter the line at the actual amount and pay him the difference from the cash box.

Validation and common mistakes

⚠️ Save and post rules: vehicle and trip description are required; at least one line (freight or expense) with a positive amount is needed; a posted trip can never be edited or deleted — check the figures before posting; posting requires the freight revenue and fleet expense accounts to be configured (see "Before you start").

FAQ

I posted a trip with a wrong amount — how do I fix it? A posted document is locked. The accountant makes an adjusting/reversing entry from the journal entries screen, and you create a correct trip if needed.

The freight is on credit to a customer, not cash — how do I record it? The trip's entry hits the chosen cash box. For credit freight, record the trip when it is collected, or let the accountant handle the receivable with a manual entry on the customer's account.

Can a trip have only expenses and no revenue? Yes (an empty return leg, for example) — one expense line is enough, and the net will be negative.

When is the trip number generated? On first save, as a TRIP-00001 sequence per branch. The activity log (who created, who edited) shows at the bottom of the document.

Vehicle expenses

Route: Fleet › Vehicle Expenses/fleet/expenses

Vehicle expenses
Vehicle expense list

Purpose: record expenses that belong to the vehicle itself rather than to a specific load: periodic maintenance, tyres, insurance, workshop repairs, general refueling… Expenses of a specific trip belong in the "Trip expenses" lines inside the trip document itself.

List columns

ColumnDescription
Expense noAutomatic sequence VEXP-00001…
DateExpense date.
VehicleCode - plate.
Expense typeColored badge: Fuel, Oil (blue), Tyres, Maintenance (amber), Repair (red), Other (gray).
AmountWith a column total at the bottom.
DescriptionExpense description.

The only row button is View entry — because the document is posted the moment it is saved (see the warning below).

Add screen fields

FieldDescription
DateDefaults to today.
VehicleRequired — from active vehicles.
Expense typeDefaults to "Fuel".
AmountRequired, greater than zero.
Cash BoxThe cash account it is paid from — defaults to the first cash box.
OdometerOptional — the odometer reading at expense time, useful for cost-per-kilometer analysis.
DescriptionFree text (workshop name, supplier invoice number…).
💡 Save & New: when entering a batch of receipts, "Save & New" keeps the date, vehicle, type and cash box and clears the amount, odometer and description — fast consecutive entry.

Journal entry (Dr/Cr)

AccountDebitCredit
Fleet expense accountAmount
Chosen cash boxAmount
⚠️ Posted on save: there is no draft here — saving creates the document and its entry together, and the screen offers no edit or delete afterwards. Double-check the vehicle and the amount before pressing save; later corrections are made with a reversing entry from the journal screen.

FAQ

Do I record trip fuel here or on the trip? If it belongs to a specific load, inside the trip (so it enters its net); if it is a general refuel or maintenance, here. Never record it in both places.

The expense is on credit from a workshop (supplier)? This screen pays from a cash account only. For a credit expense use the purchasing cycle or a manual entry on the supplier's account.

Where do I see each vehicle's total expenses? The "Expenses total" column in the vehicle list, and the "Expenses by type" chart on the module dashboard.

Reading profitability: a full month for one truck

Purpose: this is how the three screens combine to tell you whether a truck is really profitable. Example: truck VEH-003 (plate 1234 TRK) during January:

ItemSourceAmount
Freight of 8 posted tripsTrip list — freight total column32,400
Trip expenses (fuel and road costs inside the documents)Trip list — expenses total column5,150
Net after the loadsTrip list — net column27,250
Vehicle expense: general diesel refuelVehicle expenses1,800
Vehicle expense: oil changeVehicle expenses350
Vehicle expense: tyresVehicle expenses900
The truck's monthly profit27,250 − 3,05024,200
  1. Open the trip list and filter by the vehicle and the date range — the totals rows under the columns give you freight, expenses and net directly.
  2. Open vehicle expenses and filter by the same vehicle and month — the amount column's total is the operating cost.
  3. Subtract: trips' net − vehicle expenses = the truck's true profit.

On the module dashboard (Home › fleet dashboard) you get, for the chosen period: KPIs for freight, expenses (trips + vehicles combined), net and active-vehicle count, a "net per trip" chart, an "expenses by type" donut, and the latest trips.

💡 Tip: consistently fill the "Odometer" field on every expense; dividing the month's expenses by the kilometers driven gives you the cost per kilometer — a sudden rise is an early warning of a maintenance problem.

The module's journal-entry summary

EventDebitCredit
Trip posting — revenue legCash boxFreight revenue
Trip posting — expense legFleet expensesCash box
Saving a vehicle expenseFleet expensesCash box

Frequently asked questions

How do I record a trip (haul)?

Open Fleet › Trips › New, select the vehicle and driver, add freight (revenue) lines and trip expense lines; the net after load is calculated automatically.

How do I add vehicles and drivers?

Vehicles, drivers and trip types are master data with auto-generated codes; add them once and reuse them on every trip.

How are trip revenue and expenses posted?

Posting a trip books the freight revenue and expenses to the ledger and settles the net cash through the chosen treasury account.

Can I track fleet profitability?

Yes. The fleet dashboard shows freight revenue, expenses and net per trip, plus active vehicles, so you see profitability at a glance.