A trip book will answer that question eventually, with the book open and an afternoon to spare. What it will not do is answer it on a Tuesday, for one customer, in under a minute. That gap is the whole problem, and closing it is worth more than any dashboard.
Transport and haulage software here means a trip ledger: every job recorded as a dated trip carrying its D/O number, lorry, route, tonnage and price, so an invoice is assembled from the trips that have not yet been billed rather than reconstructed from a book at month end.
The paper book is not the problem, and we say that early because most software sold to hauliers starts by insulting it. A trip book written up daily by someone who knows the routes is an accurate record. What it cannot do is answer a question backwards. To bill a customer you have to read every page in the month, find that customer's trips, add them up, and trust that you found all of them. Do that across fifteen customers on the last three days of the month and the arithmetic is not the risk — the omission is. A trip that was never carried across is invisible by construction: there is no row anywhere saying it should have been billed.
The second problem is cost, and it is the one that quietly decides whether the business is working. Diesel goes in as a fuel bill, tolls as a card statement, tyres and servicing as workshop invoices, road tax and insurance annually. All of it lands in one pile. Ask which lorry earned its keep last quarter and the honest answer in most yards is a feeling about the vehicle, informed mostly by how often it broke down. Ask which route makes money at the rate you quoted two years ago and there is usually no answer at all.
Third is driver pay. Haulage payroll is rarely a flat salary: it is trips, tonnage, allowances and overtime, with EPF, SOCSO and EIS on top. Worked out by hand it is slow and it carries a risk worse than slowness — if a statutory rate changes and someone later recalculates an old slip, the recalculated figure no longer matches what was actually remitted. You now have two versions of a payroll history and no way to tell which one the authority holds.
Fourth, and increasingly the one that forces the decision, is that the invoice now has to be submitted to LHDN rather than merely issued. A month-end tally that was slow and occasionally incomplete becomes a compliance surface the moment every one of those documents has to be validated and accounted for.
Everything in a haulage system hangs off one record, and getting that record right is most of the work. If the trip is complete and correctly attributed, invoicing, costing and payroll are all queries. If it is not, no amount of reporting on top will save it.
The trip book, a month of invoices, a payslip, the D/O pad. Every column on the system's invoice comes off a document you already issue. Nothing is invented for the sake of a nicer layout, because the customer reconciling it has been reading the old one for years.
The screen a clerk uses forty times a day: rate prefilled from the customer, plate autocompleting from the register, date defaulting to today, keyboard all the way through. If entering a trip is slower than writing it, the book comes back within a fortnight.
Customer and date range in, one document out, rendered as a PDF in your own layout and numbering. Billed trips are marked at the moment the document is issued, which is what removes both the double-bill and the missed trip in one step.
Diesel, toll, tyres, servicing and road tax entered against a vehicle. Income and cost then meet per unit, and the per-lorry margin question stops being a matter of opinion.
Worker register with bank details and EPF schedule, then payslips with statutory deductions frozen at issue. The employment-confirmation letter in the format a bank asks for, because a driver will need one and it should not cost an afternoon.
Buyer TIN and classification captured on the customer record, documents produced in the structure LHDN requires, and the validation reference stored against the invoice. Where a batch workbook is the right answer for now, the ledger exports it filled.
Your Supabase project, your Vercel account, your GitHub. Your ledger does not sit in our infrastructure, and if you stop working with us the system does not move an inch.
Haulage produces the awkward shape for e-invoicing: a lot of low-value movements for the same handful of customers. The natural response is the one the industry already uses — one invoice per customer per month with every trip as a line. That is correct, and it is also where the vocabulary catches people out. A monthly summary invoice to a named business buyer with a TIN is an ordinary e-invoice that happens to have forty lines. It is not a consolidated e-invoice in LHDN's sense, which is a different mechanism for buyers who do not require an individual document. Treating the first as the second is a reporting error that looks like tidiness.
Each line has to carry its own D/O number. The buyer's accounts department has always reconciled against delivery orders, and a validated e-invoice they cannot match against their own DOs will be queried and held. This sounds like a formatting detail and it is actually the difference between being paid on terms and being paid after a phone call.
The subcontracting side is the genuinely sector-specific wrinkle. Hauliers routinely pass work to owner-drivers and small operators, some of whom are individuals who will never issue you an e-invoice. LHDN's self-billed mechanism covers defined situations of exactly that kind, which means the haulier may be issuing documents in both directions — one to the customer, one on behalf of the subcontractor. Whether your arrangements fall inside those situations is a question for your tax agent; what we can say is that a system with no concept of a self-billed document will not be able to produce one when the answer comes back.
The last band of the mandate came into force on 1 January 2026 for businesses up to RM5 million in turnover, with those under RM1 million exempt. If your fleet clears that threshold you are in scope today, and the practical question is not whether you have prepared but whether what you are issuing actually validates.
Published tiers, seen from a yard. Fixed price quoted from scope, hosted on your own accounts, no per-lorry or per-seat licence.
Trips, customers and rate cards, invoicing from unbilled trips, quotations off the same builder, Excel export, roles and audit trail. The core that stops the under-billing.
Enterprise tier. The ledger plus payroll with statutory deductions, per-lorry costing, expenses, MyInvois submission, data migration from the existing book and training on this month's real trips.
Starter tier. A site that survives procurement: real routes, real fleet figures, a short quote form. Fifteen pages and technical SEO is the RM 8,500 tier.