Algorithm to prioritize home improvement projects
Jul 2, 2020
Christopher Yee
3 minute read

I moved to Los Angeles with my wife in October 2019 where we had a list of home improvement projects we wanted to complete or things to purchase.

The problem we faced was disagreement on where to start since we had to juggle costs and compromise on what was most important at the time.

For example, if we focused too much on lower ticket purchases we would delay projects that had potential to improve our home value.

Project Price
New roof 10000
Landscape front yard 10000
Remove kitchen wall 10000
Renovate brick walls 5000
TV 3000

Conversely, if we emphasized projects which increased home value then we would miss out on buying basic quality of life improvements.

Project Price
Security stick for living room door 10
Flood lights around house 100
Restroom mirror 100
Fireplace cover 100
Physical security system (locks, gates, etc.) 200

Our goal was to get through all of these as fast as possible without sacrificing importance but also being mindful of the costs involved.

What came out of our discussions was a simple algorithm in an Excel spreadsheet which calculated priorities and incorporated both factors:

Priority = Importance^2 / log10(Price)

  • Importance: with 1 being the lowest, we place this variable on an exponential curve so each incremental level indicates greater prominence
  • Price: to make various price points easier to work with ($1 vs $1,000) we normalize them on a log10 scale

In my opinion, this is an elegant solution to our use case because 1) we keep the cost variable constant for each item and 2) it centers our debates around importance and how to rank (or re-rank) things in our list.

But, does it work?

Let’s look at a sample where we’ve filled out Price and Importance:
Project Price Importance
New roof 10000 9
Landscape front yard 10000 7
Remove kitchen wall 10000 6
Renovate brick walls 5000 1
TV 3000 8
Fridge 2898 8
Massage Chair 2000 3
Skylight in guest bathroom 1000 7
Fix AC system 1000 3
Couch 800 9
Now let’s compute the Priority score for each:
Project Price Importance Priority
Couch 800 9 27.90
New roof 10000 9 20.25
Fridge 2898 8 18.49
TV 3000 8 18.41
Skylight in guest bathroom 1000 7 16.33
Landscape front yard 10000 7 12.25
Remove kitchen wall 10000 6 9.00
Fix AC system 1000 3 3.00
Massage Chair 2000 3 2.73
Renovate brick walls 5000 1 0.27

Notable mentions…

  • High cost and low importance: our “renovate brick walls” with $5k in price was dropped to the bottom of our list with a Priority score of 0.27
  • Low cost and high importance: we really needed a couch when we moved in so it’s good to see that made it as our top priority
  • Tie breaker: the projects with the same $10k in price have been prioritized appropriately

If you found this remotely useful/interesting then please don’t hesitate to share with others!

Moment of zen

Contour plot to visualize the outcome of our function(price, importance):