Helen wants you and your code!

Are you interested in participating to a programming competition? Submit your optimal, license free algorithm and win a 500 EUR gift card to Verkkokauppa.com store. 

Your task is to produce a mathematical algorithm to be used in a Battery Energy Storage System. The demand response algorithm controls charging and discharging of the batteries by the price of electricity. Buy low, sell high.

Simulating demand response capability of Battery Energy Storage System

Battery Energy Storage Systems (BESS) has a capability to disruptively transform power production, power transmission and electricity markets. One possible utilization of the BESS is demand response at the Nord Pool Spot, spot electricity market.

Helen Oy is analyzing possibilities to operate the BESS at the spot market. Your task is to produce an optimal algorithm, which could be used to simulate operation of the BESS and the value of the BESS at the spot market. Preferred platforms for the algorithm are Matlab (Simulink not included) and Excel.

This is a true competition, and the winner is awarded with lots of fame and a gift card to Verkkokauppa.com (500 €). Submit your license free algorithm and the best one to fulfill the requirements – wins.

Following guidelines can be followed, but are not compulsory. If you can think “out-of-the-box” or you have some better ideas, please do it as you like. Figure 1 illustrates one possible demand response scheme.


You are to produce a logic, license free algorithm, which controls charging and discharging of the BESS by the daily updating spot prices.

The idea is to charge batteries when the spot price is low and discharge batteries when the spot price is high. Buy low, sell high principality. Hourly spot prices updates daily, thus your algorithm has to work chronologically. Only next day prices are known at 1300 hours CET.

Algorithm should take account the next day and remaining hours of the present date. Do not cheat and use future prices, which are not yet known to predict control. Use the historical FI area price data of 2014.


Algorithm specifications


Competition rules

FI area spot price


  • Use Matlab or Excel.

  • Proper code commenting practice is compulsory.

  • Participant has to agree with the MIT free software license terms and include license term in the code. More information about the license.

  • You can assume charging and discharging takes one hour and only during the current spot hour. No overlapping of hours during the charging or discharging.

  • You can choose the capacity of the BESS freely i.e. 1MWh, but it has to be adjustable.

  • Battery is fully charged at the beginning of the test.


  • You have to use full year spot price data of 2014 FI area price.

  • Pay attention to price predictive model. Next day spot prices are known at 1300 hours CET.

  • Assume the BESS to have energy losses, meaning the price difference between charging and discharging has to be at least 20%. Price difference (markup) has to be adjustable as well.

  • You don’t have to calculate battery wear.

  • Finally, calculate charge-discharge cycles and yearly market value of demand response. One full charge and full discharge is one cycle.

  • Spot market data is available.

  • More information about Nord Pool Spot day-ahead market is available.

Further info and submission

Submissions (Matlab code or Excel file) and questions should be posted to Janne Huvilinna, titled “My Optimal Demand Response Algorithm (name of the participant)”. Submission have to include contact information of the participant.

Task paper in pdf-format