Field notes

How to Charge Owned Equipment to Jobs So the Rate Reflects Real Costs

Owned equipment usually sits in overhead, which means it belongs to no job and shapes no bid. Here's how to build an internal rate from your own ledger, capture the hours without buying a platform, and reconcile the two once a year.

A contractor owns an excavator, a skid steer, a tandem and two service trucks. Month end arrives. The fuel card shows one lump sum. Repairs and maintenance sit in their own account, mostly invoices from a shop in Langley. Insurance was paid in March, licensing in April, and depreciation gets booked by the accountant in December, long after anyone could have used it.

Meanwhile the job cost report shows labour, material and subs against each project, and equipment shows up nowhere. It's in overhead, which is another way of saying it's nobody's number. So the jobs that ran the excavator for three weeks and the jobs that never touched it look equally profitable, and the estimator prices the next one from a rate somebody wrote down in 2019.

That's the equipment costing problem. It isn't really a question about accounting software. It's two operational questions that keep getting mixed together.

Two questions, and only one of them is hard

The first question is the rate: what does an hour of that excavator actually cost you to own and run? The second is capture: how many of those hours went to which job?

Most contractors attack the rate first, because there are rate books and calculators and it feels like the tidy part. Then they discover the rate doesn't matter, because there's no reliable count of hours to multiply it by. A precise rate applied to a guessed hour count produces a precise wrong answer.

If you have to pick one to fix first, fix capture. A rough rate against real hours tells you something true. A perfect rate against invented hours tells you nothing.

Build the rate from your general ledger, not from a book

You already own the data. Pull the last twelve months for the fleet, ideally per machine, and split it in two.

Ownership costs accrue whether the machine turns a wheel or not: depreciation or loan principal and interest, insurance, licensing, and the yard it sits in.

Operating costs accrue by the hour: fuel, lube, filters, scheduled service, repairs, tires or tracks and ground engaging tools, and your mechanic's time including the share of shop overhead that keeps him working.

Add them up, divide by the hours you actually ran the machine, and you have a rate built from your own cost structure rather than a generic one. Keep the two halves visible instead of collapsing them into a single number, because they behave differently under low use.

If you get partway into this and realise you don't know the annual hours, stop. That's the real finding. Go build the capture first and come back in a quarter.

In BC, the Blue Book is a billing rate, not your cost

The Blue Book Equipment Rental Rate Guide is published annually by the BC Road Builders and Heavy Construction Association with the Ministry of Transportation, and it's the reference most BC civil contractors reach for. It's genuinely useful for what it's built for: pricing force account and extra work, supporting a claim, and sanity checking whether your own number sits in a defensible range.

It is not your cost, and the guide says so itself, noting that the published rates are a guide and that each operator has to decide whether they apply to their own circumstances. A published rate assumes a purchase price, a useful life and an annual usage that may have nothing to do with your machine. If it assumes a thousand hours a year and yours runs four hundred, charging the book rate leaves you under-recovered every year, and no amount of careful bookkeeping downstream will find that money.

Hours run is the variable that decides everything

Here is the uncomfortable arithmetic, with hypothetical numbers to make the shape clear. Say a machine carries $48,000 a year in ownership cost. Run it 1,200 hours and that's $40 an hour before you burn a litre of fuel. Run the same machine 600 hours and it's $80. Nothing about the machine changed. Only the denominator did.

Which means a low-use machine has two honest answers and one dishonest one. The dishonest one is to raise the charge-out rate until the numbers balance, which quietly loads the shortfall onto whichever jobs happen to use it and makes you uncompetitive on exactly the work you were trying to win. The honest ones are to find the machine more hours, rent it out when you're not using it, or sell it and rent in when you need it. That conversation is usually the first thing equipment costing pays for, well before the job cost reports get better.

Capturing hours without buying anything

The capture mechanism should be boring, because boring is what survives contact with a wet Tuesday in November. One line per machine per day, filled in by whoever is already filling in the daily report: which machine, which job and cost code, how many hours, and whether it worked or sat.

Four things to decide before you start, because changing them later invalidates your history.

Hour meter or clock hours. An hour meter counts engine time, including the machine idling at the hoarding while the crew waits on an inspection. Clock hours are what the operator writes down. Both are defensible. Mixing them is not, because if you charge jobs on clock hours and build the rate on meter hours, the two will never reconcile and you'll spend a year arguing about why.

Where non-job time goes. Every machine needs somewhere to land when it isn't on a job: yard, shop, transport, standby. Without that bucket, non-job time either vanishes, so your usage looks better than it is, or gets quietly charged to whatever job it sat closest to.

Precision. Half-hour increments are fine. Chasing six-minute accuracy on a piece of iron costs more in field friction than it returns in insight.

Who owns the number. One person reviews the week's equipment lines against the daily reports before they post. On most crews that takes fifteen minutes and catches the machine logged on two jobs at once.

Telematics helps here and doesn't replace it. Engine hours off a manufacturer's portal will tell you a machine ran seven hours and idled two. It will not tell you which job or cost code, because the machine doesn't know. Use telematics to audit the hours your crews report, not to skip asking for them.

Close the loop once a year, or the rates drift

At year end, add up everything you charged to jobs for a given machine and compare it to what the general ledger says that machine cost. The difference is your over or under recovery, and it belongs in a variance account where you can see it.

A small gap is normal and means your rates are roughly right. A large gap tells you which of your two inputs is wrong: if you charged far less than the ledger shows, either the rate is low or the hours never got captured, and comparing total hours charged against a plausible annual number tells you which. Then you adjust for next year with a reason attached to the change rather than a feeling.

Skip this step and the rates become folklore within about three years, which is how most contractors end up running numbers nobody can explain the origin of.

What to build first

Starting from nothing, a shared spreadsheet with one row per machine per day will carry you further than you'd expect, especially if it lives alongside the daily report your crews already fill in. Get three months of clean hours, build rates from the ledger, charge the jobs, then look at which projects change shape now that the cost reports can see the iron.

Buy the fleet platform after that, if you still want it. You'll know what you need it to do, you'll have history to load into it, and your crews will already be in the habit the software depends on. Buying first usually means paying for a system to hold data nobody is collecting yet.

If you're looking at a fleet that costs real money and a job cost report that can't see it, that's the kind of thing we work through on a discovery call. Thirty minutes, no charge, and if the answer is that your ledger already has what you need and you just have to start counting hours, we'll say that.

Dealing with something like this?

Book a free 30-minute discovery call. No pitch, practical next steps either way.

Book a call