Crane hire billed off the claim sheet it already uses. The atomic unit is a crane-day — date, crane, site, basic charge, overtime hours at that customer's rate; the unbilled ones become one invoice. Expenses attribute to a single machine, which is what makes a crane's real margin answerable.
GS Crane hires cranes out of Seremban off a claim sheet and a paper book. The month-end tally of a customer's unbilled days onto one invoice was manual, so a day could be billed twice or missed entirely. The harder question was which machine actually earned: fuel, maintenance, operator wages and tolls all landed in one pile, so a crane's margin was a feeling rather than a figure.
The same book, with the tally done for you. A crane-day logs as it happens with the rate prefilled from the customer and the plate autocompleting from the register; Invoice/Quotation pulls every unbilled day in a date range onto one document and renders the PDF. Expenses carry a category and an optional crane, so income and cost meet per machine. AMOUNT is Basic Total + (Overtime Hours × Overtime Charges) — verbatim from GS Crane's own claim sheet, not a formula we chose. Sign-in takes an authenticator code where the office wants one, and a superadmin can require it company-wide. Deployed to the client's own GitHub, Supabase and Vercel accounts.
We work on a small number of projects at a time. Tell us what you're shipping.