A repository demonstrating the forecasting of control reserve market prices. For the experiments, German control reserve market data was used.
There is very little literature for control reserve time series forecasting, while at the same time, knowing future prices is very relevant when performing flexibility bidding.
A simplified ML pipeline is built to predict control reserve market prices 24h ahead. The full details can be found in the corresponding publication (see below).
We welcome any kind of cooperation, feedback, or suggestions to further enhance the repository's value for other scientists. Feel free to expand the codebase and initiate a pull request.
Use requirements.txt to set up an environment
Set the Python working directory root to /code.
Execute /forecasting/Baselines/run_lagged_forecast.py. This will create a forecast baseline based on time lags.
The output will be stored in ../data/predictions/Baseline/.
Create an experiment, similar to /forecasting/ML/experiments/run_experiment_01.py. This will create a forecast with the given settings.
The output will be stored in ../data/predictions/ML/<Experiment-ID>.
Execute /evaluation/run_forecast_evaluation.py. This creates an evaluation file for each forecast.
The output will be stored in ../data/evaluations/, and the folder structure is identical to the forecast folder.
\codecode of the repository. To execute code, always use this as a root directory.- All files that start with
run_can be executed directly. All other files are helper code and are called by other scripts.
\data\input the input data used, i.e., the raw control reserve data from regelleistung.net
\data\predictions\ML all predictions from the different experiments are stored here
\data\predictions\Baseline all predictions from the other baseline experiments are stored here
\data\evaluations has the same folder structure as pre \data\predictions, for each forecast, a respective evaluation is stored here.
If this work has helped you with your scientific work, we would appreciate a proper mention. ❤️
Our citation recommendation is:
Vincent Bezold and Lukas Baur and Alexander Sauer. "ML-Based Bidding Price Prediction for Pay-As-Bid Ancillary Services Markets: A Use Case in the German Control Reserve Market." arXiv preprint arXiv:2503.17214 (2025). https://doi.org/10.48550/arXiv.2503.17214
BibTeX entry
@article{bezold2025ml,
title={ML-Based Bidding Price Prediction for Pay-As-Bid Ancillary Services Markets: A Use Case in the German Control Reserve Market},
author={Bezold, Vincent and Baur, Lukas and Sauer, Alexander},
journal={arXiv preprint arXiv:2503.17214},
doi = {10.48550/arXiv.2503.17214},
url = {https://doi.org/10.48550/arXiv.2503.17214},
year={2025}
}
💡 We would also like to thank an anonymous reviewer who suggested not only publishing the results in the above-mentioned publication but also making the pipeline accessible for other researchers.



