A rental property maintenance log is one row per request, with eleven fields: the date it was reported, the unit, the tenant, the issue, a category, a priority, the vendor, the status, the scheduled date, the date it closed, and the cost. Keep those eleven and the log answers the three month-end questions on its own: what's open, how long things take, and what each unit and category cost. The template below has the columns, a filled sample across three buildings, and the formulas.
What the log is for
A maintenance log does three jobs, and every column serves one of them. The first is the record. When a tenant says the AC has been out for two weeks, the log says it was reported on the 5th, scheduled on the 6th, and closed on the 7th. That record settles habitability complaints and deposit disputes, and it's what an owner asks for at year end.
The second job is the cost. The IRS tells rental owners to separate the costs of repairs from improvements and keep accurate records (Publication 527, the 2025 edition), because a repair is generally deducted in the year it's paid while an improvement is capitalized and depreciated. A log with a cost column and a note that says "replaced the faucet cartridge" on one row and "replaced the roof" on another is that record.
The third job is the pattern. One clogged disposal is a Tuesday. Three in the same unit in a quarter is a tenant who needs a conversation, and three across a building in a year is a plumbing stack that needs a look. You only see that when every request lands in one place with the same categories, which is the case against running maintenance out of texts.
The columns, and why each earns its place
Every column mirrors a field in the free maintenance app, so a spreadsheet log and an app log read the same way. Two computed columns do the arithmetic.
| Column | What goes in it | Why it's there |
|---|---|---|
| Date reported | The day the tenant told you, not the day you got to it | Every duration starts here. It's the date that matters in a dispute. |
| Unit | Building first, then unit: Coachlight 102 | Cost per unit and per building key off this, and Coachlight* only matches rows written that way. |
| Tenant | Who reported it | Blank for a vacant unit. |
| Issue | One line in plain words: No hot water | The row's title. |
| Category | One of seven: Plumbing, Electrical, HVAC, Appliance, Structural, Pest, Other | Cost by category only works if the list stays short. |
| Priority | Low, normal, high, or urgent | Sets the clock. Urgent means a vendor today. |
| Vendor | The company, or In-house | Who's costing what. |
| Status | Open, scheduled, or done | Three states are enough. More and people stop updating it. |
| Scheduled for | The date the vendor is booked | The gap between reported and scheduled is your response time. |
| Date closed | The day the work was confirmed done | Ends the clock. Fill it in that day, not at month end. |
| Cost | From the invoice, not memory | Every month-end question needs it. |
| Notes | Access, what the vendor found, repair or improvement | The context you'll want next year. |
| Days to close (computed) | Date closed minus date reported | Your speed, by vendor. |
| Age (computed) | Today minus date reported, for anything not done | What's been sitting. Sort by it on Monday. |
A filled sample: three weeks, three buildings
This is the sample the maintenance app loads: ten units across three small buildings, Coachlight, Captain's Cove, and Gateway Flats, with seven requests over the three weeks ending September 5, 2026. Every name, unit, vendor, and dollar figure is a stand-in for yours.
| Reported | Unit | Issue | Category | Priority | Status | Cost |
|---|---|---|---|---|---|---|
| Aug 15 | Coachlight 101 | Bedroom window won't latch | Structural | Normal | Done Aug 18, In-house | $60 |
| Aug 22 | Captain's Cove C | Garbage disposal jammed | Plumbing | Low | Done Aug 25, Reliable Plumbing | $95 |
| Aug 27 | Coachlight 202 | Outlet sparked in kitchen | Electrical | Urgent | Done Aug 30, Bright Electric | $240 |
| Sep 2 | Gateway Flats 3C | Ants in pantry | Pest | Normal | Scheduled Sep 6, Metro Pest | |
| Sep 3 | Gateway Flats 3B | Dishwasher leaking | Appliance | Normal | Open, no vendor yet | |
| Sep 4 | Coachlight 102 | No hot water | Plumbing | Urgent | Scheduled Sep 5, Reliable Plumbing | |
| Sep 5 | Captain's Cove B | AC not cooling | HVAC | High | Open, no vendor yet |
Calendar days, counted from the tenant's report, not from when you called the vendor. In the sample, the sparked outlet was reported August 27 and closed August 30: 3 days.
What the log answers at month end
Three questions, in the order an owner asks them. Run them on the last day of the month over the whole log.
What's open, and what's urgent
Count every row whose status isn't done, then the urgent ones among them. On the sample that's four open, two scheduled, one urgent: the no-hot-water call at Coachlight 102, with a plumber booked for today. The dishwasher and the AC have no vendor yet; the AC is high priority in September, so it gets the next call.
How long things take
Average the days-to-close column over the closed rows. All three closed requests in the sample took 3 days, so the average is 3, the number the app shows in its Avg days to close tile. On a real log, split it by category and vendor too; an average of 3 that's really 1 day for plumbing and 9 for appliances tells you which vendor to replace.
What each unit and category cost
- Closed requests
- 3
- Spent
- $240 + $95 + $60 = $395
- By category
- Electrical $240, Plumbing $95, Structural $60
- By unit
- Coachlight 202 $240, Captain's Cove C $95, Coachlight 101 $60
- By building
- Coachlight $300, Captain's Cove $95, Gateway Flats $0
- Per door
- $395 ÷ 10 units = $39.50
Three weeks is too short to budget from. The same sums over twelve months give cost per door per year, the number worth carrying into next year's reserve instead of a rule of thumb. Count vacant units; they're doors you maintain.
In a spreadsheet, each answer is one formula. With the template's columns (unit in B, category in E, priority in F, status in G, date closed in J, cost in K, days to close in M):
| Question | Formula | Answer on the sample |
|---|---|---|
| Open requests | =COUNTIF(G2:G500,"open")+COUNTIF(G2:G500,"scheduled") | 4 |
| Urgent and still open | =COUNTIFS(F2:F500,"urgent",G2:G500,"<>done") | 1 |
| Average days to close | =AVERAGE(M2:M500) | 3 |
| Spent in August | =SUMIFS(K2:K500,J2:J500,">="&DATE(2026,8,1),J2:J500,"<"&DATE(2026,9,1)) | $395 |
| Cost by category | =SUMIF(E2:E500,"Plumbing",K2:K500) | $95 |
| Cost by unit | =SUMIF(B2:B500,"Coachlight 202",K2:K500) | $240 |
| Cost by building | =SUMIF(B2:B500,"Coachlight*",K2:K500) | $300 |
Categories that stay useful
The category list is where a log dies from good intentions. Someone adds Leak, someone else adds Water, and by March nothing sums. Seven cover residential maintenance, and they're the seven the app uses:
- Plumbing: leaks, clogs, water heaters, disposals, toilets.
- Electrical: outlets, breakers, fixtures, smoke detectors when it's more than a battery.
- HVAC: furnaces, AC, thermostats, filters, ductwork.
- Appliance: anything with a model number that came with the unit: fridge, range, dishwasher, washer, dryer.
- Structural: windows, doors, locks, roof, gutters, drywall, flooring, railings.
- Pest: ants, roaches, rodents, wasps, and follow-up treatments.
- Other: turnovers, cleaning, landscaping, keys, the true one-offs. If Other grows past a fifth of your rows, give the biggest thing in it its own category and re-tag the old rows in one sitting.
Priority is simpler: low, normal, high, urgent. The only one with a hard rule is urgent, which means a vendor today. Water where it shouldn't be, no heat in winter, a sparking outlet, a lockout, and a gas smell are urgent. For a defensible way to set the other three, use the priority matrix guide in this section.
How to start yours
- Download the template below and open it in Excel, Google Sheets, or Numbers. Keep the sample rows until you've seen how the two computed columns behave, then delete them.
- Write your unit names once, building and unit together, the way you'll write them every time: Coachlight 102, not 102 or Apt 102.
- Go through your texts and email for the last thirty days and log every request that's open or closed this month, with the date the tenant first reached out as the date reported and the cost from the invoice.
- Tag each row with one of the seven categories and one of the four priorities, and don't add to either list. In the notes, mark each cost as a repair or an improvement; your accountant needs the split and the IRS asks for it.
- From today, log each request the moment it comes in, set the scheduled date when the vendor confirms, and close the row with the invoice amount the day the work is confirmed done. At month end, run the formulas above and put the three answers on the owner statement.
The template is the CSV linked below: fourteen columns, five of the seven sample rows, and the two computed columns written as formulas. The two open, uncosted rows are yours to log as practice; the cost and speed answers match the tables above. Or start in the maintenance app: log each request with the same fields and it computes open, urgent, average days to close, and this month's spend.
Questions people ask
What should a rental property maintenance log include?
One row per request with the date reported, unit, tenant, issue, category, priority, vendor, status, scheduled date, date closed, cost, and notes. Add two computed columns, days to close and age, and you've got everything the month-end questions need.
How long should a landlord keep maintenance records?
The IRS general rule for business records is three years, and records that feed a property's basis, which is where improvements land, are kept until the period of limitations expires for the year you dispose of the property. For repairs, keep the log at least through the tenancy and any deposit dispute after it. A spreadsheet costs nothing to keep, so in practice you keep all of it.
Should repairs and improvements go in the same maintenance log?
Yes, one log, tagged. IRS Publication 527 tells rental owners to separate the costs of repairs from improvements and keep accurate records, because a repair is generally deductible in the year it's paid and an improvement is capitalized and depreciated. A note on the row saying which it was is enough for your accountant to split them at year end.