When is it cheaper to use electricity in Denmark?

I am currently on leave, which explains my absence from this blog. Since I am coming back to work in a month, I feel motivated to get the blog activity going again.

This blog post answers a personal problem which is relevant for environmental economics. I have decided to pay to have green electricity at home which means I will be paying a variable electricity price.

In Denmark, some electricity providers sell what they call “green energy”. It can have one of two categories. An electricity product with two leaves is the “greenest”, meaning that electricity is supplied by renewable energy sources (such as wind or solar) AND further climate mitigation measures are taken (and documented) by the electricity supplier. An electricity product with one leaf means that electricity needs to be supplied by renewable energy sources, but no climate mitigation measures need to be taken (nor documented). The guidelines explaining these energy products are documented in the Danish Consumer Ombundsman’s website. Unfortunately, no electricity product with two leaves exists at the moment, so I had to purchase a product with one leaf.

As a result, my electricity price is no longer fixed, but instead I am paying an electricity price which varies according to the spot electricity price (plus tax and various fees). With lead me to the question: when are electricity prices the lowest? I set to built my own econometric model to try to predict future electricity prices and find out when I should turn on my appliances to use the cheapest electricity. This is purely out of curiosity and has little to no academic value. It can also be an interesting exercise for students.

I want to explain electricity spot prices (i.e. my dependent variable) given various variables. Hence, going to the NordPool website is a natural place to start.

As most projects go, collecting the data is the most tedious task. I can find various electricity statistics in the Data Downloads tab on the Nordpool website. One of these is the hourly Elspot prices in Danish kroner (DKK). The available excel file is updated daily with the latest price. I collected data for 2021 (since forecasting for the next days is my primary objective, it suffices to have data for one year).

I want to plot the electricity prices to find some kind of pattern. The only obvious pattern is the steady increase of electricity prices since June.

library("ggplot2")
ggplot(el_data, aes(x = ...2, y = DK1)) +
  geom_line()

As for my explanatory variables, some brainstorming was necessary to determine the possible factors that influence the price of electricity. A lot of literature exists on the issue. For example, Girish and Vijayalakshmi (2013) mention various factors, such as electricity demand, variations in weather conditions (temperature, rainfall, water reservoir levels, etc), power plants outages, or non-availability of coal. I collected daily weather data from the Danish Metereology Institute (DMI). In their Archive section, they have different weather data (including average temperature, rainfall and wind speed) with different time resolutions (up to hourly).

Note: A consideration to keep in mind is that price is the outcome of the electricity’s demand and supply. Some of the aforementioned explanatory variables affect electricity demand, while others affect electricity supply, hence ultimately having an impact on the electricity price. For now, I ignore this aspect of the electricity price. For the interested reader, I delve into this issue in my previous blog post.

Given the data available, I am explaining electricity prices given:

  • a weekend dummy (taking the value 1 if the day was Saturday or Sunday, and zero otherwise). I expect electricity demand to be lower in the weekends, lowering the price;
  • month dummies (from January to August)
  • hour dummies (e.g. “00 – 01” is a dummy for the electricity price from midnight to 1am). I expect electricity demand to be lower at certain times (e.g. During the night), hence lowering the electricity price;
  • average temperature and temperature squared. Temperature can have an effect both on electricity demand and supply;
  • average wind speed and wind speed squared. This is likely to affect electricity supply (i.e. wind power);
  • precipitation

The hour dummies are of particular interest to me. They will allow me to identify when it is cheaper to turn on appliances at home.

I choose to run a simple OLS regression (and not an alternative model that would be theoretically correct) to identify any patterns:

reg_1 <- lm(DK1 ~ Weekend + Temp + Temp_sq + Precipitation + Wind + Wind_sq +
                  Fevereiro + Março + Abril + Maio + Junho + Julho + Agosto + 
                  `01 - 02` + `02 - 03` + `03 - 04` + `04 - 05` + `05 - 06` + `06 - 07` + `07 - 08` + `08 - 09` + `09 - 10` + `10 - 11` + `11 - 12` + 
                  `12 - 13` + `13 - 14` + `14 - 15` + `15 - 16` + `16 - 17` + `17 - 18` + `18 - 19` + `19 - 20` + `20 - 21` + `21 - 22` + `22 - 23` + `23 - 00` ,data=el_data)
summary(reg_1)
> summary(reg_1)

Call:
lm(formula = DK1 ~ Weekend + Temp + Temp_sq + Precipitation + 
    Wind + Wind_sq + Fevereiro + Março + Abril + Maio + Junho + 
    Julho + Agosto + `01 - 02` + `02 - 03` + `03 - 04` + `04 - 05` + 
    `05 - 06` + `06 - 07` + `07 - 08` + `08 - 09` + `09 - 10` + 
    `10 - 11` + `11 - 12` + `12 - 13` + `13 - 14` + `14 - 15` + 
    `15 - 16` + `16 - 17` + `17 - 18` + `18 - 19` + `19 - 20` + 
    `20 - 21` + `21 - 22` + `22 - 23` + `23 - 00`, data = el_data)

Residuals:
    Min      1Q  Median      3Q     Max 
-608.89  -57.50    0.51   64.47  451.30 

Coefficients:
                Estimate Std. Error t value Pr(>|t|)    
(Intercept)    454.73108   10.75237  42.291  < 2e-16 ***
Weekend       -125.09618    3.17720 -39.373  < 2e-16 ***
Temp            -6.56326    0.76479  -8.582  < 2e-16 ***
Temp_sq          0.29499    0.04722   6.247 4.48e-10 ***
Precipitation   -8.12453    0.51945 -15.641  < 2e-16 ***
Wind            -1.81005    4.47463  -0.405  0.68585    
Wind_sq         -3.73891    0.44707  -8.363  < 2e-16 ***
Fevereiro      -30.19032    6.07001  -4.974 6.76e-07 ***
Março          -15.80755    6.02788  -2.622  0.00875 ** 
Abril           14.42905    6.51101   2.216  0.02672 *  
Maio            62.51708    7.71628   8.102 6.55e-16 ***
Junho          163.73426   11.32384  14.459  < 2e-16 ***
Julho          221.68735   13.47400  16.453  < 2e-16 ***
Agosto         263.43755   11.08679  23.761  < 2e-16 ***
`01 - 02`      -66.34611  109.46846  -0.606  0.54449    
`02 - 03`      -92.46611  109.46846  -0.845  0.39832    
`03 - 04`     -105.55611  109.46846  -0.964  0.33496    
`04 - 05`      -19.67709    7.85762  -2.504  0.01230 *  
`05 - 06`        1.31159    7.85762   0.167  0.86744    
`06 - 07`       72.15725    7.85762   9.183  < 2e-16 ***
`07 - 08`      135.81043    7.85762  17.284  < 2e-16 ***
`08 - 09`      158.44804    7.85762  20.165  < 2e-16 ***
`09 - 10`      119.14378    7.85762  15.163  < 2e-16 ***
`10 - 11`       78.72663    7.85762  10.019  < 2e-16 ***
`11 - 12`       59.84481    7.85762   7.616 3.04e-14 ***
`12 - 13`       36.54986    7.85762   4.652 3.37e-06 ***
`13 - 14`        1.57932    7.87066   0.201  0.84097    
`14 - 15`      -19.20649    7.87066  -2.440  0.01471 *  
`15 - 16`      -14.14711    7.87066  -1.797  0.07232 .  
`16 - 17`       11.51841    7.87066   1.463  0.14340    
`17 - 18`       84.79193    7.87066  10.773  < 2e-16 ***
`18 - 19`      153.21222    7.87066  19.466  < 2e-16 ***
`19 - 20`      188.26741    7.87066  23.920  < 2e-16 ***
`20 - 21`      171.53899    7.87066  21.795  < 2e-16 ***
`21 - 22`      138.11152    7.87066  17.548  < 2e-16 ***
`22 - 23`      110.59861    7.87066  14.052  < 2e-16 ***
`23 - 00`       58.68836    7.87066   7.457 1.02e-13 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 109.3 on 5759 degrees of freedom
Multiple R-squared:  0.6789,	Adjusted R-squared:  0.6769 
F-statistic: 338.2 on 36 and 5759 DF,  p-value: < 2.2e-16

There are several results of interest. Overall, the model is good at explaining past electricity prices. The adjusted R-squared is 0.6769. I am sure there are other important determinants of the spot electricity price that are missing and would have increased the adjusted R-squared.

My model suggests some economically significant variables that help explain electricity prices. The best time of the week to use electricity seems to be between 2am and 4am during the weekend. During this period, the average electricity price is:

> reg_1$coefficients[1]+reg_1$coefficients[2]+reg_1$coefficients[17]
(Intercept) 
   224.0788 

The intercept indicates the average spot electricity price during this period (455) controlling for the explanatory variables. Weather variables also give other hints as to when electricity will be the cheapest. Rainy and windy days are those with the lowest electricity prices. The effect of temperature is more ambiguous: electricity is cheaper in days that neither too cold nor too warm.

While this is not a true academic exercise, it is informative as a customer. It can also be rewarding for students to conduct such analyzes.

References:

Girish, G. P., & Vijayalakshmi, S. (2013). Determinants of electricity price in competitive power market. International Journal of Business and Management8(21), 70.

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s