Code and data for Decision-level conformal profit calibration for battery arbitrage in day-ahead electricity markets: a public seven-market benchmark

Published: 27 April 2026| Version 1 | DOI: 10.17632/3p63n28cvd.1
Contributors:
Julian Hoxha,

Description

This WinRAR archive contains the code and result files supporting the manuscript “Decision-level conformal profit calibration for battery arbitrage in day-ahead electricity markets: a public seven-market benchmark,” submitted to the International Journal of Electrical Power & Energy Systems. The study develops and evaluates ProfitGuardStressCP, a decision-level conformal framework that calibrates one-sided scheduled-profit optimism for battery arbitrage in day-ahead electricity markets. The archive includes the reproducibility materials used to generate the manuscript’s forecasting, operational, conformal-calibration, robustness, and figure results. The workflow combines a public seven-market day-ahead electricity price benchmark covering Germany and six Italian price zones, modern point forecasting models, a validation-weighted CatBoost–NBEATSx ensemble, and a realistic 24-hour battery arbitrage linear programming model with state-of-charge dynamics, charge/discharge efficiency, power and energy limits, terminal state-of-charge recovery, and degradation cost. The uploaded materials support the reported empirical findings: the CatBoost–NBEATSx ensemble achieves the lowest average forecasting MAE in the compact seven-market benchmark, while ProfitGuardStressCP retains 97.8% of the point-schedule profit, reduces loss days from 73 to 29 across 1,824 market-days, and achieves empirical 90% lower-bound coverage of 0.906. These results are also summarized in the article highlights and manuscript abstract. The archive is intended to facilitate transparent reproduction of the article’s main tables, figures, and sensitivity analyses. It contains scripts and outputs for the forecasting benchmark, battery scheduling evaluation, conformal lower-bound construction, operational comparisons against hour-wise conformal and abstention baselines, robustness checks, and figure generation. The external market dataset follows the public benchmark structure described in the manuscript and should be obtained from the corresponding public benchmark repository cited in the article. Suggested use: researchers may use these files to reproduce the reported results, inspect the implementation of the decision-level conformal calibration procedure, compare operational conformal strategies for battery arbitrage, or extend the framework to other electricity markets, storage models, or multi-market trading settings.

Files

Steps to reproduce

Download and extract the WinRAR archive to a local working directory. Install the required Python environment and packages used by the scripts, including the standard scientific Python stack and forecasting/optimization libraries required for model training, battery scheduling, conformal calibration, and figure generation. Obtain the public seven-market day-ahead electricity price benchmark dataset described in the manuscript, covering Germany and six Italian price zones. Place the dataset in the input-data folder or update the data path in the configuration section of the scripts. Run the forecasting benchmark script to train and evaluate CatBoost, LightGBM, NBEATSx, N-HiTS, TFT, and the validation-weighted CatBoost–NBEATSx ensemble using the rolling train/validation/calibration/test splits described in the article. Run the battery arbitrage evaluation script to convert the point forecasts into 24-hour battery schedules using the linear programming model with state-of-charge dynamics, efficiency losses, power/energy limits, terminal state-of-charge recovery, and degradation cost. Run the conformal calibration and operational evaluation script to compute the hour-wise conformal baselines, matched abstention heuristics, schedule-level conformal ablations, and the proposed ProfitGuardStressCP lower-confidence-bound execution rule. Run the robustness and sensitivity scripts to reproduce the reported analyses for calibration sharpness, stress conditioning, range scaling, rolling-window choices, degradation cost, power-to-energy ratio, transaction fee, and Germany carry-over operation. Run the figure-generation script to recreate the manuscript tables and figures from the saved result CSV files. Compare the generated outputs with the manuscript results, including the average forecasting MAE, operational profit, trade rate, loss-day counts, empirical lower-bound coverage, and robustness tables. The expected headline values are: average ensemble MAE of 3.540 EUR/MWh, point-schedule profit of 21.070 EUR/day, ProfitGuardStressCP profit retention of 97.8%, reduction of loss days from 73 to 29, and empirical 90% lower-bound coverage of 0.906.

Categories

Electricity, Decision-Making Process, Price Forecasting

Licence