{ "cells": [ { "cell_type": "markdown", "id": "03c87582", "metadata": {}, "source": [ "# Python API Example - Access Terminal Costs Import and Storage in Dataframe\n", "\n", "This guide is designed to provide an example of how to access the Spark API:\n", "- The path to your client credentials is the only input needed to run this script (just before Section 2)\n", "- This script has been designed to display the raw outputs of requests from the API, and then shows you how to format those outputs to enable easy reading and analysis\n", "- This script can be copied and pasted by customers for quick use of the API\n", "\n", "__N.B. This guide is just for Access terminal data. If you're looking for other API data products (such as contract prices, Freight routes or Netbacks), please refer to their according code example files.__ " ] }, { "cell_type": "markdown", "id": "21bd6181", "metadata": {}, "source": [ "### Have any questions?\n", "\n", "If you have any questions regarding our API, or need help accessing specific datasets, please contact us at:\n", "\n", "__data@sparkcommodities.com__\n", "\n", "or refer to our API website for more information about this endpoint: https://www.sparkcommodities.com/api/request/access.html" ] }, { "cell_type": "markdown", "id": "0037c795", "metadata": {}, "source": [ "## 1. Importing Data\n", "\n", "Here we define the functions that allow us to retrieve the valid credentials to access the Spark API.\n", "\n", "This section can remain unchanged for most Spark API users." ] }, { "cell_type": "code", "execution_count": 1, "id": "5cbcba1b", "metadata": {}, "outputs": [], "source": [ "# import libraries for callin the API\n", "import json\n", "import os\n", "import sys\n", "import pandas as pd\n", "from base64 import b64encode\n", "from urllib.parse import urljoin\n", "from pprint import pprint\n", "\n", "try:\n", " from urllib import request, parse\n", " from urllib.error import HTTPError\n", "except ImportError:\n", " raise RuntimeError(\"Python 3 required\")" ] }, { "cell_type": "code", "execution_count": 2, "id": "b7442d2b", "metadata": {}, "outputs": [], "source": [ "# defining query functions \n", "API_BASE_URL = \"https://api.sparkcommodities.com\"\n", "\n", "\n", "def retrieve_credentials(file_path=None):\n", " \"\"\"\n", " Find credentials either by reading the client_credentials file or reading\n", " environment variables\n", " \"\"\"\n", " if file_path is None:\n", " client_id = os.getenv(\"SPARK_CLIENT_ID\")\n", " client_secret = os.getenv(\"SPARK_CLIENT_SECRET\")\n", " if not client_id or not client_secret:\n", " raise RuntimeError(\n", " \"SPARK_CLIENT_ID and SPARK_CLIENT_SECRET environment vars required\"\n", " )\n", " else:\n", " # Parse the file\n", " if not os.path.isfile(file_path):\n", " raise RuntimeError(\"The file {} doesn't exist\".format(file_path))\n", "\n", " with open(file_path) as fp:\n", " lines = [l.replace(\"\\n\", \"\") for l in fp.readlines()]\n", "\n", " if lines[0] in (\"clientId,clientSecret\", \"client_id,client_secret\"):\n", " client_id, client_secret = lines[1].split(\",\")\n", " else:\n", " print(\"First line read: '{}'\".format(lines[0]))\n", " raise RuntimeError(\n", " \"The specified file {} doesn't look like to be a Spark API client \"\n", " \"credentials file\".format(file_path)\n", " )\n", "\n", " print(\">>>> Found credentials!\")\n", " print(\n", " \">>>> Client_id={}****, client_secret={}****\".format(\n", " client_id[:5], client_secret[:5]\n", " )\n", " )\n", "\n", " return client_id, client_secret\n", "\n", "\n", "def do_api_post_query(uri, body, headers):\n", " \"\"\"\n", " OAuth2 authentication requires a POST request with client credentials before accessing the API. \n", " This POST request will return an Access Token which will be used for the API GET request.\n", " \"\"\"\n", " url = urljoin(API_BASE_URL, uri)\n", "\n", " data = json.dumps(body).encode(\"utf-8\")\n", "\n", " # HTTP POST request\n", " req = request.Request(url, data=data, headers=headers)\n", " try:\n", " response = request.urlopen(req)\n", " except HTTPError as e:\n", " print(\"HTTP Error: \", e.code)\n", " print(e.read())\n", " sys.exit(1)\n", "\n", " resp_content = response.read()\n", "\n", " # The server must return HTTP 201. Raise an error if this is not the case\n", " assert response.status == 201, resp_content\n", "\n", " # The server returned a JSON response\n", " content = json.loads(resp_content)\n", "\n", " return content\n", "\n", "\n", "def do_api_get_query(uri, access_token):\n", " \"\"\"\n", " After receiving an Access Token, we can request information from the API.\n", " \"\"\"\n", " url = urljoin(API_BASE_URL, uri)\n", "\n", " headers = {\n", " \"Authorization\": \"Bearer {}\".format(access_token),\n", " \"accept\": \"application/json\",\n", " }\n", "\n", " print(f\"Fetching {url}\")\n", "\n", " # HTTP GET request\n", " req = request.Request(url, headers=headers)\n", " try:\n", " response = request.urlopen(req)\n", " except HTTPError as e:\n", " print(\"HTTP Error: \", e.code)\n", " print(e.read())\n", " sys.exit(1)\n", "\n", " resp_content = response.read()\n", "\n", " # The server must return HTTP 201. Raise an error if this is not the case\n", " assert response.status == 200, resp_content\n", "\n", " # The server returned a JSON response\n", " content = json.loads(resp_content)\n", "\n", " return content\n", "\n", "\n", "def get_access_token(client_id, client_secret):\n", " \"\"\"\n", " Get a new access_token. Access tokens are the thing that applications use to make\n", " API requests. Access tokens must be kept confidential in storage.\n", "\n", " # Procedure:\n", "\n", " Do a POST query with `grantType` and `scopes` in the body. A basic authorization\n", " HTTP header is required. The \"Basic\" HTTP authentication scheme is defined in\n", " RFC 7617, which transmits credentials as `clientId:clientSecret` pairs, encoded\n", " using base64.\n", " \"\"\"\n", "\n", " # Note: for the sake of this example, we choose to use the Python urllib from the\n", " # standard lib. One should consider using https://requests.readthedocs.io/\n", "\n", " payload = \"{}:{}\".format(client_id, client_secret).encode()\n", " headers = {\n", " \"Authorization\": b64encode(payload).decode(),\n", " \"Accept\": \"application/json\",\n", " \"Content-Type\": \"application/json\",\n", " }\n", " body = {\n", " \"grantType\": \"clientCredentials\",\n", " \"scopes\": \"read:access\",\n", " }\n", "\n", " content = do_api_post_query(uri=\"/oauth/token/\", body=body, headers=headers)\n", "\n", " print(\n", " \">>>> Successfully fetched an access token {}****, valid {} seconds.\".format(\n", " content[\"accessToken\"][:5], content[\"expiresIn\"]\n", " )\n", " )\n", "\n", " return content[\"accessToken\"]" ] }, { "cell_type": "markdown", "id": "9b4b250b", "metadata": {}, "source": [ "## N.B. Credentials\n", "\n", "Here we call the above functions, and input the file path to our credentials.\n", "\n", "N.B. You must have downloaded your client credentials CSV file before proceeding. Please refer to the API documentation if you have not dowloaded them already.\n", "\n", "The code then prints the available prices that are callable from the API, and their corresponding Python ticker names are displayed as a list at the bottom of the Output." ] }, { "cell_type": "code", "execution_count": 3, "id": "3ec2647c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ">>>> Found credentials!\n", ">>>> Client_id=875f4****, client_secret=6cdf8****\n", ">>>> Successfully fetched an access token eyJhb****, valid 604799 seconds.\n" ] } ], "source": [ "# Insert file path to your client credentials here\n", "client_id, client_secret = retrieve_credentials(file_path=\"/tmp/client_credentials.csv\")\n", "\n", "# Authenticate:\n", "access_token = get_access_token(client_id, client_secret)" ] }, { "cell_type": "markdown", "id": "71c33c3b", "metadata": {}, "source": [ "## 2. Latest Price Release\n", "\n", "Here we call the latest price release and print it in a readable format. This is done using the URL:\n", "\n", "__/beta/sparkr/releases/latest/__\n", "\n", "\n", "We then save the entire dataset as a local variable called 'latest'." ] }, { "cell_type": "code", "execution_count": 4, "id": "5c053478", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fetching https://api.sparkcommodities.com/beta/sparkr/releases/latest/\n" ] } ], "source": [ "## Defining the latest release function\n", "\n", "\n", "def fetch_latest_price_releases(access_token):\n", " content = do_api_get_query(\n", " uri=\"/beta/sparkr/releases/latest/\", access_token=access_token\n", " )\n", "\n", " return content[\"data\"]\n", "\n", "\n", "## Calling that function and storing the output\n", "\n", "latest = fetch_latest_price_releases(access_token)" ] }, { "cell_type": "code", "execution_count": 5, "id": "d5f82bce", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'releaseDate': '2024-10-17',\n", " 'terminalCode': 'grain-lng',\n", " 'terminalName': 'Isle of Grain',\n", " 'perVesselSize': {'160000': {'deliveryMonths': [{'month': '2024-11-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.285',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.209',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.194',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '4.050',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.659',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.611',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2024-12-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.274',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.194',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.198',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '4.016',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.613',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.623',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-01-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.299',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.216',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.201',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '4.092',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.679',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.633',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-02-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.306',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.222',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.202',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '4.117',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.7',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.637',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-03-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.293',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.212',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.199',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '4.073',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.667',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.626',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-04-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.250',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.178',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.19',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '3.939',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.561',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.598',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-05-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.276',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.209',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.185',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '4.022',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.659',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.583',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-06-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.340',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.276',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.182',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '4.224',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.871',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.573',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-07-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.470',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.408',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.18',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '4.631',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '1.285',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.566',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-08-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.470',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.408',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.18',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '4.633',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '1.285',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.568',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-09-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.302',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.235',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.185',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '4.104',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.741',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.583',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-10-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.313',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.227',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.186',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.466',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.079',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '4.141',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.716',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.586',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.469',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.25',\n", " 'description': 'Commodity Charge'}}}}],\n", " 'assumptions': {'vesselSizeCbm': 160000, 'dischargeVolumeMmbtu': 3492366}},\n", " '174000': {'deliveryMonths': [{'month': '2024-11-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.267',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.191',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.194',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '3.994',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.603',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.611',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2024-12-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.258',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.178',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.198',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '3.964',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.561',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.623',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-01-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.280',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.197',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.201',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '4.035',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.622',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.633',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-02-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.287',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.203',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.202',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '4.057',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.64',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.637',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-03-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.275',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.194',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.199',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '4.017',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.611',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.626',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-04-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.235',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.163',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.19',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '3.892',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.514',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.598',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-05-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.259',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.192',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.185',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '3.967',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.604',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.583',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-06-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.317',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.253',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.182',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '4.150',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.797',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.573',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-07-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.435',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.373',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.18',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '4.522',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '1.176',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.566',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-08-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.435',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.373',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.18',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '4.524',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '1.176',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.568',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-09-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.282',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.215',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.185',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.498',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.029',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '4.041',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.678',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.583',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.57',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.09',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-10-01',\n", " 'costsInUsdPerMmbtu': {'total': '1.294',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.355',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.208',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.186',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.466',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.079',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '4.081',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '1.12',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.656',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.586',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '1.469',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.25',\n", " 'description': 'Commodity Charge'}}}}],\n", " 'assumptions': {'vesselSizeCbm': 174000, 'dischargeVolumeMmbtu': 3814333}}}}" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Checking structure of data\n", "latest[0]" ] }, { "cell_type": "code", "execution_count": 6, "id": "a9ecab55", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['160000', '174000']\n" ] } ], "source": [ "# Showing available vessel sizes\n", "print(list(latest[0][\"perVesselSize\"]))" ] }, { "cell_type": "markdown", "id": "a9059466", "metadata": {}, "source": [ "## Storing Data as a Dataframe\n", "\n", "Define a function to store regas costs as a Dataframe, making the data more easily readable and so that specific datasets can be indexed easily.\n", "\n", "__N.B.__ Gas in Kind, Entry Capacity and Commodity Charge cost components are only available for Premium subscribers. For Trial API users, these components are wrapped up into one variable, named 'other costs'. \n", "\n", "__Want to upgrade?__ Contact data@sparkcommodities.com to find out more!" ] }, { "cell_type": "code", "execution_count": 7, "id": "b23f8a6e", "metadata": {}, "outputs": [], "source": [ "def organise_dataframe(latest):\n", " \"\"\"\n", " This function sorts the API content into a dataframe. The columns available are Release Date, Terminal, Month, Vessel Size, $/MMBtu and €/MWh. \n", " Essentially, this function parses the Access database using the Month, Terminal and Vessel size columns as reference.\n", " \"\"\"\n", " # create columns\n", " data_dict = {\n", " 'Release Date':[],\n", " 'Terminal':[],\n", " 'Month':[],\n", " 'Vessel Size':[],\n", " 'Total $/MMBtu':[],\n", " 'Basic Slot (Berth)':[],\n", " 'Basic Slot (Unload/Stor/Regas)':[],\n", " 'Basic Slot (B/U/S/R)':[],\n", " 'Additional Storage':[],\n", " 'Additional Sendout':[],\n", " 'Gas in Kind': [],\n", " 'Entry Capacity':[],\n", " 'Commodity Charge':[]\n", " }\n", "\n", " # loop for each Terminal\n", " for l in latest:\n", " sizes_available = list(latest[0]['perVesselSize'].keys())\n", "\n", " # loop for each available size\n", " for s in sizes_available:\n", " \n", " # loop for each month (in the form: YYYY-MM-DD)\n", " for month in range(len(l['perVesselSize'][f'{s}']['deliveryMonths'])):\n", " \n", " # assigning values to each column\n", " data_dict['Release Date'].append(l[\"releaseDate\"])\n", " data_dict['Terminal'].append(l[\"terminalName\"])\n", " data_dict['Month'].append(l['perVesselSize'][f'{s}']['deliveryMonths'][month]['month'])\n", " data_dict['Vessel Size'].append(s)\n", " data_dict['Total $/MMBtu'].append(float(l['perVesselSize'][f'{s}']['deliveryMonths'][month][\"costsInUsdPerMmbtu\"][\"total\"]))\n", " \n", " data_dict['Basic Slot (Berth)'].append(float(l['perVesselSize'][f'{s}']['deliveryMonths'][month][\"costsInUsdPerMmbtu\"][\"breakdown\"]['basic-slot-berth']['value']))\n", " data_dict['Basic Slot (Unload/Stor/Regas)'].append(float(l['perVesselSize'][f'{s}']['deliveryMonths'][month][\"costsInUsdPerMmbtu\"][\"breakdown\"]['basic-slot-unload-storage-regas']['value']))\n", " data_dict['Basic Slot (B/U/S/R)'].append(float(l['perVesselSize'][f'{s}']['deliveryMonths'][month][\"costsInUsdPerMmbtu\"][\"breakdown\"]['basic-slot-berth-unload-storage-regas']['value']))\n", " data_dict['Additional Storage'].append(float(l['perVesselSize'][f'{s}']['deliveryMonths'][month][\"costsInUsdPerMmbtu\"][\"breakdown\"]['additional-storage']['value']))\n", " data_dict['Additional Sendout'].append(float(l['perVesselSize'][f'{s}']['deliveryMonths'][month][\"costsInUsdPerMmbtu\"][\"breakdown\"]['additional-send-out']['value']))\n", " data_dict['Gas in Kind'].append(float(l['perVesselSize'][f'{s}']['deliveryMonths'][month][\"costsInUsdPerMmbtu\"][\"breakdown\"]['fuel-gas-losses-gas-in-kind']['value']))\n", " data_dict['Entry Capacity'].append(float(l['perVesselSize'][f'{s}']['deliveryMonths'][month][\"costsInUsdPerMmbtu\"][\"breakdown\"]['entry-capacity']['value']))\n", " data_dict['Commodity Charge'].append(float(l['perVesselSize'][f'{s}']['deliveryMonths'][month][\"costsInUsdPerMmbtu\"][\"breakdown\"]['commodity-charge']['value']))\n", " \n", " \n", " # convert into dataframe\n", " df = pd.DataFrame(data_dict)\n", " \n", " df['Month'] = pd.to_datetime(df['Month'])\n", " df['Release Date'] = pd.to_datetime(df['Release Date'])\n", " \n", " return df\n" ] }, { "cell_type": "code", "execution_count": 8, "id": "0ae92173", "metadata": {}, "outputs": [], "source": [ "prices_df = organise_dataframe(latest)" ] }, { "cell_type": "code", "execution_count": 9, "id": "afebbd0c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Release DateTerminalMonthVessel SizeTotal $/MMBtuBasic Slot (Berth)Basic Slot (Unload/Stor/Regas)Basic Slot (B/U/S/R)Additional StorageAdditional SendoutGas in KindEntry CapacityCommodity Charge
602024-10-17Zeebrugge2024-11-011740000.4200.00.00.1770.0010.0090.1660.0570.01
612024-10-17Zeebrugge2024-12-011740000.4300.00.00.1770.0010.0090.1680.0650.01
622024-10-17Zeebrugge2025-01-011740000.4400.00.00.1770.0010.0090.1690.0740.01
632024-10-17Zeebrugge2025-02-011740000.4330.00.00.1770.0010.0090.1700.0660.01
642024-10-17Zeebrugge2025-03-011740000.4210.00.00.1770.0010.0090.1690.0550.01
652024-10-17Zeebrugge2025-04-011740000.4000.00.00.1770.0010.0090.1630.0400.01
662024-10-17Zeebrugge2025-05-011740000.3870.00.00.1780.0010.0090.1620.0270.01
672024-10-17Zeebrugge2025-06-011740000.3800.00.00.1780.0010.0090.1610.0210.01
682024-10-17Zeebrugge2025-07-011740000.3800.00.00.1780.0010.0090.1610.0210.01
692024-10-17Zeebrugge2025-08-011740000.3800.00.00.1780.0010.0090.1610.0210.01
702024-10-17Zeebrugge2025-09-011740000.3870.00.00.1780.0010.0090.1620.0270.01
712024-10-17Zeebrugge2025-10-011740000.4040.00.00.1780.0010.0090.1620.0440.01
\n", "
" ], "text/plain": [ " Release Date Terminal Month Vessel Size Total $/MMBtu \\\n", "60 2024-10-17 Zeebrugge 2024-11-01 174000 0.420 \n", "61 2024-10-17 Zeebrugge 2024-12-01 174000 0.430 \n", "62 2024-10-17 Zeebrugge 2025-01-01 174000 0.440 \n", "63 2024-10-17 Zeebrugge 2025-02-01 174000 0.433 \n", "64 2024-10-17 Zeebrugge 2025-03-01 174000 0.421 \n", "65 2024-10-17 Zeebrugge 2025-04-01 174000 0.400 \n", "66 2024-10-17 Zeebrugge 2025-05-01 174000 0.387 \n", "67 2024-10-17 Zeebrugge 2025-06-01 174000 0.380 \n", "68 2024-10-17 Zeebrugge 2025-07-01 174000 0.380 \n", "69 2024-10-17 Zeebrugge 2025-08-01 174000 0.380 \n", "70 2024-10-17 Zeebrugge 2025-09-01 174000 0.387 \n", "71 2024-10-17 Zeebrugge 2025-10-01 174000 0.404 \n", "\n", " Basic Slot (Berth) Basic Slot (Unload/Stor/Regas) Basic Slot (B/U/S/R) \\\n", "60 0.0 0.0 0.177 \n", "61 0.0 0.0 0.177 \n", "62 0.0 0.0 0.177 \n", "63 0.0 0.0 0.177 \n", "64 0.0 0.0 0.177 \n", "65 0.0 0.0 0.177 \n", "66 0.0 0.0 0.178 \n", "67 0.0 0.0 0.178 \n", "68 0.0 0.0 0.178 \n", "69 0.0 0.0 0.178 \n", "70 0.0 0.0 0.178 \n", "71 0.0 0.0 0.178 \n", "\n", " Additional Storage Additional Sendout Gas in Kind Entry Capacity \\\n", "60 0.001 0.009 0.166 0.057 \n", "61 0.001 0.009 0.168 0.065 \n", "62 0.001 0.009 0.169 0.074 \n", "63 0.001 0.009 0.170 0.066 \n", "64 0.001 0.009 0.169 0.055 \n", "65 0.001 0.009 0.163 0.040 \n", "66 0.001 0.009 0.162 0.027 \n", "67 0.001 0.009 0.161 0.021 \n", "68 0.001 0.009 0.161 0.021 \n", "69 0.001 0.009 0.161 0.021 \n", "70 0.001 0.009 0.162 0.027 \n", "71 0.001 0.009 0.162 0.044 \n", "\n", " Commodity Charge \n", "60 0.01 \n", "61 0.01 \n", "62 0.01 \n", "63 0.01 \n", "64 0.01 \n", "65 0.01 \n", "66 0.01 \n", "67 0.01 \n", "68 0.01 \n", "69 0.01 \n", "70 0.01 \n", "71 0.01 " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Example of calling specific data for a chosen terminal and vessel size\n", "\n", "prices_df[(prices_df['Terminal'] == 'Zeebrugge') & (prices_df['Vessel Size'] == '174000')]" ] }, { "cell_type": "markdown", "id": "e0328738", "metadata": {}, "source": [ "## 3. Historical Prices\n", "\n", "Here we perform a similar task, but with historical prices instead. This is done using the URL:\n", "\n", "__/beta/sparkr/releases/{limit}{offset}__\n", "\n", "First we define the function that imports the data from the Spark API.\n", "\n", "We then call that function, and define 2 parameters:\n", "- 'limit': this allows you to control how many datapoints you want to call. Here we use 'limit=3', which means we have called the last 3 datapoints (Terminal price data for the last 3 business days).\n", " - Alter this limit to however many datapoints you need.\n", " - The default is set as 4 (in the first line of the function). If the limit parameter is not defined, this value will be used.\n", "- 'offset': This parameter is optional, and the default value is None. Input how many business days you would like to offset the data\n", " - for example, offset=2 gets terminal data from 2 business days ago.\n", "\n", "\n", "We save the output as a local variable called 'historical'" ] }, { "cell_type": "code", "execution_count": 10, "id": "5ed9ae10", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fetching https://api.sparkcommodities.com/beta/sparkr/releases/?limit=3\n" ] } ], "source": [ "## Defining the function\n", "\n", "\n", "def fetch_price_releases(access_token, limit=4, offset=None):\n", " query_params = \"?limit={}\".format(limit)\n", " if offset is not None:\n", " query_params += \"&offset={}\".format(offset)\n", "\n", " content = do_api_get_query(\n", " uri=\"/beta/sparkr/releases/{}\".format(query_params), access_token=access_token\n", " )\n", "\n", " return content[\"data\"]\n", "\n", "\n", "## Calling that function and storing the output\n", "\n", "historical = fetch_price_releases(access_token, limit=3)" ] }, { "cell_type": "code", "execution_count": 11, "id": "0cebc2b4", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'releaseDate': '2024-10-17',\n", " 'terminalCode': 'montoir',\n", " 'terminalName': 'Montoir',\n", " 'perVesselSize': {'160000': {'deliveryMonths': [{'month': '2024-11-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.367',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.028',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.062',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.101',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.157',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.088',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.196',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.319',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2024-12-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.368',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.028',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.063',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.101',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.160',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.088',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.199',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.319',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-01-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.369',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.028',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.064',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.101',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.162',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.088',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.201',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.319',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-02-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.369',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.028',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.064',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.101',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.164',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.088',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.203',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.319',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-03-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.369',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.028',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.064',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.101',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.162',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.088',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.201',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.319',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-04-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.368',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.028',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.061',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.103',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.162',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.088',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.194',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.326',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-05-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.369',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.028',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.062',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.103',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.162',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.088',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.194',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.326',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-06-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.368',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.028',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.061',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.103',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.161',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.088',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.193',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.326',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-07-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.368',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.028',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.061',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.103',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.161',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.088',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.193',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.326',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-08-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.368',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.028',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.061',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.103',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.161',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.088',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.193',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.326',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-09-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.368',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.028',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.061',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.103',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.161',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.088',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.193',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.326',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-10-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.368',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.028',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.061',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.103',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.160',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.088',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.192',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.326',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}}],\n", " 'assumptions': {'vesselSizeCbm': 160000, 'dischargeVolumeMmbtu': 3492366}},\n", " '174000': {'deliveryMonths': [{'month': '2024-11-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.365',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.026',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.062',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.101',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.150',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.081',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.196',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.319',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2024-12-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.366',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.026',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.063',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.101',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.153',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.081',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.199',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.319',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-01-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.367',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.026',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.064',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.101',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.155',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.081',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.201',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.319',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-02-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.367',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.026',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.064',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.101',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.157',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.081',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.203',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.319',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-03-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.367',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.026',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.064',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.101',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.155',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.081',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.201',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.319',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-04-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.366',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.026',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.061',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.103',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.155',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.081',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.194',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.326',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-05-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.367',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.026',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.062',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.103',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.155',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.081',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.194',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.326',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-06-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.366',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.026',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.061',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.103',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.154',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.081',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.193',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.326',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-07-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.366',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.026',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.061',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.103',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.154',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.081',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.193',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.326',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-08-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.366',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.026',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.061',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.103',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.154',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.081',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.193',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.326',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-09-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.366',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.026',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.061',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.103',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.154',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.081',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.193',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.326',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}},\n", " {'month': '2025-10-01',\n", " 'costsInUsdPerMmbtu': {'total': '0.366',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.026',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.176',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.061',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.103',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}},\n", " 'costsInEurPerMwh': {'total': '1.153',\n", " 'breakdown': {'basic-slot-berth': {'type': 'basic-slot-berth',\n", " 'value': '0.081',\n", " 'description': 'Slot (Berth)'},\n", " 'basic-slot-unload-storage-regas': {'type': 'basic-slot-unload-storage-regas',\n", " 'value': '0.554',\n", " 'description': 'Slot (Unload, Storage, Regas)'},\n", " 'basic-slot-berth-unload-storage-regas': {'type': 'basic-slot-berth-unload-storage-regas',\n", " 'value': '0.0',\n", " 'description': 'Slot (Berth, Unload, Storage, Regas)'},\n", " 'additional-storage': {'type': 'additional-storage',\n", " 'value': '0.0',\n", " 'description': 'Additional Storage'},\n", " 'additional-send-out': {'type': 'additional-send-out',\n", " 'value': '0.0',\n", " 'description': 'Additional Send Out'},\n", " 'fuel-gas-losses-gas-in-kind': {'type': 'fuel-gas-losses-gas-in-kind',\n", " 'value': '0.192',\n", " 'description': 'Fuel Gas Losses (Gas in Kind)'},\n", " 'entry-capacity': {'type': 'entry-capacity',\n", " 'value': '0.326',\n", " 'description': 'Entry Capacity'},\n", " 'commodity-charge': {'type': 'commodity-charge',\n", " 'value': '0.0',\n", " 'description': 'Commodity Charge'}}}}],\n", " 'assumptions': {'vesselSizeCbm': 174000, 'dischargeVolumeMmbtu': 3814333}}}}" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# checking raw data structure\n", "historical[0]" ] }, { "cell_type": "markdown", "id": "ce646a00", "metadata": {}, "source": [ "### Storing as a DataFrame\n", "We can reuse our 'organise_dataframe' function to parse the content into a dataframe" ] }, { "cell_type": "code", "execution_count": 12, "id": "9710fbae", "metadata": {}, "outputs": [], "source": [ "# running function\n", "hist_df = organise_dataframe(historical)" ] }, { "cell_type": "code", "execution_count": 13, "id": "44cf84b4", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Release DateTerminalMonthVessel SizeTotal $/MMBtuBasic Slot (Berth)Basic Slot (Unload/Stor/Regas)Basic Slot (B/U/S/R)Additional StorageAdditional SendoutGas in KindEntry CapacityCommodity Charge
02024-10-17Montoir2024-11-011600000.3670.0280.1760.000.00.00.0620.1010.0
12024-10-17Montoir2024-12-011600000.3680.0280.1760.000.00.00.0630.1010.0
22024-10-17Montoir2025-01-011600000.3690.0280.1760.000.00.00.0640.1010.0
32024-10-17Montoir2025-02-011600000.3690.0280.1760.000.00.00.0640.1010.0
42024-10-17Montoir2025-03-011600000.3690.0280.1760.000.00.00.0640.1010.0
..........................................
13692024-10-15Dunkerque2025-06-011740000.7140.0000.0000.610.00.00.0000.1040.0
13702024-10-15Dunkerque2025-07-011740000.7140.0000.0000.610.00.00.0000.1040.0
13712024-10-15Dunkerque2025-08-011740000.7140.0000.0000.610.00.00.0000.1040.0
13722024-10-15Dunkerque2025-09-011740000.7140.0000.0000.610.00.00.0000.1040.0
13732024-10-15Dunkerque2025-10-011740000.7140.0000.0000.610.00.00.0000.1040.0
\n", "

1374 rows × 13 columns

\n", "
" ], "text/plain": [ " Release Date Terminal Month Vessel Size Total $/MMBtu \\\n", "0 2024-10-17 Montoir 2024-11-01 160000 0.367 \n", "1 2024-10-17 Montoir 2024-12-01 160000 0.368 \n", "2 2024-10-17 Montoir 2025-01-01 160000 0.369 \n", "3 2024-10-17 Montoir 2025-02-01 160000 0.369 \n", "4 2024-10-17 Montoir 2025-03-01 160000 0.369 \n", "... ... ... ... ... ... \n", "1369 2024-10-15 Dunkerque 2025-06-01 174000 0.714 \n", "1370 2024-10-15 Dunkerque 2025-07-01 174000 0.714 \n", "1371 2024-10-15 Dunkerque 2025-08-01 174000 0.714 \n", "1372 2024-10-15 Dunkerque 2025-09-01 174000 0.714 \n", "1373 2024-10-15 Dunkerque 2025-10-01 174000 0.714 \n", "\n", " Basic Slot (Berth) Basic Slot (Unload/Stor/Regas) \\\n", "0 0.028 0.176 \n", "1 0.028 0.176 \n", "2 0.028 0.176 \n", "3 0.028 0.176 \n", "4 0.028 0.176 \n", "... ... ... \n", "1369 0.000 0.000 \n", "1370 0.000 0.000 \n", "1371 0.000 0.000 \n", "1372 0.000 0.000 \n", "1373 0.000 0.000 \n", "\n", " Basic Slot (B/U/S/R) Additional Storage Additional Sendout \\\n", "0 0.00 0.0 0.0 \n", "1 0.00 0.0 0.0 \n", "2 0.00 0.0 0.0 \n", "3 0.00 0.0 0.0 \n", "4 0.00 0.0 0.0 \n", "... ... ... ... \n", "1369 0.61 0.0 0.0 \n", "1370 0.61 0.0 0.0 \n", "1371 0.61 0.0 0.0 \n", "1372 0.61 0.0 0.0 \n", "1373 0.61 0.0 0.0 \n", "\n", " Gas in Kind Entry Capacity Commodity Charge \n", "0 0.062 0.101 0.0 \n", "1 0.063 0.101 0.0 \n", "2 0.064 0.101 0.0 \n", "3 0.064 0.101 0.0 \n", "4 0.064 0.101 0.0 \n", "... ... ... ... \n", "1369 0.000 0.104 0.0 \n", "1370 0.000 0.104 0.0 \n", "1371 0.000 0.104 0.0 \n", "1372 0.000 0.104 0.0 \n", "1373 0.000 0.104 0.0 \n", "\n", "[1374 rows x 13 columns]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist_df" ] }, { "cell_type": "markdown", "id": "4aa81e2c", "metadata": {}, "source": [ "## N.B. Historical Data Limits\n", "\n", "Currently, a maximum of 30 historical datasets can be called at one time due to the size of the data file. \n", "\n", "If more data points are required, the below code can be used. It calls 30 historical datasets at a time, but utilises the 'offset' parameter to call datasets further back in the historical database. To call more history, increase the 'n30_offset' parameter in the first line of the code. The 'n30_offset' parameter describes the number of historical data requests to be executed." ] }, { "cell_type": "code", "execution_count": 14, "id": "9fae6c01", "metadata": {}, "outputs": [], "source": [ "def loop_historical_data(token,n30_offset):\n", " # initalise first set of historical data and initialising dataframe\n", " historical = fetch_price_releases(access_token=token,limit=30)\n", " hist_df = organise_dataframe(historical)\n", "\n", " # Looping through earlier historical data and adding to the historical dataframe\n", " for i in range(1,n30_offset+1):\n", " historical = fetch_price_releases(access_token=token,limit=30,offset=i*30)\n", " hist_df = pd.concat([hist_df,organise_dataframe(historical)])\n", "\n", " return hist_df" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.6" } }, "nbformat": 4, "nbformat_minor": 5 }