Power price vs Carbon Intensity
As discussed in one of my previous posts, I am on a time-of-use tariff for my electricity, in which I am charged different prices for my use each half hour, depending on expected supply and demand. My primary motivations for moving to this were to save money and to help balance the grid (using electricity when there is excess supply).
An alternative signal that is sometimes used for scheduling electricity usage is carbon intensity. The basis of this idea is that if we use electricity when the grid is less reliant on carbon-emitting fossil-fuel, we can reduce our the environmental impact of our consumption. There are a number of websites that display carbon intensity (eg http://electricityinfo.org/real-time-british-electricity-supply/), encourage you to unplug when carbon intensity is high, or help you schedule your consumption based on carbon intensity (eg https://www.shouldibake.com/).
I like the idea of reducing my carbon footprint, and I like the idea of saving money. This got me curious about how consistent the two signals are. In theory, when there is ample wind and solar generation, electricity prices tend to be lower. Similarly, when demand is low, less fossil fuel will be needed. However, price is also affected by other factors, such as gas and coal prices, so not all price falls or rises will mirror falls or rises in carbon intensity.
I have therefore written this note to explore the variation in electricity price and carbon intensity. There are different ways of looking at this and different data sources, and the relationship between prices and carbon intensity is itself evolving. As a result, I don’t expect this analysis to be the last word. Hopefully, it will at least give a bit of the picture, and a starting point to others that may want to do similar exploration.
Data Sources
As discussed in another of my posts, there are different types of UK power prices: day ahead hourly prices from N2EX/EPEXSPOT, day ahead half-hourly prices from EPEXSPOT, and imbalance prices from Elexon. I could also do this analysis on half-hourly prices that I am charged by Octopus, which are based on the day ahead half-hourly prices from EPEXSPOT. I pretty quickly ruled out using the imbalance prices, as these are only available after the time in question, so can’t be used as a guide to behaviour. Day ahead hourly prices have the advantage of being publicly available and are based on auctions with significant supply and demand. I therefore decided to use this data, but also to run my analysis on the half-hourly prices from Octopus to ensure that my conclusions still made sense from that data.
For carbon intensity data, I used National Grid’s API, which allows us to access historical and predicted carbon intensity data. I haven’t used this source before, so can’t confirm how accurate it is, but since I was only using it for its historical data I figure it should be reliable. I accessed data for Great Britain, however the API also allows users to access carbon intensity and fuel mix data at regional or even postcode level.
The python code I used to load the data is as follows:
import pandas as pd
import numpy as np
import requests
url = 'https://api.carbonintensity.org.uk/intensity/{}Z/{}Z'def get_intensity(x):
return (x['from'],
x['intensity']['actual'],
x['intensity']['forecast'])startdate = pd.datetime(2017,12,31,23,30)
enddate = pd.datetime(2018,1,14,23,0)
data = []
for w in range(0, 32):
start = (startdate+pd.offsets.Day(14*w)).isoformat()[:-3]
end = (enddate + pd.offsets.Day(14*w)).isoformat()[:-3]
r = requests.get(url.format(start, end))
intensity = [get_intensity(x) for x in r.json()['data']]
data+=intensity
df = pd.DataFrame(data, columns=['from', 'actual', 'forecast'])
df['intensity'] = np.where(df.actual.isna(), df.forecast, df.actual)df_hourly = pd.DataFrame(0.5*(df.intensity.values[1::2]
+df.intensity.values[::2]))
A few notes on this code:
- The call allows a maximum of 14 days of data at a time. Hence I had to use a loop to get the data.
- The start and end strings included in the url are of the format YYYY-MM-DDTHH:MMZ. The start string indicates the end of the first half-hour included. The end string indicates the end of the last half hour included.
- A small number of half hours were missing an actual intensity value, therefore I used the forecast for these.
- To get hourly data, I calculated the average of the two half hourly data points.
Finally, a lot of my analysis is at the daily level. For simplicity, I have defined a day as the 24 hours from 11pm UTC until 11pm UTC. This means that in winter, my days will align with the UK electricity day, while in winter it will be an hour out. I do not believe this will affect any of my conclusions.
Analysis
I did my analysis using Excel (sorry!). I may later turn it into python code.
Firstly, I performed some basic statistical measurements on the hourly prices and the carbon intensities for the whole of 2018:
| Price | Intensity
Mean | 57.44 | 248.0
Min | 9.09 | 70.0
Max | 191.55 | 474.5
StDev | 13.11 | 67.1Correlation: 38%
I don’t consider this a particularly high correlation, but it is over the full year — it is possible that the correlation within individual days is much higher than over the full year — for example, there may be different seasonal variation in price and intensity.
To try to explore this, I looked at each day, and answered 5 questions:
- What is the average carbon intensity? 248g/kWh
- What is the minimum carbon intensity for each day and how much lower is it than the average for the day? 190g/kWh, 58 below the average
- What is the carbon intensity during the cheapest hour, and how much lower is it than the average? 206g/kWh, 41 below the average
- What is the maximum carbon intensity and how much higher is it than the average? 295g/kWh, 47 above the average
- What is the carbon intensity during the most expensive hour, and how much higher is it than the average? 284g/kWh, 36 above the average
As such, using the price as a guide to when to run an energy intensive appliance, or alternatively when to avoid running it, will significantly lower your carbon intensity, but it isn’t as good as directly forecasting carbon intensity.
Next, I looked at some individual days. Firstly, I have taken a fairly typical day where the price gave a good signal. In this chart, the red line indicates the carbon intensity, and the blue line the price. The diamonds represent the point of minimum and maximum intensity, while the crosses represent the intensity we’d get if we used the price as a signal. In this example, you can see that price correctly identifies the point of lowest carbon intensity, and is close to the point of highest carbon intensity.
Next I looked at a day when the price gave a much worse signal. While both price and carbon intensity had two peaks, price was slightly higher in the second, while intensity was significantly higher in the first one, leading to a 37g difference in the maximums. Similarly, price was lowest in the middle of the day, while intensity was significantly lower at the end of the day, leading to a 55g difference in the minimums.
Next I looked at another day that had a significant difference — here, the lowest price corresponded to almost the highest carbon intensity:
One final example of a bad signal, where the lowest price had a higher intensity than the highest price!
The next thing I looked at was whether there is a pattern in the days where the price gives a poor signal. Of the 30 days when the price worst signalled the lowest intensity, in most cases the actual lowest intensity was at close to 11pm. And of the 30 days when the price worst signalled the highest intensity, the price was highest around 6pm but the intensity was higher in the morning. But to be honest I wasn’t sure how to turn these facts into actual guidance.
Finally, a weakness in this analysis is that the prices are determined around 11am the day before the day in question, while the intensity reflects the actual generation mix. It may be the case that the day ahead prices are more consistent with the day ahead forecast of carbon intensity, but that subsequent changes in wind/solar production are causing actual carbon intensity to differ. I’m not sure how good the day ahead forecasts of carbon intensity are, with which I might test this possibility.
What is the appropriate carbon intensity metric?
Before concluding, I want to raise another question in my mind about using average carbon intensity to schedule consumption. In fact, I suspect marginal carbon intensity might be a more appropriate metric.
Supposing at a particular moment, there is 32GW of electricity generation (as shown in the final hour on this chart taken from Elexon). Of this, around half is gas (CCGT), 20% is nuclear, 20% is wind, a bit is biomass and a bit is imported. As a result, the usual carbon intensity metrics would tell me that around 40% of the electricity is zero-carbon.
However, if I turn on an additional appliance, it won’t be supplied by 40% zero-carbon electricity. As you can see from the chart, most of the variation in demand is being met by variation in gas production. If, over the whole period in the chart, the marginal supply has been gas, I would question whether there’s a real environmental benefit to moving demand from one half hour to another. On the other hand, if there are periods where the marginal supply is renewable (eg wind that would otherwise be curtailed), then it definitely makes sense to move consumption to those periods.
I haven’t seen any reports that attempt to calculate marginal emission intensity, and I’d be surprised if shifting consumption to lower average intensity periods ever led to higher marginal intensity periods. So I certainly don’t want to discourage people from considering average carbon intensity. But it would be interesting to look at how much the two metrics differ.
Conclusion
For those not being charged different prices for different time periods, I would recommend considering carbon intensity when scheduling your usage (though please consider the fire risk of using washing machines and tumble driers unattended). For those like me who are on time-of-use tariffs, you can rest assured that scheduling usage to the cheapest periods, and away from the most expensive ones, will significantly lower your average carbon intensity. That said, there would still be merit in considering forecasts of carbon intensity (especially marginal intensity), and taking this into account as well as price, in order to take into account the days where the price and intensity diverge.