Oil Heating Usage Analysis

Having oil heat is nice in that you do not pay a monthly utility bill for heat, can be cheaper, and is generally a nice and safe way to heat a house, but you do need to monitor the tank usage over time so that it does not reach empty or else sludge and debris will be funneled into your furnace and cause problems. We purchased a Nest thermostat to help monitor and control the heat usage and also try to gauge the oil tank depletion rate so that we can predict when to refill.


The Nest thermostat is nice in that it provides historical information about usage, however, the insights are limited due to the fact that the Nest only provides the past 7 days of usage in hours per day and monthly summaries of entire usage per month. This prevents further customized analysis and trending.

Oil tanks are typically buried underground (ours is) and do not have a meter for how full or empty. A measuring stick is used determine how current capacity. Every couple of weeks I measure the tank to make sure we're not below the ideal low  threshold.


I decided to maintain a daily log of both hours per day that heat was on and snapshots of tank capacity in a spreadsheet for analysis. Using the average daily heat consumption and difference between oil tank levels measurements, I was able to accurately predict the rate of depletion and trend future levels to the point where we would need to refill our tank.

Trending winter usage - a conservative fixed daily rate vs adjusted daily rate vs actual reads.

Because of the varying usage per day, the adjusted daily rate is the most accurate estimate of usage. Coupled with the recalibration at each tank measurement, it has become a reliable way to monitor the tank depletion. The fixed daily estimate is based an average of hours heating per day in the winter and is still useful in that it can be used to visualize further into the future at a conservative pace for when refilling the oil tank will need to occur.


After many months of daily logs, I decided to compare daily usage against the recorded weather for the day. To access historical weather per day, I looked at Weather Underground's website and wrote a small HTML scraper in BASH to collect the past 100 days of highs, lows, and means recorded.

# Weather! Scraper! Weather Scraper!
# 10/3/16 for NUM in `seq 99 0`; 
 vdate=$(date -v -${NUM}d '+%Y/%m/%d')
 request=$(curl -s "https://www.wunderground.com/history/airport/KBFI/${vdate}/DailyHistory.html?req_city=Seattle&req_state=WA&req_statename=Washington&reqdb.zip=98122&reqdb.magic=1&reqdb.wmo=99999") mean=$(echo "$request" | grep "Mean Temperature" -A3 | grep wx-value | cut -d > -f 3 | cut -d < -f 1)
 max=$(echo "$request" | grep 'Max Temperature' -A3 | grep wx-value | cut -d > -f 3 | cut -d < -f 1)
 min=$(echo "$request" | grep 'Min Temperature' -A3 | grep wx-value | cut -d > -f 3 | cut -d < -f 1) echo "$vdate $mean $max $min"
 sleep 1

Pasting in the return values of this script alongside the daily records of heat usage, I was able to deduce that typically we only used heat when the lowest temperature dips below 52°.

Get in touch: