This endpoint returns BM (Balancing Mechanism) data for a given date. It can return acceptances, table bids and table offers by period, or acceptances filtered by plant or fuel (see Enact's BOA dashboard and BOA comparer).
Using the LCPDelta Python Package
Synchronous
from lcp_delta import enact
from datetime import date
enact_api_helper = enact.APIHelper(username, public_api_key)
# bm acceptances, table bids and table offers for a given date and period
response_dictionary = enact_api_helper.get_bm_data_by_period(
date(2023,6,22), # date to return data for
1 # period to return data for
)
print(response_dictionary)
# bm acceptances for a given date filtered by either plant or fuel
response_dataframe = enact_api_helper.get_bm_data_by_search(
date(2023,6,22), # date to return data for
"plant", # search option ("plant", "fuel", or "all")
"CARR" # additional filter (BMU ID or fuel type)
)
print(response_dataframe)
Asynchronous (package version 1.3.0 and later)
from lcp_delta import enact
from datetime import date
import asyncio
async def main():
enact_api_helper = enact.APIHelper(username, public_api_key)
# bm acceptances, table bids and table offers for a given date and period
response_dictionary = await enact_api_helper.get_bm_data_by_period_async(
date(2023,6,22), # date to return data for
1 # period to return data for
)
print(response_dictionary)
# bm acceptances for a given date filtered by either plant or fuel
response_dataframe = await enact_api_helper.get_bm_data_by_search_async(
date(2023,6,22), # date to return data for
"plant", # search option ("plant", "fuel", or "all")
"CARR" # additional filter (BMU ID or fuel type)
)
print(response_dataframe)
asyncio.run(main())
Using the API Directly
The returned data will depend on how the request object is constructed.
If the date and period fields are provided in the request object, this endpoint will return all BM acceptances, table bids and table offers for the given date and period.
If the date, option and searchString fields are provided in the request object, this endpoint will return all BM acceptances for the given date filtered by either plant or fuel, depending on the option.
Return Types
There are two different return types for this request.
The first type is returned when the date and period parameters are present in the request
There will be four properties on the return object:
- AcceptedBids
- AcceptedOffers
- TableOffers
- TableBids
All of these are Lists of the following type:
string plantId;
bool isBid;
bool isAccepted;
double volume;
double offerPrice;
double bidPrice;
bool soFlag;
bool storFlag;
bool cadlFlag;
double cost;
string bidOnTableTypeEnum;
string fuelType;
double? sel; (nullable)
double? mzt; (nullable)
double? ndb; (nullable)
double? ndo; (nullable)
double? ndz; (nullable)
double? mnzt; (nullable)
double[] coords;
string bodId;
AdditionalBsadData? additionalBsadData; (nullable)
An example of a typical return item (of a list) is shown below:
{
"plantId": "E_FARNB-1",
"isBid": false,
"isAccepted": false,
"volume": 20.0,
"offerPrice": 454.34,
"bidPrice": 434.34,
"soFlag": false,
"storFlag": false,
"cadlFlag": false,
"cost": 0.0,
"bidOnTableTypeEnum": "TurnUp",
"fuelType": "Battery",
"sel": 0.0,
"mzt": 0.0,
"ndb": 0.0,
"ndo": 0.0,
"ndz": 0.0,
"mnzt": 1.0,
"coords": [
-0.83,
51.189
],
"bodId": "2",
"additionalBsadData": null
}
bidOnTableTypeEnum can be one of the following:
TurnOn,
TurnOff,
TurnUp,
TurnDown,
NoChange,
TurnUpTurnDownBothAvailable
AdditionalBsadData will the have the following properties if populated:
string PlantId;
string PartyName;
string? FuelType; (nullable) (Any valid Fuel Type)
Example:
{'plantId': 'T_LBAR-1', 'partyName': 'RWE Supply & Trading GmbH', 'fuelType': 'CCGT'}
The second type is returned when the date, option and searchString parameters are present in the request.
The first array returned in the data part of the result are the headers of the data (which are all strings), with subsequent arrays being the rows of data values with the following types:
[
"Day",
"Period",
"BMU",
"Fuel",
"Price (£/MWh)",
"Volume (MW)",
"Cadl",
"SO Flag",
"STOR flag"
],
[
"2023-06-22T00:00:00",
2,
"T_CARR-1",
"CCGT",
125,
0.7,
true,
false,
false
],
...
Day - String (Date - e.g "2023-06-22T00:00:00")
Period - Integer
BMU - String (Any valid BMU ID)
Fuel - String (Any valid Fuel Type)
Price - Double
Volume - Double
Cadl - Boolean
SO Flag - Boolean
STOR Flag - Boolean
Accepted Time - Nullable String (Date - e.g "2023-06-22T00:00:00")
Fuel types include:
Other,
Biomass,
CCGT,
CHP,
Coal,
OCGT,
Hydro,
Nuclear,
Wind,
PumpedStorage,
Supply,
Battery,
InterconnectorEastWest,
InterconnectorFrance,
InterconnectorIreland,
InterconnectorNetherlands,
InterconnectorNemo,
InterconnectorElecLink,
InterconnectorIfa2,
InterconnectorNorthSeaLink,
Oil,
BSAD,
GasRecip,
Solar,
InterconnectorVikingLink