UPFORGE APPS
Upforge Apps
(513) 951-1110Book a call

Rental Property Maintenance Log Template (CSV)

Free CSV maintenance log template for landlords: the columns to keep, a filled sample across three buildings, and month-end formulas. Or start in the free app.

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.

ColumnWhat goes in itWhy it's there
Date reportedThe day the tenant told you, not the day you got to itEvery duration starts here. It's the date that matters in a dispute.
UnitBuilding first, then unit: Coachlight 102Cost per unit and per building key off this, and Coachlight* only matches rows written that way.
TenantWho reported itBlank for a vacant unit.
IssueOne line in plain words: No hot waterThe row's title.
CategoryOne of seven: Plumbing, Electrical, HVAC, Appliance, Structural, Pest, OtherCost by category only works if the list stays short.
PriorityLow, normal, high, or urgentSets the clock. Urgent means a vendor today.
VendorThe company, or In-houseWho's costing what.
StatusOpen, scheduled, or doneThree states are enough. More and people stop updating it.
Scheduled forThe date the vendor is bookedThe gap between reported and scheduled is your response time.
Date closedThe day the work was confirmed doneEnds the clock. Fill it in that day, not at month end.
CostFrom the invoice, not memoryEvery month-end question needs it.
NotesAccess, what the vendor found, repair or improvementThe context you'll want next year.
Days to close (computed)Date closed minus date reportedYour speed, by vendor.
Age (computed)Today minus date reported, for anything not doneWhat'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.

ReportedUnitIssueCategoryPriorityStatusCost
Aug 15Coachlight 101Bedroom window won't latchStructuralNormalDone Aug 18, In-house$60
Aug 22Captain's Cove CGarbage disposal jammedPlumbingLowDone Aug 25, Reliable Plumbing$95
Aug 27Coachlight 202Outlet sparked in kitchenElectricalUrgentDone Aug 30, Bright Electric$240
Sep 2Gateway Flats 3CAnts in pantryPestNormalScheduled Sep 6, Metro Pest
Sep 3Gateway Flats 3BDishwasher leakingApplianceNormalOpen, no vendor yet
Sep 4Coachlight 102No hot waterPlumbingUrgentScheduled Sep 5, Reliable Plumbing
Sep 5Captain's Cove BAC not coolingHVACHighOpen, no vendor yet
Days to close
date closed − date reported

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

Month end on the sample
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):

QuestionFormulaAnswer 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

  1. 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.
  2. Write your unit names once, building and unit together, the way you'll write them every time: Coachlight 102, not 102 or Apt 102.
  3. 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.
  4. 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.
  5. 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.

Skip the spreadsheet

The free maintenance requests does this math for every product you enter, in your browser, with no account. Log requests, set priority, assign a vendor, close them out. Know what's open and what it cost.

Open the maintenance requests

Updated September 5, 2026 · Written by Upforge, Cincinnati

esc
Build
OverviewBuild
What we buildBuild
How we build itBuild
InvestmentBuild
Try
Home servicesTry
Property managementTry
Architecture & engineeringTry
Events & tourismTry
Ecommerce & retailTry
Proof
Our app workProof
Home services
Dispatch boardHome services
Quote builderHome services
Property management
Rent rollProperty management
Maintenance requestsProperty management
Architecture & engineering
Bid pipelineArchitecture & engineering
Go/No-Go scorecardArchitecture & engineering
Events & tourism
Capacity trackerEvents & tourism
Registration listEvents & tourism
Ecommerce & retail
Margin calculatorEcommerce & retail
Reorder plannerEcommerce & retail
Ecommerce & retail docs
Reorder Point Formula, With a Worked ExampleEcommerce & retail docs
Property management docs
Rental Property Maintenance Log Template (CSV)Property management docs
Home services docs
Jobs Per Tech Per Day: The Service Tech Capacity FormulaHome services docs
Ecommerce & retail docs
How to Price a Product for a Target Margin in EcommerceEcommerce & retail docs
Home services docs
Flat Rate vs Time and Materials for HVAC and PlumbingHome services docs
Ecommerce & retail docs
How to Calculate Landed Cost for Multiple Items (Template)Ecommerce & retail docs
Events & tourism docs
Event No-Show Rate: Formula, Benchmarks, and ForecastEvents & tourism docs
Ecommerce & retail docs
Amazon FBA Profit Margin Formula, Fee by FeeEcommerce & retail docs
Events & tourism docs
Event Break-Even: How Many Tickets You Need to SellEvents & tourism docs
Architecture & engineering docs
Go/No-Go Decision Matrix Template for AEC FirmsArchitecture & engineering docs
Property management docs
How to Prioritize Maintenance Requests: A Rental MatrixProperty management docs
Proof
Start a projectProof
Talk to us
Book a callTalk to us
Call (513) 951-1110Talk to us
↑↓ to move↵ to openesc to close