Skip to contents

Costs of TSO for redispatching and counter trading together with costs for any other remedial actions taken to relieve congested lines in transmission grid.

Usage

costs_of_congestion_management(
  eic = NULL,
  period_start = ymd(Sys.Date() - days(x = 31L), tz = "CET"),
  period_end = ymd(Sys.Date(), tz = "CET"),
  event_nature = NULL,
  tidy_output = TRUE,
  security_token = Sys.getenv("ENTSOE_PAT")
)

Arguments

eic

Energy Identification Code of the control area

period_start

POSIXct or YYYY-MM-DD HH:MM:SS format One year range limit applies

period_end

POSIXct or YYYY-MM-DD HH:MM:SS format One year range limit applies

event_nature

"A46" for system Operator redispatching "B03" for counter trade "B04" for congestion costs Defaults to NULL which means both of them.

tidy_output

Defaults to TRUE. If TRUE, then flatten nested tables.

security_token

Security token for ENTSO-E transparency platform

Value

A tibble::tibble() with the queried data.

Examples

# Belgium's Costs of Congestion Management
df <- entsoeapi::costs_of_congestion_management(
  eic = "10YBE----------2",
  period_start = lubridate::ymd(x = "2016-01-01", tz = "CET"),
  period_end = lubridate::ymd(x = "2016-12-31", tz = "CET"),
  tidy_output = TRUE
)
#> 
#> ── API call ────────────────────────────────────────────────────────────────────────────────────────────────────────────
#> → https://web-api.tp.entsoe.eu/api?documentType=A92&in_Domain=10YBE----------2&out_Domain=10YBE----------2&periodStart=201512312300&periodEnd=201612302300&securityToken=<...>
#> <- HTTP/1.1 200 OK
#> <- Date: Tue, 20 Oct 2026 10:21:25 GMT
#> <- Content-Type: text/xml
#> <- Transfer-Encoding: chunked
#> <- Connection: keep-alive
#> <- Content-Disposition: inline; filename="Cost of Congestion Management_201512312300-201612302300.xml"
#> <- Content-Encoding: gzip
#> <- Strict-Transport-Security: max-age=15724800
#> <- Vary: accept-encoding
#> <- X-Content-Type-Options: nosniff
#> <- X-Xss-Protection: 0
#> <- 
#> ✔ response has arrived
#> ✔ Additional type names have been added!
#> ✔ Additional eic names have been added!

dplyr::glimpse(df)
#> Rows: 36
#> Columns: 19
#> $ ts_in_domain_mrid                     <chr> "10YBE----------2", "10YBE----------2", "10YBE----------2", "10YBE------…
#> $ ts_in_domain_name                     <chr> "Belgium", "Belgium", "Belgium", "Belgium", "Belgium", "Belgium", "Belgi…
#> $ ts_out_domain_mrid                    <chr> "10YBE----------2", "10YBE----------2", "10YBE----------2", "10YBE------…
#> $ ts_out_domain_name                    <chr> "Belgium", "Belgium", "Belgium", "Belgium", "Belgium", "Belgium", "Belgi…
#> $ type                                  <chr> "A92", "A92", "A92", "A92", "A92", "A92", "A92", "A92", "A92", "A92", "A…
#> $ type_def                              <chr> "Congestion costs", "Congestion costs", "Congestion costs", "Congestion …
#> $ process_type                          <chr> "A16", "A16", "A16", "A16", "A16", "A16", "A16", "A16", "A16", "A16", "A…
#> $ process_type_def                      <chr> "Realised", "Realised", "Realised", "Realised", "Realised", "Realised", …
#> $ ts_business_type                      <chr> "B03", "B03", "B03", "B03", "B03", "B03", "B03", "B03", "B03", "B03", "B…
#> $ ts_business_type_def                  <chr> "Counter trade", "Counter trade", "Counter trade", "Counter trade", "Cou…
#> $ created_date_time                     <dttm> 2026-10-20 10:21:25, 2026-10-20 10:21:25, 2026-10-20 10:21:25, 2026-10-…
#> $ revision_number                       <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
#> $ ts_resolution                         <chr> "P1M", "P1M", "P1M", "P1M", "P1M", "P1M", "P1M", "P1M", "P1M", "P1M", "P…
#> $ ts_time_interval_start                <dttm> 2015-12-31 23:00:00, 2015-12-31 23:00:00, 2015-12-31 23:00:00, 2015-12-…
#> $ ts_time_interval_end                  <dttm> 2016-12-31 23:00:00, 2016-12-31 23:00:00, 2016-12-31 23:00:00, 2016-12-…
#> $ ts_mrid                               <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, …
#> $ ts_point_dt_start                     <dttm> 2015-12-31 23:00:00, 2016-01-31 23:00:00, 2016-02-29 23:00:00, 2016-03-…
#> $ ts_point_congestion_cost_price_amount <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
#> $ ts_currency_unit_name                 <chr> "EUR", "EUR", "EUR", "EUR", "EUR", "EUR", "EUR", "EUR", "EUR", "EUR", "E…