{ "cells": [ { "cell_type": "markdown", "id": "92475c69", "metadata": {}, "source": [ "# Python API Example - End of Day - Contracts\n", "## Calling the latest & historical End-of-Day forward curves\n", "\n", "Here we call price release data from the Spark End of Day Python API. \n", "\n", "This guide is designed to provide an example of how to access the Spark API:\n", "- The path to your client credentials is the only input needed to run this script (just before Section 2)\n", "- This script has been designed to display the raw outputs of requests from the API, and then shows you how to format those outputs to enable easy reading and analysis\n", "- This script can be copied and pasted by customers for quick use of the API\n", "\n", "__N.B. This guide is just for End of Day Contracts 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": "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": 3, "id": "33fb0640", "metadata": {}, "outputs": [], "source": [ "import json\n", "import os\n", "import sys\n", "import pandas as pd\n", "import numpy as np\n", "from base64 import b64encode\n", "from pprint import pprint\n", "from urllib.parse import urljoin\n", "from datetime import datetime\n", "\n", "\n", "try:\n", " from urllib import request, parse\n", " from urllib.error import HTTPError\n", "except ImportError:\n", " raise RuntimeError(\"Python 3 required\")\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", " 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", " 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", " }\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\"]\n", "\n", "\n" ] }, { "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.\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": null, "id": "fd7e89bf", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ">>>> Found credentials!\n", ">>>> Client_id=01c23590-ef6c-4a36-8237-c89c3f1a3b2a, client_secret=80763****\n", ">>>> Successfully fetched an access token eyJhb****, valid 604799 seconds.\n", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eXBlIjoiYWNjZXNzVG9rZW4iLCJzdWIiOiIwMWMyMzU5MC1lZjZjLTRhMzYtODIzNy1jODljM2YxYTNiMmEiLCJzdWJUeXBlIjoib2F1dGgtY2xpZW50IiwiZXhwIjoxNzYwNjg4MDcxLCJoYXNoZWRTZWNyZXQiOiJwYmtkZjJfc2hhMjU2JDYwMDAwMCRoTXRMNDlrMUZUaVVzTE42Njlqc2pPJHVCSXNxcml5b1NHVzJTS1AvaHVLNHh3eTZ4d3VDN001aUdGRm43N2l4S1U9Iiwib3JnVXVpZCI6IjQ5MzhiMGJiLTVmMjctNDE2NC04OTM4LTUyNTdmYmQzNTNmZiIsImNsaWVudFR5cGUiOiJvYXV0aC1jbGllbnQifQ.4sGLU7QBLzBz9fn_DpFH3ermLEZA1DS3d9ThNgEJJ_M\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", "print(access_token)" ] }, { "cell_type": "markdown", "id": "0994ce16", "metadata": {}, "source": [ "# Data Calling function\n", "\n", "Here we define the function used to call the 'intraday/contracts/eod/' endpoint. This endpoint retrieves End-of-Day JKM-TTF prices, and takes 2 required parameters:\n", "\n", "- \"contract\": which contract you'd like to pull curves for ('jkm-ttf')\n", "- \"unit\": which unit you'd like the prices to be in ('usd-per-mmbtu')\n", "\n", "For the latest curve, we use the \"latest_only\" parameter and set it to \"true\": 'latest_only=true'.\n", "\n", "For historical data, the \"start\" and \"end\" parameters need to be defined to specify which date-range of historical data you'd like to see. If these are specified, the \"latest_only\" parameter can be left as set to None. \n", "\n", "__N.B__ If the \"latest_only\" parameter is specified, then the \"start\" and \"end\" parameters should not be specified." ] }, { "cell_type": "code", "execution_count": 7, "id": "ea4e7fc3", "metadata": {}, "outputs": [], "source": [ "## Defining the function\n", "\n", "\n", "def fetch_historical_releases(access_token, contract=None, unit=None, start=None, end=None, latest_only=None):\n", " \n", " # adding all the query parameters required for the API call\n", " query_params = \"?contract={}\".format(contract)\n", " query_params += \"&unit={}\".format(unit)\n", " \n", " if latest_only == 'true':\n", " query_params += \"&latest_only={}\".format(latest_only)\n", " \n", " else:\n", " query_params += \"&start={}\".format(start)\n", " query_params += \"&end={}\".format(end)\n", "\n", " \n", "\n", " uri=\"/beta/intraday/contracts/eod/{}\".format(query_params)\n", " print(uri)\n", " \n", " content = do_api_get_query(\n", " uri=\"/beta/intraday/contracts/eod/{}\".format(query_params), access_token=access_token\n", " )\n", " \n", " return content" ] }, { "cell_type": "code", "execution_count": 9, "id": "38327f98", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/beta/intraday/contracts/eod/?contract=jkm-ttf&unit=usd-per-mmbtu&latest_only=true\n" ] }, { "data": { "text/plain": [ "{'errors': [],\n", " 'data': [{'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2025-12-01',\n", " 'periodName': 'Dec25',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Jan26',\n", " 'value': '0.05'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-02-01',\n", " 'periodName': 'Feb26',\n", " 'value': '0.15'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-03-01',\n", " 'periodName': 'Mar26',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Apr26',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-05-01',\n", " 'periodName': 'May26',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-06-01',\n", " 'periodName': 'Jun26',\n", " 'value': '-0.175'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-07-01',\n", " 'periodName': 'Jul26',\n", " 'value': '-0.05'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-08-01',\n", " 'periodName': 'Aug26',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-09-01',\n", " 'periodName': 'Sep26',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Oct26',\n", " 'value': '0.075'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-11-01',\n", " 'periodName': 'Nov26',\n", " 'value': '-0.15'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-12-01',\n", " 'periodName': 'Dec26',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Jan27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-02-01',\n", " 'periodName': 'Feb27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-03-01',\n", " 'periodName': 'Mar27',\n", " 'value': '0.175'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Apr27',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-05-01',\n", " 'periodName': 'May27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-06-01',\n", " 'periodName': 'Jun27',\n", " 'value': '-0.125'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-07-01',\n", " 'periodName': 'Jul27',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-08-01',\n", " 'periodName': 'Aug27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-09-01',\n", " 'periodName': 'Sep27',\n", " 'value': '0.1'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-10-01',\n", " 'periodName': 'Oct27',\n", " 'value': '0.35'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Q126',\n", " 'value': '0.067'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Q226',\n", " 'value': '-0.275'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-07-01',\n", " 'periodName': 'Q326',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Q426',\n", " 'value': '-0.15'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Q127',\n", " 'value': '0.125'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Q227',\n", " 'value': '-0.2'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-07-01',\n", " 'periodName': 'Q327',\n", " 'value': '0.05'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-10-01',\n", " 'periodName': 'Q427',\n", " 'value': '0.375'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'season',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Sum26',\n", " 'value': '-0.187'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'season',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Win26',\n", " 'value': '-0.05'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'season',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Sum27',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'season',\n", " 'periodFrom': '2027-10-01',\n", " 'periodName': 'Win27',\n", " 'value': '0.05'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'season',\n", " 'periodFrom': '2028-04-01',\n", " 'periodName': 'Sum28',\n", " 'value': '0.35'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'year',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Cal26',\n", " 'value': '-0.246'},\n", " {'releaseDate': '2025-10-09',\n", " 'periodType': 'year',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Cal27',\n", " 'value': '0.344'}],\n", " 'metaData': {'contract': 'jkm-ttf',\n", " 'unit': 'usd-per-mmbtu',\n", " 'start': None,\n", " 'end': None}}" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# calling the function defined above, but only for the latest data\n", "latest = fetch_historical_releases(access_token, contract='jkm-ttf', unit='usd-per-mmbtu', latest_only='true')\n", "latest" ] }, { "cell_type": "code", "execution_count": null, "id": "66719692", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/beta/intraday/contracts/eod/?contract=jkm-ttf&unit=usd-per-mmbtu&start=2025-09-20&end=2025-09-30\n" ] }, { "data": { "text/plain": [ "{'errors': [],\n", " 'data': [{'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2025-11-01',\n", " 'periodName': 'Nov25',\n", " 'value': '-0.025'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2025-12-01',\n", " 'periodName': 'Dec25',\n", " 'value': '-0.125'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Jan26',\n", " 'value': '0.05'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-02-01',\n", " 'periodName': 'Feb26',\n", " 'value': '0.125'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-03-01',\n", " 'periodName': 'Mar26',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Apr26',\n", " 'value': '-0.05'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-05-01',\n", " 'periodName': 'May26',\n", " 'value': '-0.05'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-06-01',\n", " 'periodName': 'Jun26',\n", " 'value': '-0.125'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-07-01',\n", " 'periodName': 'Jul26',\n", " 'value': '-0.05'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-08-01',\n", " 'periodName': 'Aug26',\n", " 'value': '-0.025'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-09-01',\n", " 'periodName': 'Sep26',\n", " 'value': '0.05'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Oct26',\n", " 'value': '0.075'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-11-01',\n", " 'periodName': 'Nov26',\n", " 'value': '-0.15'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-12-01',\n", " 'periodName': 'Dec26',\n", " 'value': '-0.05'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Jan27',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-02-01',\n", " 'periodName': 'Feb27',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-03-01',\n", " 'periodName': 'Mar27',\n", " 'value': '0.175'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Apr27',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-05-01',\n", " 'periodName': 'May27',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-06-01',\n", " 'periodName': 'Jun27',\n", " 'value': '-0.125'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-07-01',\n", " 'periodName': 'Jul27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-08-01',\n", " 'periodName': 'Aug27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-09-01',\n", " 'periodName': 'Sep27',\n", " 'value': '0.425'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Q126',\n", " 'value': '0.05'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Q226',\n", " 'value': '-0.217'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-07-01',\n", " 'periodName': 'Q326',\n", " 'value': '0.017'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Q426',\n", " 'value': '-0.1'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Q127',\n", " 'value': '0.125'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Q227',\n", " 'value': '-0.2'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-07-01',\n", " 'periodName': 'Q327',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-10-01',\n", " 'periodName': 'Q427',\n", " 'value': '0.425'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'season',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Sum26',\n", " 'value': '-0.142'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'season',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Win26',\n", " 'value': '-0.025'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'season',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Sum27',\n", " 'value': '-0.125'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'season',\n", " 'periodFrom': '2027-10-01',\n", " 'periodName': 'Win27',\n", " 'value': '0.05'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'season',\n", " 'periodFrom': '2028-04-01',\n", " 'periodName': 'Sum28',\n", " 'value': '0.4'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'year',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Cal26',\n", " 'value': '-0.19'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'year',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Cal27',\n", " 'value': '-0.244'},\n", " {'releaseDate': '2025-09-22',\n", " 'periodType': 'year',\n", " 'periodFrom': '2028-01-01',\n", " 'periodName': 'Cal28',\n", " 'value': '0.6'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2025-11-01',\n", " 'periodName': 'Nov25',\n", " 'value': '-0.05'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2025-12-01',\n", " 'periodName': 'Dec25',\n", " 'value': '-0.125'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Jan26',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-02-01',\n", " 'periodName': 'Feb26',\n", " 'value': '0.125'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-03-01',\n", " 'periodName': 'Mar26',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Apr26',\n", " 'value': '-0.05'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-05-01',\n", " 'periodName': 'May26',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-06-01',\n", " 'periodName': 'Jun26',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-07-01',\n", " 'periodName': 'Jul26',\n", " 'value': '-0.05'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-08-01',\n", " 'periodName': 'Aug26',\n", " 'value': '-0.025'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-09-01',\n", " 'periodName': 'Sep26',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Oct26',\n", " 'value': '0.075'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-11-01',\n", " 'periodName': 'Nov26',\n", " 'value': '-0.15'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-12-01',\n", " 'periodName': 'Dec26',\n", " 'value': '-0.05'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Jan27',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-02-01',\n", " 'periodName': 'Feb27',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-03-01',\n", " 'periodName': 'Mar27',\n", " 'value': '0.175'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Apr27',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-05-01',\n", " 'periodName': 'May27',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-06-01',\n", " 'periodName': 'Jun27',\n", " 'value': '-0.125'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-07-01',\n", " 'periodName': 'Jul27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-08-01',\n", " 'periodName': 'Aug27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-09-01',\n", " 'periodName': 'Sep27',\n", " 'value': '0.425'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Q126',\n", " 'value': '0.033'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Q226',\n", " 'value': '-0.183'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-07-01',\n", " 'periodName': 'Q326',\n", " 'value': '-0.008'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Q426',\n", " 'value': '-0.1'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Q127',\n", " 'value': '0.125'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Q227',\n", " 'value': '-0.2'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-07-01',\n", " 'periodName': 'Q327',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-10-01',\n", " 'periodName': 'Q427',\n", " 'value': '0.425'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'season',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Sum26',\n", " 'value': '-0.15'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'season',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Win26',\n", " 'value': '-0.025'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'season',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Sum27',\n", " 'value': '-0.1'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'season',\n", " 'periodFrom': '2027-10-01',\n", " 'periodName': 'Win27',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'season',\n", " 'periodFrom': '2028-04-01',\n", " 'periodName': 'Sum28',\n", " 'value': '0.4'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'year',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Cal26',\n", " 'value': '-0.196'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'year',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Cal27',\n", " 'value': '-0.244'},\n", " {'releaseDate': '2025-09-23',\n", " 'periodType': 'year',\n", " 'periodFrom': '2028-01-01',\n", " 'periodName': 'Cal28',\n", " 'value': '0.6'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2025-11-01',\n", " 'periodName': 'Nov25',\n", " 'value': '-0.025'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2025-12-01',\n", " 'periodName': 'Dec25',\n", " 'value': '-0.15'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Jan26',\n", " 'value': '0.075'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-02-01',\n", " 'periodName': 'Feb26',\n", " 'value': '0.075'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-03-01',\n", " 'periodName': 'Mar26',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Apr26',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-05-01',\n", " 'periodName': 'May26',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-06-01',\n", " 'periodName': 'Jun26',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-07-01',\n", " 'periodName': 'Jul26',\n", " 'value': '-0.025'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-08-01',\n", " 'periodName': 'Aug26',\n", " 'value': '-0.025'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-09-01',\n", " 'periodName': 'Sep26',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Oct26',\n", " 'value': '0.075'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-11-01',\n", " 'periodName': 'Nov26',\n", " 'value': '-0.15'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-12-01',\n", " 'periodName': 'Dec26',\n", " 'value': '-0.05'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Jan27',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-02-01',\n", " 'periodName': 'Feb27',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-03-01',\n", " 'periodName': 'Mar27',\n", " 'value': '0.175'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Apr27',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-05-01',\n", " 'periodName': 'May27',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-06-01',\n", " 'periodName': 'Jun27',\n", " 'value': '-0.125'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-07-01',\n", " 'periodName': 'Jul27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-08-01',\n", " 'periodName': 'Aug27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-09-01',\n", " 'periodName': 'Sep27',\n", " 'value': '0.425'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Q126',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Q226',\n", " 'value': '-0.175'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-07-01',\n", " 'periodName': 'Q326',\n", " 'value': '-0.025'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Q426',\n", " 'value': '-0.1'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Q127',\n", " 'value': '0.125'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Q227',\n", " 'value': '-0.2'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-07-01',\n", " 'periodName': 'Q327',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-10-01',\n", " 'periodName': 'Q427',\n", " 'value': '0.4'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'season',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Sum26',\n", " 'value': '-0.162'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'season',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Win26',\n", " 'value': '-0.025'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'season',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Sum27',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'season',\n", " 'periodFrom': '2027-10-01',\n", " 'periodName': 'Win27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'season',\n", " 'periodFrom': '2028-04-01',\n", " 'periodName': 'Sum28',\n", " 'value': '0.4'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'year',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Cal26',\n", " 'value': '-0.2'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'year',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Cal27',\n", " 'value': '-0.25'},\n", " {'releaseDate': '2025-09-24',\n", " 'periodType': 'year',\n", " 'periodFrom': '2028-01-01',\n", " 'periodName': 'Cal28',\n", " 'value': '0.6'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2025-11-01',\n", " 'periodName': 'Nov25',\n", " 'value': '0.05'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2025-12-01',\n", " 'periodName': 'Dec25',\n", " 'value': '-0.125'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Jan26',\n", " 'value': '0.05'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-02-01',\n", " 'periodName': 'Feb26',\n", " 'value': '0.1'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-03-01',\n", " 'periodName': 'Mar26',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Apr26',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-05-01',\n", " 'periodName': 'May26',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-06-01',\n", " 'periodName': 'Jun26',\n", " 'value': '-0.125'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-07-01',\n", " 'periodName': 'Jul26',\n", " 'value': '-0.05'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-08-01',\n", " 'periodName': 'Aug26',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-09-01',\n", " 'periodName': 'Sep26',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Oct26',\n", " 'value': '0.075'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-11-01',\n", " 'periodName': 'Nov26',\n", " 'value': '-0.15'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-12-01',\n", " 'periodName': 'Dec26',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Jan27',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-02-01',\n", " 'periodName': 'Feb27',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-03-01',\n", " 'periodName': 'Mar27',\n", " 'value': '0.15'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Apr27',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-05-01',\n", " 'periodName': 'May27',\n", " 'value': '-0.025'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-06-01',\n", " 'periodName': 'Jun27',\n", " 'value': '-0.15'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-07-01',\n", " 'periodName': 'Jul27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-08-01',\n", " 'periodName': 'Aug27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-09-01',\n", " 'periodName': 'Sep27',\n", " 'value': '0.4'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Q126',\n", " 'value': '0.033'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Q226',\n", " 'value': '-0.233'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-07-01',\n", " 'periodName': 'Q326',\n", " 'value': '0.008'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Q426',\n", " 'value': '-0.125'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Q127',\n", " 'value': '0.117'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Q227',\n", " 'value': '-0.192'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-07-01',\n", " 'periodName': 'Q327',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-10-01',\n", " 'periodName': 'Q427',\n", " 'value': '0.4'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'season',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Sum26',\n", " 'value': '-0.171'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'season',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Win26',\n", " 'value': '-0.042'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'season',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Sum27',\n", " 'value': '-0.096'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'season',\n", " 'periodFrom': '2027-10-01',\n", " 'periodName': 'Win27',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'season',\n", " 'periodFrom': '2028-04-01',\n", " 'periodName': 'Sum28',\n", " 'value': '0.375'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'year',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Cal26',\n", " 'value': '-0.235'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'year',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Cal27',\n", " 'value': '-0.267'},\n", " {'releaseDate': '2025-09-25',\n", " 'periodType': 'year',\n", " 'periodFrom': '2028-01-01',\n", " 'periodName': 'Cal28',\n", " 'value': '0.6'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2025-11-01',\n", " 'periodName': 'Nov25',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2025-12-01',\n", " 'periodName': 'Dec25',\n", " 'value': '-0.125'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Jan26',\n", " 'value': '0.05'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-02-01',\n", " 'periodName': 'Feb26',\n", " 'value': '0.125'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-03-01',\n", " 'periodName': 'Mar26',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Apr26',\n", " 'value': '-0.05'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-05-01',\n", " 'periodName': 'May26',\n", " 'value': '-0.1'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-06-01',\n", " 'periodName': 'Jun26',\n", " 'value': '-0.1'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-07-01',\n", " 'periodName': 'Jul26',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-08-01',\n", " 'periodName': 'Aug26',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-09-01',\n", " 'periodName': 'Sep26',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Oct26',\n", " 'value': '0.075'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-11-01',\n", " 'periodName': 'Nov26',\n", " 'value': '-0.15'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-12-01',\n", " 'periodName': 'Dec26',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Jan27',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-02-01',\n", " 'periodName': 'Feb27',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-03-01',\n", " 'periodName': 'Mar27',\n", " 'value': '0.15'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Apr27',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-05-01',\n", " 'periodName': 'May27',\n", " 'value': '-0.025'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-06-01',\n", " 'periodName': 'Jun27',\n", " 'value': '-0.15'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-07-01',\n", " 'periodName': 'Jul27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-08-01',\n", " 'periodName': 'Aug27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-09-01',\n", " 'periodName': 'Sep27',\n", " 'value': '0.4'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Q126',\n", " 'value': '0.058'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Q226',\n", " 'value': '-0.225'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-07-01',\n", " 'periodName': 'Q326',\n", " 'value': '-0.008'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Q426',\n", " 'value': '-0.125'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Q127',\n", " 'value': '0.117'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Q227',\n", " 'value': '-0.192'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-07-01',\n", " 'periodName': 'Q327',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-10-01',\n", " 'periodName': 'Q427',\n", " 'value': '0.4'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'season',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Sum26',\n", " 'value': '-0.183'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'season',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Win26',\n", " 'value': '-0.042'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'season',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Sum27',\n", " 'value': '-0.096'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'season',\n", " 'periodFrom': '2027-10-01',\n", " 'periodName': 'Win27',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'season',\n", " 'periodFrom': '2028-04-01',\n", " 'periodName': 'Sum28',\n", " 'value': '0.375'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'year',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Cal26',\n", " 'value': '-0.237'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'year',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Cal27',\n", " 'value': '-0.267'},\n", " {'releaseDate': '2025-09-26',\n", " 'periodType': 'year',\n", " 'periodFrom': '2028-01-01',\n", " 'periodName': 'Cal28',\n", " 'value': '0.6'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2025-11-01',\n", " 'periodName': 'Nov25',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2025-12-01',\n", " 'periodName': 'Dec25',\n", " 'value': '-0.15'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Jan26',\n", " 'value': '0.05'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-02-01',\n", " 'periodName': 'Feb26',\n", " 'value': '0.125'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-03-01',\n", " 'periodName': 'Mar26',\n", " 'value': '0.075'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Apr26',\n", " 'value': '-0.1'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-05-01',\n", " 'periodName': 'May26',\n", " 'value': '-0.05'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-06-01',\n", " 'periodName': 'Jun26',\n", " 'value': '-0.175'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-07-01',\n", " 'periodName': 'Jul26',\n", " 'value': '-0.05'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-08-01',\n", " 'periodName': 'Aug26',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-09-01',\n", " 'periodName': 'Sep26',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Oct26',\n", " 'value': '0.075'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-11-01',\n", " 'periodName': 'Nov26',\n", " 'value': '-0.15'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-12-01',\n", " 'periodName': 'Dec26',\n", " 'value': '-0.025'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Jan27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-02-01',\n", " 'periodName': 'Feb27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-03-01',\n", " 'periodName': 'Mar27',\n", " 'value': '0.15'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Apr27',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-05-01',\n", " 'periodName': 'May27',\n", " 'value': '-0.025'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-06-01',\n", " 'periodName': 'Jun27',\n", " 'value': '-0.175'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-07-01',\n", " 'periodName': 'Jul27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-08-01',\n", " 'periodName': 'Aug27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-09-01',\n", " 'periodName': 'Sep27',\n", " 'value': '0.425'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Q126',\n", " 'value': '0.092'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Q226',\n", " 'value': '-0.267'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-07-01',\n", " 'periodName': 'Q326',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Q426',\n", " 'value': '-0.1'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Q127',\n", " 'value': '0.092'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Q227',\n", " 'value': '-0.217'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-07-01',\n", " 'periodName': 'Q327',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-10-01',\n", " 'periodName': 'Q427',\n", " 'value': '0.4'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'season',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Sum26',\n", " 'value': '-0.183'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'season',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Win26',\n", " 'value': '-0.067'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'season',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Sum27',\n", " 'value': '-0.083'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'season',\n", " 'periodFrom': '2027-10-01',\n", " 'periodName': 'Win27',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'season',\n", " 'periodFrom': '2028-04-01',\n", " 'periodName': 'Sum28',\n", " 'value': '0.375'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'year',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Cal26',\n", " 'value': '-0.244'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'year',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Cal27',\n", " 'value': '-0.267'},\n", " {'releaseDate': '2025-09-29',\n", " 'periodType': 'year',\n", " 'periodFrom': '2028-01-01',\n", " 'periodName': 'Cal28',\n", " 'value': '0.6'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2025-12-01',\n", " 'periodName': 'Dec25',\n", " 'value': '-0.15'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Jan26',\n", " 'value': '0.05'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-02-01',\n", " 'periodName': 'Feb26',\n", " 'value': '0.125'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-03-01',\n", " 'periodName': 'Mar26',\n", " 'value': '0.05'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Apr26',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-05-01',\n", " 'periodName': 'May26',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-06-01',\n", " 'periodName': 'Jun26',\n", " 'value': '-0.175'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-07-01',\n", " 'periodName': 'Jul26',\n", " 'value': '-0.025'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-08-01',\n", " 'periodName': 'Aug26',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-09-01',\n", " 'periodName': 'Sep26',\n", " 'value': '0.025'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Oct26',\n", " 'value': '0.075'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-11-01',\n", " 'periodName': 'Nov26',\n", " 'value': '-0.15'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2026-12-01',\n", " 'periodName': 'Dec26',\n", " 'value': '-0.05'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Jan27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-02-01',\n", " 'periodName': 'Feb27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-03-01',\n", " 'periodName': 'Mar27',\n", " 'value': '0.15'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Apr27',\n", " 'value': '-0.075'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-05-01',\n", " 'periodName': 'May27',\n", " 'value': '-0.025'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-06-01',\n", " 'periodName': 'Jun27',\n", " 'value': '-0.175'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-07-01',\n", " 'periodName': 'Jul27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-08-01',\n", " 'periodName': 'Aug27',\n", " 'value': '0.0'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-09-01',\n", " 'periodName': 'Sep27',\n", " 'value': '0.075'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'month',\n", " 'periodFrom': '2027-10-01',\n", " 'periodName': 'Oct27',\n", " 'value': '0.35'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Q126',\n", " 'value': '0.075'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Q226',\n", " 'value': '-0.267'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-07-01',\n", " 'periodName': 'Q326',\n", " 'value': '0.017'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Q426',\n", " 'value': '-0.125'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Q127',\n", " 'value': '0.092'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Q227',\n", " 'value': '-0.217'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-07-01',\n", " 'periodName': 'Q327',\n", " 'value': '0.075'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'quarter',\n", " 'periodFrom': '2027-10-01',\n", " 'periodName': 'Q427',\n", " 'value': '0.35'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'season',\n", " 'periodFrom': '2026-04-01',\n", " 'periodName': 'Sum26',\n", " 'value': '-0.179'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'season',\n", " 'periodFrom': '2026-10-01',\n", " 'periodName': 'Win26',\n", " 'value': '-0.079'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'season',\n", " 'periodFrom': '2027-04-01',\n", " 'periodName': 'Sum27',\n", " 'value': '-0.083'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'season',\n", " 'periodFrom': '2027-10-01',\n", " 'periodName': 'Win27',\n", " 'value': '0.05'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'season',\n", " 'periodFrom': '2028-04-01',\n", " 'periodName': 'Sum28',\n", " 'value': '0.35'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'year',\n", " 'periodFrom': '2026-01-01',\n", " 'periodName': 'Cal26',\n", " 'value': '-0.248'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'year',\n", " 'periodFrom': '2027-01-01',\n", " 'periodName': 'Cal27',\n", " 'value': '-0.279'},\n", " {'releaseDate': '2025-09-30',\n", " 'periodType': 'year',\n", " 'periodFrom': '2028-01-01',\n", " 'periodName': 'Cal28',\n", " 'value': '0.6'}],\n", " 'metaData': {'contract': 'jkm-ttf',\n", " 'unit': 'usd-per-mmbtu',\n", " 'start': '2025-09-20',\n", " 'end': '2025-09-30'}}" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# calling historical dataset\n", "data = fetch_historical_releases(access_token, contract='jkm-ttf', unit='usd-per-mmbtu', start='2025-09-20', end='2025-09-30')\n", "data" ] }, { "cell_type": "markdown", "id": "eaa83433", "metadata": {}, "source": [ "## Data included\n", "\n", "The JSON includes 4 fields:\n", "- 'errors': will be empty if the API call is successful, otherwise returns relevant error code\n", "- 'data': contains the full forward curve of the requested contract\n", "- 'revisions': contains any revisions made since the last price release - this can be for a revision for any historical price\n", "- 'metaData': provides details on the fetched data and time of API call" ] }, { "cell_type": "code", "execution_count": 11, "id": "55b36a7c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['errors', 'data', 'metaData'])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# summary of what the JSON includes\n", "data.keys()" ] }, { "cell_type": "code", "execution_count": 12, "id": "147467bd", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | releaseDate | \n", "periodType | \n", "periodFrom | \n", "periodName | \n", "value | \n", "
---|---|---|---|---|---|
0 | \n", "2025-10-09 | \n", "month | \n", "2025-12-01 | \n", "Dec25 | \n", "-0.075 | \n", "
1 | \n", "2025-10-09 | \n", "month | \n", "2026-01-01 | \n", "Jan26 | \n", "0.05 | \n", "
2 | \n", "2025-10-09 | \n", "month | \n", "2026-02-01 | \n", "Feb26 | \n", "0.15 | \n", "
3 | \n", "2025-10-09 | \n", "month | \n", "2026-03-01 | \n", "Mar26 | \n", "0.025 | \n", "
4 | \n", "2025-10-09 | \n", "month | \n", "2026-04-01 | \n", "Apr26 | \n", "-0.075 | \n", "
5 | \n", "2025-10-09 | \n", "month | \n", "2026-05-01 | \n", "May26 | \n", "-0.075 | \n", "
6 | \n", "2025-10-09 | \n", "month | \n", "2026-06-01 | \n", "Jun26 | \n", "-0.175 | \n", "
7 | \n", "2025-10-09 | \n", "month | \n", "2026-07-01 | \n", "Jul26 | \n", "-0.05 | \n", "
8 | \n", "2025-10-09 | \n", "month | \n", "2026-08-01 | \n", "Aug26 | \n", "0.025 | \n", "
9 | \n", "2025-10-09 | \n", "month | \n", "2026-09-01 | \n", "Sep26 | \n", "0.025 | \n", "
10 | \n", "2025-10-09 | \n", "month | \n", "2026-10-01 | \n", "Oct26 | \n", "0.075 | \n", "
11 | \n", "2025-10-09 | \n", "month | \n", "2026-11-01 | \n", "Nov26 | \n", "-0.15 | \n", "
12 | \n", "2025-10-09 | \n", "month | \n", "2026-12-01 | \n", "Dec26 | \n", "-0.075 | \n", "
13 | \n", "2025-10-09 | \n", "month | \n", "2027-01-01 | \n", "Jan27 | \n", "0.0 | \n", "
14 | \n", "2025-10-09 | \n", "month | \n", "2027-02-01 | \n", "Feb27 | \n", "0.0 | \n", "
15 | \n", "2025-10-09 | \n", "month | \n", "2027-03-01 | \n", "Mar27 | \n", "0.175 | \n", "
16 | \n", "2025-10-09 | \n", "month | \n", "2027-04-01 | \n", "Apr27 | \n", "-0.075 | \n", "
17 | \n", "2025-10-09 | \n", "month | \n", "2027-05-01 | \n", "May27 | \n", "0.0 | \n", "
18 | \n", "2025-10-09 | \n", "month | \n", "2027-06-01 | \n", "Jun27 | \n", "-0.125 | \n", "
19 | \n", "2025-10-09 | \n", "month | \n", "2027-07-01 | \n", "Jul27 | \n", "-0.075 | \n", "
20 | \n", "2025-10-09 | \n", "month | \n", "2027-08-01 | \n", "Aug27 | \n", "0.0 | \n", "
21 | \n", "2025-10-09 | \n", "month | \n", "2027-09-01 | \n", "Sep27 | \n", "0.1 | \n", "
22 | \n", "2025-10-09 | \n", "month | \n", "2027-10-01 | \n", "Oct27 | \n", "0.35 | \n", "
23 | \n", "2025-10-09 | \n", "quarter | \n", "2026-01-01 | \n", "Q126 | \n", "0.067 | \n", "
24 | \n", "2025-10-09 | \n", "quarter | \n", "2026-04-01 | \n", "Q226 | \n", "-0.275 | \n", "
25 | \n", "2025-10-09 | \n", "quarter | \n", "2026-07-01 | \n", "Q326 | \n", "0.025 | \n", "
26 | \n", "2025-10-09 | \n", "quarter | \n", "2026-10-01 | \n", "Q426 | \n", "-0.15 | \n", "
27 | \n", "2025-10-09 | \n", "quarter | \n", "2027-01-01 | \n", "Q127 | \n", "0.125 | \n", "
28 | \n", "2025-10-09 | \n", "quarter | \n", "2027-04-01 | \n", "Q227 | \n", "-0.2 | \n", "
29 | \n", "2025-10-09 | \n", "quarter | \n", "2027-07-01 | \n", "Q327 | \n", "0.05 | \n", "
30 | \n", "2025-10-09 | \n", "quarter | \n", "2027-10-01 | \n", "Q427 | \n", "0.375 | \n", "
31 | \n", "2025-10-09 | \n", "season | \n", "2026-04-01 | \n", "Sum26 | \n", "-0.187 | \n", "
32 | \n", "2025-10-09 | \n", "season | \n", "2026-10-01 | \n", "Win26 | \n", "-0.05 | \n", "
33 | \n", "2025-10-09 | \n", "season | \n", "2027-04-01 | \n", "Sum27 | \n", "-0.075 | \n", "
34 | \n", "2025-10-09 | \n", "season | \n", "2027-10-01 | \n", "Win27 | \n", "0.05 | \n", "
35 | \n", "2025-10-09 | \n", "season | \n", "2028-04-01 | \n", "Sum28 | \n", "0.35 | \n", "
36 | \n", "2025-10-09 | \n", "year | \n", "2026-01-01 | \n", "Cal26 | \n", "-0.246 | \n", "
37 | \n", "2025-10-09 | \n", "year | \n", "2027-01-01 | \n", "Cal27 | \n", "0.344 | \n", "