Skip to content
Back to blog

Build a Construction Equipment Depreciation Tracker in Excel

10 min read·May 16, 2026
Yellow skid steer loader and mini excavator side view illustration representing a construction equipment fleet

Most small general contractors run their equipment like they run their pickup trucks. They bought the skid steer four years ago, it still starts, and that is the depth of the financial analysis. Then a hydraulic pump grenades on a Tuesday, the rental yard delivers a $4,200 weekly bill, and the margin on a $180,000 retaining wall job disappears in three weeks.

A construction equipment depreciation tracker in Excel solves three problems at once: it tells you what each machine is actually worth on your books, what it costs per hour to run, and when keeping it stops making sense. None of those answers come from your accountant. Your accountant gives you MACRS for the tax return. You need MACRS plus operating cost plus replacement timing for the bid sheet.

This is the spreadsheet most GCs running 3 to 15 pieces of equipment never build. Here is how to build it, with formulas you can drop into a workbook this afternoon.

The Cost of Not Tracking Equipment Properly

Run the math on a single piece of equipment. A 2021 CAT 259D3 track loader, bought new at $58,000. The GC depreciates it on the tax return using MACRS 5-year schedule because the CPA told him to. He never builds a separate operating cost number. When he bids site prep on a 4,000 sq ft commercial pad, he plugs in "$85/hour for the skid steer" because that is what the local rental yard charges.

Three problems with that number:

  • $85 is the rental rate. Rental yards mark up 40 to 60 percent over true cost. He owns the machine, so his real number is lower.
  • He has no idea what his real number is, because he never broke out fuel, maintenance, insurance, and depreciation per operating hour.
  • He has no warning system for when the machine crosses the threshold from "worth keeping" to "money pit." He finds out from a breakdown.

If his true cost is $52/hour and he bids at $85, he leaves $33/hour of margin on the table on small jobs where he could be more aggressive. If his true cost is $97/hour (because year 6 maintenance is killing him) and he bids at $85, he loses $12/hour on every machine hour. He has no way of knowing which scenario he is in.

Building the Equipment Master Sheet

Start with one row per machine. The columns are not negotiable: you need every one of these to make the rest of the tracker work.

ColumnCellExample Value
Asset IDA2SK-001
Make/ModelB2CAT 259D3
Purchase DateC22022-04-15
Purchase PriceD258000
Salvage ValueE212000
MACRS ClassF25
Useful Life (years)G27
Annual HoursH2900
Hour Meter (current)I22750

Two numbers people get wrong here. Salvage value is what you can actually sell the machine for at the end, not what the IRS says. Look at IronPlanet or Ritchie Bros sales for comparable hour counts. Useful life is your operational useful life, which is almost always longer than the MACRS class life. A skid steer is MACRS 5-year, but if you maintain it, it runs profitably for 7 to 9 years.

MACRS Depreciation Schedule in Excel

MACRS for construction equipment is 5-year property under the General Depreciation System. The half-year convention is the default. Here are the percentages you multiply against the purchase price:

YearMACRS 5-yr %
120.00%
232.00%
319.20%
411.52%
511.52%
65.76%

Build a separate tab called MACRS_Schedule with these percentages in column B, years 1 through 6 in column A. Then in your equipment sheet, build a depreciation block.

For year 1 tax depreciation in column J: =D2*VLOOKUP(1,MACRS_Schedule!$A$2:$B$7,2,FALSE)

For book value at end of year 1: =D2-J2

This gives you the IRS book value, which is what shows up on your balance sheet and what you need for any financing application or sale. For the CAT 259D3 at $58,000, year 1 MACRS depreciation = $11,600. Book value end of year 1 = $46,400. Year 2 depreciation = $18,560. Book value = $27,840. By end of year 6, book value is zero.

One trap: bonus depreciation. Section 168(k) lets you write off a percentage in year 1 on top of MACRS. For 2024 it was 60%, for 2025 it dropped to 40%, and for 2026 it is 20%. If you took bonus depreciation, your year 1 number is much bigger and the remaining schedule shifts. Add a Bonus_Pct column and modify the formula: =D2K2+D2(1-K2)*VLOOKUP(1,MACRS_Schedule!$A$2:$B$7,2,FALSE) where K2 holds the bonus percentage taken in year 1.

True Hourly Cost: The Number Your Bid Sheet Actually Needs

MACRS is for the tax return. It has nothing to do with what the machine costs you to run. For bidding, you need true hourly cost, which has five components.

Cost ComponentHow to CalculateExample (CAT 259D3, 900 hr/yr)
Economic depreciation(Purchase Price - Salvage) / (Useful Life Annual Hours)($58,000 - $12,000) / (7 900) = $7.30/hr
FuelGal/hr $/gallon2.8 gal $3.75 = $10.50/hr
Maintenance & repairsAnnual cost / Annual hours$5,400 / 900 = $6.00/hr
Insurance & registrationAnnual cost / Annual hours$1,800 / 900 = $2.00/hr
Cost of capital(Avg book value interest rate) / Annual hours($30,000 8%) / 900 = $2.67/hr
Total$28.47/hr

$28.47/hour is the floor. That is what the skid steer costs you to own and operate, before you add the operator's wage and overhead burden. Compare that to the $85 rental rate the GC was using on bids. He was bidding the wrong number by 200 percent.

Build this as a calculated section on the equipment sheet:

  • Cell L2 (economic depreciation/hr): =(D2-E2)/(G2H2)
  • Cell M2 (fuel/hr): =N2O2 where N2 is gal/hr and O2 is fuel price
  • Cell P2 (maintenance/hr): =Q2/H2 where Q2 is annual maintenance cost
  • Cell R2 (insurance/hr): =S2/H2 where S2 is annual insurance
  • Cell T2 (capital cost/hr): =((D2+(D2-SUM(J2:J7)))/2)*U2/H2 where U2 is your borrowing rate
  • Cell V2 (total true hourly cost): =L2+M2+P2+R2+T2

The capital cost formula is the part most people skip. Even if you paid cash, that capital has an opportunity cost. Use your line of credit rate or your expected return on capital, whichever is higher. For most small GCs that is 7 to 10 percent.

Maintenance Cost Curve: Why Old Equipment Eats Margin

Here is the part fleet management software charges $300/month for. You can do it in Excel in 20 minutes.

Track every maintenance invoice in a separate tab called Maintenance_Log. Columns: Date, Asset ID, Hours, Cost, Type (routine/repair). Then build a rolling maintenance cost per hour on the equipment master.

Annual maintenance cost (last 12 months): =SUMIFS(Maintenance_Log!D:D,Maintenance_Log!B:B,A2,Maintenance_Log!A:A,">="&EDATE(TODAY(),-12))

Maintenance cost per hour, last 12 months: =W2/H2 where W2 holds the SUMIFS result.

Now run that number every quarter. Year 1 maintenance on a new skid steer might be $1,200 (oil, filters, one minor repair). Year 5 might be $4,500 (hydraulic seal, undercarriage, electronics). Year 7 might be $9,800 (engine work, transmission, multiple cylinders).

When maintenance per hour starts increasing 30 percent year over year, you are on the back side of the curve. When the trailing 12 months of maintenance exceeds 25 percent of current market value, the machine is officially eating you alive.

Replacement Timing: The Decision Most GCs Get Wrong

The replacement decision is not "the machine is too old." It is a math problem with three inputs: current true hourly cost, projected next-year hourly cost, and the hourly cost of a replacement.

Build a decision cell on each equipment row. Call it Replace_Flag:

=IF(V2>X2*1.15,"REPLACE",IF(V2>X2,"WATCH","KEEP"))

Where V2 is current true hourly cost and X2 is the projected true hourly cost of buying a new equivalent machine. The 15 percent buffer accounts for transaction costs of selling old and buying new, dealer markup, and downtime during transition.

The CAT 259D3 in year 7 might be running you $42/hour all-in (high maintenance, low book value but lots of capital opportunity cost on the remaining value). A new equivalent at $72,000, depreciated over 7 years at 900 hours/year, runs $33/hour all-in. Your formula returns "REPLACE" because $42 > $33 * 1.15.

One more decision input: utilization. If you only ran the machine 380 hours last year instead of the budgeted 900, your fixed costs are spreading over a smaller base. Annual utilization rate: =I2/H2 (current hour meter / annual budget). If this drops below 60 percent for two years running, you should not own this machine. Rent it or sell it.

The Dashboard That Pulls It All Together

On a fresh tab called Fleet_Dashboard, build these summary rows pulling from your equipment master.

MetricFormulaWhy It Matters
Total fleet book value=SUM(BookValue_Column)Balance sheet number for financing
Total annual depreciation (MACRS)=SUM(CurrentYear_MACRS_Column)Tax planning
Average true hourly cost=AVERAGE(TrueCost_Column)Baseline for bid markups
Machines flagged REPLACE=COUNTIF(ReplaceFlag_Column,"REPLACE")Capex pipeline
Machines below 60% utilization=COUNTIFS(Util_Column,"<0.6")Candidates to sell

Look at this dashboard before every big bid. If the average true hourly cost on your fleet is $34 and you are bidding equipment at $80 for a competitive job, you have room to drop to $65 and still make money. Your competition does not have this number, so they cannot make the same call.

What to Do This Week

Three actions in priority order:

  1. List every piece of equipment with purchase date, price, salvage estimate, and hour meter. If you own more than five machines and cannot fill this out in 30 minutes, that is the actual problem.
  2. Pull 12 months of maintenance invoices per machine. Categorize each as routine or repair. Sum the repair column. That number, divided by hours run, is your current maintenance cost per hour. Anything above $6/hour on a piece of equipment under $80K is a warning.
  3. Calculate true hourly cost on your top three most-used machines. Compare to what you charge on bids. Adjust your bid template this week.

The SheetCraft Construction Budget Tracker includes an equipment module with MACRS schedules, true hourly cost formulas, maintenance logging, and the replacement decision matrix already wired up. It also rolls equipment cost into job-level budget tracking so you see equipment burn on each project, not just at the fleet level. That last connection is what most fleet management software misses: equipment cost is meaningless until you tie it to the job that paid for it.

Related template

Construction Budget Tracker

Track every line item, change order, and payment across your entire project. Spot a $23K billing discrepancy before it hits your bottom line — not after.

Get the Template — $49