How to Build a CMMS in Excel (Free Template Included)
A practical guide to tracking maintenance in Excel, with a free downloadable template. Plus an honest take on when spreadsheets stop working and what to do next.

How to Build a CMMS in Excel (Free Template Included)
Most maintenance teams start with spreadsheets. Honestly, that's fine.
I spent eight years managing rail maintenance systems at Thales and Hitachi Rail. I've seen teams running hundreds of assets on Excel, and I've seen the exact moment when it stops working. Both are real, and there's no shame in starting simple.
This guide gives you two things: a working Excel template you can download and use today, and an honest take on where spreadsheets break down so you know what to watch for.
What You Actually Need to Track
Before building anything, let's nail down the basics. The temptation to track everything is what kills most spreadsheet systems. They get bloated, nobody updates them, and six months later you're back to sticky notes.
Start with four things:
- Asset list — what you have and where it is
- Work orders — what's broken and who's fixing it
- PM schedule — what's due and when
- Maintenance history — what was done, by whom, and when
That's it. Resist the urge to add fields for "just in case." You can always add columns later. You can't undo the complexity that stops people from using the thing.
Building Your Excel CMMS
Here's a structure that actually works. I've seen variations of this at dozens of companies, and the ones that stick are always the simple ones.
Sheet 1: Asset Register
This is your source of truth for what you're maintaining.
| Column | What It's For | |--------|---------------| | Asset ID | Short, unique identifier (e.g., HVAC-01, PUMP-103) | | Name | Human-readable name | | Location | Where it lives (building, floor, area) | | Category | Equipment type for filtering | | Install Date | When it was put into service | | Status | Active, Inactive, Disposed |
Keep Asset IDs short and logical. Your technicians will type these constantly. "HVAC-BUILDING-A-FLOOR-3-UNIT-7" is a nightmare. "HVAC-A307" works.
Sheet 2: Work Orders
This tracks reactive work — stuff that breaks.
| Column | What It's For | |--------|---------------| | WO# | Auto-incrementing number | | Asset ID | Links to your asset register | | Issue | What's wrong (keep it brief) | | Priority | High / Medium / Low | | Assigned To | Who's handling it | | Status | Open / In Progress / Complete | | Created | When the work order was logged | | Completed | When it was closed |
Use Excel's data validation to create dropdowns for Priority and Status. This prevents typos and makes filtering actually work.
Add conditional formatting to highlight overdue items. If a high-priority work order has been open for more than 24 hours, it should turn red.
Sheet 3: PM Schedule
Preventive maintenance — the stuff you're supposed to do before things break.
| Column | What It's For | |--------|---------------| | Asset ID | Links to your asset register | | Task | What needs doing | | Frequency | Daily / Weekly / Monthly / Quarterly / Yearly | | Last Completed | Date of last completion | | Next Due | Calculated from Last Completed + Frequency |
The Next Due column is where Excel earns its keep. A simple formula like =IF(E2="Monthly", D2+30, IF(E2="Weekly", D2+7, D2+365)) keeps your schedule current.
Highlight anything due in the next 7 days. Highlight anything overdue in red.
Sheet 4: Maintenance Log
This is your audit trail — every piece of work that's been done.
| Column | What It's For | |--------|---------------| | Date | When the work happened | | Asset ID | What was worked on | | Work Type | PM / Repair / Inspection | | Description | What was actually done | | Technician | Who did it | | Parts Used | What was consumed | | Time Spent | Hours (for tracking labor) |
This log becomes invaluable when something fails and you need to know what was done previously, or when an auditor asks for maintenance records.
Making It Actually Work
A spreadsheet is only as good as the discipline around it. I've seen beautifully designed Excel systems fail because nobody used them, and ugly ones succeed because one person kept them honest.
One owner. Someone has to be responsible for the spreadsheet. Not "the team" — one person. They chase updates, fix errors, and keep the thing alive.
Update discipline. Log work the same day it happens. "I'll add it tomorrow" means it never gets added. If your technicians won't update it themselves, have them text or call in updates to whoever owns the sheet.
Keep it simple. Every column you add is friction. If you're not going to use the data, don't collect it.
Back it up. Use OneDrive, Google Drive, or SharePoint so you're not one laptop crash away from losing everything. If you're using a local file, set a calendar reminder to export a backup weekly.
Version control matters. If multiple people edit the file, you will have version conflicts. "FacilityMaintenance_v3_FINAL_actually_final.xlsx" is a sign things are going wrong. Cloud storage with auto-save helps, but doesn't fully solve this.
Where Excel Breaks Down
Here's where I'll be honest with you. Spreadsheets work until they don't, and I've seen the failure modes enough times to describe them clearly.
Multiple users editing at once. Excel wasn't built for real-time collaboration. Even with cloud storage, you'll get conflicts. One person saves, another person's changes disappear. Data gets overwritten. This is the most common way spreadsheet systems die.
Mobile access. Your technicians aren't at desks. They're standing in front of equipment, often in places with poor connectivity. Excel on a phone is possible but painful. Nobody wants to pinch-zoom a spreadsheet to log a work order.
No notifications. A PM task comes due and... nothing happens. Nobody gets an alert. It sits there until someone remembers to check the spreadsheet, which might be never. Work orders get assigned but the technician doesn't know because they don't check the sheet.
Audit trails. "Who changed this and when?" Excel doesn't know. If someone deletes a row or changes a value, there's no log of it. When auditors ask for proof of maintenance history, you're showing them a file that anyone could have edited five minutes ago.
Scale. Past 200 or so assets, things get slow. Formulas take longer to calculate. Finding anything requires scrolling forever. The file size grows, and eventually it corrupts.
Reporting. Want to know your mean time to repair? Average maintenance cost per asset? Trend of reactive vs. preventive work? You're building pivot tables manually, every time, and rebuilding them when someone changes the source data.
None of this means Excel is bad. It means Excel has limits, and knowing them upfront saves you from being surprised later.
Signs You've Outgrown the Spreadsheet
We've all seen it — the moment when the spreadsheet goes from "good enough" to "actively hurting us." Here's what to watch for:
- Multiple people need to update it at the same time, and you're getting version conflicts weekly
- You've lost data to overwrites or file corruption
- PM tasks are slipping because nobody sees them coming until they're overdue
- Auditors are asking questions you can't answer with the data you have
- Your technicians have stopped updating it because it's too clunky on their phones
- You're spending more time managing the spreadsheet than actually managing maintenance
If three or more of these sound familiar, you're probably past the spreadsheet phase.
What Comes Next
When Excel stops working, the temptation is to jump to enterprise CMMS — the big systems with hundreds of features and price tags to match. For most teams, that's overkill. You end up paying for features you'll never use, and the complexity means people don't adopt it.
What I've seen work is finding something in the middle. Something that feels like a better spreadsheet, not a spaceship cockpit. Simple work orders. PM scheduling that actually notifies people. An audit trail that runs automatically. Mobile access that technicians will actually use.
The good news: if you've been running a spreadsheet, you already have your data structured. Most modern tools can import from Excel, so you're not starting from scratch.
This is exactly the gap we built AssetOS to fill — for teams making the jump from spreadsheets to something more robust, without the enterprise complexity. But honestly, if you're managing 30 assets and one site, a spreadsheet might work for years. It depends on where you're at.
Download the Template
I've put together a free Excel template based on the structure above. Four sheets, pre-formatted with data validation and conditional formatting, ready to use.
Enter your email to get the free template. We'll also send you a copy via email.
Free download. No spam. Unsubscribe anytime.
Use it as long as it works. When it stops working, you'll know.
Wrapping Up
Spreadsheets are a legitimate starting point for maintenance tracking. They're free, familiar, and good enough for small teams and simple operations. There's no shame in using one.
But know the limits. Multiple users, mobile access, notifications, audit trails, scale — these are where spreadsheets fail. Watch for the signs, and when you hit them, don't fight it. Move to something built for the job.
If you want to talk through where you're at, I'm happy to chat. No sales pitch — genuinely just interested in what's working and what's not.
Need something more than a spreadsheet? Join the AssetOS beta — built for teams making exactly this transition.