Skip to content
Back to blog

Rental Property Preventive Maintenance Schedule in Excel: Solve for the Break-Even, Not the Savings

13 min read·September 10, 2026
Brass model house, braided stainless supply hose, stacked pleated air filters, brass gate valve and keys on a concrete ledge

A rental property preventive maintenance schedule in Excel is usually sold with one sentence: a $180 HVAC service call is cheap next to a $6,400 compressor replacement in July. The sentence is persuasive, and the number in it is wrong. A compressor swap on a residential system, out of warranty, runs $1,500 to $3,500 installed. The $6,400 figure is what a full outdoor condenser replacement costs at the top of its range, which is a different job with a different part list. If you build a maintenance budget on a repair cost that is roughly double the real one, every line on your checklist clears the bar, and you fund all of them.

That is the actual failure mode for landlords. Not skipping maintenance. Over-funding the visible tasks with the scary story attached, and under-funding the $28 line that quietly carries most of your downside.

The repair you are budgeting against is not the repair you named

Before any schedule gets built, price the failures correctly. HVAC quotes are the ones landlords misremember most, because "the compressor went" is used to describe four different invoices.

Scope of work2026 price rangeWhat you are actually paying for
Compressor swap, warranty covered$600 to $1,200Labor and refrigerant only, part is free
Compressor swap, out of warranty, single-stage R-410A$1,500 to $3,500Part plus labor
Compressor swap, variable-speed$2,800 to $4,500Part plus labor
Full outdoor condenser replacement$3,200 to $6,500New outdoor unit, existing coil and air handler stay
Complete system replacement$6,000 to $12,000Condenser, evaporator coil, air handler

There is a second problem hiding in that table. Contractors use an age rule: multiply the system's age in years by the proposed repair cost, and if the result clears $5,000, replace the system instead. On a 14-year unit, a $2,400 compressor quote scores 33,600. The repair is never happening. Which means a preventive line item on that unit is not buying you a cheaper compressor. It is buying deferral of a replacement decision you have already made.

Invert the formula and solve for the probability

Every expected value maintenance model has the same defect. Expected value needs a probability, and you do not have one. Nobody has a defensible annual probability that a specific compressor on a specific roof in a specific climate fails this year. So the landlord makes one up, multiplies it by a real dollar figure, and the made-up number silently drives the whole model.

Invert it. Do not solve for savings. Solve for the probability at which the task exactly pays for itself, then answer a yes or no question you can actually answer.

Set up a Tasks sheet with the task library. One row per task, not per property.

ColumnFieldFormula or input
ATask IDInput, e.g. WH-FLUSH
DInterval, monthsInput
ECost per occurrenceInput
GDirect cost of the failureInput
HCollateral cost of the failureInput
KAnnualized task cost=E4*(12/D4)
LBreak-even annual probability=K4/(G4+H4)
MSame number as odds="1 in "&TEXT(1/L4,"#,##0")
NIs the real chance higher? Y or NYour judgment
OVerdict=IF(N4="Y","FUND","SKIP")

Column M is the one that changes behavior. "This task pays if the annual failure chance is above 1 in 1,064" is a question a landlord with six doors and eleven years of receipts can answer. "What is the annual probability of compressor failure" is not.

Build the cost of one water event before anything else

Column H, the collateral cost, is where most of the money lives, and most maintenance spreadsheets leave it blank. Water is the reason. Build it once, in its own block, and point every water-related task at the total.

LineFormulaAmount
Policy deductibleInput$2,500
Rent loss, 3 weeks at $1,850 per month=(B5/30)*B6$1,295
Premium repricing, 18 percent on $1,850 for 5 years=B8*B9*B10$1,665
Non-covered items, code upgrades, your own timeInput$500
Landlord cost of one water event=SUM(B4:B7)$5,960

The premium repricing line is the one nobody models. A claim sits on your CLUE report for seven years, and a single water damage claim commonly adds 10 to 25 percent to the rate. On a $1,850 policy that is $333 a year, and it bites hardest in the first five years before it decays. That $1,665 is larger than most of the maintenance tasks it is being used to justify, and it never appears on the repair invoice, so it never enters the landlord's mental math. If you are not already tracking what each renewal does to each property, the rental property insurance cost tracker is the input side of this same number.

What the break-even column does to the standard checklist

Run the eight tasks every landlord blog recommends through columns K, L and M. The results are not what the checklist implies.

TaskIntervalCost eachAnnualizedCost of the failureBreak-evenOddsVerdict
Braided stainless washer hoses60 mo$28$5.60$5,9600.09%1 in 1,064FUND
Water heater pan, drain, leak alarm120 mo$58$5.80$5,9600.10%1 in 1,028FUND
Water heater flush and anode check48 mo$250$62.50$6,4600.97%1 in 103FUND at 6+ years
Main drain cabling, root-prone lot30 mo$385$154$9,2001.67%1 in 60Per property
Gutter clean, downspout extensions12 mo$185$185$5,9603.10%1 in 32Per property
Dryer vent, priced against fire24 mo$140$70$18,0000.39%1 in 257FAILS
Dryer vent, priced against the element24 mo$140$70$52013.5%1 in 7FUND
HVAC service, priced against warranty denial12 mo$180$180$1,50012.0%1 in 8FAILS

Look at the dryer vent rows. The NFPA finding is real and frequently quoted: failure to clean is the leading contributing factor in home clothes dryer fires, about one third of them, and those fires are associated with half of the dryer fire deaths. But the base rate does not survive contact with the break-even column. Around 15,000 home dryer fires a year, one third from failure to clean, against the 102.3 million US households that the 2020 Residential Energy Consumption Survey says own a dryer, is roughly 1 in 20,000 per dryer per year. Break-even is 1 in 257. Even if you assume every single reported dryer fire is a lint fire, you get 1 in 6,800, still 26 times short.

Do not delete the row. Reprice it. A blocked vent overheats the thermal fuse and cooks the heating element, and on a landlord-owned dryer that is a $520 event that happens often enough to observe. At 1 in 7 the task clears easily, on a failure you have probably already paid for twice. This generalizes: most preventive maintenance is justified by a boring, frequent failure and marketed with a rare, terrifying one. When a row fails against the catastrophe, reprice it against the nuisance before you cut it.

The HVAC line deserves its own argument

"The $180 tune-up" bundles three unrelated purchases, and only one of them survives scrutiny.

Warranty admissibility. Every major manufacturer conditions its parts warranty on two things: registration within 30 to 90 days of installation, and documented annual professional maintenance. Claims get denied for a missing registration or missing service tickets even when the part itself is plainly covered. So the tune-up is not buying a lower failure probability. It is buying the difference between a $600 to $1,200 warranty labor bill and a $1,500 to $3,500 out-of-pocket one, call it $1,500. Break-even on a $180 annual spend is a 12 percent yearly chance of compressor failure. Real compressor failure rates inside the first ten years are nowhere near that.

The frozen coil. The HVAC failure that actually happens in a rental is a plugged filter, a frozen evaporator, and a no-cool call at four on a Saturday. After-hours dispatch runs $150 to $500 on top of $140 to $600 per hour labor, against $70 to $150 in business hours. Call the event $385. And here is the part the tune-up cannot fix: a service visit in March does nothing about a filter that clogs in August. The thing that moves that probability is a filter arriving at the tenant's door.

SpendAnnual costFailure mode it actually movesBreak-even
Two service visits per year$180Warranty claim denial ($1,500)1 in 8 compressor failures per year
Filters shipped to the tenant, 4 per year$36Frozen coil, after-hours call ($385)1 in 11 no-cool calls per year
Component reserve, 14-year condenser=7800/48 = $163/moThe replacement you already decided onNot a probability question

The filter subscription clears its bar without argument. The tune-up does not, and it should be funded only while the unit is inside its parts warranty window, where the documentation has independent value. On a unit past warranty and past twelve years, stop calling it maintenance. A $7,800 replacement inside four years is $163 a month, which belongs in a component reserve and in your underwriting, not in the operating budget. That is a different sheet with a different job, and the capital reserve calculator funds it by component rather than by a blended percentage.

On water, containment beats maintenance

The break-even column keeps selecting water tasks because water is the one common failure whose cost is mostly collateral. But the cheapest way to move that number is not a service interval. It is a device that converts a catastrophe into a nuisance.

DeviceOne-time costWhat it convertsNew cost of the event
Braided stainless hoses, pair$28A 650 gallon per hour burst into a hose you swap$28
Water heater pan with drain to daylight$38A tank rupture into a wet pan$0
Battery leak alarm at heater, washer, sink$20 eachAn undetected leak into a phone call$150
Frost-proof hose bib, per exterior spigot$95A freeze split inside the wall cavity$0
Automatic shutoff valve on the main$650Any supply-side failure into a text message$300

The washer hose row is the whole thesis in one line. The Institute for Business and Home Safety studied 525 washing machine claims and found that roughly 55 percent of washing-machine water damage came from supply hoses that leaked or burst, that failure rates rise sharply past five years, and that the average age of a failed hose was 8.7 years. A burst hose moves as much as 650 gallons an hour and it does not stop, because the supply line is always live. Your break-even is 1 in 1,064 per year on a $28 part. There is no version of that judgment call where you skip it.

The shutoff valve is the genuinely close one. Annualized over a 12-year life, =650*(12/144) is $54 a year, break-even 1 in 110 against a $5,960 event. The published all-cause base rate is 1 in 67 insured homes filing a water damage or freezing claim each year, at an average claim of $15,400 across 2019 to 2023 data. That clears, but only before you haircut it for the failures a main shutoff does not catch, such as a roof leak or a sewer backup. The tiebreaker is vacancy: a supply line that lets go in an occupied unit gets a phone call in ten minutes, and one that lets go in a unit between tenants runs until somebody drives by.

Turn the schedule into a monthly budget line

A second sheet, Schedule, holds one row per property and task, and this is where the property's history lives. Same task, different interval: the wooded lot with a walk-out basement gets gutters twice a year, the slab house with no tree within sixty feet gets zero.

Pull the interval from the library rather than retyping it, with =XLOOKUP($B4,Tasks!$A:$A,Tasks!$D:$D), then drive the dates off the last completion.

Next due date: =EDATE(C4,D4). Status flag: =IF(F4<TODAY(),"OVERDUE",IF(F4<=TODAY()+30,"DUE IN 30","SCHEDULED")).

Then roll it into cash by month, which is the entire point of scheduling instead of reacting: =SUMIFS(Schedule!$H:$H,Schedule!$A:$A,$A12,Schedule!$E:$E,">="&B$11,Schedule!$E:$E,"<"&EDATE(B$11,1)).

Here is a real six-door portfolio: three single-family houses from 1998, 2004 and 1972, one 1986 duplex, one 2015 condo, $9,990 a month in gross rent. After the break-even test kills the tune-ups on the four out-of-warranty units and the gutter line on the slab house, the funded year looks like this.

MonthScheduled workCash
JanuaryFilters, Q1, all 6 doors$54
FebruaryDryer vents, SFR-A and SFR-B$280
MarchHVAC service, 2 in-warranty units$360
AprilFilters Q2, spring gutters SFR-C$239
MayWater heater flush and anode, SFR-C$250
JuneMain drain cabling, SFR-C$385
JulyFilters Q3$54
AugustDetector audit 6 doors, washer hoses on 1 turnover$75
SeptemberDryer vent, Duplex unit 1$140
OctoberFilters Q4, fall gutters on 3 buildings$609
NovemberWater heater flush and anode SFR-A, washer hoses on 1 turnover$278
DecemberNothing scheduled$0
Year total6 doors, $454 per door$2,724

That is 2.3 percent of gross rent, and it is lumpy: $0 in December against $609 in October. So do not budget the month, budget the average and let the schedule draw against a balance. Contribution per month is =SUM($B$12:$M$12)/12, which is $227, and the running reserve balance is =E11+$B$3-D12.

Run that column before you trust it. Starting from a zero balance in January, this schedule goes negative in March and bottoms at minus $227 in November. The average is right and the seed is missing, which is the failure mode of every reserve funded from the first of the year. Put one month's contribution in before the first January and the balance never dips below $21, which happens in June after the drain cabling, and it returns to exactly $227 on December 31. A $227 seed is the difference between a schedule that finances itself and one that quietly borrows from operating cash twice a year.

Compare that to the unscheduled version of the same year. The work still happens, it just happens after the failure, at $150 to $500 for an after-hours dispatch instead of $70 to $150 for a booked visit, with whichever vendor answers the phone.

Build it this week, in this order

Start with the $5,960 water event block, because every downstream break-even divides by it and a wrong figure there mis-sorts your entire list. Then enter the containment devices before the service tasks. They are one-time, they cost under $100 each, and they beat their break-even by two orders of magnitude, which no recurring service task on the list manages.

Only then enter the recurring tasks, sort column L ascending, and fund from the top until the budget runs out. For every row that fails, reprice it against the boring failure before deleting it, the way the dryer vent went from FAILS at 1 in 257 to FUND at 1 in 7 without changing a single input except which failure you were pricing.

Two rules the model does not get to break. Detectors, carbon monoxide alarms, and anything your state habitability standard or your lease requires go on the schedule with the break-even column deliberately left blank. A model that prices a legal duty will eventually return SKIP, and it will be wrong in a way that ends in a deposition. And keep the schedule separate from the record: the schedule says what is next, while a property maintenance log proves what was done, and a warranty department will only accept the second one.

The last step is the one that makes any of this show up in your returns. A $454 per door preventive schedule is not an operating detail, it is 2.3 percent of gross rent that most rental models bury inside a flat 5 percent maintenance assumption along with reactive repairs, turnover paint, and capital replacements that belong nowhere near each other. SheetCraft's Rental Property Analyzer carries preventive maintenance, capital reserves, and insurance as separate per-property lines with their own intervals, so the schedule you build this week feeds the cash flow directly instead of being averaged into a percentage that nobody revisits at renewal. Build the schedule, then check whether the 5 percent you have been underwriting was ever funded.

Related template

Rental Property Analyzer

Analyze any rental deal in 15 minutes — not 3 hours in a messy spreadsheet. Cash flow, cap rate, cash-on-cash return, and 10-year projections. All automated.

Get the Template — $49