{ "cells": [ { "cell_type": "markdown", "id": "25c8380d", "metadata": {}, "source": [ "# Python API Example - Historical FFA Price Release Data Import and Storage\n", "## Importing FFA Price Data into a Pandas DataFrame\n", "\n", "Here we import Spark FFA price release data from the Spark Python API. \n", "\n", "We then store them as local variables so that they can be used for analysis.\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", "- Once comfortable with the process, you can change the variables that are called to produce your own custom analysis products. (Section 2 onwards in this guide).\n", "\n", "__N.B. This guide is just for FFA Price release data. If you're looking for other API data products (such as Freight routes or Netbacks), please refer to their according code example files.__ " ] }, { "cell_type": "markdown", "id": "d2c9b590", "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:\n", "https://www.sparkcommodities.com/api/request/contracts.html" ] }, { "cell_type": "markdown", "id": "c5716130", "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": "fcb94776", "metadata": {}, "outputs": [], "source": [ "# importing packages for calling the API\n", "import json\n", "import os\n", "import sys\n", "from base64 import b64encode\n", "from pprint import pprint\n", "from urllib.parse import urljoin\n", "from datetime import datetime\n", "import pandas as pd\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": "9a0e42dc", "metadata": {}, "outputs": [], "source": [ "# Defining functions for API request\n", "\n", "\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(client_id, client_secret[:5])\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", " # HTTP POST 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:lng-freight-prices,read:routes\",\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": "691c889f", "metadata": {}, "source": [ "## Defining Fetch Request\n", "\n", "Here is where we define what type of data we want to fetch from the API.\n", "\n", "In my fetch request, I use the URL:\n", "\n", "__uri=\"/v1.0/contracts/\"__\n", "\n", "This is to query contract price data specifically. Other data products (such as shipping route costs) require different URL's in the fetch request (refer to other Python API examples)." ] }, { "cell_type": "code", "execution_count": 3, "id": "7d5fad75", "metadata": {}, "outputs": [], "source": [ "# Defining function for collecting the list of contracts\n", "def list_contracts(access_token):\n", " \"\"\"\n", " Fetch available contracts. Return contract ticker symbols\n", "\n", " # Procedure:\n", "\n", " Do a GET query to /v1.0/contracts/ with a Bearer token authorization HTTP header.\n", " \"\"\"\n", " content = do_api_get_query(uri=\"/v1.0/contracts/\", access_token=access_token)\n", "\n", " print(\">>>> All the contracts you can fetch\")\n", " tickers = []\n", " for contract in content[\"data\"]:\n", " print(contract[\"fullName\"])\n", " tickers.append(contract[\"id\"])\n", "\n", " return tickers" ] }, { "cell_type": "markdown", "id": "fd3171a8", "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. Instructions for downloading your credentials can be found here:\n", "\n", "https://api.sparkcommodities.com/redoc#section/Authentication/Create-an-Oauth2-Client\n", "\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": 4, "id": "602d2492", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ">>>> Found credentials!\n", ">>>> Client_id=875f483b-19de-421a-8e9b-dceff6703e83, client_secret=6cdf8****\n", ">>>> Successfully fetched an access token eyJhb****, valid 604799 seconds.\n", ">>>> All the contracts you can fetch\n", "Spark25F Pacific 160 TFDE\n", "Spark30F Atlantic 160 TFDE\n", "Spark25S Pacific\n", "Spark25Fo Pacific\n", "Spark25FFA Pacific\n", "Spark25FFAYearly Pacific\n", "Spark30S Atlantic\n", "Spark30Fo Atlantic\n", "Spark30FFA Atlantic\n", "Spark30FFAYearly Atlantic\n", "SparkNWE DES 1H\n", "SparkNWE-B 1H\n", "SparkNWE DES 2H\n", "SparkNWE-B 2H\n", "SparkNWE-B F\n", "SparkNWE DES F\n", "SparkNWE-B Fo\n", "SparkNWE DES Fo\n", "SparkNWE-DES-Fin Monthly\n", "SparkNWE-Fin Monthly\n", "SparkSWE-B F\n", "SparkSWE DES F\n", "SparkSWE-B Fo\n", "SparkSWE DES Fo\n", "SparkSWE-DES-Fin Monthly\n", "SparkSWE-Fin Monthly\n", "['spark25f', 'spark30f', 'spark25s', 'spark25fo', 'spark25ffa-monthly', 'spark25ffa-yearly', 'spark30s', 'spark30fo', 'spark30ffa-monthly', 'spark30ffa-yearly', 'sparknwe-1h', 'sparknwe-b-1h', 'sparknwe-2h', 'sparknwe-b-2h', 'sparknwe-b-f', 'sparknwe-f', 'sparknwe-b-fo', 'sparknwe-fo', 'sparknwe-des-fin-monthly', 'sparknwe-fin-monthly', 'sparkswe-b-f', 'sparkswe-f', 'sparkswe-b-fo', 'sparkswe-fo', 'sparkswe-des-fin-monthly', 'sparkswe-fin-monthly']\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)\n", "\n", "# Fetch all contracts:\n", "tickers = list_contracts(access_token)\n", "\n", "\n", "print(tickers)" ] }, { "cell_type": "markdown", "id": "fc9cf152", "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", "__/v1.0/contracts/{contract_ticker_symbol}/price-releases/latest/__\n", "\n", "'tickers' refers to the printed list above, so we can see that:\n", "- 'tickers[4]' refers to 'Spark25FFA' \n", "- 'tickers[8]' refers to 'Spark30FFA' \n", "\n", "We then save the entire dataset as a local variable called 'my_dict'.\n", "\n", "__N.B. The first two tickers, 'spark25f' and 'spark30f', are deprecated. Historical data for these tickers are available up until 2022-04-01 (yyyy-mm-dd)__\n", "\n", "For more information on API updates, please refer to the API documentation:\n", "\n", "https://api.sparkcommodities.com/redoc#section/API-Changelog" ] }, { "cell_type": "code", "execution_count": 5, "id": "71fc33eb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ">>>> Get latest price release for spark25ffa-monthly\n", "release date = 2024-10-02\n" ] } ], "source": [ "## Defining the function\n", "\n", "\n", "def fetch_latest_price_releases(access_token, ticker):\n", " \"\"\"\n", " For a contract, fetch then display the latest price release\n", "\n", " # Procedure:\n", "\n", " Do GET queries to /v1.0/contracts/{contract_ticker_symbol}/price-releases/latest/\n", " with a Bearer token authorization HTTP header.\n", " \"\"\"\n", " content = do_api_get_query(\n", " uri=\"/v1.0/contracts/{}/price-releases/latest/\".format(ticker),\n", " access_token=access_token,\n", " )\n", "\n", " release_date = content[\"data\"][\"releaseDate\"]\n", "\n", " print(\">>>> Get latest price release for {}\".format(ticker))\n", " print(\"release date =\", release_date)\n", "\n", " data_points = content[\"data\"][\"data\"][0][\"dataPoints\"]\n", "\n", " return content[\"data\"]\n", "\n", "\n", "## Calling that function and storing the output\n", "\n", "# Here we store the latest Spark25FFA release called from the API\n", "\n", "my_dict = fetch_latest_price_releases(access_token, tickers[4])" ] }, { "cell_type": "code", "execution_count": 6, "id": "bf8c15c1", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'id': 20241002,\n", " 'contractId': 'spark25ffa-monthly',\n", " 'releaseDate': '2024-10-02',\n", " 'previousPriceRelease': {'id': 20241001, 'releaseDate': '2024-10-01'},\n", " 'nextPriceRelease': {'id': 20241003, 'releaseDate': '2024-10-03'},\n", " 'assessmentWindowClosedAt': '2024-10-02T16:00:00Z',\n", " 'assessmentWindowOpenedAt': '2024-10-02T14:30:00Z',\n", " 'data': [{'revisionNumber': 0,\n", " 'revisionPublishedAt': '2024-10-02T15:44:28.115351Z',\n", " 'numberOfAssessors': None,\n", " 'dataPoints': [{'index': 0,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-10-01',\n", " 'endAt': '2024-10-31',\n", " 'name': 'M+0',\n", " 'lastAssessmentDate': '2024-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '76500',\n", " 'sparkMin': '68000',\n", " 'sparkMax': '82000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.87',\n", " 'sparkMin': '0.82',\n", " 'sparkMax': '0.91',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 1,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-11-01',\n", " 'endAt': '2024-11-30',\n", " 'name': 'M+1',\n", " 'lastAssessmentDate': '2024-11-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '95750',\n", " 'sparkMin': '90000',\n", " 'sparkMax': '98000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.02',\n", " 'sparkMin': '0.98',\n", " 'sparkMax': '1.03',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 2,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-12-01',\n", " 'endAt': '2024-12-31',\n", " 'name': 'M+2',\n", " 'lastAssessmentDate': '2024-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '96500',\n", " 'sparkMin': '93000',\n", " 'sparkMax': '100000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.03',\n", " 'sparkMin': '1.00',\n", " 'sparkMax': '1.05',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 3,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-01-01',\n", " 'endAt': '2025-01-31',\n", " 'name': 'M+3',\n", " 'lastAssessmentDate': '2025-01-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '72000',\n", " 'sparkMin': '68000',\n", " 'sparkMax': '75000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.87',\n", " 'sparkMin': '0.84',\n", " 'sparkMax': '0.89',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 4,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-02-01',\n", " 'endAt': '2025-02-28',\n", " 'name': 'M+4',\n", " 'lastAssessmentDate': '2025-02-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '51000',\n", " 'sparkMin': '48000',\n", " 'sparkMax': '54000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.71',\n", " 'sparkMin': '0.69',\n", " 'sparkMax': '0.73',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 5,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-03-01',\n", " 'endAt': '2025-03-31',\n", " 'name': 'M+5',\n", " 'lastAssessmentDate': '2025-03-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '42000',\n", " 'sparkMin': '40000',\n", " 'sparkMax': '46000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.63',\n", " 'sparkMax': '0.67',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 6,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-04-01',\n", " 'endAt': '2025-04-30',\n", " 'name': 'M+6',\n", " 'lastAssessmentDate': '2025-04-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '40250',\n", " 'sparkMin': '37000',\n", " 'sparkMax': '45000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.63',\n", " 'sparkMin': '0.61',\n", " 'sparkMax': '0.66',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 7,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-05-01',\n", " 'endAt': '2025-05-31',\n", " 'name': 'M+7',\n", " 'lastAssessmentDate': '2025-05-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '41500',\n", " 'sparkMin': '39000',\n", " 'sparkMax': '44000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.63',\n", " 'sparkMax': '0.66',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 8,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-06-01',\n", " 'endAt': '2025-06-30',\n", " 'name': 'M+8',\n", " 'lastAssessmentDate': '2025-06-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '40750',\n", " 'sparkMin': '37000',\n", " 'sparkMax': '43000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.61',\n", " 'sparkMax': '0.65',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 9,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-07-01',\n", " 'endAt': '2025-07-31',\n", " 'name': 'M+9',\n", " 'lastAssessmentDate': '2025-07-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '43000',\n", " 'sparkMin': '38000',\n", " 'sparkMax': '50000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.66',\n", " 'sparkMin': '0.62',\n", " 'sparkMax': '0.70',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 10,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-08-01',\n", " 'endAt': '2025-08-31',\n", " 'name': 'M+10',\n", " 'lastAssessmentDate': '2025-08-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '62000',\n", " 'sparkMin': '54000',\n", " 'sparkMax': '75000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.78',\n", " 'sparkMin': '0.73',\n", " 'sparkMax': '0.87',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 11,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-09-01',\n", " 'endAt': '2025-09-30',\n", " 'name': 'M+11',\n", " 'lastAssessmentDate': '2025-09-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '76750',\n", " 'sparkMin': '66000',\n", " 'sparkMax': '90000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.88',\n", " 'sparkMin': '0.81',\n", " 'sparkMax': '0.97',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 12,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-10-01',\n", " 'endAt': '2025-10-31',\n", " 'name': 'M+12',\n", " 'lastAssessmentDate': '2025-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '97500',\n", " 'sparkMin': '85000',\n", " 'sparkMax': '112000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.03',\n", " 'sparkMin': '0.94',\n", " 'sparkMax': '1.12',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 13,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-11-01',\n", " 'endAt': '2025-11-30',\n", " 'name': 'M+13',\n", " 'lastAssessmentDate': '2025-11-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '119250',\n", " 'sparkMin': '105000',\n", " 'sparkMax': '133000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.18',\n", " 'sparkMin': '1.08',\n", " 'sparkMax': '1.27',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 14,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-12-01',\n", " 'endAt': '2025-12-31',\n", " 'name': 'M+14',\n", " 'lastAssessmentDate': '2025-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '126000',\n", " 'sparkMin': '116000',\n", " 'sparkMax': '140000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.22',\n", " 'sparkMin': '1.16',\n", " 'sparkMax': '1.31',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]}],\n", " 'aggregatedData': {'balanceOfMonth': {'deliveryPeriod': {'type': 'days',\n", " 'startAt': '2024-10-03',\n", " 'endAt': '2024-10-31',\n", " 'name': 'Balance of month',\n", " 'lastAssessmentDate': None},\n", " 'prices': {'userPerDay': '77833'}}}}],\n", " 'publishedAt': '2024-10-02T15:44:28.115351Z',\n", " 'meta': []}" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Shows how the raw output is formatted\n", "my_dict" ] }, { "cell_type": "markdown", "id": "a0e0e030", "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", "__/v1.0/contracts/{contract_ticker_symbol}/price-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", "\n", "- 'tickers': which ticker do you want to call.\n", " - We define the variable 'my_ticker' after the function definition, and set this to 'tickers[4]' which corresponds to Spark25FFA\n", " - Alter this variable to whatever price product you need.\n", "\n", "- 'limit': this allows you to control how many datapoints you want to call. Here we use 'limit=10', which means we have called the last 10 datapoints (the Spark25FFA data for the last 1000 business days).\n", " - Alter this limit to however many datapoints you need.\n", " - If you ask for more datapoints than is available, the API will just retrieve all the data available (as seen below)\n", "\n", "\n", "We save the output as a local variable called 'my_dict_hist'" ] }, { "cell_type": "code", "execution_count": 7, "id": "3302a85f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ">>>> Get price releases for spark25ffa-monthly\n", "- release date = 2024-10-02\n", "- release date = 2024-10-01\n", "- release date = 2024-09-30\n", "- release date = 2024-09-27\n", "- release date = 2024-09-26\n", "- release date = 2024-09-25\n", "- release date = 2024-09-24\n", "- release date = 2024-09-23\n", "- release date = 2024-09-20\n", "- release date = 2024-09-19\n" ] } ], "source": [ "def fetch_historical_price_releases(access_token, ticker, limit, offset=None):\n", " \"\"\"\n", " For a selected contract, this endpoint returns all the Price Releases you can\n", " access according to your current subscription, ordered by release date descending.\n", "\n", " **Note**: Unlimited access to historical data and full forward curves is only\n", " available to those with Premium access. Get in touch to find out more.\n", "\n", " **Params**\n", "\n", " limit: optional integer value to set an upper limit on the number of price\n", " releases returned by the endpoint.\n", "\n", " offset: optional integer value to set from where to start returning data.\n", " Default is 0.\n", "\n", " # Procedure:\n", "\n", " Do GET queries to /v1.0/contracts/{contract_ticker_symbol}/price-releases/\n", " with a Bearer token authorization HTTP header.\n", " \"\"\"\n", " print(\">>>> Get price releases for {}\".format(ticker))\n", "\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=\"/v1.0/contracts/{}/price-releases/{}\".format(ticker, query_params),\n", " access_token=access_token,\n", " )\n", "\n", " my_dict = content[\"data\"]\n", "\n", " for release in content[\"data\"]:\n", " release_date = release[\"releaseDate\"]\n", "\n", " print(\"- release date =\", release_date)\n", "\n", " data_points = release[\"data\"][0][\"dataPoints\"]\n", "\n", " return my_dict\n", "\n", "\n", "### Define which price product you want to retrieve\n", "my_ticker = tickers[4]\n", "\n", "\n", "# Call the function, and set limit=1000 to call 1000 datapoints\n", "\n", "if __name__ == \"__main__\":\n", " my_dict_hist = fetch_historical_price_releases(access_token, my_ticker, limit=10)" ] }, { "cell_type": "code", "execution_count": 13, "id": "08f1141b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[{'id': 20241002,\n", " 'contractId': 'spark25ffa-monthly',\n", " 'releaseDate': '2024-10-02',\n", " 'previousPriceRelease': {'id': 20241001, 'releaseDate': '2024-10-01'},\n", " 'nextPriceRelease': {'id': 20241003, 'releaseDate': '2024-10-03'},\n", " 'assessmentWindowClosedAt': '2024-10-02T16:00:00Z',\n", " 'assessmentWindowOpenedAt': '2024-10-02T14:30:00Z',\n", " 'data': [{'revisionNumber': 0,\n", " 'revisionPublishedAt': '2024-10-02T15:44:28.115351Z',\n", " 'numberOfAssessors': None,\n", " 'dataPoints': [{'index': 0,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-10-01',\n", " 'endAt': '2024-10-31',\n", " 'name': 'M+0',\n", " 'lastAssessmentDate': '2024-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '76500',\n", " 'sparkMin': '68000',\n", " 'sparkMax': '82000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.87',\n", " 'sparkMin': '0.82',\n", " 'sparkMax': '0.91',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 1,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-11-01',\n", " 'endAt': '2024-11-30',\n", " 'name': 'M+1',\n", " 'lastAssessmentDate': '2024-11-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '95750',\n", " 'sparkMin': '90000',\n", " 'sparkMax': '98000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.02',\n", " 'sparkMin': '0.98',\n", " 'sparkMax': '1.03',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 2,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-12-01',\n", " 'endAt': '2024-12-31',\n", " 'name': 'M+2',\n", " 'lastAssessmentDate': '2024-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '96500',\n", " 'sparkMin': '93000',\n", " 'sparkMax': '100000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.03',\n", " 'sparkMin': '1.00',\n", " 'sparkMax': '1.05',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 3,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-01-01',\n", " 'endAt': '2025-01-31',\n", " 'name': 'M+3',\n", " 'lastAssessmentDate': '2025-01-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '72000',\n", " 'sparkMin': '68000',\n", " 'sparkMax': '75000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.87',\n", " 'sparkMin': '0.84',\n", " 'sparkMax': '0.89',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 4,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-02-01',\n", " 'endAt': '2025-02-28',\n", " 'name': 'M+4',\n", " 'lastAssessmentDate': '2025-02-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '51000',\n", " 'sparkMin': '48000',\n", " 'sparkMax': '54000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.71',\n", " 'sparkMin': '0.69',\n", " 'sparkMax': '0.73',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 5,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-03-01',\n", " 'endAt': '2025-03-31',\n", " 'name': 'M+5',\n", " 'lastAssessmentDate': '2025-03-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '42000',\n", " 'sparkMin': '40000',\n", " 'sparkMax': '46000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.63',\n", " 'sparkMax': '0.67',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 6,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-04-01',\n", " 'endAt': '2025-04-30',\n", " 'name': 'M+6',\n", " 'lastAssessmentDate': '2025-04-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '40250',\n", " 'sparkMin': '37000',\n", " 'sparkMax': '45000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.63',\n", " 'sparkMin': '0.61',\n", " 'sparkMax': '0.66',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 7,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-05-01',\n", " 'endAt': '2025-05-31',\n", " 'name': 'M+7',\n", " 'lastAssessmentDate': '2025-05-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '41500',\n", " 'sparkMin': '39000',\n", " 'sparkMax': '44000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.63',\n", " 'sparkMax': '0.66',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 8,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-06-01',\n", " 'endAt': '2025-06-30',\n", " 'name': 'M+8',\n", " 'lastAssessmentDate': '2025-06-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '40750',\n", " 'sparkMin': '37000',\n", " 'sparkMax': '43000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.61',\n", " 'sparkMax': '0.65',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 9,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-07-01',\n", " 'endAt': '2025-07-31',\n", " 'name': 'M+9',\n", " 'lastAssessmentDate': '2025-07-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '43000',\n", " 'sparkMin': '38000',\n", " 'sparkMax': '50000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.66',\n", " 'sparkMin': '0.62',\n", " 'sparkMax': '0.70',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 10,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-08-01',\n", " 'endAt': '2025-08-31',\n", " 'name': 'M+10',\n", " 'lastAssessmentDate': '2025-08-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '62000',\n", " 'sparkMin': '54000',\n", " 'sparkMax': '75000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.78',\n", " 'sparkMin': '0.73',\n", " 'sparkMax': '0.87',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 11,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-09-01',\n", " 'endAt': '2025-09-30',\n", " 'name': 'M+11',\n", " 'lastAssessmentDate': '2025-09-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '76750',\n", " 'sparkMin': '66000',\n", " 'sparkMax': '90000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.88',\n", " 'sparkMin': '0.81',\n", " 'sparkMax': '0.97',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 12,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-10-01',\n", " 'endAt': '2025-10-31',\n", " 'name': 'M+12',\n", " 'lastAssessmentDate': '2025-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '97500',\n", " 'sparkMin': '85000',\n", " 'sparkMax': '112000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.03',\n", " 'sparkMin': '0.94',\n", " 'sparkMax': '1.12',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 13,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-11-01',\n", " 'endAt': '2025-11-30',\n", " 'name': 'M+13',\n", " 'lastAssessmentDate': '2025-11-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '119250',\n", " 'sparkMin': '105000',\n", " 'sparkMax': '133000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.18',\n", " 'sparkMin': '1.08',\n", " 'sparkMax': '1.27',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 14,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-12-01',\n", " 'endAt': '2025-12-31',\n", " 'name': 'M+14',\n", " 'lastAssessmentDate': '2025-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '126000',\n", " 'sparkMin': '116000',\n", " 'sparkMax': '140000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.22',\n", " 'sparkMin': '1.16',\n", " 'sparkMax': '1.31',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]}],\n", " 'aggregatedData': {'balanceOfMonth': {'deliveryPeriod': {'type': 'days',\n", " 'startAt': '2024-10-03',\n", " 'endAt': '2024-10-31',\n", " 'name': 'Balance of month',\n", " 'lastAssessmentDate': None},\n", " 'prices': {'userPerDay': '77833'}}}}],\n", " 'publishedAt': '2024-10-02T15:44:28.115351Z',\n", " 'meta': []},\n", " {'id': 20241001,\n", " 'contractId': 'spark25ffa-monthly',\n", " 'releaseDate': '2024-10-01',\n", " 'previousPriceRelease': {'id': 20240930, 'releaseDate': '2024-09-30'},\n", " 'nextPriceRelease': {'id': 20241002, 'releaseDate': '2024-10-02'},\n", " 'assessmentWindowClosedAt': '2024-10-01T15:30:00Z',\n", " 'assessmentWindowOpenedAt': '2024-10-01T14:30:00Z',\n", " 'data': [{'revisionNumber': 0,\n", " 'revisionPublishedAt': '2024-10-01T15:36:40.116079Z',\n", " 'numberOfAssessors': None,\n", " 'dataPoints': [{'index': 0,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-10-01',\n", " 'endAt': '2024-10-31',\n", " 'name': 'M+0',\n", " 'lastAssessmentDate': '2024-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '79000',\n", " 'sparkMin': '72000',\n", " 'sparkMax': '84500',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.89',\n", " 'sparkMin': '0.85',\n", " 'sparkMax': '0.93',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 1,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-11-01',\n", " 'endAt': '2024-11-30',\n", " 'name': 'M+1',\n", " 'lastAssessmentDate': '2024-11-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '98750',\n", " 'sparkMin': '90000',\n", " 'sparkMax': '110000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.04',\n", " 'sparkMin': '0.98',\n", " 'sparkMax': '1.11',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 2,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-12-01',\n", " 'endAt': '2024-12-31',\n", " 'name': 'M+2',\n", " 'lastAssessmentDate': '2024-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '99750',\n", " 'sparkMin': '95000',\n", " 'sparkMax': '110000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.05',\n", " 'sparkMin': '1.02',\n", " 'sparkMax': '1.12',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 3,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-01-01',\n", " 'endAt': '2025-01-31',\n", " 'name': 'M+3',\n", " 'lastAssessmentDate': '2025-01-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '72500',\n", " 'sparkMin': '68000',\n", " 'sparkMax': '75000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.87',\n", " 'sparkMin': '0.84',\n", " 'sparkMax': '0.89',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 4,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-02-01',\n", " 'endAt': '2025-02-28',\n", " 'name': 'M+4',\n", " 'lastAssessmentDate': '2025-02-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '51500',\n", " 'sparkMin': '48000',\n", " 'sparkMax': '54000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.72',\n", " 'sparkMin': '0.69',\n", " 'sparkMax': '0.73',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 5,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-03-01',\n", " 'endAt': '2025-03-31',\n", " 'name': 'M+5',\n", " 'lastAssessmentDate': '2025-03-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '42250',\n", " 'sparkMin': '40000',\n", " 'sparkMax': '46000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.65',\n", " 'sparkMin': '0.63',\n", " 'sparkMax': '0.67',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 6,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-04-01',\n", " 'endAt': '2025-04-30',\n", " 'name': 'M+6',\n", " 'lastAssessmentDate': '2025-04-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '41500',\n", " 'sparkMin': '37000',\n", " 'sparkMax': '45000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.61',\n", " 'sparkMax': '0.66',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 7,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-05-01',\n", " 'endAt': '2025-05-31',\n", " 'name': 'M+7',\n", " 'lastAssessmentDate': '2025-05-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '41500',\n", " 'sparkMin': '40000',\n", " 'sparkMax': '44000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.63',\n", " 'sparkMax': '0.66',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 8,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-06-01',\n", " 'endAt': '2025-06-30',\n", " 'name': 'M+8',\n", " 'lastAssessmentDate': '2025-06-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '40750',\n", " 'sparkMin': '37000',\n", " 'sparkMax': '43000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.61',\n", " 'sparkMax': '0.65',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 9,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-07-01',\n", " 'endAt': '2025-07-31',\n", " 'name': 'M+9',\n", " 'lastAssessmentDate': '2025-07-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '43000',\n", " 'sparkMin': '38000',\n", " 'sparkMax': '50000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.66',\n", " 'sparkMin': '0.62',\n", " 'sparkMax': '0.70',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 10,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-08-01',\n", " 'endAt': '2025-08-31',\n", " 'name': 'M+10',\n", " 'lastAssessmentDate': '2025-08-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '62000',\n", " 'sparkMin': '54000',\n", " 'sparkMax': '75000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.78',\n", " 'sparkMin': '0.73',\n", " 'sparkMax': '0.87',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 11,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-09-01',\n", " 'endAt': '2025-09-30',\n", " 'name': 'M+11',\n", " 'lastAssessmentDate': '2025-09-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '76750',\n", " 'sparkMin': '66000',\n", " 'sparkMax': '90000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.88',\n", " 'sparkMin': '0.81',\n", " 'sparkMax': '0.97',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 12,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-10-01',\n", " 'endAt': '2025-10-31',\n", " 'name': 'M+12',\n", " 'lastAssessmentDate': '2025-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '97500',\n", " 'sparkMin': '85000',\n", " 'sparkMax': '112000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.02',\n", " 'sparkMin': '0.94',\n", " 'sparkMax': '1.12',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 13,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-11-01',\n", " 'endAt': '2025-11-30',\n", " 'name': 'M+13',\n", " 'lastAssessmentDate': '2025-11-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '119250',\n", " 'sparkMin': '105000',\n", " 'sparkMax': '133000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.17',\n", " 'sparkMin': '1.08',\n", " 'sparkMax': '1.26',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 14,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-12-01',\n", " 'endAt': '2025-12-31',\n", " 'name': 'M+14',\n", " 'lastAssessmentDate': '2025-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '126250',\n", " 'sparkMin': '116000',\n", " 'sparkMax': '140000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.22',\n", " 'sparkMin': '1.16',\n", " 'sparkMax': '1.31',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]}],\n", " 'aggregatedData': {'balanceOfMonth': {'deliveryPeriod': {'type': 'days',\n", " 'startAt': '2024-10-02',\n", " 'endAt': '2024-10-31',\n", " 'name': 'Balance of month',\n", " 'lastAssessmentDate': None},\n", " 'prices': {'userPerDay': '79727'}}}}],\n", " 'publishedAt': '2024-10-01T15:36:40.116079Z',\n", " 'meta': []},\n", " {'id': 20240930,\n", " 'contractId': 'spark25ffa-monthly',\n", " 'releaseDate': '2024-09-30',\n", " 'previousPriceRelease': {'id': 20240927, 'releaseDate': '2024-09-27'},\n", " 'nextPriceRelease': {'id': 20241001, 'releaseDate': '2024-10-01'},\n", " 'assessmentWindowClosedAt': '2024-09-30T16:00:00Z',\n", " 'assessmentWindowOpenedAt': '2024-09-30T14:30:00Z',\n", " 'data': [{'revisionNumber': 0,\n", " 'revisionPublishedAt': '2024-09-30T15:41:08.989386Z',\n", " 'numberOfAssessors': None,\n", " 'dataPoints': [{'index': 0,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-10-01',\n", " 'endAt': '2024-10-31',\n", " 'name': 'M+0',\n", " 'lastAssessmentDate': '2024-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '82750',\n", " 'sparkMin': '76000',\n", " 'sparkMax': '87500',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.92',\n", " 'sparkMin': '0.87',\n", " 'sparkMax': '0.95',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 1,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-11-01',\n", " 'endAt': '2024-11-30',\n", " 'name': 'M+1',\n", " 'lastAssessmentDate': '2024-11-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '109500',\n", " 'sparkMin': '105000',\n", " 'sparkMax': '115000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.11',\n", " 'sparkMin': '1.08',\n", " 'sparkMax': '1.14',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 2,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-12-01',\n", " 'endAt': '2024-12-31',\n", " 'name': 'M+2',\n", " 'lastAssessmentDate': '2024-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '109250',\n", " 'sparkMin': '99000',\n", " 'sparkMax': '114000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.11',\n", " 'sparkMin': '1.04',\n", " 'sparkMax': '1.14',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 3,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-01-01',\n", " 'endAt': '2025-01-31',\n", " 'name': 'M+3',\n", " 'lastAssessmentDate': '2025-01-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '74750',\n", " 'sparkMin': '68000',\n", " 'sparkMax': '78000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.88',\n", " 'sparkMin': '0.84',\n", " 'sparkMax': '0.90',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 4,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-02-01',\n", " 'endAt': '2025-02-28',\n", " 'name': 'M+4',\n", " 'lastAssessmentDate': '2025-02-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '52250',\n", " 'sparkMin': '50000',\n", " 'sparkMax': '54000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.72',\n", " 'sparkMin': '0.71',\n", " 'sparkMax': '0.73',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 5,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-03-01',\n", " 'endAt': '2025-03-31',\n", " 'name': 'M+5',\n", " 'lastAssessmentDate': '2025-03-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '42750',\n", " 'sparkMin': '40000',\n", " 'sparkMax': '46000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.65',\n", " 'sparkMin': '0.63',\n", " 'sparkMax': '0.67',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 6,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-04-01',\n", " 'endAt': '2025-04-30',\n", " 'name': 'M+6',\n", " 'lastAssessmentDate': '2025-04-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '41750',\n", " 'sparkMin': '37000',\n", " 'sparkMax': '45000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.61',\n", " 'sparkMax': '0.66',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 7,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-05-01',\n", " 'endAt': '2025-05-31',\n", " 'name': 'M+7',\n", " 'lastAssessmentDate': '2025-05-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '41750',\n", " 'sparkMin': '40000',\n", " 'sparkMax': '44000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.63',\n", " 'sparkMax': '0.66',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 8,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-06-01',\n", " 'endAt': '2025-06-30',\n", " 'name': 'M+8',\n", " 'lastAssessmentDate': '2025-06-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '40750',\n", " 'sparkMin': '37000',\n", " 'sparkMax': '43000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.61',\n", " 'sparkMax': '0.65',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 9,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-07-01',\n", " 'endAt': '2025-07-31',\n", " 'name': 'M+9',\n", " 'lastAssessmentDate': '2025-07-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '43000',\n", " 'sparkMin': '38000',\n", " 'sparkMax': '50000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.65',\n", " 'sparkMin': '0.62',\n", " 'sparkMax': '0.70',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 10,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-08-01',\n", " 'endAt': '2025-08-31',\n", " 'name': 'M+10',\n", " 'lastAssessmentDate': '2025-08-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '62000',\n", " 'sparkMin': '54000',\n", " 'sparkMax': '75000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.78',\n", " 'sparkMin': '0.73',\n", " 'sparkMax': '0.86',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 11,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-09-01',\n", " 'endAt': '2025-09-30',\n", " 'name': 'M+11',\n", " 'lastAssessmentDate': '2025-09-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '76750',\n", " 'sparkMin': '66000',\n", " 'sparkMax': '90000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.88',\n", " 'sparkMin': '0.81',\n", " 'sparkMax': '0.96',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 12,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-10-01',\n", " 'endAt': '2025-10-31',\n", " 'name': 'M+12',\n", " 'lastAssessmentDate': '2025-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '97500',\n", " 'sparkMin': '85000',\n", " 'sparkMax': '112000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.02',\n", " 'sparkMin': '0.94',\n", " 'sparkMax': '1.12',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 13,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-11-01',\n", " 'endAt': '2025-11-30',\n", " 'name': 'M+13',\n", " 'lastAssessmentDate': '2025-11-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '119250',\n", " 'sparkMin': '105000',\n", " 'sparkMax': '133000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.17',\n", " 'sparkMin': '1.08',\n", " 'sparkMax': '1.26',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 14,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-12-01',\n", " 'endAt': '2025-12-31',\n", " 'name': 'M+14',\n", " 'lastAssessmentDate': '2025-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '127000',\n", " 'sparkMin': '116000',\n", " 'sparkMax': '140000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.22',\n", " 'sparkMin': '1.15',\n", " 'sparkMax': '1.31',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]}],\n", " 'aggregatedData': {'balanceOfMonth': {'deliveryPeriod': {'type': 'days',\n", " 'startAt': '2024-10-01',\n", " 'endAt': '2024-10-31',\n", " 'name': 'Balance of month',\n", " 'lastAssessmentDate': None},\n", " 'prices': {'userPerDay': '82750'}}}}],\n", " 'publishedAt': '2024-09-30T15:41:08.989386Z',\n", " 'meta': []},\n", " {'id': 20240927,\n", " 'contractId': 'spark25ffa-monthly',\n", " 'releaseDate': '2024-09-27',\n", " 'previousPriceRelease': {'id': 20240926, 'releaseDate': '2024-09-26'},\n", " 'nextPriceRelease': {'id': 20240930, 'releaseDate': '2024-09-30'},\n", " 'assessmentWindowClosedAt': '2024-09-27T15:30:00Z',\n", " 'assessmentWindowOpenedAt': '2024-09-27T14:30:00Z',\n", " 'data': [{'revisionNumber': 0,\n", " 'revisionPublishedAt': '2024-09-27T15:30:43.125544Z',\n", " 'numberOfAssessors': None,\n", " 'dataPoints': [{'index': 0,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-09-01',\n", " 'endAt': '2024-09-30',\n", " 'name': 'M+0',\n", " 'lastAssessmentDate': '2024-09-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '71250',\n", " 'sparkMin': '65000',\n", " 'sparkMax': '74500',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.84',\n", " 'sparkMin': '0.80',\n", " 'sparkMax': '0.86',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 1,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-10-01',\n", " 'endAt': '2024-10-31',\n", " 'name': 'M+1',\n", " 'lastAssessmentDate': '2024-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '84250',\n", " 'sparkMin': '76000',\n", " 'sparkMax': '88000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.93',\n", " 'sparkMin': '0.87',\n", " 'sparkMax': '0.95',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 2,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-11-01',\n", " 'endAt': '2024-11-30',\n", " 'name': 'M+2',\n", " 'lastAssessmentDate': '2024-11-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '111750',\n", " 'sparkMin': '105000',\n", " 'sparkMax': '116000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.12',\n", " 'sparkMin': '1.07',\n", " 'sparkMax': '1.15',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 3,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-12-01',\n", " 'endAt': '2024-12-31',\n", " 'name': 'M+3',\n", " 'lastAssessmentDate': '2024-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '110000',\n", " 'sparkMin': '99000',\n", " 'sparkMax': '115000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.11',\n", " 'sparkMin': '1.04',\n", " 'sparkMax': '1.15',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 4,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-01-01',\n", " 'endAt': '2025-01-31',\n", " 'name': 'M+4',\n", " 'lastAssessmentDate': '2025-01-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '75500',\n", " 'sparkMin': '68000',\n", " 'sparkMax': '78000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.89',\n", " 'sparkMin': '0.84',\n", " 'sparkMax': '0.90',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 5,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-02-01',\n", " 'endAt': '2025-02-28',\n", " 'name': 'M+5',\n", " 'lastAssessmentDate': '2025-02-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '52750',\n", " 'sparkMin': '50000',\n", " 'sparkMax': '54000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.72',\n", " 'sparkMin': '0.70',\n", " 'sparkMax': '0.73',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 6,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-03-01',\n", " 'endAt': '2025-03-31',\n", " 'name': 'M+6',\n", " 'lastAssessmentDate': '2025-03-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '42750',\n", " 'sparkMin': '40000',\n", " 'sparkMax': '46000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.65',\n", " 'sparkMin': '0.63',\n", " 'sparkMax': '0.67',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 7,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-04-01',\n", " 'endAt': '2025-04-30',\n", " 'name': 'M+7',\n", " 'lastAssessmentDate': '2025-04-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '41750',\n", " 'sparkMin': '37000',\n", " 'sparkMax': '45000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.61',\n", " 'sparkMax': '0.66',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 8,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-05-01',\n", " 'endAt': '2025-05-31',\n", " 'name': 'M+8',\n", " 'lastAssessmentDate': '2025-05-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '41750',\n", " 'sparkMin': '40000',\n", " 'sparkMax': '44000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.63',\n", " 'sparkMax': '0.65',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 9,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-06-01',\n", " 'endAt': '2025-06-30',\n", " 'name': 'M+9',\n", " 'lastAssessmentDate': '2025-06-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '40750',\n", " 'sparkMin': '37000',\n", " 'sparkMax': '43000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.63',\n", " 'sparkMin': '0.61',\n", " 'sparkMax': '0.65',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 10,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-07-01',\n", " 'endAt': '2025-07-31',\n", " 'name': 'M+10',\n", " 'lastAssessmentDate': '2025-07-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '43000',\n", " 'sparkMin': '38000',\n", " 'sparkMax': '50000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.65',\n", " 'sparkMin': '0.62',\n", " 'sparkMax': '0.70',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 11,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-08-01',\n", " 'endAt': '2025-08-31',\n", " 'name': 'M+11',\n", " 'lastAssessmentDate': '2025-08-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '62000',\n", " 'sparkMin': '54000',\n", " 'sparkMax': '75000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.78',\n", " 'sparkMin': '0.73',\n", " 'sparkMax': '0.86',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 12,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-09-01',\n", " 'endAt': '2025-09-30',\n", " 'name': 'M+12',\n", " 'lastAssessmentDate': '2025-09-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '76750',\n", " 'sparkMin': '66000',\n", " 'sparkMax': '90000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.88',\n", " 'sparkMin': '0.81',\n", " 'sparkMax': '0.96',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 13,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-10-01',\n", " 'endAt': '2025-10-31',\n", " 'name': 'M+13',\n", " 'lastAssessmentDate': '2025-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '97500',\n", " 'sparkMin': '85000',\n", " 'sparkMax': '112000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.02',\n", " 'sparkMin': '0.94',\n", " 'sparkMax': '1.11',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 14,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-11-01',\n", " 'endAt': '2025-11-30',\n", " 'name': 'M+14',\n", " 'lastAssessmentDate': '2025-11-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '119500',\n", " 'sparkMin': '105000',\n", " 'sparkMax': '133000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.17',\n", " 'sparkMin': '1.08',\n", " 'sparkMax': '1.26',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 15,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-12-01',\n", " 'endAt': '2025-12-31',\n", " 'name': 'M+15',\n", " 'lastAssessmentDate': '2025-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '128000',\n", " 'sparkMin': '116000',\n", " 'sparkMax': '140000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.23',\n", " 'sparkMin': '1.15',\n", " 'sparkMax': '1.31',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]}],\n", " 'aggregatedData': {'balanceOfMonth': {'deliveryPeriod': {'type': 'days',\n", " 'startAt': '2024-09-28',\n", " 'endAt': '2024-09-30',\n", " 'name': 'Balance of month',\n", " 'lastAssessmentDate': None},\n", " 'prices': {'userPerDay': '44750'}}}}],\n", " 'publishedAt': '2024-09-27T15:30:43.125544Z',\n", " 'meta': []},\n", " {'id': 20240926,\n", " 'contractId': 'spark25ffa-monthly',\n", " 'releaseDate': '2024-09-26',\n", " 'previousPriceRelease': {'id': 20240925, 'releaseDate': '2024-09-25'},\n", " 'nextPriceRelease': {'id': 20240927, 'releaseDate': '2024-09-27'},\n", " 'assessmentWindowClosedAt': '2024-09-26T16:00:00Z',\n", " 'assessmentWindowOpenedAt': '2024-09-26T14:30:00Z',\n", " 'data': [{'revisionNumber': 0,\n", " 'revisionPublishedAt': '2024-09-26T15:37:29.218877Z',\n", " 'numberOfAssessors': None,\n", " 'dataPoints': [{'index': 0,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-09-01',\n", " 'endAt': '2024-09-30',\n", " 'name': 'M+0',\n", " 'lastAssessmentDate': '2024-09-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '72000',\n", " 'sparkMin': '65000',\n", " 'sparkMax': '75000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.84',\n", " 'sparkMin': '0.80',\n", " 'sparkMax': '0.86',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 1,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-10-01',\n", " 'endAt': '2024-10-31',\n", " 'name': 'M+1',\n", " 'lastAssessmentDate': '2024-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '85500',\n", " 'sparkMin': '81000',\n", " 'sparkMax': '88000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.93',\n", " 'sparkMin': '0.90',\n", " 'sparkMax': '0.95',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 2,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-11-01',\n", " 'endAt': '2024-11-30',\n", " 'name': 'M+2',\n", " 'lastAssessmentDate': '2024-11-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '113250',\n", " 'sparkMin': '108000',\n", " 'sparkMax': '116000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.13',\n", " 'sparkMin': '1.09',\n", " 'sparkMax': '1.14',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 3,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-12-01',\n", " 'endAt': '2024-12-31',\n", " 'name': 'M+3',\n", " 'lastAssessmentDate': '2024-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '111500',\n", " 'sparkMin': '103000',\n", " 'sparkMax': '116000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.12',\n", " 'sparkMin': '1.06',\n", " 'sparkMax': '1.15',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 4,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-01-01',\n", " 'endAt': '2025-01-31',\n", " 'name': 'M+4',\n", " 'lastAssessmentDate': '2025-01-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '75750',\n", " 'sparkMin': '70000',\n", " 'sparkMax': '78000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.88',\n", " 'sparkMin': '0.85',\n", " 'sparkMax': '0.90',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 5,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-02-01',\n", " 'endAt': '2025-02-28',\n", " 'name': 'M+5',\n", " 'lastAssessmentDate': '2025-02-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '52750',\n", " 'sparkMin': '50000',\n", " 'sparkMax': '54000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.72',\n", " 'sparkMin': '0.70',\n", " 'sparkMax': '0.73',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 6,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-03-01',\n", " 'endAt': '2025-03-31',\n", " 'name': 'M+6',\n", " 'lastAssessmentDate': '2025-03-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '42750',\n", " 'sparkMin': '40000',\n", " 'sparkMax': '46000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.63',\n", " 'sparkMax': '0.67',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 7,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-04-01',\n", " 'endAt': '2025-04-30',\n", " 'name': 'M+7',\n", " 'lastAssessmentDate': '2025-04-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '41750',\n", " 'sparkMin': '37000',\n", " 'sparkMax': '45000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.60',\n", " 'sparkMax': '0.66',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 8,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-05-01',\n", " 'endAt': '2025-05-31',\n", " 'name': 'M+8',\n", " 'lastAssessmentDate': '2025-05-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '41750',\n", " 'sparkMin': '40000',\n", " 'sparkMax': '44000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.63',\n", " 'sparkMax': '0.65',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 9,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-06-01',\n", " 'endAt': '2025-06-30',\n", " 'name': 'M+9',\n", " 'lastAssessmentDate': '2025-06-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '40750',\n", " 'sparkMin': '37000',\n", " 'sparkMax': '43000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.63',\n", " 'sparkMin': '0.61',\n", " 'sparkMax': '0.65',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 10,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-07-01',\n", " 'endAt': '2025-07-31',\n", " 'name': 'M+10',\n", " 'lastAssessmentDate': '2025-07-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '43000',\n", " 'sparkMin': '38000',\n", " 'sparkMax': '50000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.65',\n", " 'sparkMin': '0.62',\n", " 'sparkMax': '0.70',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 11,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-08-01',\n", " 'endAt': '2025-08-31',\n", " 'name': 'M+11',\n", " 'lastAssessmentDate': '2025-08-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '62000',\n", " 'sparkMin': '54000',\n", " 'sparkMax': '75000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.78',\n", " 'sparkMin': '0.72',\n", " 'sparkMax': '0.86',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 12,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-09-01',\n", " 'endAt': '2025-09-30',\n", " 'name': 'M+12',\n", " 'lastAssessmentDate': '2025-09-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '76750',\n", " 'sparkMin': '66000',\n", " 'sparkMax': '90000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.88',\n", " 'sparkMin': '0.81',\n", " 'sparkMax': '0.96',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 13,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-10-01',\n", " 'endAt': '2025-10-31',\n", " 'name': 'M+13',\n", " 'lastAssessmentDate': '2025-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '97500',\n", " 'sparkMin': '85000',\n", " 'sparkMax': '112000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.02',\n", " 'sparkMin': '0.94',\n", " 'sparkMax': '1.11',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 14,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-11-01',\n", " 'endAt': '2025-11-30',\n", " 'name': 'M+14',\n", " 'lastAssessmentDate': '2025-11-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '119500',\n", " 'sparkMin': '105000',\n", " 'sparkMax': '133000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.17',\n", " 'sparkMin': '1.07',\n", " 'sparkMax': '1.26',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 15,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-12-01',\n", " 'endAt': '2025-12-31',\n", " 'name': 'M+15',\n", " 'lastAssessmentDate': '2025-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '128000',\n", " 'sparkMin': '116000',\n", " 'sparkMax': '140000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.23',\n", " 'sparkMin': '1.15',\n", " 'sparkMax': '1.31',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]}],\n", " 'aggregatedData': {'balanceOfMonth': {'deliveryPeriod': {'type': 'days',\n", " 'startAt': '2024-09-27',\n", " 'endAt': '2024-09-30',\n", " 'name': 'Balance of month',\n", " 'lastAssessmentDate': None},\n", " 'prices': {'userPerDay': '62253'}}}}],\n", " 'publishedAt': '2024-09-26T15:37:29.218877Z',\n", " 'meta': []},\n", " {'id': 20240925,\n", " 'contractId': 'spark25ffa-monthly',\n", " 'releaseDate': '2024-09-25',\n", " 'previousPriceRelease': {'id': 20240924, 'releaseDate': '2024-09-24'},\n", " 'nextPriceRelease': {'id': 20240926, 'releaseDate': '2024-09-26'},\n", " 'assessmentWindowClosedAt': '2024-09-25T16:00:00Z',\n", " 'assessmentWindowOpenedAt': '2024-09-25T14:30:00Z',\n", " 'data': [{'revisionNumber': 0,\n", " 'revisionPublishedAt': '2024-09-25T15:38:41.053842Z',\n", " 'numberOfAssessors': None,\n", " 'dataPoints': [{'index': 0,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-09-01',\n", " 'endAt': '2024-09-30',\n", " 'name': 'M+0',\n", " 'lastAssessmentDate': '2024-09-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '72250',\n", " 'sparkMin': '65000',\n", " 'sparkMax': '75000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.84',\n", " 'sparkMin': '0.79',\n", " 'sparkMax': '0.86',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 1,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-10-01',\n", " 'endAt': '2024-10-31',\n", " 'name': 'M+1',\n", " 'lastAssessmentDate': '2024-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '85500',\n", " 'sparkMin': '81000',\n", " 'sparkMax': '88000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.92',\n", " 'sparkMin': '0.89',\n", " 'sparkMax': '0.94',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 2,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-11-01',\n", " 'endAt': '2024-11-30',\n", " 'name': 'M+2',\n", " 'lastAssessmentDate': '2024-11-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '113250',\n", " 'sparkMin': '108000',\n", " 'sparkMax': '116000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.12',\n", " 'sparkMin': '1.08',\n", " 'sparkMax': '1.13',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 3,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-12-01',\n", " 'endAt': '2024-12-31',\n", " 'name': 'M+3',\n", " 'lastAssessmentDate': '2024-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '111500',\n", " 'sparkMin': '103000',\n", " 'sparkMax': '116000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.11',\n", " 'sparkMin': '1.05',\n", " 'sparkMax': '1.14',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 4,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-01-01',\n", " 'endAt': '2025-01-31',\n", " 'name': 'M+4',\n", " 'lastAssessmentDate': '2025-01-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '76250',\n", " 'sparkMin': '72000',\n", " 'sparkMax': '78000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.88',\n", " 'sparkMin': '0.85',\n", " 'sparkMax': '0.89',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 5,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-02-01',\n", " 'endAt': '2025-02-28',\n", " 'name': 'M+5',\n", " 'lastAssessmentDate': '2025-02-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '53250',\n", " 'sparkMin': '52000',\n", " 'sparkMax': '54000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.71',\n", " 'sparkMin': '0.70',\n", " 'sparkMax': '0.72',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 6,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-03-01',\n", " 'endAt': '2025-03-31',\n", " 'name': 'M+6',\n", " 'lastAssessmentDate': '2025-03-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '42750',\n", " 'sparkMin': '40000',\n", " 'sparkMax': '46000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.62',\n", " 'sparkMax': '0.66',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 7,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-04-01',\n", " 'endAt': '2025-04-30',\n", " 'name': 'M+7',\n", " 'lastAssessmentDate': '2025-04-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '42500',\n", " 'sparkMin': '41000',\n", " 'sparkMax': '45000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.63',\n", " 'sparkMin': '0.62',\n", " 'sparkMax': '0.65',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 8,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-05-01',\n", " 'endAt': '2025-05-31',\n", " 'name': 'M+8',\n", " 'lastAssessmentDate': '2025-05-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '42250',\n", " 'sparkMin': '40000',\n", " 'sparkMax': '44000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.63',\n", " 'sparkMin': '0.62',\n", " 'sparkMax': '0.64',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 9,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-06-01',\n", " 'endAt': '2025-06-30',\n", " 'name': 'M+9',\n", " 'lastAssessmentDate': '2025-06-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '41250',\n", " 'sparkMin': '37000',\n", " 'sparkMax': '45000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.63',\n", " 'sparkMin': '0.60',\n", " 'sparkMax': '0.65',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 10,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-07-01',\n", " 'endAt': '2025-07-31',\n", " 'name': 'M+10',\n", " 'lastAssessmentDate': '2025-07-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '43250',\n", " 'sparkMin': '38000',\n", " 'sparkMax': '52000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.61',\n", " 'sparkMax': '0.70',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 11,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-08-01',\n", " 'endAt': '2025-08-31',\n", " 'name': 'M+11',\n", " 'lastAssessmentDate': '2025-08-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '62000',\n", " 'sparkMin': '54000',\n", " 'sparkMax': '75000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.77',\n", " 'sparkMin': '0.71',\n", " 'sparkMax': '0.85',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 12,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-09-01',\n", " 'endAt': '2025-09-30',\n", " 'name': 'M+12',\n", " 'lastAssessmentDate': '2025-09-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '76750',\n", " 'sparkMin': '66000',\n", " 'sparkMax': '90000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.87',\n", " 'sparkMin': '0.80',\n", " 'sparkMax': '0.95',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 13,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-10-01',\n", " 'endAt': '2025-10-31',\n", " 'name': 'M+13',\n", " 'lastAssessmentDate': '2025-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '98000',\n", " 'sparkMin': '85000',\n", " 'sparkMax': '115000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.01',\n", " 'sparkMin': '0.93',\n", " 'sparkMax': '1.12',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 14,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-11-01',\n", " 'endAt': '2025-11-30',\n", " 'name': 'M+14',\n", " 'lastAssessmentDate': '2025-11-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '120000',\n", " 'sparkMin': '105000',\n", " 'sparkMax': '135000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.16',\n", " 'sparkMin': '1.07',\n", " 'sparkMax': '1.26',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 15,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-12-01',\n", " 'endAt': '2025-12-31',\n", " 'name': 'M+15',\n", " 'lastAssessmentDate': '2025-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '129000',\n", " 'sparkMin': '116000',\n", " 'sparkMax': '140000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.23',\n", " 'sparkMin': '1.14',\n", " 'sparkMax': '1.30',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]}],\n", " 'aggregatedData': {'balanceOfMonth': {'deliveryPeriod': {'type': 'days',\n", " 'startAt': '2024-09-26',\n", " 'endAt': '2024-09-30',\n", " 'name': 'Balance of month',\n", " 'lastAssessmentDate': None},\n", " 'prices': {'userPerDay': '65338'}}}}],\n", " 'publishedAt': '2024-09-25T15:38:41.053842Z',\n", " 'meta': []},\n", " {'id': 20240924,\n", " 'contractId': 'spark25ffa-monthly',\n", " 'releaseDate': '2024-09-24',\n", " 'previousPriceRelease': {'id': 20240923, 'releaseDate': '2024-09-23'},\n", " 'nextPriceRelease': {'id': 20240925, 'releaseDate': '2024-09-25'},\n", " 'assessmentWindowClosedAt': '2024-09-24T16:00:00Z',\n", " 'assessmentWindowOpenedAt': '2024-09-24T14:30:00Z',\n", " 'data': [{'revisionNumber': 0,\n", " 'revisionPublishedAt': '2024-09-24T15:39:19.327815Z',\n", " 'numberOfAssessors': None,\n", " 'dataPoints': [{'index': 0,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-09-01',\n", " 'endAt': '2024-09-30',\n", " 'name': 'M+0',\n", " 'lastAssessmentDate': '2024-09-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '74750',\n", " 'sparkMin': '72750',\n", " 'sparkMax': '78500',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.86',\n", " 'sparkMin': '0.85',\n", " 'sparkMax': '0.89',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 1,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-10-01',\n", " 'endAt': '2024-10-31',\n", " 'name': 'M+1',\n", " 'lastAssessmentDate': '2024-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '87000',\n", " 'sparkMin': '84000',\n", " 'sparkMax': '90000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.94',\n", " 'sparkMin': '0.92',\n", " 'sparkMax': '0.96',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 2,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-11-01',\n", " 'endAt': '2024-11-30',\n", " 'name': 'M+2',\n", " 'lastAssessmentDate': '2024-11-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '114500',\n", " 'sparkMin': '110000',\n", " 'sparkMax': '117000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.13',\n", " 'sparkMin': '1.10',\n", " 'sparkMax': '1.15',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 3,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-12-01',\n", " 'endAt': '2024-12-31',\n", " 'name': 'M+3',\n", " 'lastAssessmentDate': '2024-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '112750',\n", " 'sparkMin': '103000',\n", " 'sparkMax': '116000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.12',\n", " 'sparkMin': '1.06',\n", " 'sparkMax': '1.14',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 4,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-01-01',\n", " 'endAt': '2025-01-31',\n", " 'name': 'M+4',\n", " 'lastAssessmentDate': '2025-01-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '76500',\n", " 'sparkMin': '72000',\n", " 'sparkMax': '79000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.88',\n", " 'sparkMin': '0.85',\n", " 'sparkMax': '0.90',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 5,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-02-01',\n", " 'endAt': '2025-02-28',\n", " 'name': 'M+5',\n", " 'lastAssessmentDate': '2025-02-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '53500',\n", " 'sparkMin': '52000',\n", " 'sparkMax': '55000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.72',\n", " 'sparkMin': '0.71',\n", " 'sparkMax': '0.73',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 6,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-03-01',\n", " 'endAt': '2025-03-31',\n", " 'name': 'M+6',\n", " 'lastAssessmentDate': '2025-03-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '43000',\n", " 'sparkMin': '40000',\n", " 'sparkMax': '46000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.62',\n", " 'sparkMax': '0.66',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 7,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-04-01',\n", " 'endAt': '2025-04-30',\n", " 'name': 'M+7',\n", " 'lastAssessmentDate': '2025-04-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '42750',\n", " 'sparkMin': '41000',\n", " 'sparkMax': '45000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.63',\n", " 'sparkMax': '0.65',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 8,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-05-01',\n", " 'endAt': '2025-05-31',\n", " 'name': 'M+8',\n", " 'lastAssessmentDate': '2025-05-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '42250',\n", " 'sparkMin': '40000',\n", " 'sparkMax': '44000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.62',\n", " 'sparkMax': '0.65',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 9,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-06-01',\n", " 'endAt': '2025-06-30',\n", " 'name': 'M+9',\n", " 'lastAssessmentDate': '2025-06-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '41250',\n", " 'sparkMin': '37000',\n", " 'sparkMax': '45000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.63',\n", " 'sparkMin': '0.60',\n", " 'sparkMax': '0.66',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 10,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-07-01',\n", " 'endAt': '2025-07-31',\n", " 'name': 'M+10',\n", " 'lastAssessmentDate': '2025-07-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '43250',\n", " 'sparkMin': '38000',\n", " 'sparkMax': '52000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.65',\n", " 'sparkMin': '0.61',\n", " 'sparkMax': '0.70',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 11,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-08-01',\n", " 'endAt': '2025-08-31',\n", " 'name': 'M+11',\n", " 'lastAssessmentDate': '2025-08-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '62000',\n", " 'sparkMin': '54000',\n", " 'sparkMax': '75000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.77',\n", " 'sparkMin': '0.72',\n", " 'sparkMax': '0.86',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 12,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-09-01',\n", " 'endAt': '2025-09-30',\n", " 'name': 'M+12',\n", " 'lastAssessmentDate': '2025-09-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '76750',\n", " 'sparkMin': '66000',\n", " 'sparkMax': '90000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.87',\n", " 'sparkMin': '0.80',\n", " 'sparkMax': '0.96',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 13,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-10-01',\n", " 'endAt': '2025-10-31',\n", " 'name': 'M+13',\n", " 'lastAssessmentDate': '2025-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '98000',\n", " 'sparkMin': '85000',\n", " 'sparkMax': '115000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.02',\n", " 'sparkMin': '0.93',\n", " 'sparkMax': '1.13',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 14,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-11-01',\n", " 'endAt': '2025-11-30',\n", " 'name': 'M+14',\n", " 'lastAssessmentDate': '2025-11-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '120000',\n", " 'sparkMin': '105000',\n", " 'sparkMax': '135000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.17',\n", " 'sparkMin': '1.07',\n", " 'sparkMax': '1.27',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 15,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-12-01',\n", " 'endAt': '2025-12-31',\n", " 'name': 'M+15',\n", " 'lastAssessmentDate': '2025-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '129500',\n", " 'sparkMin': '116000',\n", " 'sparkMax': '140000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.23',\n", " 'sparkMin': '1.14',\n", " 'sparkMax': '1.30',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]}],\n", " 'aggregatedData': {'balanceOfMonth': {'deliveryPeriod': {'type': 'days',\n", " 'startAt': '2024-09-25',\n", " 'endAt': '2024-09-30',\n", " 'name': 'Balance of month',\n", " 'lastAssessmentDate': None},\n", " 'prices': {'userPerDay': '79378'}}}}],\n", " 'publishedAt': '2024-09-24T15:39:19.327815Z',\n", " 'meta': []},\n", " {'id': 20240923,\n", " 'contractId': 'spark25ffa-monthly',\n", " 'releaseDate': '2024-09-23',\n", " 'previousPriceRelease': {'id': 20240920, 'releaseDate': '2024-09-20'},\n", " 'nextPriceRelease': {'id': 20240924, 'releaseDate': '2024-09-24'},\n", " 'assessmentWindowClosedAt': '2024-09-23T16:00:00Z',\n", " 'assessmentWindowOpenedAt': '2024-09-23T14:30:00Z',\n", " 'data': [{'revisionNumber': 0,\n", " 'revisionPublishedAt': '2024-09-23T15:46:35.433066Z',\n", " 'numberOfAssessors': None,\n", " 'dataPoints': [{'index': 0,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-09-01',\n", " 'endAt': '2024-09-30',\n", " 'name': 'M+0',\n", " 'lastAssessmentDate': '2024-09-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '75500',\n", " 'sparkMin': '73000',\n", " 'sparkMax': '78500',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.86',\n", " 'sparkMin': '0.84',\n", " 'sparkMax': '0.88',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 1,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-10-01',\n", " 'endAt': '2024-10-31',\n", " 'name': 'M+1',\n", " 'lastAssessmentDate': '2024-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '87750',\n", " 'sparkMin': '86000',\n", " 'sparkMax': '90000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.94',\n", " 'sparkMin': '0.93',\n", " 'sparkMax': '0.95',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 2,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-11-01',\n", " 'endAt': '2024-11-30',\n", " 'name': 'M+2',\n", " 'lastAssessmentDate': '2024-11-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '115250',\n", " 'sparkMin': '112000',\n", " 'sparkMax': '117000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.13',\n", " 'sparkMin': '1.11',\n", " 'sparkMax': '1.14',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 3,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-12-01',\n", " 'endAt': '2024-12-31',\n", " 'name': 'M+3',\n", " 'lastAssessmentDate': '2024-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '113500',\n", " 'sparkMin': '105000',\n", " 'sparkMax': '118000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.12',\n", " 'sparkMin': '1.07',\n", " 'sparkMax': '1.15',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 4,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-01-01',\n", " 'endAt': '2025-01-31',\n", " 'name': 'M+4',\n", " 'lastAssessmentDate': '2025-01-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '76750',\n", " 'sparkMin': '72000',\n", " 'sparkMax': '80000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.88',\n", " 'sparkMin': '0.85',\n", " 'sparkMax': '0.90',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 5,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-02-01',\n", " 'endAt': '2025-02-28',\n", " 'name': 'M+5',\n", " 'lastAssessmentDate': '2025-02-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '53750',\n", " 'sparkMin': '52000',\n", " 'sparkMax': '56000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.71',\n", " 'sparkMin': '0.70',\n", " 'sparkMax': '0.73',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 6,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-03-01',\n", " 'endAt': '2025-03-31',\n", " 'name': 'M+6',\n", " 'lastAssessmentDate': '2025-03-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '43250',\n", " 'sparkMin': '40000',\n", " 'sparkMax': '48000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.63',\n", " 'sparkMin': '0.61',\n", " 'sparkMax': '0.66',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 7,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-04-01',\n", " 'endAt': '2025-04-30',\n", " 'name': 'M+7',\n", " 'lastAssessmentDate': '2025-04-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '43000',\n", " 'sparkMin': '41000',\n", " 'sparkMax': '47000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.63',\n", " 'sparkMin': '0.62',\n", " 'sparkMax': '0.66',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 8,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-05-01',\n", " 'endAt': '2025-05-31',\n", " 'name': 'M+8',\n", " 'lastAssessmentDate': '2025-05-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '42750',\n", " 'sparkMin': '40000',\n", " 'sparkMax': '46000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.63',\n", " 'sparkMin': '0.61',\n", " 'sparkMax': '0.65',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 9,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-06-01',\n", " 'endAt': '2025-06-30',\n", " 'name': 'M+9',\n", " 'lastAssessmentDate': '2025-06-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '41250',\n", " 'sparkMin': '37000',\n", " 'sparkMax': '45000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.62',\n", " 'sparkMin': '0.60',\n", " 'sparkMax': '0.65',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 10,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-07-01',\n", " 'endAt': '2025-07-31',\n", " 'name': 'M+10',\n", " 'lastAssessmentDate': '2025-07-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '43250',\n", " 'sparkMin': '38000',\n", " 'sparkMax': '52000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.60',\n", " 'sparkMax': '0.70',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 11,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-08-01',\n", " 'endAt': '2025-08-31',\n", " 'name': 'M+11',\n", " 'lastAssessmentDate': '2025-08-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '62000',\n", " 'sparkMin': '54000',\n", " 'sparkMax': '75000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.76',\n", " 'sparkMin': '0.71',\n", " 'sparkMax': '0.85',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 12,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-09-01',\n", " 'endAt': '2025-09-30',\n", " 'name': 'M+12',\n", " 'lastAssessmentDate': '2025-09-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '76750',\n", " 'sparkMin': '66000',\n", " 'sparkMax': '90000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.86',\n", " 'sparkMin': '0.79',\n", " 'sparkMax': '0.95',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 13,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-10-01',\n", " 'endAt': '2025-10-31',\n", " 'name': 'M+13',\n", " 'lastAssessmentDate': '2025-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '98000',\n", " 'sparkMin': '85000',\n", " 'sparkMax': '115000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.01',\n", " 'sparkMin': '0.93',\n", " 'sparkMax': '1.12',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 14,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-11-01',\n", " 'endAt': '2025-11-30',\n", " 'name': 'M+14',\n", " 'lastAssessmentDate': '2025-11-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '120000',\n", " 'sparkMin': '105000',\n", " 'sparkMax': '135000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.16',\n", " 'sparkMin': '1.06',\n", " 'sparkMax': '1.26',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 15,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-12-01',\n", " 'endAt': '2025-12-31',\n", " 'name': 'M+15',\n", " 'lastAssessmentDate': '2025-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '129500',\n", " 'sparkMin': '116000',\n", " 'sparkMax': '140000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.23',\n", " 'sparkMin': '1.14',\n", " 'sparkMax': '1.29',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]}],\n", " 'aggregatedData': {'balanceOfMonth': {'deliveryPeriod': {'type': 'days',\n", " 'startAt': '2024-09-24',\n", " 'endAt': '2024-09-30',\n", " 'name': 'Balance of month',\n", " 'lastAssessmentDate': None},\n", " 'prices': {'userPerDay': '80700'}}}}],\n", " 'publishedAt': '2024-09-23T15:46:35.433066Z',\n", " 'meta': []},\n", " {'id': 20240920,\n", " 'contractId': 'spark25ffa-monthly',\n", " 'releaseDate': '2024-09-20',\n", " 'previousPriceRelease': {'id': 20240919, 'releaseDate': '2024-09-19'},\n", " 'nextPriceRelease': {'id': 20240923, 'releaseDate': '2024-09-23'},\n", " 'assessmentWindowClosedAt': '2024-09-20T16:00:00Z',\n", " 'assessmentWindowOpenedAt': '2024-09-20T14:30:00Z',\n", " 'data': [{'revisionNumber': 0,\n", " 'revisionPublishedAt': '2024-09-20T15:38:07.058632Z',\n", " 'numberOfAssessors': None,\n", " 'dataPoints': [{'index': 0,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-09-01',\n", " 'endAt': '2024-09-30',\n", " 'name': 'M+0',\n", " 'lastAssessmentDate': '2024-09-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '76500',\n", " 'sparkMin': '74000',\n", " 'sparkMax': '78500',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.86',\n", " 'sparkMin': '0.84',\n", " 'sparkMax': '0.87',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 1,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-10-01',\n", " 'endAt': '2024-10-31',\n", " 'name': 'M+1',\n", " 'lastAssessmentDate': '2024-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '88500',\n", " 'sparkMin': '87000',\n", " 'sparkMax': '90000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.94',\n", " 'sparkMin': '0.93',\n", " 'sparkMax': '0.95',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 2,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-11-01',\n", " 'endAt': '2024-11-30',\n", " 'name': 'M+2',\n", " 'lastAssessmentDate': '2024-11-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '116000',\n", " 'sparkMin': '115000',\n", " 'sparkMax': '117000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.13',\n", " 'sparkMin': '1.12',\n", " 'sparkMax': '1.13',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 3,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-12-01',\n", " 'endAt': '2024-12-31',\n", " 'name': 'M+3',\n", " 'lastAssessmentDate': '2024-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '114500',\n", " 'sparkMin': '107000',\n", " 'sparkMax': '121000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.12',\n", " 'sparkMin': '1.07',\n", " 'sparkMax': '1.16',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 4,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-01-01',\n", " 'endAt': '2025-01-31',\n", " 'name': 'M+4',\n", " 'lastAssessmentDate': '2025-01-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '77500',\n", " 'sparkMin': '73000',\n", " 'sparkMax': '81000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.88',\n", " 'sparkMin': '0.85',\n", " 'sparkMax': '0.90',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 5,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-02-01',\n", " 'endAt': '2025-02-28',\n", " 'name': 'M+5',\n", " 'lastAssessmentDate': '2025-02-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '54250',\n", " 'sparkMin': '52000',\n", " 'sparkMax': '58000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.71',\n", " 'sparkMin': '0.69',\n", " 'sparkMax': '0.73',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 6,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-03-01',\n", " 'endAt': '2025-03-31',\n", " 'name': 'M+6',\n", " 'lastAssessmentDate': '2025-03-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '43750',\n", " 'sparkMin': '40000',\n", " 'sparkMax': '50000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.63',\n", " 'sparkMin': '0.61',\n", " 'sparkMax': '0.67',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 7,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-04-01',\n", " 'endAt': '2025-04-30',\n", " 'name': 'M+7',\n", " 'lastAssessmentDate': '2025-04-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '43500',\n", " 'sparkMin': '41000',\n", " 'sparkMax': '49000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.63',\n", " 'sparkMin': '0.61',\n", " 'sparkMax': '0.66',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 8,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-05-01',\n", " 'endAt': '2025-05-31',\n", " 'name': 'M+8',\n", " 'lastAssessmentDate': '2025-05-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '42750',\n", " 'sparkMin': '40000',\n", " 'sparkMax': '47000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.62',\n", " 'sparkMin': '0.61',\n", " 'sparkMax': '0.65',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 9,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-06-01',\n", " 'endAt': '2025-06-30',\n", " 'name': 'M+9',\n", " 'lastAssessmentDate': '2025-06-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '41250',\n", " 'sparkMin': '37000',\n", " 'sparkMax': '45000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.62',\n", " 'sparkMin': '0.59',\n", " 'sparkMax': '0.64',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 10,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-07-01',\n", " 'endAt': '2025-07-31',\n", " 'name': 'M+10',\n", " 'lastAssessmentDate': '2025-07-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '43250',\n", " 'sparkMin': '38000',\n", " 'sparkMax': '52000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.63',\n", " 'sparkMin': '0.60',\n", " 'sparkMax': '0.69',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 11,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-08-01',\n", " 'endAt': '2025-08-31',\n", " 'name': 'M+11',\n", " 'lastAssessmentDate': '2025-08-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '62000',\n", " 'sparkMin': '54000',\n", " 'sparkMax': '75000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.76',\n", " 'sparkMin': '0.70',\n", " 'sparkMax': '0.84',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 12,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-09-01',\n", " 'endAt': '2025-09-30',\n", " 'name': 'M+12',\n", " 'lastAssessmentDate': '2025-09-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '76750',\n", " 'sparkMin': '66000',\n", " 'sparkMax': '90000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.86',\n", " 'sparkMin': '0.79',\n", " 'sparkMax': '0.94',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 13,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-10-01',\n", " 'endAt': '2025-10-31',\n", " 'name': 'M+13',\n", " 'lastAssessmentDate': '2025-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '98000',\n", " 'sparkMin': '85000',\n", " 'sparkMax': '115000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.00',\n", " 'sparkMin': '0.92',\n", " 'sparkMax': '1.11',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 14,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-11-01',\n", " 'endAt': '2025-11-30',\n", " 'name': 'M+14',\n", " 'lastAssessmentDate': '2025-11-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '120750',\n", " 'sparkMin': '105000',\n", " 'sparkMax': '139000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.16',\n", " 'sparkMin': '1.06',\n", " 'sparkMax': '1.28',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 15,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-12-01',\n", " 'endAt': '2025-12-31',\n", " 'name': 'M+15',\n", " 'lastAssessmentDate': '2025-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '133500',\n", " 'sparkMin': '116000',\n", " 'sparkMax': '149250',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.24',\n", " 'sparkMin': '1.13',\n", " 'sparkMax': '1.35',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]}],\n", " 'aggregatedData': {'balanceOfMonth': {'deliveryPeriod': {'type': 'days',\n", " 'startAt': '2024-09-21',\n", " 'endAt': '2024-09-30',\n", " 'name': 'Balance of month',\n", " 'lastAssessmentDate': None},\n", " 'prices': {'userPerDay': '82875'}}}}],\n", " 'publishedAt': '2024-09-20T15:38:07.058632Z',\n", " 'meta': []},\n", " {'id': 20240919,\n", " 'contractId': 'spark25ffa-monthly',\n", " 'releaseDate': '2024-09-19',\n", " 'previousPriceRelease': {'id': 20240918, 'releaseDate': '2024-09-18'},\n", " 'nextPriceRelease': {'id': 20240920, 'releaseDate': '2024-09-20'},\n", " 'assessmentWindowClosedAt': '2024-09-19T16:00:00Z',\n", " 'assessmentWindowOpenedAt': '2024-09-19T14:30:00Z',\n", " 'data': [{'revisionNumber': 0,\n", " 'revisionPublishedAt': '2024-09-19T15:59:19.181958Z',\n", " 'numberOfAssessors': None,\n", " 'dataPoints': [{'index': 0,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-09-01',\n", " 'endAt': '2024-09-30',\n", " 'name': 'M+0',\n", " 'lastAssessmentDate': '2024-09-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '76250',\n", " 'sparkMin': '74000',\n", " 'sparkMax': '78000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.87',\n", " 'sparkMin': '0.86',\n", " 'sparkMax': '0.88',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 1,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-10-01',\n", " 'endAt': '2024-10-31',\n", " 'name': 'M+1',\n", " 'lastAssessmentDate': '2024-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '88250',\n", " 'sparkMin': '87000',\n", " 'sparkMax': '89000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.95',\n", " 'sparkMin': '0.94',\n", " 'sparkMax': '0.95',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 2,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-11-01',\n", " 'endAt': '2024-11-30',\n", " 'name': 'M+2',\n", " 'lastAssessmentDate': '2024-11-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '116000',\n", " 'sparkMin': '115000',\n", " 'sparkMax': '117000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.14',\n", " 'sparkMin': '1.14',\n", " 'sparkMax': '1.15',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 3,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2024-12-01',\n", " 'endAt': '2024-12-31',\n", " 'name': 'M+3',\n", " 'lastAssessmentDate': '2024-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '114500',\n", " 'sparkMin': '107000',\n", " 'sparkMax': '121000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.14',\n", " 'sparkMin': '1.09',\n", " 'sparkMax': '1.18',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 4,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-01-01',\n", " 'endAt': '2025-01-31',\n", " 'name': 'M+4',\n", " 'lastAssessmentDate': '2025-01-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '77500',\n", " 'sparkMin': '73000',\n", " 'sparkMax': '81000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.89',\n", " 'sparkMin': '0.86',\n", " 'sparkMax': '0.92',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 5,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-02-01',\n", " 'endAt': '2025-02-28',\n", " 'name': 'M+5',\n", " 'lastAssessmentDate': '2025-02-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '54000',\n", " 'sparkMin': '52000',\n", " 'sparkMax': '58000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.72',\n", " 'sparkMin': '0.71',\n", " 'sparkMax': '0.75',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 6,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-03-01',\n", " 'endAt': '2025-03-31',\n", " 'name': 'M+6',\n", " 'lastAssessmentDate': '2025-03-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '43500',\n", " 'sparkMin': '40000',\n", " 'sparkMax': '50000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.65',\n", " 'sparkMin': '0.62',\n", " 'sparkMax': '0.69',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 7,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-04-01',\n", " 'endAt': '2025-04-30',\n", " 'name': 'M+7',\n", " 'lastAssessmentDate': '2025-04-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '43500',\n", " 'sparkMin': '41000',\n", " 'sparkMax': '49000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.63',\n", " 'sparkMax': '0.68',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 8,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-05-01',\n", " 'endAt': '2025-05-31',\n", " 'name': 'M+8',\n", " 'lastAssessmentDate': '2025-05-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '42750',\n", " 'sparkMin': '40000',\n", " 'sparkMax': '47000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.64',\n", " 'sparkMin': '0.62',\n", " 'sparkMax': '0.67',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 9,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-06-01',\n", " 'endAt': '2025-06-30',\n", " 'name': 'M+9',\n", " 'lastAssessmentDate': '2025-06-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '41250',\n", " 'sparkMin': '37000',\n", " 'sparkMax': '45000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.63',\n", " 'sparkMin': '0.61',\n", " 'sparkMax': '0.66',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 10,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-07-01',\n", " 'endAt': '2025-07-31',\n", " 'name': 'M+10',\n", " 'lastAssessmentDate': '2025-07-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '43250',\n", " 'sparkMin': '38000',\n", " 'sparkMax': '52000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.65',\n", " 'sparkMin': '0.61',\n", " 'sparkMax': '0.71',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 11,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-08-01',\n", " 'endAt': '2025-08-31',\n", " 'name': 'M+11',\n", " 'lastAssessmentDate': '2025-08-28'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '62000',\n", " 'sparkMin': '54000',\n", " 'sparkMax': '75000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.77',\n", " 'sparkMin': '0.72',\n", " 'sparkMax': '0.86',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 12,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-09-01',\n", " 'endAt': '2025-09-30',\n", " 'name': 'M+12',\n", " 'lastAssessmentDate': '2025-09-29'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '76750',\n", " 'sparkMin': '66000',\n", " 'sparkMax': '90000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '0.87',\n", " 'sparkMin': '0.80',\n", " 'sparkMax': '0.96',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 13,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-10-01',\n", " 'endAt': '2025-10-31',\n", " 'name': 'M+13',\n", " 'lastAssessmentDate': '2025-10-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '98000',\n", " 'sparkMin': '85000',\n", " 'sparkMax': '115000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.02',\n", " 'sparkMin': '0.93',\n", " 'sparkMax': '1.13',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 14,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-11-01',\n", " 'endAt': '2025-11-30',\n", " 'name': 'M+14',\n", " 'lastAssessmentDate': '2025-11-27'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '120750',\n", " 'sparkMin': '105000',\n", " 'sparkMax': '139000',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.17',\n", " 'sparkMin': '1.07',\n", " 'sparkMax': '1.29',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]},\n", " {'index': 15,\n", " 'deliveryPeriod': {'type': 'month',\n", " 'startAt': '2025-12-01',\n", " 'endAt': '2025-12-31',\n", " 'name': 'M+15',\n", " 'lastAssessmentDate': '2025-12-30'},\n", " 'yourAssessedPrice': None,\n", " 'derivedPrices': {'usdPerDay': {'spark': '133500',\n", " 'sparkMin': '116000',\n", " 'sparkMax': '149250',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None},\n", " 'usdPerMMBtu': {'spark': '1.26',\n", " 'sparkMin': '1.15',\n", " 'sparkMax': '1.36',\n", " 'portfolioPlayer': None,\n", " 'portfolioPlayerMin': None,\n", " 'portfolioPlayerMax': None,\n", " 'shipOwner': None,\n", " 'shipOwnerMin': None,\n", " 'shipOwnerMax': None}},\n", " 'meta': [{'type': 'freight-vessel-type', 'value': '174-2stroke'}]}],\n", " 'aggregatedData': {'balanceOfMonth': {'deliveryPeriod': {'type': 'days',\n", " 'startAt': '2024-09-20',\n", " 'endAt': '2024-09-30',\n", " 'name': 'Balance of month',\n", " 'lastAssessmentDate': None},\n", " 'prices': {'userPerDay': '80716'}}}}],\n", " 'publishedAt': '2024-09-19T15:59:19.181958Z',\n", " 'meta': []}]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# View data in its raw format\n", "\n", "my_dict_hist" ] }, { "cell_type": "code", "execution_count": 14, "id": "42ac7fb2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Check the amount of datapoints (Spark25FFA) releases\n", "len(my_dict_hist)" ] }, { "cell_type": "markdown", "id": "99be9416", "metadata": {}, "source": [ "## Function to call data and store as a DataFrame\n", "\n", "__N.B. The structure of the called data is slightly differs based on the ticker used. For example, the formatting method below is applicable to the FFA data, but would have to be slightly altered if a different ticker were used instead (for example, please see our 'spark_api_historical_spot_prices' tutorial script to see how to format the historical spot price data instead).__" ] }, { "cell_type": "code", "execution_count": 24, "id": "32d6eb83", "metadata": {}, "outputs": [], "source": [ "# Defining the function\n", "def fetch_ffa_prices(my_tick, my_lim):\n", " print(my_tick)\n", "\n", " my_dict_hist = fetch_historical_price_releases(access_token, my_tick, limit=my_lim)\n", "\n", " release_dates = []\n", "\n", " period_start = []\n", " period_end = []\n", " period_name = []\n", " cal_month = []\n", "\n", " ticker = []\n", "\n", " usd_day = []\n", "\n", " day_min = []\n", " day_max = []\n", "\n", " for release in my_dict_hist:\n", " release_date = release[\"releaseDate\"]\n", "\n", " print(\"- release date =\", release_date)\n", "\n", " data = release[\"data\"]\n", "\n", " for d in data:\n", " data_points = d[\"dataPoints\"]\n", " for data_point in data_points:\n", " period_start_at = data_point[\"deliveryPeriod\"][\"startAt\"]\n", " period_start.append(period_start_at)\n", " period_end_at = data_point[\"deliveryPeriod\"][\"endAt\"]\n", " period_end.append(period_end_at)\n", " period_name.append(data_point[\"deliveryPeriod\"][\"name\"])\n", "\n", " release_dates.append(release_date)\n", " # release_dates.append(datetime.strptime(release_date, '%Y-%m-%d'))\n", " ticker.append(release[\"contractId\"])\n", " cal_month.append(\n", " datetime.strptime(period_start_at, \"%Y-%m-%d\").strftime(\"%b-%Y\")\n", " )\n", "\n", " usd_day.append(int(data_point[\"derivedPrices\"][\"usdPerDay\"][\"spark\"]))\n", " day_min.append(\n", " int(data_point[\"derivedPrices\"][\"usdPerDay\"][\"sparkMin\"])\n", " )\n", " day_max.append(\n", " int(data_point[\"derivedPrices\"][\"usdPerDay\"][\"sparkMax\"])\n", " )\n", "\n", " historical_df = pd.DataFrame(\n", " {\n", " \"Release Date\": release_dates,\n", " \"ticker\": ticker,\n", " \"Period Name\": period_name,\n", " \"Period Start\": period_start,\n", " \"Period End\": period_end,\n", " \"Calendar Month\": cal_month,\n", " \"Spark\": usd_day,\n", " \"SparkMin\": day_min,\n", " \"SparkMax\": day_max,\n", " }\n", " )\n", "\n", " historical_df['Release Date'] = pd.to_datetime(historical_df['Release Date'],format='%Y-%m-%d')\n", "\n", " return historical_df" ] }, { "cell_type": "markdown", "id": "7135318a", "metadata": {}, "source": [ "# Call those functions for Spark30FFA and Spark25FFA\n", "\n", "We call the function defined above and create two dataframes:\n", "\n", "- spark25ffa - storing all historical Spark25FFA data\n", "- spark30ffa - storing all historical Spark30FFA data" ] }, { "cell_type": "code", "execution_count": 27, "id": "b367acfe", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "spark25ffa-monthly\n", ">>>> Get price releases for spark25ffa-monthly\n", "- release date = 2024-10-02\n", "- release date = 2024-10-01\n", "- release date = 2024-09-30\n", "- release date = 2024-09-27\n", "- release date = 2024-09-26\n", "- release date = 2024-09-25\n", "- release date = 2024-09-24\n", "- release date = 2024-09-23\n", "- release date = 2024-09-20\n", "- release date = 2024-09-19\n", "- release date = 2024-10-02\n", "- release date = 2024-10-01\n", "- release date = 2024-09-30\n", "- release date = 2024-09-27\n", "- release date = 2024-09-26\n", "- release date = 2024-09-25\n", "- release date = 2024-09-24\n", "- release date = 2024-09-23\n", "- release date = 2024-09-20\n", "- release date = 2024-09-19\n", "spark30ffa-monthly\n", ">>>> Get price releases for spark30ffa-monthly\n", "- release date = 2024-10-02\n", "- release date = 2024-10-01\n", "- release date = 2024-09-30\n", "- release date = 2024-09-27\n", "- release date = 2024-09-26\n", "- release date = 2024-09-25\n", "- release date = 2024-09-24\n", "- release date = 2024-09-23\n", "- release date = 2024-09-20\n", "- release date = 2024-09-19\n", "- release date = 2024-10-02\n", "- release date = 2024-10-01\n", "- release date = 2024-09-30\n", "- release date = 2024-09-27\n", "- release date = 2024-09-26\n", "- release date = 2024-09-25\n", "- release date = 2024-09-24\n", "- release date = 2024-09-23\n", "- release date = 2024-09-20\n", "- release date = 2024-09-19\n" ] } ], "source": [ "spark25ffa = fetch_ffa_prices(tickers[4], 10)\n", "\n", "spark30ffa = fetch_ffa_prices(tickers[8], 10)" ] }, { "cell_type": "markdown", "id": "d6d505e5", "metadata": {}, "source": [ "# Save as separate Excel Spreadsheets \n", "\n", "For those more comfortable sorting through categorical data in Excel, we can easily export these DataFrames as separate Excel Files.\n", "\n", "These Excel files will include the raw data. From here, the data can be grouped or transformed into a Pivot Table in Excel, so that data can be filtered by Release Date or other suitable variables." ] }, { "cell_type": "code", "execution_count": 17, "id": "8166d17d", "metadata": {}, "outputs": [], "source": [ "save_to_excel = False # change value as you see fit\n", "\n", "if save_to_excel == True:\n", " path_25ffa = \"/tmp/Spark25ffa_historical.xlsx\"\n", " spark25ffa.to_excel(path_25ffa)\n", "\n", " path_30ffa = \"/tmp/Spark30ffa_historical.xlsx\"\n", " spark30ffa.to_excel(path_30ffa)" ] }, { "cell_type": "markdown", "id": "9126aa2b", "metadata": {}, "source": [ "# Analytics using Python \n", "\n", "Alternatively, we can group and analyse the data here in the script.\n", "\n", "Below are some examples of how this data can be filtered, grouped and analysed." ] }, { "cell_type": "code", "execution_count": 29, "id": "d88b0cea", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/v3/5pn2lssn077ch9xm2rttdmym0000gn/T/ipykernel_29793/1131647169.py:8: FutureWarning: When grouping with a length-1 list-like, you will need to pass a length-1 tuple to get_group in a future version of pandas. Pass `(name,)` instead of `name` to silence this warning.\n", " spark30latest_ffa = spark30_groups.get_group(releases[-1])\n" ] }, { "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", "
Release DatetickerPeriod NamePeriod StartPeriod EndCalendar MonthSparkSparkMinSparkMax
02024-10-02spark30ffa-monthlyM+02024-10-012024-10-31Oct-2024647506000070000
12024-10-02spark30ffa-monthlyM+12024-11-012024-11-30Nov-2024897508300093000
22024-10-02spark30ffa-monthlyM+22024-12-012024-12-31Dec-2024885008200095000
32024-10-02spark30ffa-monthlyM+32025-01-012025-01-31Jan-2025672506100073000
42024-10-02spark30ffa-monthlyM+42025-02-012025-02-28Feb-2025500004700052000
\n", "
" ], "text/plain": [ " Release Date ticker Period Name Period Start Period End \\\n", "0 2024-10-02 spark30ffa-monthly M+0 2024-10-01 2024-10-31 \n", "1 2024-10-02 spark30ffa-monthly M+1 2024-11-01 2024-11-30 \n", "2 2024-10-02 spark30ffa-monthly M+2 2024-12-01 2024-12-31 \n", "3 2024-10-02 spark30ffa-monthly M+3 2025-01-01 2025-01-31 \n", "4 2024-10-02 spark30ffa-monthly M+4 2025-02-01 2025-02-28 \n", "\n", " Calendar Month Spark SparkMin SparkMax \n", "0 Oct-2024 64750 60000 70000 \n", "1 Nov-2024 89750 83000 93000 \n", "2 Dec-2024 88500 82000 95000 \n", "3 Jan-2025 67250 61000 73000 \n", "4 Feb-2025 50000 47000 52000 " ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Filtering by release date\n", "spark30_groups = spark30ffa.groupby([\"Release Date\"])\n", "\n", "# Get the latest release date\n", "releases = list(spark30_groups.groups.keys())\n", "\n", "# Using this date, get the latest FFA prices\n", "spark30latest_ffa = spark30_groups.get_group(releases[-1])\n", "spark30latest_ffa.head()" ] } ], "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 }