There is a newer version of the record available.

Published July 26, 2024 | Version v0.1.0

Results Data for "Price Formation Without Fuel Costs: The Interaction of Elastic Demand with Storage Bidding"

  • 1. ROR icon Technische Universität Berlin

Description

Abstract

Studies on electricity market design for high shares of wind and solar often predict the breakdown of energy-only markets, citing a lack of fuel costs to set prices. Issues include prolonged zero prices, politically unacceptable scarcity prices, price collapses from minor capacity changes, low market value cost recovery, revenue variability across different weather years, and challenges in long-term storage operation. These issues arise from modeling with perfectly inelastic demand. Introducing even a small amount of short-term elasticity (-5%) significantly mitigates these problems. A simplified model with wind, solar, batteries, and hydrogen storage shows that demand elasticity and storage opportunity costs stabilize pricing, smoothing the price duration curve, reducing zero-price hours from 90% to 30%, and ensuring price stability across capacities and weather years. Green hydrogen-derived fuels replace fossil fuels as backup. The long-term model matches the short-term model prices with identical capacities, guiding storage bidding strategies for short-term operations. A model trained on 35 years of weather data and tested on another 35 years demonstrates the energy-only market's potential in future dispatch and investment coordination.

Data Sources

- Solar and Wind Time Series (1950-2020): Bloomfield and Brayshaw (2021)
- Techno-Economic Assumptions: technology-data (v0.8.1), Danish Energy Agency
- Demand Elasticity Assumptions: Hirth et al. (2024), Arnold (2023)

Installation

Use conda environment manager:


conda update conda
conda env create -f workflow/envs/environment.fixed.yaml
conda activate price-formation

Main Dependencies:

  • pypsa (v0.27.1)
  • linopy (v0.3.8)
  • snakemake (v8.5)
  • gurobi (v11.0.2)

Run

From the root of the repository:


snakemake -call --use-conda --conda-frontend conda

Or with a specific scenario configuration file:


snakemake -call --use-conda --conda-frontend conda --configfile config/config.foo.yaml

Cluster

On an HPC cluster, run:


snakemake -call --profile slurm --use-conda --conda-frontend conda

Compress Results

Use tar to compress results (excluding the report directory):


tar -cJf price-formation-results.tar.xz \
    config data figures results resources workflow \
    .gitignore .pre-commit-config.yaml .syncignore-receive \
    .syncignore-receive CITATION.cff LICENSE matplotlibrc README.md

Licenses

The code in this repository is MIT licensed.

The data in this repository is CC-BY-4.0 licensed.

Files

Files (31.9 GB)

Name Size
md5:eb99427ea30c63f454912ca9bd590d34
31.9 GB Download

Additional details

Software

Repository URL
https://github.com/fneum/price-formation
Programming language
Python