A crane or an excavator is a five- or six-figure asset that either pays for itself or quietly does not, and most hire businesses cannot say which because fuel, maintenance, operator wages, tolls and low-bed transport all land in the same pile. The answer starts at the timesheet, not at the accounts.
Heavy equipment software here means a machine-day ledger: each day a unit is on hire is recorded with its site, basic charge and overtime hours at that customer's rate, so invoices are built from unbilled machine-days and every cost can be attributed to a single unit.
The record starts on site, on paper, signed by someone from the client. That is not a weakness — a signature on the day is the strongest evidence you will ever have about hours worked — but the sheet then has to travel. It comes back with the operator at the end of the week, or the end of the hitch, or when someone remembers. By the time the office has it, the month is closing and nobody can query a figure that looked odd, because the person who would know is on another site.
Then the rates have to be applied, and heavy equipment has more of them than most sectors admit. A machine goes out on an hourly rate here, a day rate there, a monthly hire somewhere else, with overtime beyond a normal day charged at its own figure. Mobilisation and demobilisation are separate charges that are not days at all — moving a machine on a low-bed is a job with its own cost, and it is the single most commonly forgotten line on a claim. So is standby: a machine sitting idle on a site because the client is not ready is usually chargeable and usually not charged, because nobody wrote a timesheet for a day when nothing happened.
Then there is approval. Equipment hire is claimed against, not simply invoiced. The client's site engineer or QS checks the days and the hours against their own records, and disputes them — a day the machine was down, an overtime hour they say was not authorised. An invoice raised before that reconciliation is an invoice that comes back.
And underneath all of it is the question the owner actually cares about. Which unit earned. Fuel, tyres, hydraulic repairs, the operator's wages, road tax, insurance, the low-bed movements. If none of those carry a machine reference, the fleet has one aggregate margin and no way to tell the crane that pays for itself twice over from the one that has been subsidised for three years.
The unit of account is a machine-day: one date, one machine, one site, one customer. It is the smallest thing that can be both billed and costed, which is why every other object in the system references it.
Whatever the site signs today is the template. Its columns, its arithmetic, its language. We have shipped this with the client's own formula transcribed rather than rationalised, and that is deliberate — the office has to be able to check the system against the paper for the first few months.
Rate prefilled from the customer, plate autocompleting from the register, date defaulting sensibly. Fast enough that a week of sheets is twenty minutes of typing rather than an afternoon.
Days sit in an approved state before they can be invoiced, so the dispute happens against a line rather than against a finished document. Where the client will use it, site approval can happen on a phone against the same record.
Customer and date range in, every unbilled approved machine-day onto one document, rendered to PDF in your own numbering. Mobilisation and standby included as their own lines. Billed days are marked, so the same day cannot appear twice.
Every expense categorised and attributable to one machine. This is the step that turns the whole system from a billing tool into an answer about which asset to keep.
Invoiced less spent, per machine, for the period you pick, alongside days on hire against days available. The two figures together are what a purchase or disposal decision actually needs.
Your GitHub, your Supabase, your Vercel, with two-factor sign-in where the office wants it and a superadmin able to require it company-wide.
Equipment hire has a specific e-invoicing hazard that trades in other sectors do not. The claim is disputed as a matter of routine: a day the machine was down, an overtime hour the site says was not authorised, a standby period the QS disagrees with. In the paper world that argument happened before an invoice existed, and the invoice was raised at the agreed figure.
Under MyInvois, an invoice submitted and validated is a document with a life of its own. LHDN's guideline allows a short window after validation — 72 hours — in which the supplier can cancel or the buyer can reject; after that the only way to change the amount is a credit or debit note referencing the original. So a hire company that submits on the day it raises the claim will spend its month issuing credit notes against validated invoices for hours it never really billed. The fix is not technical cleverness, it is sequencing: approval is a state the machine-day has to reach before it is eligible for a document at all.
The second wrinkle is what a main contractor's accounts payable will accept. Large construction buyers match against their own site records, which are organised by site and by date, not by your invoice number. Machine-days therefore have to appear as dated lines carrying the site reference, or a validated invoice sits unpaid while two organisations try to work out what it refers to.
Mobilisation charges are worth a separate look with your tax agent, because they are a service rather than a day of hire and may classify differently on the document. The last mandate band came into force on 1 January 2026 for turnover up to RM5 million, with under RM1 million exempt. We build the system and the submission path; your filing position stays with your agent.
Published tiers, seen from a hire yard. Fixed price, your own accounts, no per-machine or per-seat licence.
Machine-day ledger, customer rate bases, approval state, invoicing from unbilled days, quotations off the same builder, Excel export, roles and audit trail.
Enterprise tier. The above plus expenses attributed per machine, margin and utilisation reporting, operator payroll with statutory deductions, MyInvois submission, migration and training.
Published add-on rate. Generated invoices and claim documents off data you already hold, where a full ledger is more than you need right now.