I've been thinking about this a lot lately. Most advice I see is generic ("save 1-2% of property value per year") but that never accounted for the actual age of my systems.
A roof that's 3 years old and a roof that's 22 years old shouldn't have the same reserve treatment, but most of the rules of thumb I've found treat them the same.
Curious how others here actually calculate this. Do you use a flat percentage? Track individual system age? Just wing it and hope for the best?
You are correct, but there are several challenges:
1) How to know the age of everything when you buy an older property?
2) The costs of items really have nothing to do with the value of the property or the amount of rent collected.
3) Costs don't necessarily increase at a set annual rate. Post COVID, labor costs for contractors dramatically increased! How do you accurately plan for costs 5+ years in the future?
4) The local environment and preventive maintenance also affect the lifetime of many things.
5) Even tree coverage can affect the life of a roof, ac unit, etc.!
Maybe AI will eventually be used to create an all-encompassing solution.
At the moment though, all we can do is "guesstimate".
The percentage rules (1% of value, 50% rule, $X per door) are fine as a sanity
check, but they all fail the same way: they scale with the wrong variable. A
$400K house and a $200K house need the same $9K roof. Property value does not
drive your costs. Components do.
It works better to split the reserve in two, because the two halves behave
completely differently.
Maintenance is small, frequent, and roughly random. Leaky faucets, a failed
disposal, service calls, the small stuff between tenants. This genuinely does
average out to a percentage of rent, so a percentage rule is fine here.
CapEx is large, rare, and not random at all. Roof, HVAC, water heater, flooring,
exteriors. You are not guessing at these. You know roughly what each costs in
your market and roughly how much life each has left. Using a percentage rule for
something this predictable throws away information you already have.
So build the CapEx number bottom-up:
Replacement cost divided by remaining useful life, per component, per month.
A water heater at $1,400 installed, 10 year life, 4 years in, leaves 72 months.
That is about $19/month. Do that for the five or six components that actually
matter and add them up. The result is specific to that property rather than an
industry average, and it tells you something no percentage rule can: which
property is about to get expensive.
The uncomfortable part is that a house with a 22-year-old roof and an original
furnace produces an ugly monthly number. That is not the math being wrong. That
is the property telling you something you would otherwise discover all at once.
Two things that matter more than the exact figure:
Actually move the money. A reserve sitting in the same account as everything
else is not a reserve, it is a number you tell yourself. Separate account,
automatic transfer, same day rent lands.
Re-run it annually. Components age and replacement prices have moved a lot in a
few years. A number set in 2021 is not the number today.
What does the age spread on your roofs and HVAC look like? That usually drives
more of the answer than which percentage you land on.
Agreed that property value is the wrong variable, so I will add the operator's version of this rather than repeat the component math above.
The way I run it across a portfolio is two separate reserves, and I fund the CapEx one at acquisition, not just monthly. When I buy, the inspection gives me the age of the roof, furnace, water heater, and service panel. Anything already past two-thirds of its life gets pre-funded on day one, because on an older system the "remaining useful life" math is optimistic. A 22-year-old roof does not politely wait three more years to hit its number.
For the monthly maintenance side (the small, random stuff), I use rent, not value. Roughly 8 to 10 percent of collected rent on an older building, less on a newer one. That covers the faucets, disposals, and turn punch lists that actually do average out.
Two things specific to this climate skew the numbers, since I have invested and managed in the Chicago south and southwest suburbs since 1991:
1. Freeze-thaw punishes roofs, flashing, and concrete faster than the national tables assume, so I shorten roof and exterior life estimates by a few years versus a Sunbelt rule of thumb.
2. Furnaces get run hard from October to April. I reserve for heat as a when-not-if item on anything over about 15 years, because a January no-heat call is an emergency-rate repair plus a tenant-relations problem, not a scheduled replacement.
The part most owners skip: move the money to a separate account the day rent lands, and re-price the reserve every year. A reserve you can see in your operating balance gets spent. One you have to transfer out of savings stays a reserve.
What is the age spread on the heat across your units? In this climate that is usually the line item that decides the whole number.
Agreed that property value is the wrong variable, so I will add the operator's version of this rather than repeat the component math above.
The way I run it across a portfolio is two separate reserves, and I fund the CapEx one at acquisition, not just monthly. When I buy, the inspection gives me the age of the roof, furnace, water heater, and service panel. Anything already past two-thirds of its life gets pre-funded on day one, because on an older system the "remaining useful life" math is optimistic. A 22-year-old roof does not politely wait three more years to hit its number.
For the monthly maintenance side (the small, random stuff), I use rent, not value. Roughly 8 to 10 percent of collected rent on an older building, less on a newer one. That covers the faucets, disposals, and turn punch lists that actually do average out.
Two things specific to this climate skew the numbers, since I have invested and managed in the Chicago south and southwest suburbs since 1991:
1. Freeze-thaw punishes roofs, flashing, and concrete faster than the national tables assume, so I shorten roof and exterior life estimates by a few years versus a Sunbelt rule of thumb.
2. Furnaces get run hard from October to April. I reserve for heat as a when-not-if item on anything over about 15 years, because a January no-heat call is an emergency-rate repair plus a tenant-relations problem, not a scheduled replacement.
The part most owners skip: move the money to a separate account the day rent lands, and re-price the reserve every year. A reserve you can see in your operating balance gets spent. One you have to transfer out of savings stays a reserve.
What is the age spread on the heat across your units? In this climate that is usually the line item that decides the whole number.
The acquisition pre-funding point is something I hadn't fully separated out, that's a sharp distinction. Makes sense, a system already past two-thirds of its life shouldn't be treated the same as one that's brand new just because the monthly math says there's technically time left.To answer your question: furnace is about 9 years in, which by your logic still has some runway before it becomes a when-not-if item. Roof is the one closer to that line for me though, around 14 years into a 20-25 year expected life.The separate account point is one I've seen bite people specifically, myself included early on. A number on a spreadsheet is very easy to spend when it's sitting in the same balance as everything else. Moving it out the day rent lands is such a simple fix for something that causes a lot of damage when skipped.
@Giuseppe Cavucci I don't use a flat percentage. I look at the age and condition of the major systems and adjust my reserves accordingly. I also factor in the property's age and maintenance history. Newer homes typically require less while older properties usually need a larger reserve for unexpected repairs.
@Giuseppe Cavucci I don't use a flat percentage. I look at the age and condition of the major systems and adjust my reserves accordingly. I also factor in the property's age and maintenance history. Newer homes typically require less while older properties usually need a larger reserve for unexpected repairs.
That lines up with what I'm seeing in this thread too, age and condition of the systems seems to matter a lot more than a flat percentage ever could. Curious if you track maintenance history formally somewhere, or if it's more of a general sense you build up over time owning the property.
@Giuseppe Cavucci — @Rami David and @Mike Fisher nailed the component-level approach. The "1–2% of property value" rule is basically useless because property values have nothing to do with what a water heater costs to replace.
What I do for my Sacramento units: I built a simple replacement schedule for every major system — roof, HVAC, water heater, appliances, flooring, exterior paint. Each one gets a replacement cost, estimated remaining life, and a monthly set-aside. For your situation — furnace at 9 years (roughly halfway through its life) and roof at 14 years into a 20–25 year span — you'd want heavier monthly reserves on the roof than the furnace.
The number I've landed on across my portfolio is closer to 8–9% of collected rent for maintenance + CapEx combined, not property value. That's on a mix of properties from the 1950s to 2000s builds. Newer construction is obviously lower.
One thing nobody mentioned yet: your maintenance history should adjust your reserves, not just system age. If a unit has had three plumbing calls in 18 months, that plumbing line item needs to go up regardless of what the "expected life" spreadsheet says. I track every maintenance request by unit and system — when the same system shows up twice in six months, I bump the reserve for that component. The data from your own properties is more accurate than any rule of thumb.
Mike's point about climate is huge too. Sacramento summers destroy HVAC systems faster than the "15–20 year" estimates assume. I budget 12–15 years on AC compressors here, not 20.
@Giuseppe Cavucci — @Rami David and @Mike Fisher nailed the component-level approach. The "1–2% of property value" rule is basically useless because property values have nothing to do with what a water heater costs to replace.
What I do for my Sacramento units: I built a simple replacement schedule for every major system — roof, HVAC, water heater, appliances, flooring, exterior paint. Each one gets a replacement cost, estimated remaining life, and a monthly set-aside. For your situation — furnace at 9 years (roughly halfway through its life) and roof at 14 years into a 20–25 year span — you'd want heavier monthly reserves on the roof than the furnace.
The number I've landed on across my portfolio is closer to 8–9% of collected rent for maintenance + CapEx combined, not property value. That's on a mix of properties from the 1950s to 2000s builds. Newer construction is obviously lower.
One thing nobody mentioned yet: your maintenance history should adjust your reserves, not just system age. If a unit has had three plumbing calls in 18 months, that plumbing line item needs to go up regardless of what the "expected life" spreadsheet says. I track every maintenance request by unit and system — when the same system shows up twice in six months, I bump the reserve for that component. The data from your own properties is more accurate than any rule of thumb.
Mike's point about climate is huge too. Sacramento summers destroy HVAC systems faster than the "15–20 year" estimates assume. I budget 12–15 years on AC compressors here, not 20.
The maintenance history point is the piece I was missing. I've been thinking about this purely as an age and lifespan problem, roof at X years, furnace at Y years, done. But you're right that a system throwing repeat calls is telling you something the age alone can't, it's basically real-time data overriding the theoretical estimate.That actually changes how I'd want to track this going forward: not just install date and expected life per system, but a running count of maintenance requests tied to each one, so if something spikes I bump its reserve manually instead of waiting for the age-based number to catch up.Combined with what Mike said about climate skewing the estimates too, it's starting to feel like the real formula is: base lifespan from standard tables, then adjust down for both climate and actual repair frequency. Appreciate you laying out the Sacramento numbers specifically, useful to see how much the AC compressor estimate shifts from the textbook 15-20 down to 12-15 in practice.
Giuseppe, I would separate the reserve formula from the evidence behind it.
The roof and furnace each need a replacement target, but the thing that changes the target is the paper trail: inspection note, last invoice, vendor bid, photos, and every work order tied to that system.
I'm the founder of DoorVault, so this system age evidence file is something I work on every day, and the pattern that matters is when the same component keeps showing up before its expected replacement year.
For your 14 year roof, I would keep the monthly reserve heavy until a current bid or inspection note proves the remaining life.
Giuseppe, I would separate the reserve formula from the evidence behind it.
The roof and furnace each need a replacement target, but the thing that changes the target is the paper trail: inspection note, last invoice, vendor bid, photos, and every work order tied to that system.
I'm the founder of DoorVault, so this system age evidence file is something I work on every day, and the pattern that matters is when the same component keeps showing up before its expected replacement year.
For your 14 year roof, I would keep the monthly reserve heavy until a current bid or inspection note proves the remaining life.
That's a useful distinction I hadn't made explicitly, the formula tells you what to expect, the paper trail tells you how much to trust that expectation. A 14 year old roof with a recent inspection saying "5 more years, no issues" is a very different situation than the same age with no documentation at all, even though the formula spits out the same number for both.
Makes me think the reserve shouldn't just be age-based or even repair-frequency-based like Rachid mentioned, it should also widen or narrow based on how recently and how thoroughly something's actually been checked. No recent evidence probably means treat the estimate conservatively, like you said, keep it heavy until proven otherwise.Appreciate everyone stacking different angles on this thread, feels like between age, climate, repair history, and now documentation, there's a much fuller picture forming than any single method would give on its own.
I lean more toward the condition of the property than a fixed percentage. A newer property with updated systems has very different reserve needs than one with an aging roof, HVAC, plumbing, or exterior components.
We like to keep track of the expected lifespan of the major systems and adjust reserves as those replacement windows get closer. It's not an exact science, but it's a much more practical approach than treating every property the same.
I'd rather be a little overprepared than have a major repair become an unexpected financial strain.
I lean more toward the condition of the property than a fixed percentage. A newer property with updated systems has very different reserve needs than one with an aging roof, HVAC, plumbing, or exterior components.
We like to keep track of the expected lifespan of the major systems and adjust reserves as those replacement windows get closer. It's not an exact science, but it's a much more practical approach than treating every property the same.
I'd rather be a little overprepared than have a major repair become an unexpected financial strain.
"A little overprepared" seems like the right default when the alternative is a surprise repair eating into cash flow you were counting on elsewhere. Tracking the lifespan and adjusting as the replacement window gets closer, rather than a static number, seems to be the common thread across everyone who's replied here so far.
That is exactly the right way to tighten it. I would treat missing evidence as its own risk factor, so an old system with a clean inspection gets one reserve number and the same old system with no paperwork gets a heavier one until the next inspection proves otherwise. The reserve is not just age math, it is confidence math.
I'm not seasoned but just replaced an hvac system. 8-10% a year did not cut it. Half my savings just got wiped. So now I'm taking advice of other investors and going by remaining useful life. My ac was 9 years old and literally died at 10 years old, which is exactly average for modern day hvac systems. The roof is next. It's 10 years old but crappy construction material means it needs replacement already. Hoping to actually make money one day
I use two related methods to plan for maintenance and capital repairs.
First, I establish an annual maintenance budget for routine and unexpected costs. Historically, I used $1,000 per door, plus known property-specific expenses. For example, our duplex requires owner-paid lawn service, so I add that cost to its maintenance budget.
I recently increased the baseline to $1,500 per door because contractor and repair costs in our area have risen significantly over the past two years.
I do not move that amount into a separate account each month. With 10 properties, most routine maintenance is covered by the portfolio’s combined monthly cash flow. Pooling the risk across multiple properties makes expenses more predictable than they would be for a single property.
I supplement that budget with a major system condition matrix. It is a simple spreadsheet with each property as a row and major systems across the columns: roof, furnace, AC, water heater, electrical, plumbing, stove, refrigerator, and similar items.
Each system is rated green, yellow, or red, with replacement dates and known condition noted. I estimate the replacement cost of the red items and try to maintain enough reserves to cover that near-term exposure.
The annual budget addresses normal repair activity, while the condition matrix helps determine whether the reserve is adequate for larger upcoming costs. They overlap, but together they provide a more realistic funding plan than applying the same percentage to every property regardless of condition. This approach has worked well for us over 14 years.
For the major systems (roof, HVAC, water heater, appliances): I keep a simple list per property with each component’s age, rough remaining lifespan, and estimated replacement cost in my market.
For everything unpredictable (leaks, clogged drains, tenant-caused wear): a flat percentage of rent as a general buffer. This stuff doesn’t follow a lifespan schedule, so a percentage is honestly fine here.
Some things I learned: The component list only works if you update it- I review it once a year and after any major repair. Track actual maintenance spend against each property. After a year of real data, I found one property running at about half my estimate and another eating double. The actuals corrected my assumptions better than any formula since expenses were logged to the specific property when they happened. The “wing it” option you mentioned works right up until the month the roof and the HVAC go at the same time.
Curious for those doing component-level tracking how do you estimate remaining life on systems you inherited with no service records?
For the major systems (roof, HVAC, water heater, appliances): I keep a simple list per property with each component’s age, rough remaining lifespan, and estimated replacement cost in my market.
For everything unpredictable (leaks, clogged drains, tenant-caused wear): a flat percentage of rent as a general buffer. This stuff doesn’t follow a lifespan schedule, so a percentage is honestly fine here.
Some things I learned: The component list only works if you update it- I review it once a year and after any major repair. Track actual maintenance spend against each property. After a year of real data, I found one property running at about half my estimate and another eating double. The actuals corrected my assumptions better than any formula since expenses were logged to the specific property when they happened. The “wing it” option you mentioned works right up until the month the roof and the HVAC go at the same time.
Curious for those doing component-level tracking how do you estimate remaining life on systems you inherited with no service records?
The "actuals correct the assumptions better than any formula" point is the one that sticks with me, that's real feedback loop, not just a static estimate sitting untouched for years.Funny timing on your question, that's actually the exact problem I've been chewing on for a follow up post, systems with no service records at all. My rough approach so far: treat undocumented systems as being further along their lifespan than the average, not the midpoint, since a seller with a well maintained system usually has no reason to hide the records, so silence itself is a weak signal something's off. Then I lean on visible condition (rust, wear, efficiency) to adjust from there until enough real data comes in to correct it, same as you're describing with actuals.Curious if that matches how you handle it, or if you've found a better way to turn "no records" into an actual number instead of just a guess.
For the major systems (roof, HVAC, water heater, appliances): I keep a simple list per property with each component’s age, rough remaining lifespan, and estimated replacement cost in my market.
For everything unpredictable (leaks, clogged drains, tenant-caused wear): a flat percentage of rent as a general buffer. This stuff doesn’t follow a lifespan schedule, so a percentage is honestly fine here.
Some things I learned: The component list only works if you update it- I review it once a year and after any major repair. Track actual maintenance spend against each property. After a year of real data, I found one property running at about half my estimate and another eating double. The actuals corrected my assumptions better than any formula since expenses were logged to the specific property when they happened. The “wing it” option you mentioned works right up until the month the roof and the HVAC go at the same time.
Curious for those doing component-level tracking how do you estimate remaining life on systems you inherited with no service records?
For example, an HVAC system cooling slowly or a garage door beginning to stick becomes part of the component record even if replacement is not yet required.
I combine those inputs into a simple condition ranking: new, good, fair, or poor. A poor rating does not necessarily mean immediate replacement, but it becomes the basis for the reserve-budget assumption and closer monitoring. The rating is updated as we receive better information.
It is less precise than a remaining-life calculation, but I think it is more honest when the service history is unknown.
Tracking by system age doesn't just help your reserves, it directly sets up two tax benefits most people leave on the table. That per-system data is exactly what a cost segregation study works from, and it matters again when a system actually gets replaced. If you know the age and original cost of that 22-year-old roof specifically, you can write off its remaining undepreciated basis through a partial disposition the year it's replaced, instead of continuing to depreciate a roof that no longer exists.
A flat percentage with no per-system breakdown makes that basis nearly impossible to reconstruct later, so tracking by system now is quietly setting you up for a real deduction whenever that replacement happens.
Happy to connect!
I would haircut remaining life when there are no records. Start with age, condition, and current replacement cost, then assume the system is closer to replacement until an inspection, invoice, or 6 months of repair history proves otherwise. Silence is not neutral evidence.
That roof is the one I would fund hardest right now. At 14 into a 20 to 25 year life you are inside the window where it stops being a someday item and becomes a budget line, so I would price a full replacement for your roof type and square footage, divide by the remaining years, and set that aside monthly starting this month.
The furnace at 9 I treat as a warning light, not an alarm. Keep the normal monthly set-aside but pull one real replacement quote from a local HVAC shop so the number sitting in your reserve is the actual cost in your market, not a rule of thumb.
The quiet killer is deferring the roof to protect this month's cash flow and then eating a full tear-off plus interior water damage all in one hit. Reserve for it on purpose and it is just a line item instead of an emergency.
When estimating maintenance—plumbing, electrical, roofing, standard wear and tear—it really comes down to your local market dynamics. Operating down here in the Bay Area, local labor and trade costs are completely supercharged.
Because of that, I keep a rolling 2-month rent reserve per unit at all times. That covers the routine headaches like monthly drain clearings, as well as sudden appliance failures like refrigerators or stoves. There’s no perfect one-size-fits-all formula for capital reserves—it’s really about tracking your property's actual run rate and knowing what local contractors charge in your area.
Consider how much your maintenance would cost like basic wear and tear, plumbing, electricals, roofing, etc... I rent my buildings down in bay area, where everything is supercharged in cost so i typically have 2 months worth of rent in reserve at all times in case something big happens like refrigerator breaking, stove not working, clogged drains (almost a monthly issue for me). Theres really no correct forumula to how much to put aside, just have to know how much these things run you typically.
You are correct, but there are several challenges:
1) How to know the age of everything when you buy an older property?
2) The costs of items really have nothing to do with the value of the property or the amount of rent collected.
3) Costs don't necessarily increase at a set annual rate. Post COVID, labor costs for contractors dramatically increased! How do you accurately plan for costs 5+ years in the future?
4) The local environment and preventive maintenance also affect the lifetime of many things.
5) Even tree coverage can affect the life of a roof, ac unit, etc.!
Maybe AI will eventually be used to create an all-encompassing solution.
At the moment though, all we can do is "guesstimate".
I've been thinking about this a lot lately. Most advice I see is generic ("save 1-2% of property value per year") but that never accounted for the actual age of my systems.
A roof that's 3 years old and a roof that's 22 years old shouldn't have the same reserve treatment, but most of the rules of thumb I've found treat them the same.
Curious how others here actually calculate this. Do you use a flat percentage? Track individual system age? Just wing it and hope for the best?
It really depends on the age of the home, level of rehab, etc. My word of advise is make all of your improvements as soon as possible after acquisition (fund own rehab or get a construction loan), and then set it and forget it. You'll have minimal maintenance and cap x, and you can move on to the next acquisition. Don't put off repairs for later, as that will almost always come back and bite you in the end. I tackle any roof, sewer, pest, and updates before I place tenants. Then 1% or less for future repairs and turnover.
I've been thinking about this a lot lately. Most advice I see is generic ("save 1-2% of property value per year") but that never accounted for the actual age of my systems.
A roof that's 3 years old and a roof that's 22 years old shouldn't have the same reserve treatment, but most of the rules of thumb I've found treat them the same.
Curious how others here actually calculate this. Do you use a flat percentage? Track individual system age? Just wing it and hope for the best?
I've been thinking about this a lot lately. Most advice I see is generic ("save 1-2% of property value per year") but that never accounted for the actual age of my systems.
A roof that's 3 years old and a roof that's 22 years old shouldn't have the same reserve treatment, but most of the rules of thumb I've found treat them the same.
Curious how others here actually calculate this. Do you use a flat percentage? Track individual system age? Just wing it and hope for the best?
Here's what we use: For Repairs and maintenance we set aside 5 to 8% of the gross rent- Much depends on the age of the units. If it's a brand new renovation we set aside 5%. As the unit ages we will slowly increase the percentage to 8%
We do the same thing for capital expenditures with one exception. For our small multifamilies we purchase them with home owners warranties to cover the big stuff.
When we are purchasing assets that may require fannie or freddie to back we'll use between $500 to $1000 per year per door for maintenance & for capex between $250 to $400 per unit per year. We can't get away with the homeowners warranty on the bigger assets.
We also try to get the age of all the large capex items when we purchase & we track it. When the big items get close to the end of useful life our goal is to replace before it fails. Back to your comment about winging it- The reason for the reserves and tracking is to not wing it. But with that said- stuff happens even when you have a plan.