Frequency markets and the problem of predictability
This work develops forecast models of the two markets – spot market and frequency containment normal reserves (FCR-N) market – of three countries – Denmark, Finland, and Norway – to quantify the difference in their predictability. For 2019 – 2021, hourly data in logged form, on FCR-N prices in – €/MWh – and volumes – in MWh, spot market prices – in €/MWh – and gross consumption – in MWh – is used from Energinet's data portal for Denmark, Fingrid's data portal for Finland, and Statnett's data portal for Norway. The forecast allows both inter country – between same markets of different countries – and intra country – between different markets of the same country – comparison. The results show that the FCR-N markets of the Nordic countries are less predictable than their respective spot markets except for the case of Denmark due to its fixed hourly volumes. Moreover, the smoothing curves of FCR-N forecast models differ for each Nordic country despite their similar market requirements. This is in contrast to the Nordic spot markets where the smoothing curves indicate similarity in inter-country market behaviors. The work also compares the revenues of a BESS unit bidding in FCR-N markets of Denmark, Finland, and Norway using the proposed forecast models. The results show a BESS owner can earn higher revenues in Denmark due to its higher availability payments and better predictability of FCR-N market. Considering market predictability differences in addition to their hourly prices is thus vital for BESS units performing multi-market bidding.
Steps to reproduce
The work uses generalized additive models (GAMs) to develop week-ahead forecasts of FCR-N and spot markets of Denmark, Norway, and Finland based on smooth curves of daily and weekly patters. R studio is used to develop the GAM forecasts. Two files with .R extension are provided, i.e. FCRN.R and Spot.R. These files take 'nordic_log_sm.feather' as input. 'nordic_log_sm.feather' contains hourly data in logged form on FCR-N prices in – €/MWh – and volumes – in MWh, spot market prices – in €/MWh – and gross consumption – in MWh – from Energinet's data portal for Denmark, Fingrid's data portal for Finland, and Statnett's data portal for Norway. The output of FCRN.R and Spot.R are images of the week ahead forecast results stored in files with .png extension and saved in folders named, 'FCRNresults,' and 'Spotresults.' Moreover, the files also output hourly, daily, and weekly smoothers as well as summary table from the GAM models of each country. These results are shown in the appendix of the paper. The output of FCRN.R and Spot.R is also the numerical forecast results obtained from equations 5 - 10 of the paper and are stored in files named ‘datas_p_f.csv’ and ‘datas_p_s.csv.’ Further analysis of the results is carried out in a python environment, in a Jupyter notebook script called, 'Analysis.ipynb.' Analysis.ipynb reads eleven files with .csv extension. The purpose of 'Analysis.ipynb’ is to a) compare the revenues a 1 MW / 1 MWh BESS unit can earn in Denmark, Finland, and Norway by bidding in FCR-N market based on the proposed forecast, and b) compare the performance accuracy of the two models of the three countries. These files are named, 'mergedk19.csv,' 'mergedk20.csv,' 'mergedk21.csv,' for Denmark. 'mergeno19.csv,' 'mergeno20.csv,' 'mergeno21.csv,' for Norway, and 'mergefi19.csv,' 'mergefi20.csv,' 'mergefi21.csv,' for Finland. They contain forecasted and actual FCR-N market data obtained from the datas_p_f.csv and datas_p_s.csv. They also contain hourly balancing market prices obtained from Energinet, Fingrid, and Statnett data portal, the hourly energy content of the BESS unit while performing FCR-N calculated from equations 14 - 19 of the paper, and total BESS revenues for all three countries calculated from equations 14 - 19. Finally, 'Analysis.ipynb,' compares and visualizes the performance of the GAM models for the two markets of the three countries by comparing the percentage of data falling within certain ranges of mean absolute percentage error.