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 |
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):