Hello and welcome to another data science themed blog post, this time with a focus on energy disaggregation (aka non intrusive load monitoring or NILM - I know this sounds a bit like a school-yard insult but unfortunately it is not). This is the first in a series on the topic so keep an eye out future posts.
What is energy disaggregation?
This is the process of breaking down an ‘aggregated’ energy signal into each device that is contributing to this total amount. So for example if you measure the power draw/energy consumption of a house, the goal is to identify how much of this should be apportioned to each appliance in the house (e.g how much is the refrigerator using, the TV, etc).
The example above is pretty much the exact situation OVO as an energy supplier is in. We measure total half hourly consumption data for customers who have a smart meter and are opted in, and some customers also have specialised devices that take measurements even more frequently than this (more frequent is better for disaggregation as we shall see later). OVO is interested in disaggregation for two main reasons, and in fact this is a service that we offer to consenting users who purchase the OVO Beyond product:
- To help customers understand their energy consumption.
- To tie in with OVO’s Plan Zero, we want to help customers lower their energy consumption and carbon footprint. Our hypothesis is that if customers know where their energy is being used, they will be able to better target any energy reduction efforts (along with tailored advice)
How does it work?
From the outset, this might sound like quite a difficult problem - if you look at the aggregate energy signal in a house (instantaneous power draw measured every 8 seconds in the case illustrated below) there is a lot going on - the line is spiky and varies massively moment to moment:

As a human looking at this, you may have already started to see some clues that indicate how we can go about breaking this down. Let’s zoom in on the blue & red highlighted sections for a closer look:


On the left blue highlighted section we can see a recurring pattern occurring roughly every hour and on the right highlighted in red we can see that there is a short burst of activity followed by a repeated rapid change in power draw. What we’re seeing here is that different devices actually consume energy in different ways, and this leaves clear signals in the aggregate data that we can use. In the examples given above, the pattern highlighted in blue is likely from a refrigerator, which periodically switches between a dormant state and an 'on' state where a compression cycle is run to cool down the fridge (the large spikes you see on some of them occur when a measurement is taken just as it's starting up). The pattern highlighted in red is likely from an oven, which consumes a large amount of energy initially to heat up, then turns on and off rapidly to maintain the target temperature.
As a general rule of thumb, if we can spot it as a human then we can probably train some sort of data science model or process to do this in an automated fashion - and indeed it is an area of active research to identify techniques and methodologies that can do this as accurately as possible. We won’t look at these techniques today but will explore them in a more technical blog post in future, so check back at a later date if you’re interested in learning a bit more about them.
Data limitations
The examples above are from a dataset of household measurements taken every 8 seconds, but what happens if you were to take a measurement more or less frequently? This is a particularly relevant question for OVO as the highest frequency of data that a smart meter produces (without an additional device/piece of hardware) is a consumption measurement every 30 minutes, 225 times less frequently than the 8 second examples seen above. Let’s see what our example looks like in this case, with our original signal on the left, and the average half hourly signal on the right:


As you can see, all of the detail has been thrown away - the oven still shows up as a bump in power draw, but it’s no longer distinctive as an oven and could be easily mistaken for a different appliance. You can still kind of see some small regular bumpiness from refrigeration, but again it’s not clear cut. However it’s not a lost cause as patterns may still be found when using other bits of information - for example heating is very dependent on the outside temperature, while oven usage is at least partly correlated with the time of day (e.g. dinner time).
Conclusion
I hope this blog post has given you a bit of an intuition into how energy disaggregation works - appliances have quite distinct energy signatures that allow them to be identified even from an aggregate signal. I hope you can also see why this is relevant for OVO and how it might help customers on their journey to zero carbon footprint.
We're planning on publishing more blog posts on energy disaggregation in future, including a deeper dive and demo of the techniques used to perform it, so keep an eye on the blog for future entries if this is of interest to you!