Building a time series forecasting assistant with Amazon Bedrock and LibreChat

Architecture diagram showing a user interacting with LibreChat, which routes requests to Claude Sonnet 4.6 on Amazon Bedrock to query a ClickHouse database and generate forecasts using Chronos on Amazon Bedrock.

1. Overview

Most forecasting systems expose their outputs through dashboards and reports, limiting the user’s interaction and visibility to predefined queries anticipated at development time. In this post, we address this limitation by building a conversational time series forecasting assistant using ClickHouse, Amazon Bedrock, and LibreChat. The assistant allows the user to explore the underlying data, select specific time series, and adjust forecast parameters - such as quantile levels and prediction horizons - through natural language.

The solution is built around the Model Context Protocol (MCP), which defines a standard interface for connecting language models to external tools and services, and relies on three servers: the ClickHouse MCP server for retrieving the time series, a custom MCP server that generates probabilistic time series forecasts using Chronos [1, 2] - a time series foundation model developed by Amazon - deployed on Amazon Bedrock, and an additional custom MCP server that creates interactive Plotly charts of the time series and their forecasts. We use LibreChat as the chat UI, with Claude Sonnet 4.6 on Amazon Bedrock as the orchestrating model.

For simplicity, this demonstration uses artificially generated sales data for three products. However, as Chronos performs zero-shot forecasting without fine-tuning, this solution can be applied to any time series dataset. In the rest of the post, we walk through the implementation of the three MCP servers and the assistant configuration. We also illustrate a typical conversation with the assistant, which is shown in the video below; the transcript is reported at the end of this post.

2. Solution

For this example, we use synthetic hourly sales data for three products: Product A, Product B and Product C. The time series span 90 days, and are stored in two ClickHouse tables: products, which maps product IDs to names, and sales, which records hourly units sold per product.

products ClickHouse table

Figure 1: products ClickHouse table.

Last 9 rows of sales ClickHouse table

Figure 2: Last 9 rows of sales ClickHouse table.

2.1 Set up the MCP servers

We start by cloning the LibreChat GitHub repository and configuring Claude Sonnet 4.6 on Amazon Bedrock as the underlying model. We use the eu.anthropic.claude-sonnet-4-6 cross-region inference profile in eu-west-1. As outlined in the LibreChat documentation, we update the following environment variables in the .env file:

BEDROCK_AWS_DEFAULT_REGION=eu-west-1
BEDROCK_AWS_MODELS=eu.anthropic.claude-sonnet-4-6
BEDROCK_AWS_ACCESS_KEY_ID=<AWS_ACCESS_KEY_ID>
BEDROCK_AWS_SECRET_ACCESS_KEY=<AWS_SECRET_ACCESS_KEY>

We also include the model’s inference profile ARN in librechat.yaml:

endpoints:
  bedrock:
    inferenceProfiles:
      "eu.anthropic.claude-sonnet-4-6": "arn:aws:bedrock:eu-west-1:<AWS_ACCOUNT_ID>:inference-profile/eu.anthropic.claude-sonnet-4-6"

2.1.1 Configure the ClickHouse MCP server

Next, we configure the ClickHouse MCP server. As detailed in the ClickHouse documentation, we create a docker-compose.override.yml file and add the following configuration to it:

services:
  api:
    volumes:
      - ./librechat.yaml:/app/librechat.yaml
  mcp-clickhouse:
    image: mcp/clickhouse
    container_name: mcp-clickhouse
    ports:
      - 8001:8000
    extra_hosts:
      - "host.docker.internal:host-gateway"
    environment:
      - CLICKHOUSE_HOST=<CLICKHOUSE_HOST>
      - CLICKHOUSE_USER=<CLICKHOUSE_USER>
      - CLICKHOUSE_PASSWORD=<CLICKHOUSE_PASSWORD>
      - CLICKHOUSE_MCP_SERVER_TRANSPORT=sse
      - CLICKHOUSE_MCP_BIND_HOST=0.0.0.0

We also register the ClickHouse MCP server in librechat.yaml to run on port 8001:

mcpServers:
  clickhouse-playground:
    type: sse
    url: http://host.docker.internal:8001/sse

2.1.2 Create the forecasting MCP server

After that, we create the forecasting MCP server using the FastMCP library. The server exposes a generate_forecasts tool that takes a list of historical values, a prediction length, and a list of quantile levels, and returns probabilistic time series forecasts by invoking the Chronos endpoint via boto3. For instructions on deploying Chronos to Amazon Bedrock, we refer to our previous blog post.

We configure the forecasting MCP server in the docker-compose.override.yml file that we previously created for configuring the ClickHouse MCP server:

services:
  <clickhouse-mcp-configuration> # Added in Section 2.1.1
  chronos-forecasting:
    build:
      context: ./chronos-forecasting
    ports:
      - "8002:8002"
    environment:
      - AWS_DEFAULT_REGION=eu-west-1
      - AWS_ACCESS_KEY_ID=<AWS_ACCESS_KEY_ID>
      - AWS_SECRET_ACCESS_KEY=<AWS_SECRET_ACCESS_KEY>

We also register the forecasting MCP server in librechat.yaml to run on port 8002:

mcpServers:
  <clickhouse-mcp-server> # Added in Section 2.1.1
  chronos-forecasting:
    type: sse
    url: http://host.docker.internal:8002/sse

The code used for building the Docker image of the forecasting MCP server is reported below.

2.1.2.1 server.py

import json
import boto3
from mcp.server.fastmcp import FastMCP

# Create the FastMCP server
mcp = FastMCP(
    name="chronos-forecasting",
    host="0.0.0.0",
    port=8002
)

# Register the tool with the FastMCP server
@mcp.tool()
def generate_forecasts(
    target: list[float],
    prediction_length: int,
    quantile_levels: list[float]
) -> dict:
    """
    Generate probabilistic time series forecasts using Chronos on Amazon Bedrock.

    Parameters:
    ===============================================================================
    target: list of float.
        The historical time series values used as context.

    prediction_length: int.
        The number of future time steps to predict.

    quantile_levels: list of float.
        The quantiles to be predicted at each future time step.

    Returns:
    ===============================================================================
    dict
        Dictionary with predicted mean and quantiles at each future time step.
    """
    # Create the Bedrock client
    bedrock_runtime_client = boto3.client("bedrock-runtime")

    # Invoke the Bedrock endpoint
    response = bedrock_runtime_client.invoke_model(
        modelId="<bedrock-endpoint-arn>",
        body=json.dumps({
            "inputs": [{
                "target": target
            }],
            "parameters": {
                "prediction_length": prediction_length,
                "quantile_levels": quantile_levels
            }
        })
    )

    # Extract the forecasts
    forecasts = json.loads(response["body"].read()).get("predictions")[0]

    # Return the forecasts
    return forecasts


# Run the FastMCP server with SSE transport
if __name__ == "__main__":
    mcp.run(transport="sse")

2.1.2.2 requirements.txt

mcp
boto3

2.1.2.3 Dockerfile

FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY server.py .
CMD ["python", "server.py"]

2.1.3 Create the data visualization MCP server

The data visualization MCP server exposes a visualize_data tool that generates interactive Plotly charts from historical data and forecast outputs. Charts are saved as self-contained HTML files and served over HTTP on port 8004. The tool returns the URL of the interactive HTML chart, that LibreChat renders directly in the Artifacts panel.

Note

The data visualization MCP server is not strictly necessary, as the language model can generate the charts directly. However, a dedicated server ensures consistent styling and reproducible outputs, which cannot be guaranteed when the language model generates the charts on its own.

Like the forecasting server, the data visualization server is built using FastMCP. As we did for the forecasting server, we configure it in docker-compose.override.yml:

services:
  <clickhouse-mcp-configuration> # Added in Section 2.1.1
  <forecasting-mcp-configuration> # Added in Section 2.1.2
  data-visualization:
    build:
      context: ./data-visualization
    ports:
      - "8003:8003"
      - "8004:8004"
    volumes:
      - ./plots:/plots

We also register the data visualization MCP server in librechat.yaml to run on port 8003:

mcpServers:
  <clickhouse-mcp-server> # Added in Section 2.1.1
  <forecasting-mcp-server> # Added in Section 2.1.2
  data-visualization:
    type: sse
    url: http://host.docker.internal:8003/sse

The code used for building the Docker image of the data visualization MCP server is reported below.

2.1.3.1 server.py

import os
import uuid
import threading
import http.server
import functools
import plotly.graph_objects as go
from plotly.subplots import make_subplots
from mcp.server.fastmcp import FastMCP

# Create the FastMCP server
mcp = FastMCP(
    name="data-visualization",
    host="0.0.0.0",
    port=8003
)

# Register the tool with the FastMCP server
@mcp.tool()
def visualize_data(
    inputs: dict
) -> str:
    """
    Plot one or more time series with optional forecasts and return
    the URL of the interactive HTML chart.

    Parameters
    ===============================================================================
    inputs : dict
        A dictionary with the following keys:

        "data" (required) : dict
            A dictionary where each key is a series name and each value is the
            raw output of a ClickHouse query, with the following fields:
                - "columns" : list of strings, must contain "timestamp" and one value column
                - "rows"    : list of [timestamp_str, float] pairs

            Example:
            {
                "series_1": {
                    "columns": ["timestamp", "<VALUE>"],
                    "rows": [
                        ["2026-01-01", 1.0],
                        ["2026-01-02", 2.0]
                    ]
                },
                "series_2": {
                    "columns": ["timestamp", "<VALUE>"],
                    "rows": [
                        ["2026-01-03", 3.0],
                        ["2026-01-04", 4.0]
                    ]
                },
            }

        "forecasts" (optional) : dict
            Forecasts for the same time series in "data". Each key is a series
            name matching a key in "data", and each value is a dictionary with
            the following fields:
                - "timestamp"  : list of strings representing datetimes
                - "mean"       : list of floats (mean forecast)
                - "<quantile>" : list of floats for each quantile level, e.g.
                                 "0.05" and "0.95" for a 90% prediction interval.

            Example:
            {
                "series_1": {
                    "timestamp": ["2026-01-01", "2026-01-02"],
                    "mean": [1.0, 2.0],
                    "0.1": [0.5, 1.5],
                    "0.5": [1.0, 2.0],
                    "0.9": [1.5, 2.5],
                },
                "series_2": {
                    "timestamp": ["2026-01-03", "2026-01-04"],
                    "mean": [3.0, 4.0],
                    "0.1": [2.5, 3.5],
                    "0.5": [3.0, 4.0],
                    "0.9": [3.5, 4.5],
                },
            }

    Returns
    ===============================================================================
    str
        The URL of the interactive HTML chart.
    """
    # Extract the data and forecasts
    data = inputs["data"]
    forecasts = inputs.get("forecasts", {})

    # Parse the data
    parsed_data = {}
    for series, query_result in data.items():
        value_col = [c for c in query_result["columns"] if c != "timestamp"][0]
        idx = query_result["columns"].index
        parsed_data[series] = {
            "timestamp": [row[idx("timestamp")] for row in query_result["rows"]],
            "values": [row[idx(value_col)] for row in query_result["rows"]]
        }

    # Create the figure
    fig = make_subplots(
        rows=len(data),
        subplot_titles=list(data.keys())
    )

    # Update the figure layout
    fig.update_layout(
        height=250 * len(data),
        paper_bgcolor="white",
        plot_bgcolor="white",
        margin=dict(t=50, b=50, l=50, r=50),
        hovermode="x unified",
        hoverlabel=dict(
            namelength=-1
        ),
        legend=dict(
            font=dict(
                color="#24292f",
                size=12
            ),
        )
    )

    # Update the subplots titles
    fig.update_annotations(
        font=dict(
            color="#24292f",
            size=14
        ),
    )

    # Generate the subplots
    for i, series in enumerate(data):
        # Plot the forecasts
        if series in forecasts:
            # Extract the predicted quantiles
            q = sorted([float(k) for k in forecasts[series] if k not in ("mean", "timestamp")])

            # Extract the lower and upper bound of the prediction interval
            q_min, q_max = q[0], q[-1]

            # Plot the upper bound of the prediction interval
            fig.add_trace(
                go.Scatter(
                    x=forecasts[series]["timestamp"],
                    y=forecasts[series][str(q_max)],
                    name=f"Predicted Q{q_max:,.1%}",
                    hovertemplate="%{fullData.name}: %{y:,.0f}<extra></extra>",
                    showlegend=False,
                    mode="lines",
                    line=dict(
                        width=0.5,
                        color="#c2e5ff",
                    ),
                ),
                row=i + 1,
                col=1
            )

            # Plot the lower bound of the prediction interval
            fig.add_trace(
                go.Scatter(
                    x=forecasts[series]["timestamp"],
                    y=forecasts[series][str(q_min)],
                    name=f"Predicted Q{q_min:,.1%}",
                    hovertemplate="%{fullData.name}: %{y:,.0f}<extra></extra>",
                    showlegend=False,
                    mode="lines",
                    line=dict(
                        width=0.5,
                        color="#c2e5ff",
                    ),
                    fillcolor="#c2e5ff",
                    fill="tonexty",
                ),
                row=i + 1,
                col=1
            )

            # Plot the predicted median if available, otherwise fall back to the predicted mean
            fig.add_trace(
                go.Scatter(
                    x=forecasts[series]["timestamp"],
                    y=forecasts[series]["0.5" if 0.5 in q else "mean"],
                    name=f"Predicted {'Median' if 0.5 in q else 'Mean'}",
                    hovertemplate="%{fullData.name}: %{y:,.0f}<extra></extra>",
                    showlegend=i == 0,
                    mode="lines",
                    line=dict(
                        color="#0588f0",
                        width=1,
                        dash="dot"
                    )
                ),
                row=i + 1,
                col=1
            )

        # Plot the data
        fig.add_trace(
            go.Scatter(
                x=parsed_data[series]["timestamp"],
                y=parsed_data[series]["values"],
                name="Historical Data",
                hovertemplate="%{fullData.name}: %{y:,.0f}<extra></extra>",
                mode="lines",
                showlegend=i == 0,
                line=dict(
                    color="#838383",
                    width=1
                )
            ),
            row=i + 1,
            col=1
        )

        # Update the subplot's x-axis
        fig.update_xaxes(
            type="date",
            tickformat="%b %d %Y<br>(%a) %H:%M",
            tickangle=0,
            mirror=True,
            linecolor="#cecece",
            gridcolor="#e8e8e8",
            gridwidth=0.5,
            tickfont=dict(
                color="#24292f",
                size=10
            ),
            row=i + 1,
            col=1
        )

        # Update the subplot's y-axis
        fig.update_yaxes(
            tickformat=",.0f",
            mirror=True,
            linecolor="#cecece",
            gridcolor="#e8e8e8",
            gridwidth=0.5,
            tickfont=dict(
                color="#24292f",
                size=10
            ),
            row=i + 1,
            col=1
        )

    # Save the figure to an HTML file
    os.makedirs("/plots", exist_ok=True)
    filename = f"plot_{uuid.uuid4().hex}.html"
    fig.write_html(f"/plots/{filename}", full_html=True, include_plotlyjs="cdn")

    # Return the URL of the HTML file
    return f"http://localhost:8004/{filename}"


if __name__ == "__main__":
    # Serve the /plots directory over HTTP on port 8004
    def _serve_plots():
        handler = functools.partial(http.server.SimpleHTTPRequestHandler, directory="/plots")
        with http.server.HTTPServer(("0.0.0.0", 8004), handler) as httpd:
            httpd.serve_forever()


    # Start the HTTP server
    threading.Thread(target=_serve_plots, daemon=True).start()

    # Run the FastMCP server with SSE transport
    mcp.run(transport="sse")

2.1.3.2 requirements.txt

mcp
plotly

2.1.3.3 Dockerfile

FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY server.py .
CMD ["python", "server.py"]

2.2 Configure the assistant

Finally, we configure the assistant in librechat.yaml using a LibreChat modelSpecs object that combines the language model, the three MCP servers, and a system prompt.

modelSpecs:
  list:
    - name: "forecasting-assistant"
      label: "Forecasting Assistant"
      default: true
      artifacts: true
      mcpServers:
        - "clickhouse-playground"
        - "chronos-forecasting"
        - "data-visualization"
      preset:
        endpoint: "bedrock"
        model: "eu.anthropic.claude-sonnet-4-6"
        region: "eu-west-1"
        promptPrefix: |
          You are a time series forecasting assistant.
          Do not alter the time frequency of the data unless the user explicitly requests it.
          To visualize data, always use the `visualize_data` tool. Never write code to generate plots.
          When visualizing multiple series, always pass them together to the `visualize_data` tool in a single call,
          as it generates subplots automatically.
          Always render the URL returned by the `visualize_data` tool as an artifact using this exact format:
          :::artifact{identifier="<IDENTIFIER>" type="text/html" title="<TITLE>"}
          \`\`\`
          <!DOCTYPE html>
          <html>
          <body>
            <iframe src="<URL>" width="100%" height="800px" frameborder="0"></iframe>
          </body>
          </html>
          \`\`\`
          :::
          Never return the raw URL and never ask the user to open the URL themselves.

2.3 Chat with the assistant

To demonstrate a typical interaction, we walk through a short conversation with the assistant covering data exploration, visualization, and forecasting. We start by asking which time series are available in the database, then request a plot of Product A’s hourly sales over the most recent week, use that data as context to forecast the next 48 hours, and finally repeat the analysis for Products B and C, visualizing all three series and their forecasts in a single chart.

User

What can you help me with?

Assistant
Thoughts
The user is asking what I can help them with. I should explain my capabilities as a time series forecasting assistant.

I'm a time series forecasting assistant with the ability to help you with the following:

📊 Data Exploration

  • Browse databases and tables in ClickHouse to help you find relevant data
  • Query and summarize time series data (e.g., sales, metrics, sensor readings, etc.)

🔮 Forecasting

  • Generate probabilistic forecasts using Chronos, a state-of-the-art AI forecasting model
  • Predict future values for any time series you have stored or provide
  • Produce quantile forecasts (e.g., 10th–90th percentile) to understand uncertainty and risk

📈 Visualization

  • Plot historical time series data interactively
  • Overlay forecasts with confidence intervals on top of historical data
  • Visualize multiple series side by side for comparison

💡 Example Use Cases

  • "Show me the available tables in my database"
  • "Plot the daily sales for the last 6 months"
  • "Forecast the next 30 days of website traffic with a 90% confidence interval"
  • "Compare actual vs. forecasted revenue for multiple products"

To get started, you can ask me to explore your data, run a query, or generate a forecast. What would you like to do?

User

Which time series do we have in the database?

Assistant
Thoughts
The user wants to know what time series data is available in the database. Let me start by listing the databases, then explore the tables within them.

Let me start by exploring the available databases!

Ran list_databases

Assistant sent this info to clickhouse-playground

{}

Result

[
  "INFORMATION_SCHEMA",
  "default",
  "information_schema",
  "system"
]
Ran list_tables

Assistant sent this info to clickhouse-playground

{
  "database": "default"
}

Result

[
  {
    "database": "default",
    "name": "products",
    "engine": "SharedMergeTree",
    "create_table_query": "CREATE TABLE default.products (`product_id` Int32, `product_name` String) ENGINE = SharedMergeTree('/clickhouse/tables/{uuid}/{shard}', '{replica}') ORDER BY product_id SETTINGS index_granularity = 8192",
    "dependencies_database": [],
    "dependencies_table": [],
    "engine_full": "SharedMergeTree('/clickhouse/tables/{uuid}/{shard}', '{replica}') ORDER BY product_id SETTINGS index_granularity = 8192",
    "sorting_key": "product_id",
    "primary_key": "product_id",
    "total_rows": 3,
    "total_bytes": 373,
    "total_bytes_uncompressed": 130,
    "parts": 1,
    "active_parts": 1,
    "total_marks": 2,
    "comment": "",
    "columns": [
      {
        "database": "default",
        "table": "products",
        "name": "product_id",
        "column_type": "Int32",
        "default_kind": "",
        "default_expression": "",
        "comment": ""
      },
      {
        "database": "default",
        "table": "products",
        "name": "product_name",
        "column_type": "String",
        "default_kind": "",
        "default_expression": "",
        "comment": ""
      }
    ]
  },
  {
    "database": "default",
    "name": "sales",
    "engine": "SharedMergeTree",
    "create_table_query": "CREATE TABLE default.sales (`timestamp` DateTime64(3), `product_id` Int32, `units_sold` Int32) ENGINE = SharedMergeTree('/clickhouse/tables/{uuid}/{shard}', '{replica}') ORDER BY timestamp SETTINGS index_granularity = 8192",
    "dependencies_database": [],
    "dependencies_table": [],
    "engine_full": "SharedMergeTree('/clickhouse/tables/{uuid}/{shard}', '{replica}') ORDER BY timestamp SETTINGS index_granularity = 8192",
    "sorting_key": "timestamp",
    "primary_key": "timestamp",
    "total_rows": 6480,
    "total_bytes": 13825,
    "total_bytes_uncompressed": 103808,
    "parts": 1,
    "active_parts": 1,
    "total_marks": 2,
    "comment": "",
    "columns": [
      {
        "database": "default",
        "table": "sales",
        "name": "timestamp",
        "column_type": "DateTime64(3)",
        "default_kind": "",
        "default_expression": "",
        "comment": ""
      },
      {
        "database": "default",
        "table": "sales",
        "name": "product_id",
        "column_type": "Int32",
        "default_kind": "",
        "default_expression": "",
        "comment": ""
      },
      {
        "database": "default",
        "table": "sales",
        "name": "units_sold",
        "column_type": "Int32",
        "default_kind": "",
        "default_expression": "",
        "comment": ""
      }
    ]
  }
]
Ran select_query

Assistant sent this info to clickhouse-playground

{
  "query": "SELECT * FROM default.products"
}

Result

{
  "columns": [
    "product_id",
    "product_name"
  ],
  "rows": [
    [
      1,
      "Product A"
    ],
    [
      2,
      "Product B"
    ],
    [
      3,
      "Product C"
    ]
  ]
}
Ran select_query

Assistant sent this info to clickhouse-playground

{
  "query": "\nSELECT \n    min(timestamp) AS start_date,\n    max(timestamp) AS end_date,\n    count() AS total_rows\nFROM default.sales\n"
}

Result

{
  "columns": [
    "start_date",
    "end_date",
    "total_rows"
  ],
  "rows": [
    [
      "2025-12-15T16:00:00",
      "2026-03-15T15:00:00",
      6480
    ]
  ]
}

Here's what we have in the database:

📦 Tables in the default database

1. salesMain time series table

  • Timestamp range: Dec 15, 2025 → Mar 15, 2026 (~3 months)
  • Total rows: 6,480
  • Columns:
    • timestamp (DateTime) — time of the observation
    • product_id (Int32) — links to the products table
    • units_sold (Int32) — the time series value

2. productsDimension/lookup table

  • 3 products:
    • Product A (id: 1)
    • Product B (id: 2)
    • Product C (id: 3)

🔍 Summary

You have 3 time series — one per product — tracking daily (or sub-daily) units sold over roughly 3 months.

Would you like me to:

  • 📈 Visualize the sales for one or all products?
  • 🔮 Forecast future sales for any product?
  • 🔎 Explore the data in more detail (e.g., frequency, trends)?
User

Can we plot the time series of Product A over the most recent week?

Assistant
Thoughts
The user wants to plot the time series of Product A over the most recent week. Let me query the sales data for Product A over the most recent week.
The data ends at 2026-03-15, so the most recent week would be from 2026-03-08 to 2026-03-15. Let me query accordingly.

Sure! Let me first query the data for Product A over the most recent week.

Ran select_query

Assistant sent this info to clickhouse-playground

{
  "query": "\nSELECT timestamp, units_sold\nFROM default.sales\nWHERE product_id = 1\n  AND timestamp >= (SELECT max(timestamp) - INTERVAL 7 DAY FROM default.sales)\nORDER BY timestamp ASC\n"
}

Result

{
  "columns": [
    "timestamp",
    "units_sold"
  ],
  "rows": [
    [
      "2026-03-08T15:00:00",
      21
    ],
    [
      "2026-03-08T16:00:00",
      20
    ],
    [
      "2026-03-08T17:00:00",
      21
    ],
    [
      "2026-03-08T18:00:00",
      25
    ],
    [
      "2026-03-08T19:00:00",
      23
    ],
    [
      "2026-03-08T20:00:00",
      24
    ],
    [
      "2026-03-08T21:00:00",
      26
    ],
    [
      "2026-03-08T22:00:00",
      25
    ],
    [
      "2026-03-08T23:00:00",
      17
    ],
    [
      "2026-03-09T00:00:00",
      13
    ],
    [
      "2026-03-09T01:00:00",
      7
    ],
    [
      "2026-03-09T02:00:00",
      4
    ],
    [
      "2026-03-09T03:00:00",
      2
    ],
    [
      "2026-03-09T04:00:00",
      7
    ],
    [
      "2026-03-09T05:00:00",
      14
    ],
    [
      "2026-03-09T06:00:00",
      22
    ],
    [
      "2026-03-09T07:00:00",
      26
    ],
    [
      "2026-03-09T08:00:00",
      35
    ],
    [
      "2026-03-09T09:00:00",
      37
    ],
    [
      "2026-03-09T10:00:00",
      39
    ],
    [
      "2026-03-09T11:00:00",
      36
    ],
    [
      "2026-03-09T12:00:00",
      32
    ],
    [
      "2026-03-09T13:00:00",
      27
    ],
    [
      "2026-03-09T14:00:00",
      23
    ],
    [
      "2026-03-09T15:00:00",
      20
    ],
    [
      "2026-03-09T16:00:00",
      19
    ],
    [
      "2026-03-09T17:00:00",
      20
    ],
    [
      "2026-03-09T18:00:00",
      22
    ],
    [
      "2026-03-09T19:00:00",
      25
    ],
    [
      "2026-03-09T20:00:00",
      26
    ],
    [
      "2026-03-09T21:00:00",
      27
    ],
    [
      "2026-03-09T22:00:00",
      23
    ],
    [
      "2026-03-09T23:00:00",
      19
    ],
    [
      "2026-03-10T00:00:00",
      12
    ],
    [
      "2026-03-10T01:00:00",
      8
    ],
    [
      "2026-03-10T02:00:00",
      4
    ],
    [
      "2026-03-10T03:00:00",
      4
    ],
    [
      "2026-03-10T04:00:00",
      9
    ],
    [
      "2026-03-10T05:00:00",
      12
    ],
    [
      "2026-03-10T06:00:00",
      20
    ],
    [
      "2026-03-10T07:00:00",
      28
    ],
    [
      "2026-03-10T08:00:00",
      35
    ],
    [
      "2026-03-10T09:00:00",
      36
    ],
    [
      "2026-03-10T10:00:00",
      39
    ],
    [
      "2026-03-10T11:00:00",
      36
    ],
    [
      "2026-03-10T12:00:00",
      34
    ],
    [
      "2026-03-10T13:00:00",
      26
    ],
    [
      "2026-03-10T14:00:00",
      22
    ],
    [
      "2026-03-10T15:00:00",
      19
    ],
    [
      "2026-03-10T16:00:00",
      21
    ],
    [
      "2026-03-10T17:00:00",
      22
    ],
    [
      "2026-03-10T18:00:00",
      23
    ],
    [
      "2026-03-10T19:00:00",
      25
    ],
    [
      "2026-03-10T20:00:00",
      28
    ],
    [
      "2026-03-10T21:00:00",
      27
    ],
    [
      "2026-03-10T22:00:00",
      23
    ],
    [
      "2026-03-10T23:00:00",
      17
    ],
    [
      "2026-03-11T00:00:00",
      11
    ],
    [
      "2026-03-11T01:00:00",
      9
    ],
    [
      "2026-03-11T02:00:00",
      4
    ],
    [
      "2026-03-11T03:00:00",
      3
    ],
    [
      "2026-03-11T04:00:00",
      6
    ],
    [
      "2026-03-11T05:00:00",
      11
    ],
    [
      "2026-03-11T06:00:00",
      22
    ],
    [
      "2026-03-11T07:00:00",
      29
    ],
    [
      "2026-03-11T08:00:00",
      33
    ],
    [
      "2026-03-11T09:00:00",
      38
    ],
    [
      "2026-03-11T10:00:00",
      38
    ],
    [
      "2026-03-11T11:00:00",
      37
    ],
    [
      "2026-03-11T12:00:00",
      32
    ],
    [
      "2026-03-11T13:00:00",
      26
    ],
    [
      "2026-03-11T14:00:00",
      24
    ],
    [
      "2026-03-11T15:00:00",
      21
    ],
    [
      "2026-03-11T16:00:00",
      21
    ],
    [
      "2026-03-11T17:00:00",
      20
    ],
    [
      "2026-03-11T18:00:00",
      24
    ],
    [
      "2026-03-11T19:00:00",
      27
    ],
    [
      "2026-03-11T20:00:00",
      28
    ],
    [
      "2026-03-11T21:00:00",
      27
    ],
    [
      "2026-03-11T22:00:00",
      23
    ],
    [
      "2026-03-11T23:00:00",
      18
    ],
    [
      "2026-03-12T00:00:00",
      11
    ],
    [
      "2026-03-12T01:00:00",
      8
    ],
    [
      "2026-03-12T02:00:00",
      3
    ],
    [
      "2026-03-12T03:00:00",
      4
    ],
    [
      "2026-03-12T04:00:00",
      7
    ],
    [
      "2026-03-12T05:00:00",
      13
    ],
    [
      "2026-03-12T06:00:00",
      19
    ],
    [
      "2026-03-12T07:00:00",
      29
    ],
    [
      "2026-03-12T08:00:00",
      34
    ],
    [
      "2026-03-12T09:00:00",
      41
    ],
    [
      "2026-03-12T10:00:00",
      38
    ],
    [
      "2026-03-12T11:00:00",
      37
    ],
    [
      "2026-03-12T12:00:00",
      31
    ],
    [
      "2026-03-12T13:00:00",
      29
    ],
    [
      "2026-03-12T14:00:00",
      26
    ],
    [
      "2026-03-12T15:00:00",
      21
    ],
    [
      "2026-03-12T16:00:00",
      19
    ],
    [
      "2026-03-12T17:00:00",
      21
    ],
    [
      "2026-03-12T18:00:00",
      22
    ],
    [
      "2026-03-12T19:00:00",
      25
    ],
    [
      "2026-03-12T20:00:00",
      26
    ],
    [
      "2026-03-12T21:00:00",
      25
    ],
    [
      "2026-03-12T22:00:00",
      21
    ],
    [
      "2026-03-12T23:00:00",
      17
    ],
    [
      "2026-03-13T00:00:00",
      15
    ],
    [
      "2026-03-13T01:00:00",
      6
    ],
    [
      "2026-03-13T02:00:00",
      4
    ],
    [
      "2026-03-13T03:00:00",
      6
    ],
    [
      "2026-03-13T04:00:00",
      7
    ],
    [
      "2026-03-13T05:00:00",
      13
    ],
    [
      "2026-03-13T06:00:00",
      21
    ],
    [
      "2026-03-13T07:00:00",
      27
    ],
    [
      "2026-03-13T08:00:00",
      33
    ],
    [
      "2026-03-13T09:00:00",
      38
    ],
    [
      "2026-03-13T10:00:00",
      38
    ],
    [
      "2026-03-13T11:00:00",
      36
    ],
    [
      "2026-03-13T12:00:00",
      33
    ],
    [
      "2026-03-13T13:00:00",
      25
    ],
    [
      "2026-03-13T14:00:00",
      23
    ],
    [
      "2026-03-13T15:00:00",
      21
    ],
    [
      "2026-03-13T16:00:00",
      20
    ],
    [
      "2026-03-13T17:00:00",
      23
    ],
    [
      "2026-03-13T18:00:00",
      23
    ],
    [
      "2026-03-13T19:00:00",
      26
    ],
    [
      "2026-03-13T20:00:00",
      28
    ],
    [
      "2026-03-13T21:00:00",
      25
    ],
    [
      "2026-03-13T22:00:00",
      21
    ],
    [
      "2026-03-13T23:00:00",
      17
    ],
    [
      "2026-03-14T00:00:00",
      12
    ],
    [
      "2026-03-14T01:00:00",
      7
    ],
    [
      "2026-03-14T02:00:00",
      4
    ],
    [
      "2026-03-14T03:00:00",
      4
    ],
    [
      "2026-03-14T04:00:00",
      7
    ],
    [
      "2026-03-14T05:00:00",
      11
    ],
    [
      "2026-03-14T06:00:00",
      21
    ],
    [
      "2026-03-14T07:00:00",
      29
    ],
    [
      "2026-03-14T08:00:00",
      33
    ],
    [
      "2026-03-14T09:00:00",
      38
    ],
    [
      "2026-03-14T10:00:00",
      39
    ],
    [
      "2026-03-14T11:00:00",
      37
    ],
    [
      "2026-03-14T12:00:00",
      31
    ],
    [
      "2026-03-14T13:00:00",
      26
    ],
    [
      "2026-03-14T14:00:00",
      24
    ],
    [
      "2026-03-14T15:00:00",
      20
    ],
    [
      "2026-03-14T16:00:00",
      20
    ],
    [
      "2026-03-14T17:00:00",
      22
    ],
    [
      "2026-03-14T18:00:00",
      24
    ],
    [
      "2026-03-14T19:00:00",
      26
    ],
    [
      "2026-03-14T20:00:00",
      26
    ],
    [
      "2026-03-14T21:00:00",
      27
    ],
    [
      "2026-03-14T22:00:00",
      23
    ],
    [
      "2026-03-14T23:00:00",
      18
    ],
    [
      "2026-03-15T00:00:00",
      13
    ],
    [
      "2026-03-15T01:00:00",
      10
    ],
    [
      "2026-03-15T02:00:00",
      4
    ],
    [
      "2026-03-15T03:00:00",
      3
    ],
    [
      "2026-03-15T04:00:00",
      7
    ],
    [
      "2026-03-15T05:00:00",
      14
    ],
    [
      "2026-03-15T06:00:00",
      20
    ],
    [
      "2026-03-15T07:00:00",
      29
    ],
    [
      "2026-03-15T08:00:00",
      34
    ],
    [
      "2026-03-15T09:00:00",
      39
    ],
    [
      "2026-03-15T10:00:00",
      38
    ],
    [
      "2026-03-15T11:00:00",
      37
    ],
    [
      "2026-03-15T12:00:00",
      32
    ],
    [
      "2026-03-15T13:00:00",
      26
    ],
    [
      "2026-03-15T14:00:00",
      23
    ],
    [
      "2026-03-15T15:00:00",
      21
    ]
  ]
}

Now let me visualize it!

Ran visualize_data

Assistant sent this info to data-visualization

{
  "inputs": {
    "data": {
      "Product A - Units Sold": {
        "columns": [
          "timestamp",
          "units_sold"
        ],
        "rows": [
          [
            "2026-03-08T15:00:00",
            21
          ],
          [
            "2026-03-08T16:00:00",
            20
          ],
          [
            "2026-03-08T17:00:00",
            21
          ],
          [
            "2026-03-08T18:00:00",
            25
          ],
          [
            "2026-03-08T19:00:00",
            23
          ],
          [
            "2026-03-08T20:00:00",
            24
          ],
          [
            "2026-03-08T21:00:00",
            26
          ],
          [
            "2026-03-08T22:00:00",
            25
          ],
          [
            "2026-03-08T23:00:00",
            17
          ],
          [
            "2026-03-09T00:00:00",
            13
          ],
          [
            "2026-03-09T01:00:00",
            7
          ],
          [
            "2026-03-09T02:00:00",
            4
          ],
          [
            "2026-03-09T03:00:00",
            2
          ],
          [
            "2026-03-09T04:00:00",
            7
          ],
          [
            "2026-03-09T05:00:00",
            14
          ],
          [
            "2026-03-09T06:00:00",
            22
          ],
          [
            "2026-03-09T07:00:00",
            26
          ],
          [
            "2026-03-09T08:00:00",
            35
          ],
          [
            "2026-03-09T09:00:00",
            37
          ],
          [
            "2026-03-09T10:00:00",
            39
          ],
          [
            "2026-03-09T11:00:00",
            36
          ],
          [
            "2026-03-09T12:00:00",
            32
          ],
          [
            "2026-03-09T13:00:00",
            27
          ],
          [
            "2026-03-09T14:00:00",
            23
          ],
          [
            "2026-03-09T15:00:00",
            20
          ],
          [
            "2026-03-09T16:00:00",
            19
          ],
          [
            "2026-03-09T17:00:00",
            20
          ],
          [
            "2026-03-09T18:00:00",
            22
          ],
          [
            "2026-03-09T19:00:00",
            25
          ],
          [
            "2026-03-09T20:00:00",
            26
          ],
          [
            "2026-03-09T21:00:00",
            27
          ],
          [
            "2026-03-09T22:00:00",
            23
          ],
          [
            "2026-03-09T23:00:00",
            19
          ],
          [
            "2026-03-10T00:00:00",
            12
          ],
          [
            "2026-03-10T01:00:00",
            8
          ],
          [
            "2026-03-10T02:00:00",
            4
          ],
          [
            "2026-03-10T03:00:00",
            4
          ],
          [
            "2026-03-10T04:00:00",
            9
          ],
          [
            "2026-03-10T05:00:00",
            12
          ],
          [
            "2026-03-10T06:00:00",
            20
          ],
          [
            "2026-03-10T07:00:00",
            28
          ],
          [
            "2026-03-10T08:00:00",
            35
          ],
          [
            "2026-03-10T09:00:00",
            36
          ],
          [
            "2026-03-10T10:00:00",
            39
          ],
          [
            "2026-03-10T11:00:00",
            36
          ],
          [
            "2026-03-10T12:00:00",
            34
          ],
          [
            "2026-03-10T13:00:00",
            26
          ],
          [
            "2026-03-10T14:00:00",
            22
          ],
          [
            "2026-03-10T15:00:00",
            19
          ],
          [
            "2026-03-10T16:00:00",
            21
          ],
          [
            "2026-03-10T17:00:00",
            22
          ],
          [
            "2026-03-10T18:00:00",
            23
          ],
          [
            "2026-03-10T19:00:00",
            25
          ],
          [
            "2026-03-10T20:00:00",
            28
          ],
          [
            "2026-03-10T21:00:00",
            27
          ],
          [
            "2026-03-10T22:00:00",
            23
          ],
          [
            "2026-03-10T23:00:00",
            17
          ],
          [
            "2026-03-11T00:00:00",
            11
          ],
          [
            "2026-03-11T01:00:00",
            9
          ],
          [
            "2026-03-11T02:00:00",
            4
          ],
          [
            "2026-03-11T03:00:00",
            3
          ],
          [
            "2026-03-11T04:00:00",
            6
          ],
          [
            "2026-03-11T05:00:00",
            11
          ],
          [
            "2026-03-11T06:00:00",
            22
          ],
          [
            "2026-03-11T07:00:00",
            29
          ],
          [
            "2026-03-11T08:00:00",
            33
          ],
          [
            "2026-03-11T09:00:00",
            38
          ],
          [
            "2026-03-11T10:00:00",
            38
          ],
          [
            "2026-03-11T11:00:00",
            37
          ],
          [
            "2026-03-11T12:00:00",
            32
          ],
          [
            "2026-03-11T13:00:00",
            26
          ],
          [
            "2026-03-11T14:00:00",
            24
          ],
          [
            "2026-03-11T15:00:00",
            21
          ],
          [
            "2026-03-11T16:00:00",
            21
          ],
          [
            "2026-03-11T17:00:00",
            20
          ],
          [
            "2026-03-11T18:00:00",
            24
          ],
          [
            "2026-03-11T19:00:00",
            27
          ],
          [
            "2026-03-11T20:00:00",
            28
          ],
          [
            "2026-03-11T21:00:00",
            27
          ],
          [
            "2026-03-11T22:00:00",
            23
          ],
          [
            "2026-03-11T23:00:00",
            18
          ],
          [
            "2026-03-12T00:00:00",
            11
          ],
          [
            "2026-03-12T01:00:00",
            8
          ],
          [
            "2026-03-12T02:00:00",
            3
          ],
          [
            "2026-03-12T03:00:00",
            4
          ],
          [
            "2026-03-12T04:00:00",
            7
          ],
          [
            "2026-03-12T05:00:00",
            13
          ],
          [
            "2026-03-12T06:00:00",
            19
          ],
          [
            "2026-03-12T07:00:00",
            29
          ],
          [
            "2026-03-12T08:00:00",
            34
          ],
          [
            "2026-03-12T09:00:00",
            41
          ],
          [
            "2026-03-12T10:00:00",
            38
          ],
          [
            "2026-03-12T11:00:00",
            37
          ],
          [
            "2026-03-12T12:00:00",
            31
          ],
          [
            "2026-03-12T13:00:00",
            29
          ],
          [
            "2026-03-12T14:00:00",
            26
          ],
          [
            "2026-03-12T15:00:00",
            21
          ],
          [
            "2026-03-12T16:00:00",
            19
          ],
          [
            "2026-03-12T17:00:00",
            21
          ],
          [
            "2026-03-12T18:00:00",
            22
          ],
          [
            "2026-03-12T19:00:00",
            25
          ],
          [
            "2026-03-12T20:00:00",
            26
          ],
          [
            "2026-03-12T21:00:00",
            25
          ],
          [
            "2026-03-12T22:00:00",
            21
          ],
          [
            "2026-03-12T23:00:00",
            17
          ],
          [
            "2026-03-13T00:00:00",
            15
          ],
          [
            "2026-03-13T01:00:00",
            6
          ],
          [
            "2026-03-13T02:00:00",
            4
          ],
          [
            "2026-03-13T03:00:00",
            6
          ],
          [
            "2026-03-13T04:00:00",
            7
          ],
          [
            "2026-03-13T05:00:00",
            13
          ],
          [
            "2026-03-13T06:00:00",
            21
          ],
          [
            "2026-03-13T07:00:00",
            27
          ],
          [
            "2026-03-13T08:00:00",
            33
          ],
          [
            "2026-03-13T09:00:00",
            38
          ],
          [
            "2026-03-13T10:00:00",
            38
          ],
          [
            "2026-03-13T11:00:00",
            36
          ],
          [
            "2026-03-13T12:00:00",
            33
          ],
          [
            "2026-03-13T13:00:00",
            25
          ],
          [
            "2026-03-13T14:00:00",
            23
          ],
          [
            "2026-03-13T15:00:00",
            21
          ],
          [
            "2026-03-13T16:00:00",
            20
          ],
          [
            "2026-03-13T17:00:00",
            23
          ],
          [
            "2026-03-13T18:00:00",
            23
          ],
          [
            "2026-03-13T19:00:00",
            26
          ],
          [
            "2026-03-13T20:00:00",
            28
          ],
          [
            "2026-03-13T21:00:00",
            25
          ],
          [
            "2026-03-13T22:00:00",
            21
          ],
          [
            "2026-03-13T23:00:00",
            17
          ],
          [
            "2026-03-14T00:00:00",
            12
          ],
          [
            "2026-03-14T01:00:00",
            7
          ],
          [
            "2026-03-14T02:00:00",
            4
          ],
          [
            "2026-03-14T03:00:00",
            4
          ],
          [
            "2026-03-14T04:00:00",
            7
          ],
          [
            "2026-03-14T05:00:00",
            11
          ],
          [
            "2026-03-14T06:00:00",
            21
          ],
          [
            "2026-03-14T07:00:00",
            29
          ],
          [
            "2026-03-14T08:00:00",
            33
          ],
          [
            "2026-03-14T09:00:00",
            38
          ],
          [
            "2026-03-14T10:00:00",
            39
          ],
          [
            "2026-03-14T11:00:00",
            37
          ],
          [
            "2026-03-14T12:00:00",
            31
          ],
          [
            "2026-03-14T13:00:00",
            26
          ],
          [
            "2026-03-14T14:00:00",
            24
          ],
          [
            "2026-03-14T15:00:00",
            20
          ],
          [
            "2026-03-14T16:00:00",
            20
          ],
          [
            "2026-03-14T17:00:00",
            22
          ],
          [
            "2026-03-14T18:00:00",
            24
          ],
          [
            "2026-03-14T19:00:00",
            26
          ],
          [
            "2026-03-14T20:00:00",
            26
          ],
          [
            "2026-03-14T21:00:00",
            27
          ],
          [
            "2026-03-14T22:00:00",
            23
          ],
          [
            "2026-03-14T23:00:00",
            18
          ],
          [
            "2026-03-15T00:00:00",
            13
          ],
          [
            "2026-03-15T01:00:00",
            10
          ],
          [
            "2026-03-15T02:00:00",
            4
          ],
          [
            "2026-03-15T03:00:00",
            3
          ],
          [
            "2026-03-15T04:00:00",
            7
          ],
          [
            "2026-03-15T05:00:00",
            14
          ],
          [
            "2026-03-15T06:00:00",
            20
          ],
          [
            "2026-03-15T07:00:00",
            29
          ],
          [
            "2026-03-15T08:00:00",
            34
          ],
          [
            "2026-03-15T09:00:00",
            39
          ],
          [
            "2026-03-15T10:00:00",
            38
          ],
          [
            "2026-03-15T11:00:00",
            37
          ],
          [
            "2026-03-15T12:00:00",
            32
          ],
          [
            "2026-03-15T13:00:00",
            26
          ],
          [
            "2026-03-15T14:00:00",
            23
          ],
          [
            "2026-03-15T15:00:00",
            21
          ]
        ]
      }
    }
  }
}

Result

{
  "columns": [
    "product_id",
    "product_name"
  ],
  "rows": [
    [
      1,
      "Product A"
    ],
    [
      2,
      "Product B"
    ],
    [
      3,
      "Product C"
    ]
  ]
}

Result

http://localhost:8004/plot_28706dcf80a5404fa8cf6cdc017c8152.html

Here's the hourly sales chart for Product A over the most recent week (Mar 8–15, 2026). A few observations:

  • 📉 Daily trough: Sales consistently drop to very low values (2–4 units) in the early morning hours (2:00–4:00 AM)
  • 📈 Daily peak: Sales peak around 9:00–10:00 AM, reaching up to ~38–41 units
  • 🔄 Strong daily seasonality: The pattern repeats very consistently each day, suggesting a clear intraday cycle
  • 📊 Stable trend: There's no obvious upward or downward trend over the week — sales levels look steady

Would you like me to forecast the next few days for Product A, or explore the other products as well?

User

Can we now use this data as input to forecast the subsequent 2 days?

Assistant
Thoughts
The user wants to forecast the next 2 days (48 hours) for Product A using the data we already queried. The data is hourly, so 2 days = 48 time steps.

I need to:
1. Call generate_forecasts with the historical data as target, prediction_length=48, and some quantile levels
2. Then visualize the results with the forecast overlaid

Let me prepare the target array from the query results we already have.

The rows are hourly data from 2026-03-08T15:00:00 to 2026-03-15T15:00:00.

Let me extract the values:
[21,20,21,25,23,24,26,25,17,13,7,4,2,7,14,22,26,35,37,39,36,32,27,23,20,19,20,22,25,26,27,23,19,12,8,4,4,9,12,20,28,35,36,39,36,34,26,22,19,21,22,23,25,28,27,23,17,11,9,4,3,6,11,22,29,33,38,38,37,32,26,24,21,21,20,24,27,28,27,23,18,11,8,3,4,7,13,19,29,34,41,38,37,31,29,26,21,19,21,22,25,26,25,21,17,15,6,4,6,7,13,21,27,33,38,38,36,33,25,23,21,20,23,23,26,28]

Now I'm setting up the forecast parameters with the last observation at 2026-03-15T15:00:00, which means the 48-hour forecast will run from 2026-03-15T16:00:00 through 2026-03-17T15:00:00. I'm using quantile levels at 0.1, 0.5, and 0.9 to generate an 80% prediction interval.

I'll use the hourly data we already retrieved as input to Chronos and forecast the next 48 hours (2 days)!

Ran generate_forecasts

Assistant sent this info to chronos-forecasting

{
  "target": [
    21,
    20,
    21,
    25,
    23,
    24,
    26,
    25,
    17,
    13,
    7,
    4,
    2,
    7,
    14,
    22,
    26,
    35,
    37,
    39,
    36,
    32,
    27,
    23,
    20,
    19,
    20,
    22,
    25,
    26,
    27,
    23,
    19,
    12,
    8,
    4,
    4,
    9,
    12,
    20,
    28,
    35,
    36,
    39,
    36,
    34,
    26,
    22,
    19,
    21,
    22,
    23,
    25,
    28,
    27,
    23,
    17,
    11,
    9,
    4,
    3,
    6,
    11,
    22,
    29,
    33,
    38,
    38,
    37,
    32,
    26,
    24,
    21,
    21,
    20,
    24,
    27,
    28,
    27,
    23,
    18,
    11,
    8,
    3,
    4,
    7,
    13,
    19,
    29,
    34,
    41,
    38,
    37,
    31,
    29,
    26,
    21,
    19,
    21,
    22,
    25,
    26,
    25,
    21,
    17,
    15,
    6,
    4,
    6,
    7,
    13,
    21,
    27,
    33,
    38,
    38,
    36,
    33,
    25,
    23,
    21,
    20,
    23,
    23,
    26,
    28,
    25,
    21,
    17,
    12,
    7,
    4,
    4,
    7,
    11,
    21,
    29,
    33,
    38,
    39,
    37,
    31,
    26,
    24,
    20,
    20,
    22,
    24,
    26,
    26,
    27,
    23,
    18,
    13,
    10,
    4,
    3,
    7,
    14,
    20,
    29,
    34,
    39,
    38,
    37,
    32,
    26,
    23,
    21
  ],
  "prediction_length": 48,
  "quantile_levels": [
    0.1,
    0.5,
    0.9
  ]
}

Result

{
  "mean": [
    20.504526138305664,
    21.805526733398438,
    23.69278907775879,
    25.529420852661133,
    26.827110290527344,
    26.324140548706055,
    22.897764205932617,
    17.852794647216797,
    12.321682929992676,
    7.192910194396973,
    3.9130783081054688,
    3.9800643920898438,
    7.332183837890625,
    12.986684799194336,
    20.668590545654297,
    27.952547073364258,
    33.47609329223633,
    38.25192642211914,
    38.400447845458984,
    36.45668029785156,
    31.858444213867188,
    26.570825576782227,
    23.2839412689209,
    20.51091957092285,
    20.30457305908203,
    21.678436279296875,
    23.642099380493164,
    25.584678649902344,
    26.985809326171875,
    26.484193801879883,
    23.02522850036621,
    18.039037704467773,
    12.611462593078613,
    7.602766990661621,
    4.303823471069336,
    4.018426895141602,
    7.423919677734375,
    13.13841438293457,
    20.692811965942383,
    28.037954330444336,
    33.97454071044922,
    38.231040954589844,
    38.78217697143555,
    36.92472457885742,
    32.19001388549805,
    26.802392959594727,
    23.54244041442871,
    20.698514938354492
  ],
  "0.1": [
    19.15822410583496,
    20.50179100036621,
    22.401607513427734,
    24.21921157836914,
    25.45020294189453,
    24.837438583374023,
    21.506221771240234,
    16.50567626953125,
    10.83835220336914,
    5.582372665405273,
    2.285032272338867,
    2.251415252685547,
    5.641073226928711,
    11.404353141784668,
    18.795143127441406,
    25.81307601928711,
    31.14609718322754,
    35.49599838256836,
    35.904144287109375,
    34.05424499511719,
    29.796527862548828,
    24.967273712158203,
    21.782663345336914,
    19.394075393676758,
    19.236570358276367,
    20.604127883911133,
    22.458040237426758,
    24.36791229248047,
    25.4338436126709,
    24.74117088317871,
    21.389162063598633,
    16.495697021484375,
    10.960190773010254,
    5.869045257568359,
    2.5734004974365234,
    2.361164093017578,
    5.705011367797852,
    11.369453430175781,
    18.547435760498047,
    25.60714340209961,
    31.265169143676758,
    35.313446044921875,
    36.011741638183594,
    34.2758674621582,
    29.958742141723633,
    25.103273391723633,
    21.822275161743164,
    19.32248306274414
  ],
  "0.5": [
    20.504526138305664,
    21.805526733398438,
    23.69278907775879,
    25.529420852661133,
    26.827110290527344,
    26.324140548706055,
    22.897764205932617,
    17.852794647216797,
    12.321682929992676,
    7.192910194396973,
    3.9130783081054688,
    3.9800643920898438,
    7.332183837890625,
    12.986684799194336,
    20.668590545654297,
    27.952547073364258,
    33.47609329223633,
    38.25192642211914,
    38.400447845458984,
    36.45668029785156,
    31.858444213867188,
    26.570825576782227,
    23.2839412689209,
    20.51091957092285,
    20.30457305908203,
    21.678436279296875,
    23.642099380493164,
    25.584678649902344,
    26.985809326171875,
    26.484193801879883,
    23.02522850036621,
    18.039037704467773,
    12.611462593078613,
    7.602766990661621,
    4.303823471069336,
    4.018426895141602,
    7.423919677734375,
    13.13841438293457,
    20.692811965942383,
    28.037954330444336,
    33.97454071044922,
    38.231040954589844,
    38.78217697143555,
    36.92472457885742,
    32.19001388549805,
    26.802392959594727,
    23.54244041442871,
    20.698514938354492
  ],
  "0.9": [
    21.669395446777344,
    23.053070068359375,
    24.99215316772461,
    26.91657066345215,
    28.313753128051758,
    27.791156768798828,
    24.152969360351562,
    19.0040283203125,
    13.467171669006348,
    8.364714622497559,
    4.990467071533203,
    5.050144195556641,
    8.647828102111816,
    14.336263656616211,
    22.190526962280273,
    29.632858276367188,
    35.39604949951172,
    40.310279846191406,
    40.52391815185547,
    38.57139587402344,
    33.898765563964844,
    28.34296226501465,
    25.04033088684082,
    22.027423858642578,
    21.667360305786133,
    22.99347686767578,
    24.871681213378906,
    26.878807067871094,
    28.497577667236328,
    28.168556213378906,
    24.56938934326172,
    19.346378326416016,
    14.037256240844727,
    8.928860664367676,
    5.4414215087890625,
    5.182031631469727,
    8.82529354095459,
    14.672514915466309,
    22.400375366210938,
    29.78118896484375,
    35.815494537353516,
    40.36121368408203,
    40.88827133178711,
    39.124969482421875,
    34.39842224121094,
    28.938234329223633,
    25.735769271850586,
    22.512235641479492
  ]
}

Got the forecasts! Now let me visualize the historical data alongside the forecast.

Ran visualize_data

Assistant sent this info to data-visualization

{
  "inputs": {
    "data": {
      "Product A": {
        "columns": [
          "timestamp",
          "units_sold"
        ],
        "rows": [
          [
            "2026-03-08T15:00:00",
            21
          ],
          [
            "2026-03-08T16:00:00",
            20
          ],
          [
            "2026-03-08T17:00:00",
            21
          ],
          [
            "2026-03-08T18:00:00",
            25
          ],
          [
            "2026-03-08T19:00:00",
            23
          ],
          [
            "2026-03-08T20:00:00",
            24
          ],
          [
            "2026-03-08T21:00:00",
            26
          ],
          [
            "2026-03-08T22:00:00",
            25
          ],
          [
            "2026-03-08T23:00:00",
            17
          ],
          [
            "2026-03-09T00:00:00",
            13
          ],
          [
            "2026-03-09T01:00:00",
            7
          ],
          [
            "2026-03-09T02:00:00",
            4
          ],
          [
            "2026-03-09T03:00:00",
            2
          ],
          [
            "2026-03-09T04:00:00",
            7
          ],
          [
            "2026-03-09T05:00:00",
            14
          ],
          [
            "2026-03-09T06:00:00",
            22
          ],
          [
            "2026-03-09T07:00:00",
            26
          ],
          [
            "2026-03-09T08:00:00",
            35
          ],
          [
            "2026-03-09T09:00:00",
            37
          ],
          [
            "2026-03-09T10:00:00",
            39
          ],
          [
            "2026-03-09T11:00:00",
            36
          ],
          [
            "2026-03-09T12:00:00",
            32
          ],
          [
            "2026-03-09T13:00:00",
            27
          ],
          [
            "2026-03-09T14:00:00",
            23
          ],
          [
            "2026-03-09T15:00:00",
            20
          ],
          [
            "2026-03-09T16:00:00",
            19
          ],
          [
            "2026-03-09T17:00:00",
            20
          ],
          [
            "2026-03-09T18:00:00",
            22
          ],
          [
            "2026-03-09T19:00:00",
            25
          ],
          [
            "2026-03-09T20:00:00",
            26
          ],
          [
            "2026-03-09T21:00:00",
            27
          ],
          [
            "2026-03-09T22:00:00",
            23
          ],
          [
            "2026-03-09T23:00:00",
            19
          ],
          [
            "2026-03-10T00:00:00",
            12
          ],
          [
            "2026-03-10T01:00:00",
            8
          ],
          [
            "2026-03-10T02:00:00",
            4
          ],
          [
            "2026-03-10T03:00:00",
            4
          ],
          [
            "2026-03-10T04:00:00",
            9
          ],
          [
            "2026-03-10T05:00:00",
            12
          ],
          [
            "2026-03-10T06:00:00",
            20
          ],
          [
            "2026-03-10T07:00:00",
            28
          ],
          [
            "2026-03-10T08:00:00",
            35
          ],
          [
            "2026-03-10T09:00:00",
            36
          ],
          [
            "2026-03-10T10:00:00",
            39
          ],
          [
            "2026-03-10T11:00:00",
            36
          ],
          [
            "2026-03-10T12:00:00",
            34
          ],
          [
            "2026-03-10T13:00:00",
            26
          ],
          [
            "2026-03-10T14:00:00",
            22
          ],
          [
            "2026-03-10T15:00:00",
            19
          ],
          [
            "2026-03-10T16:00:00",
            21
          ],
          [
            "2026-03-10T17:00:00",
            22
          ],
          [
            "2026-03-10T18:00:00",
            23
          ],
          [
            "2026-03-10T19:00:00",
            25
          ],
          [
            "2026-03-10T20:00:00",
            28
          ],
          [
            "2026-03-10T21:00:00",
            27
          ],
          [
            "2026-03-10T22:00:00",
            23
          ],
          [
            "2026-03-10T23:00:00",
            17
          ],
          [
            "2026-03-11T00:00:00",
            11
          ],
          [
            "2026-03-11T01:00:00",
            9
          ],
          [
            "2026-03-11T02:00:00",
            4
          ],
          [
            "2026-03-11T03:00:00",
            3
          ],
          [
            "2026-03-11T04:00:00",
            6
          ],
          [
            "2026-03-11T05:00:00",
            11
          ],
          [
            "2026-03-11T06:00:00",
            22
          ],
          [
            "2026-03-11T07:00:00",
            29
          ],
          [
            "2026-03-11T08:00:00",
            33
          ],
          [
            "2026-03-11T09:00:00",
            38
          ],
          [
            "2026-03-11T10:00:00",
            38
          ],
          [
            "2026-03-11T11:00:00",
            37
          ],
          [
            "2026-03-11T12:00:00",
            32
          ],
          [
            "2026-03-11T13:00:00",
            26
          ],
          [
            "2026-03-11T14:00:00",
            24
          ],
          [
            "2026-03-11T15:00:00",
            21
          ],
          [
            "2026-03-11T16:00:00",
            21
          ],
          [
            "2026-03-11T17:00:00",
            20
          ],
          [
            "2026-03-11T18:00:00",
            24
          ],
          [
            "2026-03-11T19:00:00",
            27
          ],
          [
            "2026-03-11T20:00:00",
            28
          ],
          [
            "2026-03-11T21:00:00",
            27
          ],
          [
            "2026-03-11T22:00:00",
            23
          ],
          [
            "2026-03-11T23:00:00",
            18
          ],
          [
            "2026-03-12T00:00:00",
            11
          ],
          [
            "2026-03-12T01:00:00",
            8
          ],
          [
            "2026-03-12T02:00:00",
            3
          ],
          [
            "2026-03-12T03:00:00",
            4
          ],
          [
            "2026-03-12T04:00:00",
            7
          ],
          [
            "2026-03-12T05:00:00",
            13
          ],
          [
            "2026-03-12T06:00:00",
            19
          ],
          [
            "2026-03-12T07:00:00",
            29
          ],
          [
            "2026-03-12T08:00:00",
            34
          ],
          [
            "2026-03-12T09:00:00",
            41
          ],
          [
            "2026-03-12T10:00:00",
            38
          ],
          [
            "2026-03-12T11:00:00",
            37
          ],
          [
            "2026-03-12T12:00:00",
            31
          ],
          [
            "2026-03-12T13:00:00",
            29
          ],
          [
            "2026-03-12T14:00:00",
            26
          ],
          [
            "2026-03-12T15:00:00",
            21
          ],
          [
            "2026-03-12T16:00:00",
            19
          ],
          [
            "2026-03-12T17:00:00",
            21
          ],
          [
            "2026-03-12T18:00:00",
            22
          ],
          [
            "2026-03-12T19:00:00",
            25
          ],
          [
            "2026-03-12T20:00:00",
            26
          ],
          [
            "2026-03-12T21:00:00",
            25
          ],
          [
            "2026-03-12T22:00:00",
            21
          ],
          [
            "2026-03-12T23:00:00",
            17
          ],
          [
            "2026-03-13T00:00:00",
            15
          ],
          [
            "2026-03-13T01:00:00",
            6
          ],
          [
            "2026-03-13T02:00:00",
            4
          ],
          [
            "2026-03-13T03:00:00",
            6
          ],
          [
            "2026-03-13T04:00:00",
            7
          ],
          [
            "2026-03-13T05:00:00",
            13
          ],
          [
            "2026-03-13T06:00:00",
            21
          ],
          [
            "2026-03-13T07:00:00",
            27
          ],
          [
            "2026-03-13T08:00:00",
            33
          ],
          [
            "2026-03-13T09:00:00",
            38
          ],
          [
            "2026-03-13T10:00:00",
            38
          ],
          [
            "2026-03-13T11:00:00",
            36
          ],
          [
            "2026-03-13T12:00:00",
            33
          ],
          [
            "2026-03-13T13:00:00",
            25
          ],
          [
            "2026-03-13T14:00:00",
            23
          ],
          [
            "2026-03-13T15:00:00",
            21
          ],
          [
            "2026-03-13T16:00:00",
            20
          ],
          [
            "2026-03-13T17:00:00",
            23
          ],
          [
            "2026-03-13T18:00:00",
            23
          ],
          [
            "2026-03-13T19:00:00",
            26
          ],
          [
            "2026-03-13T20:00:00",
            28
          ],
          [
            "2026-03-13T21:00:00",
            25
          ],
          [
            "2026-03-13T22:00:00",
            21
          ],
          [
            "2026-03-13T23:00:00",
            17
          ],
          [
            "2026-03-14T00:00:00",
            12
          ],
          [
            "2026-03-14T01:00:00",
            7
          ],
          [
            "2026-03-14T02:00:00",
            4
          ],
          [
            "2026-03-14T03:00:00",
            4
          ],
          [
            "2026-03-14T04:00:00",
            7
          ],
          [
            "2026-03-14T05:00:00",
            11
          ],
          [
            "2026-03-14T06:00:00",
            21
          ],
          [
            "2026-03-14T07:00:00",
            29
          ],
          [
            "2026-03-14T08:00:00",
            33
          ],
          [
            "2026-03-14T09:00:00",
            38
          ],
          [
            "2026-03-14T10:00:00",
            39
          ],
          [
            "2026-03-14T11:00:00",
            37
          ],
          [
            "2026-03-14T12:00:00",
            31
          ],
          [
            "2026-03-14T13:00:00",
            26
          ],
          [
            "2026-03-14T14:00:00",
            24
          ],
          [
            "2026-03-14T15:00:00",
            20
          ],
          [
            "2026-03-14T16:00:00",
            20
          ],
          [
            "2026-03-14T17:00:00",
            22
          ],
          [
            "2026-03-14T18:00:00",
            24
          ],
          [
            "2026-03-14T19:00:00",
            26
          ],
          [
            "2026-03-14T20:00:00",
            26
          ],
          [
            "2026-03-14T21:00:00",
            27
          ],
          [
            "2026-03-14T22:00:00",
            23
          ],
          [
            "2026-03-14T23:00:00",
            18
          ],
          [
            "2026-03-15T00:00:00",
            13
          ],
          [
            "2026-03-15T01:00:00",
            10
          ],
          [
            "2026-03-15T02:00:00",
            4
          ],
          [
            "2026-03-15T03:00:00",
            3
          ],
          [
            "2026-03-15T04:00:00",
            7
          ],
          [
            "2026-03-15T05:00:00",
            14
          ],
          [
            "2026-03-15T06:00:00",
            20
          ],
          [
            "2026-03-15T07:00:00",
            29
          ],
          [
            "2026-03-15T08:00:00",
            34
          ],
          [
            "2026-03-15T09:00:00",
            39
          ],
          [
            "2026-03-15T10:00:00",
            38
          ],
          [
            "2026-03-15T11:00:00",
            37
          ],
          [
            "2026-03-15T12:00:00",
            32
          ],
          [
            "2026-03-15T13:00:00",
            26
          ],
          [
            "2026-03-15T14:00:00",
            23
          ],
          [
            "2026-03-15T15:00:00",
            21
          ]
        ]
      },
      "Product B": {
        "columns": [
          "timestamp",
          "units_sold"
        ],
        "rows": [
          [
            "2026-03-08T15:00:00",
            44
          ],
          [
            "2026-03-08T16:00:00",
            41
          ],
          [
            "2026-03-08T17:00:00",
            47
          ],
          [
            "2026-03-08T18:00:00",
            37
          ],
          [
            "2026-03-08T19:00:00",
            39
          ],
          [
            "2026-03-08T20:00:00",
            32
          ],
          [
            "2026-03-08T21:00:00",
            22
          ],
          [
            "2026-03-08T22:00:00",
            20
          ],
          [
            "2026-03-08T23:00:00",
            17
          ],
          [
            "2026-03-09T00:00:00",
            11
          ],
          [
            "2026-03-09T01:00:00",
            14
          ],
          [
            "2026-03-09T02:00:00",
            7
          ],
          [
            "2026-03-09T03:00:00",
            3
          ],
          [
            "2026-03-09T04:00:00",
            6
          ],
          [
            "2026-03-09T05:00:00",
            7
          ],
          [
            "2026-03-09T06:00:00",
            11
          ],
          [
            "2026-03-09T07:00:00",
            17
          ],
          [
            "2026-03-09T08:00:00",
            18
          ],
          [
            "2026-03-09T09:00:00",
            21
          ],
          [
            "2026-03-09T10:00:00",
            30
          ],
          [
            "2026-03-09T11:00:00",
            35
          ],
          [
            "2026-03-09T12:00:00",
            38
          ],
          [
            "2026-03-09T13:00:00",
            41
          ],
          [
            "2026-03-09T14:00:00",
            46
          ],
          [
            "2026-03-09T15:00:00",
            47
          ],
          [
            "2026-03-09T16:00:00",
            43
          ],
          [
            "2026-03-09T17:00:00",
            41
          ],
          [
            "2026-03-09T18:00:00",
            39
          ],
          [
            "2026-03-09T19:00:00",
            33
          ],
          [
            "2026-03-09T20:00:00",
            33
          ],
          [
            "2026-03-09T21:00:00",
            26
          ],
          [
            "2026-03-09T22:00:00",
            20
          ],
          [
            "2026-03-09T23:00:00",
            17
          ],
          [
            "2026-03-10T00:00:00",
            7
          ],
          [
            "2026-03-10T01:00:00",
            9
          ],
          [
            "2026-03-10T02:00:00",
            11
          ],
          [
            "2026-03-10T03:00:00",
            7
          ],
          [
            "2026-03-10T04:00:00",
            4
          ],
          [
            "2026-03-10T05:00:00",
            9
          ],
          [
            "2026-03-10T06:00:00",
            11
          ],
          [
            "2026-03-10T07:00:00",
            15
          ],
          [
            "2026-03-10T08:00:00",
            18
          ],
          [
            "2026-03-10T09:00:00",
            24
          ],
          [
            "2026-03-10T10:00:00",
            29
          ],
          [
            "2026-03-10T11:00:00",
            39
          ],
          [
            "2026-03-10T12:00:00",
            42
          ],
          [
            "2026-03-10T13:00:00",
            42
          ],
          [
            "2026-03-10T14:00:00",
            46
          ],
          [
            "2026-03-10T15:00:00",
            42
          ],
          [
            "2026-03-10T16:00:00",
            45
          ],
          [
            "2026-03-10T17:00:00",
            46
          ],
          [
            "2026-03-10T18:00:00",
            39
          ],
          [
            "2026-03-10T19:00:00",
            37
          ],
          [
            "2026-03-10T20:00:00",
            32
          ],
          [
            "2026-03-10T21:00:00",
            27
          ],
          [
            "2026-03-10T22:00:00",
            21
          ],
          [
            "2026-03-10T23:00:00",
            15
          ],
          [
            "2026-03-11T00:00:00",
            12
          ],
          [
            "2026-03-11T01:00:00",
            9
          ],
          [
            "2026-03-11T02:00:00",
            6
          ],
          [
            "2026-03-11T03:00:00",
            7
          ],
          [
            "2026-03-11T04:00:00",
            6
          ],
          [
            "2026-03-11T05:00:00",
            9
          ],
          [
            "2026-03-11T06:00:00",
            12
          ],
          [
            "2026-03-11T07:00:00",
            16
          ],
          [
            "2026-03-11T08:00:00",
            22
          ],
          [
            "2026-03-11T09:00:00",
            26
          ],
          [
            "2026-03-11T10:00:00",
            30
          ],
          [
            "2026-03-11T11:00:00",
            33
          ],
          [
            "2026-03-11T12:00:00",
            34
          ],
          [
            "2026-03-11T13:00:00",
            40
          ],
          [
            "2026-03-11T14:00:00",
            42
          ],
          [
            "2026-03-11T15:00:00",
            44
          ],
          [
            "2026-03-11T16:00:00",
            48
          ],
          [
            "2026-03-11T17:00:00",
            42
          ],
          [
            "2026-03-11T18:00:00",
            39
          ],
          [
            "2026-03-11T19:00:00",
            36
          ],
          [
            "2026-03-11T20:00:00",
            28
          ],
          [
            "2026-03-11T21:00:00",
            27
          ],
          [
            "2026-03-11T22:00:00",
            19
          ],
          [
            "2026-03-11T23:00:00",
            16
          ],
          [
            "2026-03-12T00:00:00",
            8
          ],
          [
            "2026-03-12T01:00:00",
            10
          ],
          [
            "2026-03-12T02:00:00",
            5
          ],
          [
            "2026-03-12T03:00:00",
            3
          ],
          [
            "2026-03-12T04:00:00",
            7
          ],
          [
            "2026-03-12T05:00:00",
            9
          ],
          [
            "2026-03-12T06:00:00",
            9
          ],
          [
            "2026-03-12T07:00:00",
            13
          ],
          [
            "2026-03-12T08:00:00",
            17
          ],
          [
            "2026-03-12T09:00:00",
            24
          ],
          [
            "2026-03-12T10:00:00",
            31
          ],
          [
            "2026-03-12T11:00:00",
            38
          ],
          [
            "2026-03-12T12:00:00",
            36
          ],
          [
            "2026-03-12T13:00:00",
            42
          ],
          [
            "2026-03-12T14:00:00",
            44
          ],
          [
            "2026-03-12T15:00:00",
            46
          ],
          [
            "2026-03-12T16:00:00",
            43
          ],
          [
            "2026-03-12T17:00:00",
            48
          ],
          [
            "2026-03-12T18:00:00",
            39
          ],
          [
            "2026-03-12T19:00:00",
            35
          ],
          [
            "2026-03-12T20:00:00",
            31
          ],
          [
            "2026-03-12T21:00:00",
            24
          ],
          [
            "2026-03-12T22:00:00",
            16
          ],
          [
            "2026-03-12T23:00:00",
            15
          ],
          [
            "2026-03-13T00:00:00",
            15
          ],
          [
            "2026-03-13T01:00:00",
            11
          ],
          [
            "2026-03-13T02:00:00",
            8
          ],
          [
            "2026-03-13T03:00:00",
            7
          ],
          [
            "2026-03-13T04:00:00",
            6
          ],
          [
            "2026-03-13T05:00:00",
            9
          ],
          [
            "2026-03-13T06:00:00",
            9
          ],
          [
            "2026-03-13T07:00:00",
            16
          ],
          [
            "2026-03-13T08:00:00",
            17
          ],
          [
            "2026-03-13T09:00:00",
            27
          ],
          [
            "2026-03-13T10:00:00",
            30
          ],
          [
            "2026-03-13T11:00:00",
            34
          ],
          [
            "2026-03-13T12:00:00",
            40
          ],
          [
            "2026-03-13T13:00:00",
            44
          ],
          [
            "2026-03-13T14:00:00",
            42
          ],
          [
            "2026-03-13T15:00:00",
            48
          ],
          [
            "2026-03-13T16:00:00",
            44
          ],
          [
            "2026-03-13T17:00:00",
            43
          ],
          [
            "2026-03-13T18:00:00",
            39
          ],
          [
            "2026-03-13T19:00:00",
            32
          ],
          [
            "2026-03-13T20:00:00",
            30
          ],
          [
            "2026-03-13T21:00:00",
            23
          ],
          [
            "2026-03-13T22:00:00",
            20
          ],
          [
            "2026-03-13T23:00:00",
            15
          ],
          [
            "2026-03-14T00:00:00",
            9
          ],
          [
            "2026-03-14T01:00:00",
            8
          ],
          [
            "2026-03-14T02:00:00",
            5
          ],
          [
            "2026-03-14T03:00:00",
            7
          ],
          [
            "2026-03-14T04:00:00",
            8
          ],
          [
            "2026-03-14T05:00:00",
            7
          ],
          [
            "2026-03-14T06:00:00",
            13
          ],
          [
            "2026-03-14T07:00:00",
            19
          ],
          [
            "2026-03-14T08:00:00",
            19
          ],
          [
            "2026-03-14T09:00:00",
            25
          ],
          [
            "2026-03-14T10:00:00",
            31
          ],
          [
            "2026-03-14T11:00:00",
            35
          ],
          [
            "2026-03-14T12:00:00",
            40
          ],
          [
            "2026-03-14T13:00:00",
            43
          ],
          [
            "2026-03-14T14:00:00",
            45
          ],
          [
            "2026-03-14T15:00:00",
            44
          ],
          [
            "2026-03-14T16:00:00",
            44
          ],
          [
            "2026-03-14T17:00:00",
            44
          ],
          [
            "2026-03-14T18:00:00",
            42
          ],
          [
            "2026-03-14T19:00:00",
            32
          ],
          [
            "2026-03-14T20:00:00",
            31
          ],
          [
            "2026-03-14T21:00:00",
            26
          ],
          [
            "2026-03-14T22:00:00",
            20
          ],
          [
            "2026-03-14T23:00:00",
            13
          ],
          [
            "2026-03-15T00:00:00",
            10
          ],
          [
            "2026-03-15T01:00:00",
            10
          ],
          [
            "2026-03-15T02:00:00",
            7
          ],
          [
            "2026-03-15T03:00:00",
            8
          ],
          [
            "2026-03-15T04:00:00",
            12
          ],
          [
            "2026-03-15T05:00:00",
            10
          ],
          [
            "2026-03-15T06:00:00",
            13
          ],
          [
            "2026-03-15T07:00:00",
            14
          ],
          [
            "2026-03-15T08:00:00",
            18
          ],
          [
            "2026-03-15T09:00:00",
            24
          ],
          [
            "2026-03-15T10:00:00",
            32
          ],
          [
            "2026-03-15T11:00:00",
            34
          ],
          [
            "2026-03-15T12:00:00",
            39
          ],
          [
            "2026-03-15T13:00:00",
            39
          ],
          [
            "2026-03-15T14:00:00",
            41
          ],
          [
            "2026-03-15T15:00:00",
            47
          ]
        ]
      },
      "Product C": {
        "columns": [
          "timestamp",
          "units_sold"
        ],
        "rows": [
          [
            "2026-03-08T15:00:00",
            67
          ],
          [
            "2026-03-08T16:00:00",
            65
          ],
          [
            "2026-03-08T17:00:00",
            66
          ],
          [
            "2026-03-08T18:00:00",
            64
          ],
          [
            "2026-03-08T19:00:00",
            51
          ],
          [
            "2026-03-08T20:00:00",
            51
          ],
          [
            "2026-03-08T21:00:00",
            42
          ],
          [
            "2026-03-08T22:00:00",
            30
          ],
          [
            "2026-03-08T23:00:00",
            18
          ],
          [
            "2026-03-09T00:00:00",
            11
          ],
          [
            "2026-03-09T01:00:00",
            16
          ],
          [
            "2026-03-09T02:00:00",
            9
          ],
          [
            "2026-03-09T03:00:00",
            1
          ],
          [
            "2026-03-09T04:00:00",
            13
          ],
          [
            "2026-03-09T05:00:00",
            4
          ],
          [
            "2026-03-09T06:00:00",
            19
          ],
          [
            "2026-03-09T07:00:00",
            24
          ],
          [
            "2026-03-09T08:00:00",
            33
          ],
          [
            "2026-03-09T09:00:00",
            35
          ],
          [
            "2026-03-09T10:00:00",
            39
          ],
          [
            "2026-03-09T11:00:00",
            52
          ],
          [
            "2026-03-09T12:00:00",
            59
          ],
          [
            "2026-03-09T13:00:00",
            65
          ],
          [
            "2026-03-09T14:00:00",
            70
          ],
          [
            "2026-03-09T15:00:00",
            67
          ],
          [
            "2026-03-09T16:00:00",
            67
          ],
          [
            "2026-03-09T17:00:00",
            63
          ],
          [
            "2026-03-09T18:00:00",
            58
          ],
          [
            "2026-03-09T19:00:00",
            53
          ],
          [
            "2026-03-09T20:00:00",
            45
          ],
          [
            "2026-03-09T21:00:00",
            37
          ],
          [
            "2026-03-09T22:00:00",
            28
          ],
          [
            "2026-03-09T23:00:00",
            24
          ],
          [
            "2026-03-10T00:00:00",
            18
          ],
          [
            "2026-03-10T01:00:00",
            8
          ],
          [
            "2026-03-10T02:00:00",
            11
          ],
          [
            "2026-03-10T03:00:00",
            2
          ],
          [
            "2026-03-10T04:00:00",
            14
          ],
          [
            "2026-03-10T05:00:00",
            13
          ],
          [
            "2026-03-10T06:00:00",
            13
          ],
          [
            "2026-03-10T07:00:00",
            23
          ],
          [
            "2026-03-10T08:00:00",
            30
          ],
          [
            "2026-03-10T09:00:00",
            39
          ],
          [
            "2026-03-10T10:00:00",
            44
          ],
          [
            "2026-03-10T11:00:00",
            50
          ],
          [
            "2026-03-10T12:00:00",
            58
          ],
          [
            "2026-03-10T13:00:00",
            62
          ],
          [
            "2026-03-10T14:00:00",
            65
          ],
          [
            "2026-03-10T15:00:00",
            73
          ],
          [
            "2026-03-10T16:00:00",
            64
          ],
          [
            "2026-03-10T17:00:00",
            63
          ],
          [
            "2026-03-10T18:00:00",
            67
          ],
          [
            "2026-03-10T19:00:00",
            53
          ],
          [
            "2026-03-10T20:00:00",
            44
          ],
          [
            "2026-03-10T21:00:00",
            38
          ],
          [
            "2026-03-10T22:00:00",
            32
          ],
          [
            "2026-03-10T23:00:00",
            20
          ],
          [
            "2026-03-11T00:00:00",
            17
          ],
          [
            "2026-03-11T01:00:00",
            12
          ],
          [
            "2026-03-11T02:00:00",
            9
          ],
          [
            "2026-03-11T03:00:00",
            3
          ],
          [
            "2026-03-11T04:00:00",
            16
          ],
          [
            "2026-03-11T05:00:00",
            13
          ],
          [
            "2026-03-11T06:00:00",
            16
          ],
          [
            "2026-03-11T07:00:00",
            29
          ],
          [
            "2026-03-11T08:00:00",
            28
          ],
          [
            "2026-03-11T09:00:00",
            38
          ],
          [
            "2026-03-11T10:00:00",
            47
          ],
          [
            "2026-03-11T11:00:00",
            46
          ],
          [
            "2026-03-11T12:00:00",
            59
          ],
          [
            "2026-03-11T13:00:00",
            63
          ],
          [
            "2026-03-11T14:00:00",
            66
          ],
          [
            "2026-03-11T15:00:00",
            68
          ],
          [
            "2026-03-11T16:00:00",
            69
          ],
          [
            "2026-03-11T17:00:00",
            62
          ],
          [
            "2026-03-11T18:00:00",
            55
          ],
          [
            "2026-03-11T19:00:00",
            47
          ],
          [
            "2026-03-11T20:00:00",
            47
          ],
          [
            "2026-03-11T21:00:00",
            37
          ],
          [
            "2026-03-11T22:00:00",
            28
          ],
          [
            "2026-03-11T23:00:00",
            23
          ],
          [
            "2026-03-12T00:00:00",
            20
          ],
          [
            "2026-03-12T01:00:00",
            12
          ],
          [
            "2026-03-12T02:00:00",
            8
          ],
          [
            "2026-03-12T03:00:00",
            6
          ],
          [
            "2026-03-12T04:00:00",
            7
          ],
          [
            "2026-03-12T05:00:00",
            13
          ],
          [
            "2026-03-12T06:00:00",
            18
          ],
          [
            "2026-03-12T07:00:00",
            18
          ],
          [
            "2026-03-12T08:00:00",
            26
          ],
          [
            "2026-03-12T09:00:00",
            40
          ],
          [
            "2026-03-12T10:00:00",
            44
          ],
          [
            "2026-03-12T11:00:00",
            52
          ],
          [
            "2026-03-12T12:00:00",
            60
          ],
          [
            "2026-03-12T13:00:00",
            64
          ],
          [
            "2026-03-12T14:00:00",
            65
          ],
          [
            "2026-03-12T15:00:00",
            67
          ],
          [
            "2026-03-12T16:00:00",
            64
          ],
          [
            "2026-03-12T17:00:00",
            68
          ],
          [
            "2026-03-12T18:00:00",
            57
          ],
          [
            "2026-03-12T19:00:00",
            55
          ],
          [
            "2026-03-12T20:00:00",
            50
          ],
          [
            "2026-03-12T21:00:00",
            36
          ],
          [
            "2026-03-12T22:00:00",
            28
          ],
          [
            "2026-03-12T23:00:00",
            21
          ],
          [
            "2026-03-13T00:00:00",
            16
          ],
          [
            "2026-03-13T01:00:00",
            16
          ],
          [
            "2026-03-13T02:00:00",
            13
          ],
          [
            "2026-03-13T03:00:00",
            6
          ],
          [
            "2026-03-13T04:00:00",
            9
          ],
          [
            "2026-03-13T05:00:00",
            14
          ],
          [
            "2026-03-13T06:00:00",
            18
          ],
          [
            "2026-03-13T07:00:00",
            22
          ],
          [
            "2026-03-13T08:00:00",
            26
          ],
          [
            "2026-03-13T09:00:00",
            36
          ],
          [
            "2026-03-13T10:00:00",
            48
          ],
          [
            "2026-03-13T11:00:00",
            53
          ],
          [
            "2026-03-13T12:00:00",
            59
          ],
          [
            "2026-03-13T13:00:00",
            64
          ],
          [
            "2026-03-13T14:00:00",
            70
          ],
          [
            "2026-03-13T15:00:00",
            70
          ],
          [
            "2026-03-13T16:00:00",
            72
          ],
          [
            "2026-03-13T17:00:00",
            62
          ],
          [
            "2026-03-13T18:00:00",
            61
          ],
          [
            "2026-03-13T19:00:00",
            52
          ],
          [
            "2026-03-13T20:00:00",
            41
          ],
          [
            "2026-03-13T21:00:00",
            35
          ],
          [
            "2026-03-13T22:00:00",
            29
          ],
          [
            "2026-03-13T23:00:00",
            22
          ],
          [
            "2026-03-14T00:00:00",
            19
          ],
          [
            "2026-03-14T01:00:00",
            7
          ],
          [
            "2026-03-14T02:00:00",
            9
          ],
          [
            "2026-03-14T03:00:00",
            8
          ],
          [
            "2026-03-14T04:00:00",
            5
          ],
          [
            "2026-03-14T05:00:00",
            19
          ],
          [
            "2026-03-14T06:00:00",
            16
          ],
          [
            "2026-03-14T07:00:00",
            20
          ],
          [
            "2026-03-14T08:00:00",
            25
          ],
          [
            "2026-03-14T09:00:00",
            36
          ],
          [
            "2026-03-14T10:00:00",
            48
          ],
          [
            "2026-03-14T11:00:00",
            55
          ],
          [
            "2026-03-14T12:00:00",
            57
          ],
          [
            "2026-03-14T13:00:00",
            58
          ],
          [
            "2026-03-14T14:00:00",
            68
          ],
          [
            "2026-03-14T15:00:00",
            70
          ],
          [
            "2026-03-14T16:00:00",
            65
          ],
          [
            "2026-03-14T17:00:00",
            61
          ],
          [
            "2026-03-14T18:00:00",
            55
          ],
          [
            "2026-03-14T19:00:00",
            52
          ],
          [
            "2026-03-14T20:00:00",
            41
          ],
          [
            "2026-03-14T21:00:00",
            34
          ],
          [
            "2026-03-14T22:00:00",
            30
          ],
          [
            "2026-03-14T23:00:00",
            24
          ],
          [
            "2026-03-15T00:00:00",
            21
          ],
          [
            "2026-03-15T01:00:00",
            15
          ],
          [
            "2026-03-15T02:00:00",
            5
          ],
          [
            "2026-03-15T03:00:00",
            9
          ],
          [
            "2026-03-15T04:00:00",
            9
          ],
          [
            "2026-03-15T05:00:00",
            14
          ],
          [
            "2026-03-15T06:00:00",
            19
          ],
          [
            "2026-03-15T07:00:00",
            28
          ],
          [
            "2026-03-15T08:00:00",
            31
          ],
          [
            "2026-03-15T09:00:00",
            41
          ],
          [
            "2026-03-15T10:00:00",
            50
          ],
          [
            "2026-03-15T11:00:00",
            51
          ],
          [
            "2026-03-15T12:00:00",
            64
          ],
          [
            "2026-03-15T13:00:00",
            67
          ],
          [
            "2026-03-15T14:00:00",
            69
          ],
          [
            "2026-03-15T15:00:00",
            68
          ]
        ]
      }
    },
    "forecasts": {
      "Product A": {
        "timestamp": [
          "2026-03-15T16:00:00",
          "2026-03-15T17:00:00",
          "2026-03-15T18:00:00",
          "2026-03-15T19:00:00",
          "2026-03-15T20:00:00",
          "2026-03-15T21:00:00",
          "2026-03-15T22:00:00",
          "2026-03-15T23:00:00",
          "2026-03-16T00:00:00",
          "2026-03-16T01:00:00",
          "2026-03-16T02:00:00",
          "2026-03-16T03:00:00",
          "2026-03-16T04:00:00",
          "2026-03-16T05:00:00",
          "2026-03-16T06:00:00",
          "2026-03-16T07:00:00",
          "2026-03-16T08:00:00",
          "2026-03-16T09:00:00",
          "2026-03-16T10:00:00",
          "2026-03-16T11:00:00",
          "2026-03-16T12:00:00",
          "2026-03-16T13:00:00",
          "2026-03-16T14:00:00",
          "2026-03-16T15:00:00",
          "2026-03-16T16:00:00",
          "2026-03-16T17:00:00",
          "2026-03-16T18:00:00",
          "2026-03-16T19:00:00",
          "2026-03-16T20:00:00",
          "2026-03-16T21:00:00",
          "2026-03-16T22:00:00",
          "2026-03-16T23:00:00",
          "2026-03-17T00:00:00",
          "2026-03-17T01:00:00",
          "2026-03-17T02:00:00",
          "2026-03-17T03:00:00",
          "2026-03-17T04:00:00",
          "2026-03-17T05:00:00",
          "2026-03-17T06:00:00",
          "2026-03-17T07:00:00",
          "2026-03-17T08:00:00",
          "2026-03-17T09:00:00",
          "2026-03-17T10:00:00",
          "2026-03-17T11:00:00",
          "2026-03-17T12:00:00",
          "2026-03-17T13:00:00",
          "2026-03-17T14:00:00",
          "2026-03-17T15:00:00"
        ],
        "mean": [
          20.504526138305664,
          21.805526733398438,
          23.69278907775879,
          25.529420852661133,
          26.827110290527344,
          26.324140548706055,
          22.897764205932617,
          17.852794647216797,
          12.321682929992676,
          7.192910194396973,
          3.9130783081054688,
          3.9800643920898438,
          7.332183837890625,
          12.986684799194336,
          20.668590545654297,
          27.952547073364258,
          33.47609329223633,
          38.25192642211914,
          38.400447845458984,
          36.45668029785156,
          31.858444213867188,
          26.570825576782227,
          23.2839412689209,
          20.51091957092285,
          20.30457305908203,
          21.678436279296875,
          23.642099380493164,
          25.584678649902344,
          26.985809326171875,
          26.484193801879883,
          23.02522850036621,
          18.039037704467773,
          12.611462593078613,
          7.602766990661621,
          4.303823471069336,
          4.018426895141602,
          7.423919677734375,
          13.13841438293457,
          20.692811965942383,
          28.037954330444336,
          33.97454071044922,
          38.231040954589844,
          38.78217697143555,
          36.92472457885742,
          32.19001388549805,
          26.802392959594727,
          23.54244041442871,
          20.698514938354492
        ],
        "0.1": [
          19.15822410583496,
          20.50179100036621,
          22.401607513427734,
          24.21921157836914,
          25.45020294189453,
          24.837438583374023,
          21.506221771240234,
          16.50567626953125,
          10.83835220336914,
          5.582372665405273,
          2.285032272338867,
          2.251415252685547,
          5.641073226928711,
          11.404353141784668,
          18.795143127441406,
          25.81307601928711,
          31.14609718322754,
          35.49599838256836,
          35.904144287109375,
          34.05424499511719,
          29.796527862548828,
          24.967273712158203,
          21.782663345336914,
          19.394075393676758,
          19.236570358276367,
          20.604127883911133,
          22.458040237426758,
          24.36791229248047,
          25.4338436126709,
          24.74117088317871,
          21.389162063598633,
          16.495697021484375,
          10.960190773010254,
          5.869045257568359,
          2.5734004974365234,
          2.361164093017578,
          5.705011367797852,
          11.369453430175781,
          18.547435760498047,
          25.60714340209961,
          31.265169143676758,
          35.313446044921875,
          36.011741638183594,
          34.2758674621582,
          29.958742141723633,
          25.103273391723633,
          21.822275161743164,
          19.32248306274414
        ],
        "0.9": [
          21.669395446777344,
          23.053070068359375,
          24.99215316772461,
          26.91657066345215,
          28.313753128051758,
          27.791156768798828,
          24.152969360351562,
          19.0040283203125,
          13.467171669006348,
          8.364714622497559,
          4.990467071533203,
          5.050144195556641,
          8.647828102111816,
          14.336263656616211,
          22.190526962280273,
          29.632858276367188,
          35.39604949951172,
          40.310279846191406,
          40.52391815185547,
          38.57139587402344,
          33.898765563964844,
          28.34296226501465,
          25.04033088684082,
          22.027423858642578,
          21.667360305786133,
          22.99347686767578,
          24.871681213378906,
          26.878807067871094,
          28.497577667236328,
          28.168556213378906,
          24.56938934326172,
          19.346378326416016,
          14.037256240844727,
          8.928860664367676,
          5.4414215087890625,
          5.182031631469727,
          8.82529354095459,
          14.672514915466309,
          22.400375366210938,
          29.78118896484375,
          35.815494537353516,
          40.36121368408203,
          40.88827133178711,
          39.124969482421875,
          34.39842224121094,
          28.938234329223633,
          25.735769271850586,
          22.512235641479492
        ]
      },
      "Product B": {
        "timestamp": [
          "2026-03-15T16:00:00",
          "2026-03-15T17:00:00",
          "2026-03-15T18:00:00",
          "2026-03-15T19:00:00",
          "2026-03-15T20:00:00",
          "2026-03-15T21:00:00",
          "2026-03-15T22:00:00",
          "2026-03-15T23:00:00",
          "2026-03-16T00:00:00",
          "2026-03-16T01:00:00",
          "2026-03-16T02:00:00",
          "2026-03-16T03:00:00",
          "2026-03-16T04:00:00",
          "2026-03-16T05:00:00",
          "2026-03-16T06:00:00",
          "2026-03-16T07:00:00",
          "2026-03-16T08:00:00",
          "2026-03-16T09:00:00",
          "2026-03-16T10:00:00",
          "2026-03-16T11:00:00",
          "2026-03-16T12:00:00",
          "2026-03-16T13:00:00",
          "2026-03-16T14:00:00",
          "2026-03-16T15:00:00",
          "2026-03-16T16:00:00",
          "2026-03-16T17:00:00",
          "2026-03-16T18:00:00",
          "2026-03-16T19:00:00",
          "2026-03-16T20:00:00",
          "2026-03-16T21:00:00",
          "2026-03-16T22:00:00",
          "2026-03-16T23:00:00",
          "2026-03-17T00:00:00",
          "2026-03-17T01:00:00",
          "2026-03-17T02:00:00",
          "2026-03-17T03:00:00",
          "2026-03-17T04:00:00",
          "2026-03-17T05:00:00",
          "2026-03-17T06:00:00",
          "2026-03-17T07:00:00",
          "2026-03-17T08:00:00",
          "2026-03-17T09:00:00",
          "2026-03-17T10:00:00",
          "2026-03-17T11:00:00",
          "2026-03-17T12:00:00",
          "2026-03-17T13:00:00",
          "2026-03-17T14:00:00",
          "2026-03-17T15:00:00"
        ],
        "mean": [
          45.744361877441406,
          44.47789764404297,
          39.96786880493164,
          34.93931579589844,
          30.40752410888672,
          25.078933715820312,
          19.764469146728516,
          15.15910816192627,
          11.105031967163086,
          9.184202194213867,
          7.405527114868164,
          6.835023880004883,
          7.098142623901367,
          8.534454345703125,
          11.933398246765137,
          16.158313751220703,
          19.992860794067383,
          25.135028839111328,
          30.816650390625,
          35.86872863769531,
          39.165767669677734,
          42.46210479736328,
          44.626007080078125,
          45.996063232421875,
          45.7534065246582,
          44.59668731689453,
          40.11052703857422,
          35.24456787109375,
          31.033628463745117,
          25.713680267333984,
          20.289962768554688,
          15.610541343688965,
          11.549332618713379,
          9.544018745422363,
          7.7064056396484375,
          6.958499908447266,
          7.410867691040039,
          9.032258987426758,
          12.31091022491455,
          16.357358932495117,
          20.261585235595703,
          25.50418472290039,
          31.366159439086914,
          36.46283721923828,
          39.60572052001953,
          42.69723129272461,
          44.79161834716797,
          46.19174575805664
        ],
        "0.1": [
          43.202728271484375,
          41.657466888427734,
          37.34388732910156,
          32.49301528930664,
          27.895044326782227,
          22.69713592529297,
          17.48502540588379,
          12.914217948913574,
          8.867912292480469,
          6.805437088012695,
          5.133642196655273,
          4.6055755615234375,
          4.980224609375,
          6.566743850708008,
          9.907864570617676,
          14.042644500732422,
          17.96416664123535,
          23.004030227661133,
          28.466156005859375,
          33.398677825927734,
          36.72842788696289,
          39.793521881103516,
          41.68659973144531,
          42.83111572265625,
          42.48583984375,
          41.06452941894531,
          36.83848571777344,
          32.41840744018555,
          28.241992950439453,
          23.26666259765625,
          18.005842208862305,
          13.322606086730957,
          9.245460510253906,
          7.142238616943359,
          5.440708160400391,
          4.845056533813477,
          5.325952529907227,
          7.058143615722656,
          10.134407043457031,
          14.08029842376709,
          18.03704071044922,
          23.15070152282715,
          28.727794647216797,
          33.606204986572266,
          36.765869140625,
          39.615299224853516,
          41.445343017578125,
          42.517974853515625
        ],
        "0.9": [
          48.60978698730469,
          47.43096923828125,
          42.79112243652344,
          37.6799201965332,
          33.3004150390625,
          27.90454864501953,
          22.537134170532227,
          17.90163230895996,
          13.724783897399902,
          11.975788116455078,
          9.977222442626953,
          9.093873977661133,
          9.463135719299316,
          10.984129905700684,
          14.422269821166992,
          18.565746307373047,
          22.39069175720215,
          27.66008949279785,
          33.55706024169922,
          38.70289611816406,
          42.075965881347656,
          45.412227630615234,
          47.52215576171875,
          48.96488952636719,
          48.8265380859375,
          47.848453521728516,
          43.23004913330078,
          38.305755615234375,
          34.17613983154297,
          28.809988021850586,
          23.35015106201172,
          18.584577560424805,
          14.49343204498291,
          12.689022064208984,
          10.720396995544434,
          9.662089347839355,
          10.225909233093262,
          11.88810920715332,
          15.130329132080078,
          19.02608871459961,
          22.825077056884766,
          28.250431060791016,
          34.244171142578125,
          39.468650817871094,
          42.69873046875,
          45.907142639160156,
          47.94013214111328,
          49.381919860839844
        ]
      },
      "Product C": {
        "timestamp": [
          "2026-03-15T16:00:00",
          "2026-03-15T17:00:00",
          "2026-03-15T18:00:00",
          "2026-03-15T19:00:00",
          "2026-03-15T20:00:00",
          "2026-03-15T21:00:00",
          "2026-03-15T22:00:00",
          "2026-03-15T23:00:00",
          "2026-03-16T00:00:00",
          "2026-03-16T01:00:00",
          "2026-03-16T02:00:00",
          "2026-03-16T03:00:00",
          "2026-03-16T04:00:00",
          "2026-03-16T05:00:00",
          "2026-03-16T06:00:00",
          "2026-03-16T07:00:00",
          "2026-03-16T08:00:00",
          "2026-03-16T09:00:00",
          "2026-03-16T10:00:00",
          "2026-03-16T11:00:00",
          "2026-03-16T12:00:00",
          "2026-03-16T13:00:00",
          "2026-03-16T14:00:00",
          "2026-03-16T15:00:00",
          "2026-03-16T16:00:00",
          "2026-03-16T17:00:00",
          "2026-03-16T18:00:00",
          "2026-03-16T19:00:00",
          "2026-03-16T20:00:00",
          "2026-03-16T21:00:00",
          "2026-03-16T22:00:00",
          "2026-03-16T23:00:00",
          "2026-03-17T00:00:00",
          "2026-03-17T01:00:00",
          "2026-03-17T02:00:00",
          "2026-03-17T03:00:00",
          "2026-03-17T04:00:00",
          "2026-03-17T05:00:00",
          "2026-03-17T06:00:00",
          "2026-03-17T07:00:00",
          "2026-03-17T08:00:00",
          "2026-03-17T09:00:00",
          "2026-03-17T10:00:00",
          "2026-03-17T11:00:00",
          "2026-03-17T12:00:00",
          "2026-03-17T13:00:00",
          "2026-03-17T14:00:00",
          "2026-03-17T15:00:00"
        ],
        "mean": [
          68.25753784179688,
          64.33294677734375,
          58.953407287597656,
          52.182167053222656,
          44.8023567199707,
          36.48902130126953,
          29.293916702270508,
          23.117162704467773,
          18.24557876586914,
          12.591239929199219,
          9.324899673461914,
          7.880804061889648,
          10.169549942016602,
          14.116628646850586,
          18.203784942626953,
          24.026535034179688,
          30.23114776611328,
          38.921058654785156,
          47.02241897583008,
          53.7126350402832,
          60.47807312011719,
          64.84934997558594,
          68.66142272949219,
          70.09188842773438,
          68.77432250976562,
          64.90254974365234,
          59.55329132080078,
          52.759666442871094,
          45.605072021484375,
          37.1990966796875,
          29.969520568847656,
          23.500141143798828,
          18.895471572875977,
          13.273134231567383,
          9.766721725463867,
          7.782873153686523,
          10.10135269165039,
          14.322179794311523,
          18.6790828704834,
          24.71501922607422,
          31.01270866394043,
          39.43730163574219,
          47.36338806152344,
          54.099761962890625,
          61.12646484375,
          65.52592468261719,
          69.14380645751953,
          70.39305114746094
        ],
        "0.1": [
          65.0497055053711,
          61.02140808105469,
          55.667762756347656,
          49.130184173583984,
          41.937583923339844,
          33.930274963378906,
          26.850168228149414,
          20.65131950378418,
          15.420270919799805,
          9.610015869140625,
          6.014139175415039,
          4.563690185546875,
          6.7572479248046875,
          10.61678695678711,
          15.046772003173828,
          20.946298599243164,
          27.35129737854004,
          35.78847122192383,
          43.83382034301758,
          50.54799270629883,
          56.998382568359375,
          61.15869140625,
          64.4871597290039,
          65.62289428710938,
          64.30809020996094,
          60.597747802734375,
          55.28544616699219,
          49.05252456665039,
          42.306427001953125,
          34.51346206665039,
          27.43219757080078,
          21.02750015258789,
          15.994155883789062,
          10.284709930419922,
          6.550397872924805,
          4.792110443115234,
          6.905149459838867,
          10.953042984008789,
          15.455942153930664,
          21.445810317993164,
          27.832324981689453,
          35.966773986816406,
          43.770023345947266,
          50.32490539550781,
          56.82306671142578,
          60.98479080200195,
          64.19062805175781,
          65.11436462402344
        ],
        "0.9": [
          71.67506408691406,
          67.64664459228516,
          62.195289611816406,
          55.31642150878906,
          47.960060119628906,
          39.451725006103516,
          32.17584228515625,
          25.903423309326172,
          21.21776580810547,
          15.803155899047852,
          12.547943115234375,
          10.65243148803711,
          13.38730239868164,
          17.783737182617188,
          21.71316146850586,
          27.42102813720703,
          33.64549255371094,
          42.66716766357422,
          50.950584411621094,
          57.488285064697266,
          64.4905014038086,
          68.61067199707031,
          72.39262390136719,
          73.94755554199219,
          72.77479553222656,
          68.87016296386719,
          63.50397872924805,
          56.57518768310547,
          49.40583038330078,
          40.81800842285156,
          33.40961456298828,
          26.681062698364258,
          22.37085723876953,
          17.016590118408203,
          13.691097259521484,
          11.294649124145508,
          13.996709823608398,
          18.501005172729492,
          22.67669677734375,
          28.56482696533203,
          34.7428092956543,
          43.582984924316406,
          51.486045837402344,
          58.23878479003906,
          65.67634582519531,
          69.92729187011719,
          73.41410827636719,
          74.68563079833984
        ]
      }
    }
  }
}

Result

http://localhost:8004/plot_6c987ddf74264cb5b29203b4604c02cf.html

Here's the forecast for Product A for the next 2 days (Mar 15, 16:00 → Mar 17, 15:00), with an 80% prediction interval (shaded band between the 10th and 90th percentiles). Key takeaways:

  • 🔄 Strong daily cycle preserved: Chronos has clearly picked up on the intraday seasonality — predicting low sales overnight (2–4 units) and peaks mid-morning (38–41 units)
  • 📏 Tight uncertainty bands: The prediction interval is relatively narrow, reflecting the high regularity and consistency of the historical pattern
  • 📈 Two full daily cycles forecasted: Both Mar 16 and Mar 17 show the same characteristic shape as past days

Would you like to do the same for Product B or Product C, or extend the forecast horizon further?

User

Can we repeat the same analysis for the remaining products and show all the results in one plot?

Assistant
Thoughts
The user wants to repeat the same analysis for Products B and C, then show all three products (A, B, C) in one plot with their forecasts. Let me:

1. Query the most recent week of data for Products B and C
2. Generate forecasts for Products B and C
3. Visualize all three products together with their forecasts

I already have the data for Product A. Let me query B and C first, then generate forecasts for both.

Let me query both Products B and C simultaneously.

Sure! Let me first fetch the data for Products B and C simultaneously.

Ran select_query

Assistant sent this info to clickhouse-playground

{
  "query": "\nSELECT timestamp, units_sold\nFROM default.sales\nWHERE product_id = 2\n  AND timestamp >= (SELECT max(timestamp) - INTERVAL 7 DAY FROM default.sales)\nORDER BY timestamp ASC\n"
}

Result

{
  "columns": [
    "timestamp",
    "units_sold"
  ],
  "rows": [
    [
      "2026-03-08T15:00:00",
      44
    ],
    [
      "2026-03-08T16:00:00",
      41
    ],
    [
      "2026-03-08T17:00:00",
      47
    ],
    [
      "2026-03-08T18:00:00",
      37
    ],
    [
      "2026-03-08T19:00:00",
      39
    ],
    [
      "2026-03-08T20:00:00",
      32
    ],
    [
      "2026-03-08T21:00:00",
      22
    ],
    [
      "2026-03-08T22:00:00",
      20
    ],
    [
      "2026-03-08T23:00:00",
      17
    ],
    [
      "2026-03-09T00:00:00",
      11
    ],
    [
      "2026-03-09T01:00:00",
      14
    ],
    [
      "2026-03-09T02:00:00",
      7
    ],
    [
      "2026-03-09T03:00:00",
      3
    ],
    [
      "2026-03-09T04:00:00",
      6
    ],
    [
      "2026-03-09T05:00:00",
      7
    ],
    [
      "2026-03-09T06:00:00",
      11
    ],
    [
      "2026-03-09T07:00:00",
      17
    ],
    [
      "2026-03-09T08:00:00",
      18
    ],
    [
      "2026-03-09T09:00:00",
      21
    ],
    [
      "2026-03-09T10:00:00",
      30
    ],
    [
      "2026-03-09T11:00:00",
      35
    ],
    [
      "2026-03-09T12:00:00",
      38
    ],
    [
      "2026-03-09T13:00:00",
      41
    ],
    [
      "2026-03-09T14:00:00",
      46
    ],
    [
      "2026-03-09T15:00:00",
      47
    ],
    [
      "2026-03-09T16:00:00",
      43
    ],
    [
      "2026-03-09T17:00:00",
      41
    ],
    [
      "2026-03-09T18:00:00",
      39
    ],
    [
      "2026-03-09T19:00:00",
      33
    ],
    [
      "2026-03-09T20:00:00",
      33
    ],
    [
      "2026-03-09T21:00:00",
      26
    ],
    [
      "2026-03-09T22:00:00",
      20
    ],
    [
      "2026-03-09T23:00:00",
      17
    ],
    [
      "2026-03-10T00:00:00",
      7
    ],
    [
      "2026-03-10T01:00:00",
      9
    ],
    [
      "2026-03-10T02:00:00",
      11
    ],
    [
      "2026-03-10T03:00:00",
      7
    ],
    [
      "2026-03-10T04:00:00",
      4
    ],
    [
      "2026-03-10T05:00:00",
      9
    ],
    [
      "2026-03-10T06:00:00",
      11
    ],
    [
      "2026-03-10T07:00:00",
      15
    ],
    [
      "2026-03-10T08:00:00",
      18
    ],
    [
      "2026-03-10T09:00:00",
      24
    ],
    [
      "2026-03-10T10:00:00",
      29
    ],
    [
      "2026-03-10T11:00:00",
      39
    ],
    [
      "2026-03-10T12:00:00",
      42
    ],
    [
      "2026-03-10T13:00:00",
      42
    ],
    [
      "2026-03-10T14:00:00",
      46
    ],
    [
      "2026-03-10T15:00:00",
      42
    ],
    [
      "2026-03-10T16:00:00",
      45
    ],
    [
      "2026-03-10T17:00:00",
      46
    ],
    [
      "2026-03-10T18:00:00",
      39
    ],
    [
      "2026-03-10T19:00:00",
      37
    ],
    [
      "2026-03-10T20:00:00",
      32
    ],
    [
      "2026-03-10T21:00:00",
      27
    ],
    [
      "2026-03-10T22:00:00",
      21
    ],
    [
      "2026-03-10T23:00:00",
      15
    ],
    [
      "2026-03-11T00:00:00",
      12
    ],
    [
      "2026-03-11T01:00:00",
      9
    ],
    [
      "2026-03-11T02:00:00",
      6
    ],
    [
      "2026-03-11T03:00:00",
      7
    ],
    [
      "2026-03-11T04:00:00",
      6
    ],
    [
      "2026-03-11T05:00:00",
      9
    ],
    [
      "2026-03-11T06:00:00",
      12
    ],
    [
      "2026-03-11T07:00:00",
      16
    ],
    [
      "2026-03-11T08:00:00",
      22
    ],
    [
      "2026-03-11T09:00:00",
      26
    ],
    [
      "2026-03-11T10:00:00",
      30
    ],
    [
      "2026-03-11T11:00:00",
      33
    ],
    [
      "2026-03-11T12:00:00",
      34
    ],
    [
      "2026-03-11T13:00:00",
      40
    ],
    [
      "2026-03-11T14:00:00",
      42
    ],
    [
      "2026-03-11T15:00:00",
      44
    ],
    [
      "2026-03-11T16:00:00",
      48
    ],
    [
      "2026-03-11T17:00:00",
      42
    ],
    [
      "2026-03-11T18:00:00",
      39
    ],
    [
      "2026-03-11T19:00:00",
      36
    ],
    [
      "2026-03-11T20:00:00",
      28
    ],
    [
      "2026-03-11T21:00:00",
      27
    ],
    [
      "2026-03-11T22:00:00",
      19
    ],
    [
      "2026-03-11T23:00:00",
      16
    ],
    [
      "2026-03-12T00:00:00",
      8
    ],
    [
      "2026-03-12T01:00:00",
      10
    ],
    [
      "2026-03-12T02:00:00",
      5
    ],
    [
      "2026-03-12T03:00:00",
      3
    ],
    [
      "2026-03-12T04:00:00",
      7
    ],
    [
      "2026-03-12T05:00:00",
      9
    ],
    [
      "2026-03-12T06:00:00",
      9
    ],
    [
      "2026-03-12T07:00:00",
      13
    ],
    [
      "2026-03-12T08:00:00",
      17
    ],
    [
      "2026-03-12T09:00:00",
      24
    ],
    [
      "2026-03-12T10:00:00",
      31
    ],
    [
      "2026-03-12T11:00:00",
      38
    ],
    [
      "2026-03-12T12:00:00",
      36
    ],
    [
      "2026-03-12T13:00:00",
      42
    ],
    [
      "2026-03-12T14:00:00",
      44
    ],
    [
      "2026-03-12T15:00:00",
      46
    ],
    [
      "2026-03-12T16:00:00",
      43
    ],
    [
      "2026-03-12T17:00:00",
      48
    ],
    [
      "2026-03-12T18:00:00",
      39
    ],
    [
      "2026-03-12T19:00:00",
      35
    ],
    [
      "2026-03-12T20:00:00",
      31
    ],
    [
      "2026-03-12T21:00:00",
      24
    ],
    [
      "2026-03-12T22:00:00",
      16
    ],
    [
      "2026-03-12T23:00:00",
      15
    ],
    [
      "2026-03-13T00:00:00",
      15
    ],
    [
      "2026-03-13T01:00:00",
      11
    ],
    [
      "2026-03-13T02:00:00",
      8
    ],
    [
      "2026-03-13T03:00:00",
      7
    ],
    [
      "2026-03-13T04:00:00",
      6
    ],
    [
      "2026-03-13T05:00:00",
      9
    ],
    [
      "2026-03-13T06:00:00",
      9
    ],
    [
      "2026-03-13T07:00:00",
      16
    ],
    [
      "2026-03-13T08:00:00",
      17
    ],
    [
      "2026-03-13T09:00:00",
      27
    ],
    [
      "2026-03-13T10:00:00",
      30
    ],
    [
      "2026-03-13T11:00:00",
      34
    ],
    [
      "2026-03-13T12:00:00",
      40
    ],
    [
      "2026-03-13T13:00:00",
      44
    ],
    [
      "2026-03-13T14:00:00",
      42
    ],
    [
      "2026-03-13T15:00:00",
      48
    ],
    [
      "2026-03-13T16:00:00",
      44
    ],
    [
      "2026-03-13T17:00:00",
      43
    ],
    [
      "2026-03-13T18:00:00",
      39
    ],
    [
      "2026-03-13T19:00:00",
      32
    ],
    [
      "2026-03-13T20:00:00",
      30
    ],
    [
      "2026-03-13T21:00:00",
      23
    ],
    [
      "2026-03-13T22:00:00",
      20
    ],
    [
      "2026-03-13T23:00:00",
      15
    ],
    [
      "2026-03-14T00:00:00",
      9
    ],
    [
      "2026-03-14T01:00:00",
      8
    ],
    [
      "2026-03-14T02:00:00",
      5
    ],
    [
      "2026-03-14T03:00:00",
      7
    ],
    [
      "2026-03-14T04:00:00",
      8
    ],
    [
      "2026-03-14T05:00:00",
      7
    ],
    [
      "2026-03-14T06:00:00",
      13
    ],
    [
      "2026-03-14T07:00:00",
      19
    ],
    [
      "2026-03-14T08:00:00",
      19
    ],
    [
      "2026-03-14T09:00:00",
      25
    ],
    [
      "2026-03-14T10:00:00",
      31
    ],
    [
      "2026-03-14T11:00:00",
      35
    ],
    [
      "2026-03-14T12:00:00",
      40
    ],
    [
      "2026-03-14T13:00:00",
      43
    ],
    [
      "2026-03-14T14:00:00",
      45
    ],
    [
      "2026-03-14T15:00:00",
      44
    ],
    [
      "2026-03-14T16:00:00",
      44
    ],
    [
      "2026-03-14T17:00:00",
      44
    ],
    [
      "2026-03-14T18:00:00",
      42
    ],
    [
      "2026-03-14T19:00:00",
      32
    ],
    [
      "2026-03-14T20:00:00",
      31
    ],
    [
      "2026-03-14T21:00:00",
      26
    ],
    [
      "2026-03-14T22:00:00",
      20
    ],
    [
      "2026-03-14T23:00:00",
      13
    ],
    [
      "2026-03-15T00:00:00",
      10
    ],
    [
      "2026-03-15T01:00:00",
      10
    ],
    [
      "2026-03-15T02:00:00",
      7
    ],
    [
      "2026-03-15T03:00:00",
      8
    ],
    [
      "2026-03-15T04:00:00",
      12
    ],
    [
      "2026-03-15T05:00:00",
      10
    ],
    [
      "2026-03-15T06:00:00",
      13
    ],
    [
      "2026-03-15T07:00:00",
      14
    ],
    [
      "2026-03-15T08:00:00",
      18
    ],
    [
      "2026-03-15T09:00:00",
      24
    ],
    [
      "2026-03-15T10:00:00",
      32
    ],
    [
      "2026-03-15T11:00:00",
      34
    ],
    [
      "2026-03-15T12:00:00",
      39
    ],
    [
      "2026-03-15T13:00:00",
      39
    ],
    [
      "2026-03-15T14:00:00",
      41
    ],
    [
      "2026-03-15T15:00:00",
      47
    ]
  ]
}
Ran select_query

Assistant sent this info to clickhouse-playground

{
  "query": "\nSELECT timestamp, units_sold\nFROM default.sales\nWHERE product_id = 3\n  AND timestamp >= (SELECT max(timestamp) - INTERVAL 7 DAY FROM default.sales)\nORDER BY timestamp ASC\n"
}

Result

{
  "columns": [
    "timestamp",
    "units_sold"
  ],
  "rows": [
    [
      "2026-03-08T15:00:00",
      67
    ],
    [
      "2026-03-08T16:00:00",
      65
    ],
    [
      "2026-03-08T17:00:00",
      66
    ],
    [
      "2026-03-08T18:00:00",
      64
    ],
    [
      "2026-03-08T19:00:00",
      51
    ],
    [
      "2026-03-08T20:00:00",
      51
    ],
    [
      "2026-03-08T21:00:00",
      42
    ],
    [
      "2026-03-08T22:00:00",
      30
    ],
    [
      "2026-03-08T23:00:00",
      18
    ],
    [
      "2026-03-09T00:00:00",
      11
    ],
    [
      "2026-03-09T01:00:00",
      16
    ],
    [
      "2026-03-09T02:00:00",
      9
    ],
    [
      "2026-03-09T03:00:00",
      1
    ],
    [
      "2026-03-09T04:00:00",
      13
    ],
    [
      "2026-03-09T05:00:00",
      4
    ],
    [
      "2026-03-09T06:00:00",
      19
    ],
    [
      "2026-03-09T07:00:00",
      24
    ],
    [
      "2026-03-09T08:00:00",
      33
    ],
    [
      "2026-03-09T09:00:00",
      35
    ],
    [
      "2026-03-09T10:00:00",
      39
    ],
    [
      "2026-03-09T11:00:00",
      52
    ],
    [
      "2026-03-09T12:00:00",
      59
    ],
    [
      "2026-03-09T13:00:00",
      65
    ],
    [
      "2026-03-09T14:00:00",
      70
    ],
    [
      "2026-03-09T15:00:00",
      67
    ],
    [
      "2026-03-09T16:00:00",
      67
    ],
    [
      "2026-03-09T17:00:00",
      63
    ],
    [
      "2026-03-09T18:00:00",
      58
    ],
    [
      "2026-03-09T19:00:00",
      53
    ],
    [
      "2026-03-09T20:00:00",
      45
    ],
    [
      "2026-03-09T21:00:00",
      37
    ],
    [
      "2026-03-09T22:00:00",
      28
    ],
    [
      "2026-03-09T23:00:00",
      24
    ],
    [
      "2026-03-10T00:00:00",
      18
    ],
    [
      "2026-03-10T01:00:00",
      8
    ],
    [
      "2026-03-10T02:00:00",
      11
    ],
    [
      "2026-03-10T03:00:00",
      2
    ],
    [
      "2026-03-10T04:00:00",
      14
    ],
    [
      "2026-03-10T05:00:00",
      13
    ],
    [
      "2026-03-10T06:00:00",
      13
    ],
    [
      "2026-03-10T07:00:00",
      23
    ],
    [
      "2026-03-10T08:00:00",
      30
    ],
    [
      "2026-03-10T09:00:00",
      39
    ],
    [
      "2026-03-10T10:00:00",
      44
    ],
    [
      "2026-03-10T11:00:00",
      50
    ],
    [
      "2026-03-10T12:00:00",
      58
    ],
    [
      "2026-03-10T13:00:00",
      62
    ],
    [
      "2026-03-10T14:00:00",
      65
    ],
    [
      "2026-03-10T15:00:00",
      73
    ],
    [
      "2026-03-10T16:00:00",
      64
    ],
    [
      "2026-03-10T17:00:00",
      63
    ],
    [
      "2026-03-10T18:00:00",
      67
    ],
    [
      "2026-03-10T19:00:00",
      53
    ],
    [
      "2026-03-10T20:00:00",
      44
    ],
    [
      "2026-03-10T21:00:00",
      38
    ],
    [
      "2026-03-10T22:00:00",
      32
    ],
    [
      "2026-03-10T23:00:00",
      20
    ],
    [
      "2026-03-11T00:00:00",
      17
    ],
    [
      "2026-03-11T01:00:00",
      12
    ],
    [
      "2026-03-11T02:00:00",
      9
    ],
    [
      "2026-03-11T03:00:00",
      3
    ],
    [
      "2026-03-11T04:00:00",
      16
    ],
    [
      "2026-03-11T05:00:00",
      13
    ],
    [
      "2026-03-11T06:00:00",
      16
    ],
    [
      "2026-03-11T07:00:00",
      29
    ],
    [
      "2026-03-11T08:00:00",
      28
    ],
    [
      "2026-03-11T09:00:00",
      38
    ],
    [
      "2026-03-11T10:00:00",
      47
    ],
    [
      "2026-03-11T11:00:00",
      46
    ],
    [
      "2026-03-11T12:00:00",
      59
    ],
    [
      "2026-03-11T13:00:00",
      63
    ],
    [
      "2026-03-11T14:00:00",
      66
    ],
    [
      "2026-03-11T15:00:00",
      68
    ],
    [
      "2026-03-11T16:00:00",
      69
    ],
    [
      "2026-03-11T17:00:00",
      62
    ],
    [
      "2026-03-11T18:00:00",
      55
    ],
    [
      "2026-03-11T19:00:00",
      47
    ],
    [
      "2026-03-11T20:00:00",
      47
    ],
    [
      "2026-03-11T21:00:00",
      37
    ],
    [
      "2026-03-11T22:00:00",
      28
    ],
    [
      "2026-03-11T23:00:00",
      23
    ],
    [
      "2026-03-12T00:00:00",
      20
    ],
    [
      "2026-03-12T01:00:00",
      12
    ],
    [
      "2026-03-12T02:00:00",
      8
    ],
    [
      "2026-03-12T03:00:00",
      6
    ],
    [
      "2026-03-12T04:00:00",
      7
    ],
    [
      "2026-03-12T05:00:00",
      13
    ],
    [
      "2026-03-12T06:00:00",
      18
    ],
    [
      "2026-03-12T07:00:00",
      18
    ],
    [
      "2026-03-12T08:00:00",
      26
    ],
    [
      "2026-03-12T09:00:00",
      40
    ],
    [
      "2026-03-12T10:00:00",
      44
    ],
    [
      "2026-03-12T11:00:00",
      52
    ],
    [
      "2026-03-12T12:00:00",
      60
    ],
    [
      "2026-03-12T13:00:00",
      64
    ],
    [
      "2026-03-12T14:00:00",
      65
    ],
    [
      "2026-03-12T15:00:00",
      67
    ],
    [
      "2026-03-12T16:00:00",
      64
    ],
    [
      "2026-03-12T17:00:00",
      68
    ],
    [
      "2026-03-12T18:00:00",
      57
    ],
    [
      "2026-03-12T19:00:00",
      55
    ],
    [
      "2026-03-12T20:00:00",
      50
    ],
    [
      "2026-03-12T21:00:00",
      36
    ],
    [
      "2026-03-12T22:00:00",
      28
    ],
    [
      "2026-03-12T23:00:00",
      21
    ],
    [
      "2026-03-13T00:00:00",
      16
    ],
    [
      "2026-03-13T01:00:00",
      16
    ],
    [
      "2026-03-13T02:00:00",
      13
    ],
    [
      "2026-03-13T03:00:00",
      6
    ],
    [
      "2026-03-13T04:00:00",
      9
    ],
    [
      "2026-03-13T05:00:00",
      14
    ],
    [
      "2026-03-13T06:00:00",
      18
    ],
    [
      "2026-03-13T07:00:00",
      22
    ],
    [
      "2026-03-13T08:00:00",
      26
    ],
    [
      "2026-03-13T09:00:00",
      36
    ],
    [
      "2026-03-13T10:00:00",
      48
    ],
    [
      "2026-03-13T11:00:00",
      53
    ],
    [
      "2026-03-13T12:00:00",
      59
    ],
    [
      "2026-03-13T13:00:00",
      64
    ],
    [
      "2026-03-13T14:00:00",
      70
    ],
    [
      "2026-03-13T15:00:00",
      70
    ],
    [
      "2026-03-13T16:00:00",
      72
    ],
    [
      "2026-03-13T17:00:00",
      62
    ],
    [
      "2026-03-13T18:00:00",
      61
    ],
    [
      "2026-03-13T19:00:00",
      52
    ],
    [
      "2026-03-13T20:00:00",
      41
    ],
    [
      "2026-03-13T21:00:00",
      35
    ],
    [
      "2026-03-13T22:00:00",
      29
    ],
    [
      "2026-03-13T23:00:00",
      22
    ],
    [
      "2026-03-14T00:00:00",
      19
    ],
    [
      "2026-03-14T01:00:00",
      7
    ],
    [
      "2026-03-14T02:00:00",
      9
    ],
    [
      "2026-03-14T03:00:00",
      8
    ],
    [
      "2026-03-14T04:00:00",
      5
    ],
    [
      "2026-03-14T05:00:00",
      19
    ],
    [
      "2026-03-14T06:00:00",
      16
    ],
    [
      "2026-03-14T07:00:00",
      20
    ],
    [
      "2026-03-14T08:00:00",
      25
    ],
    [
      "2026-03-14T09:00:00",
      36
    ],
    [
      "2026-03-14T10:00:00",
      48
    ],
    [
      "2026-03-14T11:00:00",
      55
    ],
    [
      "2026-03-14T12:00:00",
      57
    ],
    [
      "2026-03-14T13:00:00",
      58
    ],
    [
      "2026-03-14T14:00:00",
      68
    ],
    [
      "2026-03-14T15:00:00",
      70
    ],
    [
      "2026-03-14T16:00:00",
      65
    ],
    [
      "2026-03-14T17:00:00",
      61
    ],
    [
      "2026-03-14T18:00:00",
      55
    ],
    [
      "2026-03-14T19:00:00",
      52
    ],
    [
      "2026-03-14T20:00:00",
      41
    ],
    [
      "2026-03-14T21:00:00",
      34
    ],
    [
      "2026-03-14T22:00:00",
      30
    ],
    [
      "2026-03-14T23:00:00",
      24
    ],
    [
      "2026-03-15T00:00:00",
      21
    ],
    [
      "2026-03-15T01:00:00",
      15
    ],
    [
      "2026-03-15T02:00:00",
      5
    ],
    [
      "2026-03-15T03:00:00",
      9
    ],
    [
      "2026-03-15T04:00:00",
      9
    ],
    [
      "2026-03-15T05:00:00",
      14
    ],
    [
      "2026-03-15T06:00:00",
      19
    ],
    [
      "2026-03-15T07:00:00",
      28
    ],
    [
      "2026-03-15T08:00:00",
      31
    ],
    [
      "2026-03-15T09:00:00",
      41
    ],
    [
      "2026-03-15T10:00:00",
      50
    ],
    [
      "2026-03-15T11:00:00",
      51
    ],
    [
      "2026-03-15T12:00:00",
      64
    ],
    [
      "2026-03-15T13:00:00",
      67
    ],
    [
      "2026-03-15T14:00:00",
      69
    ],
    [
      "2026-03-15T15:00:00",
      68
    ]
  ]
}

Got the data for both products! Now let me generate forecasts for Products B and C simultaneously.

Ran generate_forecasts

Assistant sent this info to chronos-forecasting

{
  "target": [
    44,
    41,
    47,
    37,
    39,
    32,
    22,
    20,
    17,
    11,
    14,
    7,
    3,
    6,
    7,
    11,
    17,
    18,
    21,
    30,
    35,
    38,
    41,
    46,
    47,
    43,
    41,
    39,
    33,
    33,
    26,
    20,
    17,
    7,
    9,
    11,
    7,
    4,
    9,
    11,
    15,
    18,
    24,
    29,
    39,
    42,
    42,
    46,
    42,
    45,
    46,
    39,
    37,
    32,
    27,
    21,
    15,
    12,
    9,
    6,
    7,
    6,
    9,
    12,
    16,
    22,
    26,
    30,
    33,
    34,
    40,
    42,
    44,
    48,
    42,
    39,
    36,
    28,
    27,
    19,
    16,
    8,
    10,
    5,
    3,
    7,
    9,
    9,
    13,
    17,
    24,
    31,
    38,
    36,
    42,
    44,
    46,
    43,
    48,
    39,
    35,
    31,
    24,
    16,
    15,
    15,
    11,
    8,
    7,
    6,
    9,
    9,
    16,
    17,
    27,
    30,
    34,
    40,
    44,
    42,
    48,
    44,
    43,
    39,
    32,
    30,
    23,
    20,
    15,
    9,
    8,
    5,
    7,
    8,
    7,
    13,
    19,
    19,
    25,
    31,
    35,
    40,
    43,
    45,
    44,
    44,
    44,
    42,
    32,
    31,
    26,
    20,
    13,
    10,
    10,
    7,
    8,
    12,
    10,
    13,
    14,
    18,
    24,
    32,
    34,
    39,
    39,
    41,
    47
  ],
  "prediction_length": 48,
  "quantile_levels": [
    0.1,
    0.5,
    0.9
  ]
}

Result

{
  "mean": [
    45.744361877441406,
    44.47789764404297,
    39.96786880493164,
    34.93931579589844,
    30.40752410888672,
    25.078933715820312,
    19.764469146728516,
    15.15910816192627,
    11.105031967163086,
    9.184202194213867,
    7.405527114868164,
    6.835023880004883,
    7.098142623901367,
    8.534454345703125,
    11.933398246765137,
    16.158313751220703,
    19.992860794067383,
    25.135028839111328,
    30.816650390625,
    35.86872863769531,
    39.165767669677734,
    42.46210479736328,
    44.626007080078125,
    45.996063232421875,
    45.7534065246582,
    44.59668731689453,
    40.11052703857422,
    35.24456787109375,
    31.033628463745117,
    25.713680267333984,
    20.289962768554688,
    15.610541343688965,
    11.549332618713379,
    9.544018745422363,
    7.7064056396484375,
    6.958499908447266,
    7.410867691040039,
    9.032258987426758,
    12.31091022491455,
    16.357358932495117,
    20.261585235595703,
    25.50418472290039,
    31.366159439086914,
    36.46283721923828,
    39.60572052001953,
    42.69723129272461,
    44.79161834716797,
    46.19174575805664
  ],
  "0.1": [
    43.202728271484375,
    41.657466888427734,
    37.34388732910156,
    32.49301528930664,
    27.895044326782227,
    22.69713592529297,
    17.48502540588379,
    12.914217948913574,
    8.867912292480469,
    6.805437088012695,
    5.133642196655273,
    4.6055755615234375,
    4.980224609375,
    6.566743850708008,
    9.907864570617676,
    14.042644500732422,
    17.96416664123535,
    23.004030227661133,
    28.466156005859375,
    33.398677825927734,
    36.72842788696289,
    39.793521881103516,
    41.68659973144531,
    42.83111572265625,
    42.48583984375,
    41.06452941894531,
    36.83848571777344,
    32.41840744018555,
    28.241992950439453,
    23.26666259765625,
    18.005842208862305,
    13.322606086730957,
    9.245460510253906,
    7.142238616943359,
    5.440708160400391,
    4.845056533813477,
    5.325952529907227,
    7.058143615722656,
    10.134407043457031,
    14.08029842376709,
    18.03704071044922,
    23.15070152282715,
    28.727794647216797,
    33.606204986572266,
    36.765869140625,
    39.615299224853516,
    41.445343017578125,
    42.517974853515625
  ],
  "0.5": [
    45.744361877441406,
    44.47789764404297,
    39.96786880493164,
    34.93931579589844,
    30.40752410888672,
    25.078933715820312,
    19.764469146728516,
    15.15910816192627,
    11.105031967163086,
    9.184202194213867,
    7.405527114868164,
    6.835023880004883,
    7.098142623901367,
    8.534454345703125,
    11.933398246765137,
    16.158313751220703,
    19.992860794067383,
    25.135028839111328,
    30.816650390625,
    35.86872863769531,
    39.165767669677734,
    42.46210479736328,
    44.626007080078125,
    45.996063232421875,
    45.7534065246582,
    44.59668731689453,
    40.11052703857422,
    35.24456787109375,
    31.033628463745117,
    25.713680267333984,
    20.289962768554688,
    15.610541343688965,
    11.549332618713379,
    9.544018745422363,
    7.7064056396484375,
    6.958499908447266,
    7.410867691040039,
    9.032258987426758,
    12.31091022491455,
    16.357358932495117,
    20.261585235595703,
    25.50418472290039,
    31.366159439086914,
    36.46283721923828,
    39.60572052001953,
    42.69723129272461,
    44.79161834716797,
    46.19174575805664
  ],
  "0.9": [
    48.60978698730469,
    47.43096923828125,
    42.79112243652344,
    37.6799201965332,
    33.3004150390625,
    27.90454864501953,
    22.537134170532227,
    17.90163230895996,
    13.724783897399902,
    11.975788116455078,
    9.977222442626953,
    9.093873977661133,
    9.463135719299316,
    10.984129905700684,
    14.422269821166992,
    18.565746307373047,
    22.39069175720215,
    27.66008949279785,
    33.55706024169922,
    38.70289611816406,
    42.075965881347656,
    45.412227630615234,
    47.52215576171875,
    48.96488952636719,
    48.8265380859375,
    47.848453521728516,
    43.23004913330078,
    38.305755615234375,
    34.17613983154297,
    28.809988021850586,
    23.35015106201172,
    18.584577560424805,
    14.49343204498291,
    12.689022064208984,
    10.720396995544434,
    9.662089347839355,
    10.225909233093262,
    11.88810920715332,
    15.130329132080078,
    19.02608871459961,
    22.825077056884766,
    28.250431060791016,
    34.244171142578125,
    39.468650817871094,
    42.69873046875,
    45.907142639160156,
    47.94013214111328,
    49.381919860839844
  ]
}
Ran generate_forecasts

Assistant sent this info to chronos-forecasting

{
  "target": [
    67,
    65,
    66,
    64,
    51,
    51,
    42,
    30,
    18,
    11,
    16,
    9,
    1,
    13,
    4,
    19,
    24,
    33,
    35,
    39,
    52,
    59,
    65,
    70,
    67,
    67,
    63,
    58,
    53,
    45,
    37,
    28,
    24,
    18,
    8,
    11,
    2,
    14,
    13,
    13,
    23,
    30,
    39,
    44,
    50,
    58,
    62,
    65,
    73,
    64,
    63,
    67,
    53,
    44,
    38,
    32,
    20,
    17,
    12,
    9,
    3,
    16,
    13,
    16,
    29,
    28,
    38,
    47,
    46,
    59,
    63,
    66,
    68,
    69,
    62,
    55,
    47,
    47,
    37,
    28,
    23,
    20,
    12,
    8,
    6,
    7,
    13,
    18,
    18,
    26,
    40,
    44,
    52,
    60,
    64,
    65,
    67,
    64,
    68,
    57,
    55,
    50,
    36,
    28,
    21,
    16,
    16,
    13,
    6,
    9,
    14,
    18,
    22,
    26,
    36,
    48,
    53,
    59,
    64,
    70,
    70,
    72,
    62,
    61,
    52,
    41,
    35,
    29,
    22,
    19,
    7,
    9,
    8,
    5,
    19,
    16,
    20,
    25,
    36,
    48,
    55,
    57,
    58,
    68,
    70,
    65,
    61,
    55,
    52,
    41,
    34,
    30,
    24,
    21,
    15,
    5,
    9,
    9,
    14,
    19,
    28,
    31,
    41,
    50,
    51,
    64,
    67,
    69,
    68
  ],
  "prediction_length": 48,
  "quantile_levels": [
    0.1,
    0.5,
    0.9
  ]
}

Result

{
  "mean": [
    68.25753784179688,
    64.33294677734375,
    58.953407287597656,
    52.182167053222656,
    44.8023567199707,
    36.48902130126953,
    29.293916702270508,
    23.117162704467773,
    18.24557876586914,
    12.591239929199219,
    9.324899673461914,
    7.880804061889648,
    10.169549942016602,
    14.116628646850586,
    18.203784942626953,
    24.026535034179688,
    30.23114776611328,
    38.921058654785156,
    47.02241897583008,
    53.7126350402832,
    60.47807312011719,
    64.84934997558594,
    68.66142272949219,
    70.09188842773438,
    68.77432250976562,
    64.90254974365234,
    59.55329132080078,
    52.759666442871094,
    45.605072021484375,
    37.1990966796875,
    29.969520568847656,
    23.500141143798828,
    18.895471572875977,
    13.273134231567383,
    9.766721725463867,
    7.782873153686523,
    10.10135269165039,
    14.322179794311523,
    18.6790828704834,
    24.71501922607422,
    31.01270866394043,
    39.43730163574219,
    47.36338806152344,
    54.099761962890625,
    61.12646484375,
    65.52592468261719,
    69.14380645751953,
    70.39305114746094
  ],
  "0.1": [
    65.0497055053711,
    61.02140808105469,
    55.667762756347656,
    49.130184173583984,
    41.937583923339844,
    33.930274963378906,
    26.850168228149414,
    20.65131950378418,
    15.420270919799805,
    9.610015869140625,
    6.014139175415039,
    4.563690185546875,
    6.7572479248046875,
    10.61678695678711,
    15.046772003173828,
    20.946298599243164,
    27.35129737854004,
    35.78847122192383,
    43.83382034301758,
    50.54799270629883,
    56.998382568359375,
    61.15869140625,
    64.4871597290039,
    65.62289428710938,
    64.30809020996094,
    60.597747802734375,
    55.28544616699219,
    49.05252456665039,
    42.306427001953125,
    34.51346206665039,
    27.43219757080078,
    21.02750015258789,
    15.994155883789062,
    10.284709930419922,
    6.550397872924805,
    4.792110443115234,
    6.905149459838867,
    10.953042984008789,
    15.455942153930664,
    21.445810317993164,
    27.832324981689453,
    35.966773986816406,
    43.770023345947266,
    50.32490539550781,
    56.82306671142578,
    60.98479080200195,
    64.19062805175781,
    65.11436462402344
  ],
  "0.5": [
    68.25753784179688,
    64.33294677734375,
    58.953407287597656,
    52.182167053222656,
    44.8023567199707,
    36.48902130126953,
    29.293916702270508,
    23.117162704467773,
    18.24557876586914,
    12.591239929199219,
    9.324899673461914,
    7.880804061889648,
    10.169549942016602,
    14.116628646850586,
    18.203784942626953,
    24.026535034179688,
    30.23114776611328,
    38.921058654785156,
    47.02241897583008,
    53.7126350402832,
    60.47807312011719,
    64.84934997558594,
    68.66142272949219,
    70.09188842773438,
    68.77432250976562,
    64.90254974365234,
    59.55329132080078,
    52.759666442871094,
    45.605072021484375,
    37.1990966796875,
    29.969520568847656,
    23.500141143798828,
    18.895471572875977,
    13.273134231567383,
    9.766721725463867,
    7.782873153686523,
    10.10135269165039,
    14.322179794311523,
    18.6790828704834,
    24.71501922607422,
    31.01270866394043,
    39.43730163574219,
    47.36338806152344,
    54.099761962890625,
    61.12646484375,
    65.52592468261719,
    69.14380645751953,
    70.39305114746094
  ],
  "0.9": [
    71.67506408691406,
    67.64664459228516,
    62.195289611816406,
    55.31642150878906,
    47.960060119628906,
    39.451725006103516,
    32.17584228515625,
    25.903423309326172,
    21.21776580810547,
    15.803155899047852,
    12.547943115234375,
    10.65243148803711,
    13.38730239868164,
    17.783737182617188,
    21.71316146850586,
    27.42102813720703,
    33.64549255371094,
    42.66716766357422,
    50.950584411621094,
    57.488285064697266,
    64.4905014038086,
    68.61067199707031,
    72.39262390136719,
    73.94755554199219,
    72.77479553222656,
    68.87016296386719,
    63.50397872924805,
    56.57518768310547,
    49.40583038330078,
    40.81800842285156,
    33.40961456298828,
    26.681062698364258,
    22.37085723876953,
    17.016590118408203,
    13.691097259521484,
    11.294649124145508,
    13.996709823608398,
    18.501005172729492,
    22.67669677734375,
    28.56482696533203,
    34.7428092956543,
    43.582984924316406,
    51.486045837402344,
    58.23878479003906,
    65.67634582519531,
    69.92729187011719,
    73.41410827636719,
    74.68563079833984
  ]
}

Thoughts
Now I have all the data and forecasts for Products B and C. I also have the data and forecasts for Product A from the previous context. Let me now visualize all three products together with their forecasts.

For Product A, I need to use the data and forecast from the previous context:
- Data rows from previous context
- Forecast from previous context

Let me construct the timestamps for the forecasts. The last timestamp in the data is "2026-03-15T15:00:00", so the forecast starts at "2026-03-15T16:00:00" and goes for 48 hours hourly.

Let me generate the forecast timestamps:

I'm creating the 48-hour forecast timeline starting from 2026-03-15T16:00:00, incrementing by one hour for each step through 2026-03-17T15:00:00. Continuing through the hourly timestamps into mid-March 16th. Continuing through the hourly timestamps into the next day, tracking the progression from early morning through mid-afternoon on March 17th.

Now I'm gathering the historical data and forecast values for all three products to pass into the visualization function—I have the actual readings for Product A along with its predicted mean and quantile values across the forecast period. Looking at performance metrics across different product variants and their temperature curves. Now I'm looking at another set of numerical values, likely representing similar measurements or coordinates across a sequence of points. Compiling performance metrics for Product A... I'm continuing to compile the hourly data points for Product A, tracking the values through the night and into the next morning. Continuing through the hourly data for March 10th, tracking the temperature readings as they dip to their lowest point around 4 AM before climbing back up through the morning hours. Generating the time series data... Continuing through the hourly data... Generating time series data... Continuing through the hourly data for March 14th... Now I'm structuring the data object to include all three data series along with their corresponding forecast values for the chart visualization.

Excellent! Now let me put everything together and visualize all three products with their forecasts in one combined plot.

Ran visualize_data

Assistant sent this info to data-visualization

{
  "inputs": {
    "data": {
      "Product A": {
        "columns": [
          "timestamp",
          "units_sold"
        ],
        "rows": [
          [
            "2026-03-08T15:00:00",
            21
          ],
          [
            "2026-03-08T16:00:00",
            20
          ],
          [
            "2026-03-08T17:00:00",
            21
          ],
          [
            "2026-03-08T18:00:00",
            25
          ],
          [
            "2026-03-08T19:00:00",
            23
          ],
          [
            "2026-03-08T20:00:00",
            24
          ],
          [
            "2026-03-08T21:00:00",
            26
          ],
          [
            "2026-03-08T22:00:00",
            25
          ],
          [
            "2026-03-08T23:00:00",
            17
          ],
          [
            "2026-03-09T00:00:00",
            13
          ],
          [
            "2026-03-09T01:00:00",
            7
          ],
          [
            "2026-03-09T02:00:00",
            4
          ],
          [
            "2026-03-09T03:00:00",
            2
          ],
          [
            "2026-03-09T04:00:00",
            7
          ],
          [
            "2026-03-09T05:00:00",
            14
          ],
          [
            "2026-03-09T06:00:00",
            22
          ],
          [
            "2026-03-09T07:00:00",
            26
          ],
          [
            "2026-03-09T08:00:00",
            35
          ],
          [
            "2026-03-09T09:00:00",
            37
          ],
          [
            "2026-03-09T10:00:00",
            39
          ],
          [
            "2026-03-09T11:00:00",
            36
          ],
          [
            "2026-03-09T12:00:00",
            32
          ],
          [
            "2026-03-09T13:00:00",
            27
          ],
          [
            "2026-03-09T14:00:00",
            23
          ],
          [
            "2026-03-09T15:00:00",
            20
          ],
          [
            "2026-03-09T16:00:00",
            19
          ],
          [
            "2026-03-09T17:00:00",
            20
          ],
          [
            "2026-03-09T18:00:00",
            22
          ],
          [
            "2026-03-09T19:00:00",
            25
          ],
          [
            "2026-03-09T20:00:00",
            26
          ],
          [
            "2026-03-09T21:00:00",
            27
          ],
          [
            "2026-03-09T22:00:00",
            23
          ],
          [
            "2026-03-09T23:00:00",
            19
          ],
          [
            "2026-03-10T00:00:00",
            12
          ],
          [
            "2026-03-10T01:00:00",
            8
          ],
          [
            "2026-03-10T02:00:00",
            4
          ],
          [
            "2026-03-10T03:00:00",
            4
          ],
          [
            "2026-03-10T04:00:00",
            9
          ],
          [
            "2026-03-10T05:00:00",
            12
          ],
          [
            "2026-03-10T06:00:00",
            20
          ],
          [
            "2026-03-10T07:00:00",
            28
          ],
          [
            "2026-03-10T08:00:00",
            35
          ],
          [
            "2026-03-10T09:00:00",
            36
          ],
          [
            "2026-03-10T10:00:00",
            39
          ],
          [
            "2026-03-10T11:00:00",
            36
          ],
          [
            "2026-03-10T12:00:00",
            34
          ],
          [
            "2026-03-10T13:00:00",
            26
          ],
          [
            "2026-03-10T14:00:00",
            22
          ],
          [
            "2026-03-10T15:00:00",
            19
          ],
          [
            "2026-03-10T16:00:00",
            21
          ],
          [
            "2026-03-10T17:00:00",
            22
          ],
          [
            "2026-03-10T18:00:00",
            23
          ],
          [
            "2026-03-10T19:00:00",
            25
          ],
          [
            "2026-03-10T20:00:00",
            28
          ],
          [
            "2026-03-10T21:00:00",
            27
          ],
          [
            "2026-03-10T22:00:00",
            23
          ],
          [
            "2026-03-10T23:00:00",
            17
          ],
          [
            "2026-03-11T00:00:00",
            11
          ],
          [
            "2026-03-11T01:00:00",
            9
          ],
          [
            "2026-03-11T02:00:00",
            4
          ],
          [
            "2026-03-11T03:00:00",
            3
          ],
          [
            "2026-03-11T04:00:00",
            6
          ],
          [
            "2026-03-11T05:00:00",
            11
          ],
          [
            "2026-03-11T06:00:00",
            22
          ],
          [
            "2026-03-11T07:00:00",
            29
          ],
          [
            "2026-03-11T08:00:00",
            33
          ],
          [
            "2026-03-11T09:00:00",
            38
          ],
          [
            "2026-03-11T10:00:00",
            38
          ],
          [
            "2026-03-11T11:00:00",
            37
          ],
          [
            "2026-03-11T12:00:00",
            32
          ],
          [
            "2026-03-11T13:00:00",
            26
          ],
          [
            "2026-03-11T14:00:00",
            24
          ],
          [
            "2026-03-11T15:00:00",
            21
          ],
          [
            "2026-03-11T16:00:00",
            21
          ],
          [
            "2026-03-11T17:00:00",
            20
          ],
          [
            "2026-03-11T18:00:00",
            24
          ],
          [
            "2026-03-11T19:00:00",
            27
          ],
          [
            "2026-03-11T20:00:00",
            28
          ],
          [
            "2026-03-11T21:00:00",
            27
          ],
          [
            "2026-03-11T22:00:00",
            23
          ],
          [
            "2026-03-11T23:00:00",
            18
          ],
          [
            "2026-03-12T00:00:00",
            11
          ],
          [
            "2026-03-12T01:00:00",
            8
          ],
          [
            "2026-03-12T02:00:00",
            3
          ],
          [
            "2026-03-12T03:00:00",
            4
          ],
          [
            "2026-03-12T04:00:00",
            7
          ],
          [
            "2026-03-12T05:00:00",
            13
          ],
          [
            "2026-03-12T06:00:00",
            19
          ],
          [
            "2026-03-12T07:00:00",
            29
          ],
          [
            "2026-03-12T08:00:00",
            34
          ],
          [
            "2026-03-12T09:00:00",
            41
          ],
          [
            "2026-03-12T10:00:00",
            38
          ],
          [
            "2026-03-12T11:00:00",
            37
          ],
          [
            "2026-03-12T12:00:00",
            31
          ],
          [
            "2026-03-12T13:00:00",
            29
          ],
          [
            "2026-03-12T14:00:00",
            26
          ],
          [
            "2026-03-12T15:00:00",
            21
          ],
          [
            "2026-03-12T16:00:00",
            19
          ],
          [
            "2026-03-12T17:00:00",
            21
          ],
          [
            "2026-03-12T18:00:00",
            22
          ],
          [
            "2026-03-12T19:00:00",
            25
          ],
          [
            "2026-03-12T20:00:00",
            26
          ],
          [
            "2026-03-12T21:00:00",
            25
          ],
          [
            "2026-03-12T22:00:00",
            21
          ],
          [
            "2026-03-12T23:00:00",
            17
          ],
          [
            "2026-03-13T00:00:00",
            15
          ],
          [
            "2026-03-13T01:00:00",
            6
          ],
          [
            "2026-03-13T02:00:00",
            4
          ],
          [
            "2026-03-13T03:00:00",
            6
          ],
          [
            "2026-03-13T04:00:00",
            7
          ],
          [
            "2026-03-13T05:00:00",
            13
          ],
          [
            "2026-03-13T06:00:00",
            21
          ],
          [
            "2026-03-13T07:00:00",
            27
          ],
          [
            "2026-03-13T08:00:00",
            33
          ],
          [
            "2026-03-13T09:00:00",
            38
          ],
          [
            "2026-03-13T10:00:00",
            38
          ],
          [
            "2026-03-13T11:00:00",
            36
          ],
          [
            "2026-03-13T12:00:00",
            33
          ],
          [
            "2026-03-13T13:00:00",
            25
          ],
          [
            "2026-03-13T14:00:00",
            23
          ],
          [
            "2026-03-13T15:00:00",
            21
          ],
          [
            "2026-03-13T16:00:00",
            20
          ],
          [
            "2026-03-13T17:00:00",
            23
          ],
          [
            "2026-03-13T18:00:00",
            23
          ],
          [
            "2026-03-13T19:00:00",
            26
          ],
          [
            "2026-03-13T20:00:00",
            28
          ],
          [
            "2026-03-13T21:00:00",
            25
          ],
          [
            "2026-03-13T22:00:00",
            21
          ],
          [
            "2026-03-13T23:00:00",
            17
          ],
          [
            "2026-03-14T00:00:00",
            12
          ],
          [
            "2026-03-14T01:00:00",
            7
          ],
          [
            "2026-03-14T02:00:00",
            4
          ],
          [
            "2026-03-14T03:00:00",
            4
          ],
          [
            "2026-03-14T04:00:00",
            7
          ],
          [
            "2026-03-14T05:00:00",
            11
          ],
          [
            "2026-03-14T06:00:00",
            21
          ],
          [
            "2026-03-14T07:00:00",
            29
          ],
          [
            "2026-03-14T08:00:00",
            33
          ],
          [
            "2026-03-14T09:00:00",
            38
          ],
          [
            "2026-03-14T10:00:00",
            39
          ],
          [
            "2026-03-14T11:00:00",
            37
          ],
          [
            "2026-03-14T12:00:00",
            31
          ],
          [
            "2026-03-14T13:00:00",
            26
          ],
          [
            "2026-03-14T14:00:00",
            24
          ],
          [
            "2026-03-14T15:00:00",
            20
          ],
          [
            "2026-03-14T16:00:00",
            20
          ],
          [
            "2026-03-14T17:00:00",
            22
          ],
          [
            "2026-03-14T18:00:00",
            24
          ],
          [
            "2026-03-14T19:00:00",
            26
          ],
          [
            "2026-03-14T20:00:00",
            26
          ],
          [
            "2026-03-14T21:00:00",
            27
          ],
          [
            "2026-03-14T22:00:00",
            23
          ],
          [
            "2026-03-14T23:00:00",
            18
          ],
          [
            "2026-03-15T00:00:00",
            13
          ],
          [
            "2026-03-15T01:00:00",
            10
          ],
          [
            "2026-03-15T02:00:00",
            4
          ],
          [
            "2026-03-15T03:00:00",
            3
          ],
          [
            "2026-03-15T04:00:00",
            7
          ],
          [
            "2026-03-15T05:00:00",
            14
          ],
          [
            "2026-03-15T06:00:00",
            20
          ],
          [
            "2026-03-15T07:00:00",
            29
          ],
          [
            "2026-03-15T08:00:00",
            34
          ],
          [
            "2026-03-15T09:00:00",
            39
          ],
          [
            "2026-03-15T10:00:00",
            38
          ],
          [
            "2026-03-15T11:00:00",
            37
          ],
          [
            "2026-03-15T12:00:00",
            32
          ],
          [
            "2026-03-15T13:00:00",
            26
          ],
          [
            "2026-03-15T14:00:00",
            23
          ],
          [
            "2026-03-15T15:00:00",
            21
          ]
        ]
      },
      "Product B": {
        "columns": [
          "timestamp",
          "units_sold"
        ],
        "rows": [
          [
            "2026-03-08T15:00:00",
            44
          ],
          [
            "2026-03-08T16:00:00",
            41
          ],
          [
            "2026-03-08T17:00:00",
            47
          ],
          [
            "2026-03-08T18:00:00",
            37
          ],
          [
            "2026-03-08T19:00:00",
            39
          ],
          [
            "2026-03-08T20:00:00",
            32
          ],
          [
            "2026-03-08T21:00:00",
            22
          ],
          [
            "2026-03-08T22:00:00",
            20
          ],
          [
            "2026-03-08T23:00:00",
            17
          ],
          [
            "2026-03-09T00:00:00",
            11
          ],
          [
            "2026-03-09T01:00:00",
            14
          ],
          [
            "2026-03-09T02:00:00",
            7
          ],
          [
            "2026-03-09T03:00:00",
            3
          ],
          [
            "2026-03-09T04:00:00",
            6
          ],
          [
            "2026-03-09T05:00:00",
            7
          ],
          [
            "2026-03-09T06:00:00",
            11
          ],
          [
            "2026-03-09T07:00:00",
            17
          ],
          [
            "2026-03-09T08:00:00",
            18
          ],
          [
            "2026-03-09T09:00:00",
            21
          ],
          [
            "2026-03-09T10:00:00",
            30
          ],
          [
            "2026-03-09T11:00:00",
            35
          ],
          [
            "2026-03-09T12:00:00",
            38
          ],
          [
            "2026-03-09T13:00:00",
            41
          ],
          [
            "2026-03-09T14:00:00",
            46
          ],
          [
            "2026-03-09T15:00:00",
            47
          ],
          [
            "2026-03-09T16:00:00",
            43
          ],
          [
            "2026-03-09T17:00:00",
            41
          ],
          [
            "2026-03-09T18:00:00",
            39
          ],
          [
            "2026-03-09T19:00:00",
            33
          ],
          [
            "2026-03-09T20:00:00",
            33
          ],
          [
            "2026-03-09T21:00:00",
            26
          ],
          [
            "2026-03-09T22:00:00",
            20
          ],
          [
            "2026-03-09T23:00:00",
            17
          ],
          [
            "2026-03-10T00:00:00",
            7
          ],
          [
            "2026-03-10T01:00:00",
            9
          ],
          [
            "2026-03-10T02:00:00",
            11
          ],
          [
            "2026-03-10T03:00:00",
            7
          ],
          [
            "2026-03-10T04:00:00",
            4
          ],
          [
            "2026-03-10T05:00:00",
            9
          ],
          [
            "2026-03-10T06:00:00",
            11
          ],
          [
            "2026-03-10T07:00:00",
            15
          ],
          [
            "2026-03-10T08:00:00",
            18
          ],
          [
            "2026-03-10T09:00:00",
            24
          ],
          [
            "2026-03-10T10:00:00",
            29
          ],
          [
            "2026-03-10T11:00:00",
            39
          ],
          [
            "2026-03-10T12:00:00",
            42
          ],
          [
            "2026-03-10T13:00:00",
            42
          ],
          [
            "2026-03-10T14:00:00",
            46
          ],
          [
            "2026-03-10T15:00:00",
            42
          ],
          [
            "2026-03-10T16:00:00",
            45
          ],
          [
            "2026-03-10T17:00:00",
            46
          ],
          [
            "2026-03-10T18:00:00",
            39
          ],
          [
            "2026-03-10T19:00:00",
            37
          ],
          [
            "2026-03-10T20:00:00",
            32
          ],
          [
            "2026-03-10T21:00:00",
            27
          ],
          [
            "2026-03-10T22:00:00",
            21
          ],
          [
            "2026-03-10T23:00:00",
            15
          ],
          [
            "2026-03-11T00:00:00",
            12
          ],
          [
            "2026-03-11T01:00:00",
            9
          ],
          [
            "2026-03-11T02:00:00",
            6
          ],
          [
            "2026-03-11T03:00:00",
            7
          ],
          [
            "2026-03-11T04:00:00",
            6
          ],
          [
            "2026-03-11T05:00:00",
            9
          ],
          [
            "2026-03-11T06:00:00",
            12
          ],
          [
            "2026-03-11T07:00:00",
            16
          ],
          [
            "2026-03-11T08:00:00",
            22
          ],
          [
            "2026-03-11T09:00:00",
            26
          ],
          [
            "2026-03-11T10:00:00",
            30
          ],
          [
            "2026-03-11T11:00:00",
            33
          ],
          [
            "2026-03-11T12:00:00",
            34
          ],
          [
            "2026-03-11T13:00:00",
            40
          ],
          [
            "2026-03-11T14:00:00",
            42
          ],
          [
            "2026-03-11T15:00:00",
            44
          ],
          [
            "2026-03-11T16:00:00",
            48
          ],
          [
            "2026-03-11T17:00:00",
            42
          ],
          [
            "2026-03-11T18:00:00",
            39
          ],
          [
            "2026-03-11T19:00:00",
            36
          ],
          [
            "2026-03-11T20:00:00",
            28
          ],
          [
            "2026-03-11T21:00:00",
            27
          ],
          [
            "2026-03-11T22:00:00",
            19
          ],
          [
            "2026-03-11T23:00:00",
            16
          ],
          [
            "2026-03-12T00:00:00",
            8
          ],
          [
            "2026-03-12T01:00:00",
            10
          ],
          [
            "2026-03-12T02:00:00",
            5
          ],
          [
            "2026-03-12T03:00:00",
            3
          ],
          [
            "2026-03-12T04:00:00",
            7
          ],
          [
            "2026-03-12T05:00:00",
            9
          ],
          [
            "2026-03-12T06:00:00",
            9
          ],
          [
            "2026-03-12T07:00:00",
            13
          ],
          [
            "2026-03-12T08:00:00",
            17
          ],
          [
            "2026-03-12T09:00:00",
            24
          ],
          [
            "2026-03-12T10:00:00",
            31
          ],
          [
            "2026-03-12T11:00:00",
            38
          ],
          [
            "2026-03-12T12:00:00",
            36
          ],
          [
            "2026-03-12T13:00:00",
            42
          ],
          [
            "2026-03-12T14:00:00",
            44
          ],
          [
            "2026-03-12T15:00:00",
            46
          ],
          [
            "2026-03-12T16:00:00",
            43
          ],
          [
            "2026-03-12T17:00:00",
            48
          ],
          [
            "2026-03-12T18:00:00",
            39
          ],
          [
            "2026-03-12T19:00:00",
            35
          ],
          [
            "2026-03-12T20:00:00",
            31
          ],
          [
            "2026-03-12T21:00:00",
            24
          ],
          [
            "2026-03-12T22:00:00",
            16
          ],
          [
            "2026-03-12T23:00:00",
            15
          ],
          [
            "2026-03-13T00:00:00",
            15
          ],
          [
            "2026-03-13T01:00:00",
            11
          ],
          [
            "2026-03-13T02:00:00",
            8
          ],
          [
            "2026-03-13T03:00:00",
            7
          ],
          [
            "2026-03-13T04:00:00",
            6
          ],
          [
            "2026-03-13T05:00:00",
            9
          ],
          [
            "2026-03-13T06:00:00",
            9
          ],
          [
            "2026-03-13T07:00:00",
            16
          ],
          [
            "2026-03-13T08:00:00",
            17
          ],
          [
            "2026-03-13T09:00:00",
            27
          ],
          [
            "2026-03-13T10:00:00",
            30
          ],
          [
            "2026-03-13T11:00:00",
            34
          ],
          [
            "2026-03-13T12:00:00",
            40
          ],
          [
            "2026-03-13T13:00:00",
            44
          ],
          [
            "2026-03-13T14:00:00",
            42
          ],
          [
            "2026-03-13T15:00:00",
            48
          ],
          [
            "2026-03-13T16:00:00",
            44
          ],
          [
            "2026-03-13T17:00:00",
            43
          ],
          [
            "2026-03-13T18:00:00",
            39
          ],
          [
            "2026-03-13T19:00:00",
            32
          ],
          [
            "2026-03-13T20:00:00",
            30
          ],
          [
            "2026-03-13T21:00:00",
            23
          ],
          [
            "2026-03-13T22:00:00",
            20
          ],
          [
            "2026-03-13T23:00:00",
            15
          ],
          [
            "2026-03-14T00:00:00",
            9
          ],
          [
            "2026-03-14T01:00:00",
            8
          ],
          [
            "2026-03-14T02:00:00",
            5
          ],
          [
            "2026-03-14T03:00:00",
            7
          ],
          [
            "2026-03-14T04:00:00",
            8
          ],
          [
            "2026-03-14T05:00:00",
            7
          ],
          [
            "2026-03-14T06:00:00",
            13
          ],
          [
            "2026-03-14T07:00:00",
            19
          ],
          [
            "2026-03-14T08:00:00",
            19
          ],
          [
            "2026-03-14T09:00:00",
            25
          ],
          [
            "2026-03-14T10:00:00",
            31
          ],
          [
            "2026-03-14T11:00:00",
            35
          ],
          [
            "2026-03-14T12:00:00",
            40
          ],
          [
            "2026-03-14T13:00:00",
            43
          ],
          [
            "2026-03-14T14:00:00",
            45
          ],
          [
            "2026-03-14T15:00:00",
            44
          ],
          [
            "2026-03-14T16:00:00",
            44
          ],
          [
            "2026-03-14T17:00:00",
            44
          ],
          [
            "2026-03-14T18:00:00",
            42
          ],
          [
            "2026-03-14T19:00:00",
            32
          ],
          [
            "2026-03-14T20:00:00",
            31
          ],
          [
            "2026-03-14T21:00:00",
            26
          ],
          [
            "2026-03-14T22:00:00",
            20
          ],
          [
            "2026-03-14T23:00:00",
            13
          ],
          [
            "2026-03-15T00:00:00",
            10
          ],
          [
            "2026-03-15T01:00:00",
            10
          ],
          [
            "2026-03-15T02:00:00",
            7
          ],
          [
            "2026-03-15T03:00:00",
            8
          ],
          [
            "2026-03-15T04:00:00",
            12
          ],
          [
            "2026-03-15T05:00:00",
            10
          ],
          [
            "2026-03-15T06:00:00",
            13
          ],
          [
            "2026-03-15T07:00:00",
            14
          ],
          [
            "2026-03-15T08:00:00",
            18
          ],
          [
            "2026-03-15T09:00:00",
            24
          ],
          [
            "2026-03-15T10:00:00",
            32
          ],
          [
            "2026-03-15T11:00:00",
            34
          ],
          [
            "2026-03-15T12:00:00",
            39
          ],
          [
            "2026-03-15T13:00:00",
            39
          ],
          [
            "2026-03-15T14:00:00",
            41
          ],
          [
            "2026-03-15T15:00:00",
            47
          ]
        ]
      },
      "Product C": {
        "columns": [
          "timestamp",
          "units_sold"
        ],
        "rows": [
          [
            "2026-03-08T15:00:00",
            67
          ],
          [
            "2026-03-08T16:00:00",
            65
          ],
          [
            "2026-03-08T17:00:00",
            66
          ],
          [
            "2026-03-08T18:00:00",
            64
          ],
          [
            "2026-03-08T19:00:00",
            51
          ],
          [
            "2026-03-08T20:00:00",
            51
          ],
          [
            "2026-03-08T21:00:00",
            42
          ],
          [
            "2026-03-08T22:00:00",
            30
          ],
          [
            "2026-03-08T23:00:00",
            18
          ],
          [
            "2026-03-09T00:00:00",
            11
          ],
          [
            "2026-03-09T01:00:00",
            16
          ],
          [
            "2026-03-09T02:00:00",
            9
          ],
          [
            "2026-03-09T03:00:00",
            1
          ],
          [
            "2026-03-09T04:00:00",
            13
          ],
          [
            "2026-03-09T05:00:00",
            4
          ],
          [
            "2026-03-09T06:00:00",
            19
          ],
          [
            "2026-03-09T07:00:00",
            24
          ],
          [
            "2026-03-09T08:00:00",
            33
          ],
          [
            "2026-03-09T09:00:00",
            35
          ],
          [
            "2026-03-09T10:00:00",
            39
          ],
          [
            "2026-03-09T11:00:00",
            52
          ],
          [
            "2026-03-09T12:00:00",
            59
          ],
          [
            "2026-03-09T13:00:00",
            65
          ],
          [
            "2026-03-09T14:00:00",
            70
          ],
          [
            "2026-03-09T15:00:00",
            67
          ],
          [
            "2026-03-09T16:00:00",
            67
          ],
          [
            "2026-03-09T17:00:00",
            63
          ],
          [
            "2026-03-09T18:00:00",
            58
          ],
          [
            "2026-03-09T19:00:00",
            53
          ],
          [
            "2026-03-09T20:00:00",
            45
          ],
          [
            "2026-03-09T21:00:00",
            37
          ],
          [
            "2026-03-09T22:00:00",
            28
          ],
          [
            "2026-03-09T23:00:00",
            24
          ],
          [
            "2026-03-10T00:00:00",
            18
          ],
          [
            "2026-03-10T01:00:00",
            8
          ],
          [
            "2026-03-10T02:00:00",
            11
          ],
          [
            "2026-03-10T03:00:00",
            2
          ],
          [
            "2026-03-10T04:00:00",
            14
          ],
          [
            "2026-03-10T05:00:00",
            13
          ],
          [
            "2026-03-10T06:00:00",
            13
          ],
          [
            "2026-03-10T07:00:00",
            23
          ],
          [
            "2026-03-10T08:00:00",
            30
          ],
          [
            "2026-03-10T09:00:00",
            39
          ],
          [
            "2026-03-10T10:00:00",
            44
          ],
          [
            "2026-03-10T11:00:00",
            50
          ],
          [
            "2026-03-10T12:00:00",
            58
          ],
          [
            "2026-03-10T13:00:00",
            62
          ],
          [
            "2026-03-10T14:00:00",
            65
          ],
          [
            "2026-03-10T15:00:00",
            73
          ],
          [
            "2026-03-10T16:00:00",
            64
          ],
          [
            "2026-03-10T17:00:00",
            63
          ],
          [
            "2026-03-10T18:00:00",
            67
          ],
          [
            "2026-03-10T19:00:00",
            53
          ],
          [
            "2026-03-10T20:00:00",
            44
          ],
          [
            "2026-03-10T21:00:00",
            38
          ],
          [
            "2026-03-10T22:00:00",
            32
          ],
          [
            "2026-03-10T23:00:00",
            20
          ],
          [
            "2026-03-11T00:00:00",
            17
          ],
          [
            "2026-03-11T01:00:00",
            12
          ],
          [
            "2026-03-11T02:00:00",
            9
          ],
          [
            "2026-03-11T03:00:00",
            3
          ],
          [
            "2026-03-11T04:00:00",
            16
          ],
          [
            "2026-03-11T05:00:00",
            13
          ],
          [
            "2026-03-11T06:00:00",
            16
          ],
          [
            "2026-03-11T07:00:00",
            29
          ],
          [
            "2026-03-11T08:00:00",
            28
          ],
          [
            "2026-03-11T09:00:00",
            38
          ],
          [
            "2026-03-11T10:00:00",
            47
          ],
          [
            "2026-03-11T11:00:00",
            46
          ],
          [
            "2026-03-11T12:00:00",
            59
          ],
          [
            "2026-03-11T13:00:00",
            63
          ],
          [
            "2026-03-11T14:00:00",
            66
          ],
          [
            "2026-03-11T15:00:00",
            68
          ],
          [
            "2026-03-11T16:00:00",
            69
          ],
          [
            "2026-03-11T17:00:00",
            62
          ],
          [
            "2026-03-11T18:00:00",
            55
          ],
          [
            "2026-03-11T19:00:00",
            47
          ],
          [
            "2026-03-11T20:00:00",
            47
          ],
          [
            "2026-03-11T21:00:00",
            37
          ],
          [
            "2026-03-11T22:00:00",
            28
          ],
          [
            "2026-03-11T23:00:00",
            23
          ],
          [
            "2026-03-12T00:00:00",
            20
          ],
          [
            "2026-03-12T01:00:00",
            12
          ],
          [
            "2026-03-12T02:00:00",
            8
          ],
          [
            "2026-03-12T03:00:00",
            6
          ],
          [
            "2026-03-12T04:00:00",
            7
          ],
          [
            "2026-03-12T05:00:00",
            13
          ],
          [
            "2026-03-12T06:00:00",
            18
          ],
          [
            "2026-03-12T07:00:00",
            18
          ],
          [
            "2026-03-12T08:00:00",
            26
          ],
          [
            "2026-03-12T09:00:00",
            40
          ],
          [
            "2026-03-12T10:00:00",
            44
          ],
          [
            "2026-03-12T11:00:00",
            52
          ],
          [
            "2026-03-12T12:00:00",
            60
          ],
          [
            "2026-03-12T13:00:00",
            64
          ],
          [
            "2026-03-12T14:00:00",
            65
          ],
          [
            "2026-03-12T15:00:00",
            67
          ],
          [
            "2026-03-12T16:00:00",
            64
          ],
          [
            "2026-03-12T17:00:00",
            68
          ],
          [
            "2026-03-12T18:00:00",
            57
          ],
          [
            "2026-03-12T19:00:00",
            55
          ],
          [
            "2026-03-12T20:00:00",
            50
          ],
          [
            "2026-03-12T21:00:00",
            36
          ],
          [
            "2026-03-12T22:00:00",
            28
          ],
          [
            "2026-03-12T23:00:00",
            21
          ],
          [
            "2026-03-13T00:00:00",
            16
          ],
          [
            "2026-03-13T01:00:00",
            16
          ],
          [
            "2026-03-13T02:00:00",
            13
          ],
          [
            "2026-03-13T03:00:00",
            6
          ],
          [
            "2026-03-13T04:00:00",
            9
          ],
          [
            "2026-03-13T05:00:00",
            14
          ],
          [
            "2026-03-13T06:00:00",
            18
          ],
          [
            "2026-03-13T07:00:00",
            22
          ],
          [
            "2026-03-13T08:00:00",
            26
          ],
          [
            "2026-03-13T09:00:00",
            36
          ],
          [
            "2026-03-13T10:00:00",
            48
          ],
          [
            "2026-03-13T11:00:00",
            53
          ],
          [
            "2026-03-13T12:00:00",
            59
          ],
          [
            "2026-03-13T13:00:00",
            64
          ],
          [
            "2026-03-13T14:00:00",
            70
          ],
          [
            "2026-03-13T15:00:00",
            70
          ],
          [
            "2026-03-13T16:00:00",
            72
          ],
          [
            "2026-03-13T17:00:00",
            62
          ],
          [
            "2026-03-13T18:00:00",
            61
          ],
          [
            "2026-03-13T19:00:00",
            52
          ],
          [
            "2026-03-13T20:00:00",
            41
          ],
          [
            "2026-03-13T21:00:00",
            35
          ],
          [
            "2026-03-13T22:00:00",
            29
          ],
          [
            "2026-03-13T23:00:00",
            22
          ],
          [
            "2026-03-14T00:00:00",
            19
          ],
          [
            "2026-03-14T01:00:00",
            7
          ],
          [
            "2026-03-14T02:00:00",
            9
          ],
          [
            "2026-03-14T03:00:00",
            8
          ],
          [
            "2026-03-14T04:00:00",
            5
          ],
          [
            "2026-03-14T05:00:00",
            19
          ],
          [
            "2026-03-14T06:00:00",
            16
          ],
          [
            "2026-03-14T07:00:00",
            20
          ],
          [
            "2026-03-14T08:00:00",
            25
          ],
          [
            "2026-03-14T09:00:00",
            36
          ],
          [
            "2026-03-14T10:00:00",
            48
          ],
          [
            "2026-03-14T11:00:00",
            55
          ],
          [
            "2026-03-14T12:00:00",
            57
          ],
          [
            "2026-03-14T13:00:00",
            58
          ],
          [
            "2026-03-14T14:00:00",
            68
          ],
          [
            "2026-03-14T15:00:00",
            70
          ],
          [
            "2026-03-14T16:00:00",
            65
          ],
          [
            "2026-03-14T17:00:00",
            61
          ],
          [
            "2026-03-14T18:00:00",
            55
          ],
          [
            "2026-03-14T19:00:00",
            52
          ],
          [
            "2026-03-14T20:00:00",
            41
          ],
          [
            "2026-03-14T21:00:00",
            34
          ],
          [
            "2026-03-14T22:00:00",
            30
          ],
          [
            "2026-03-14T23:00:00",
            24
          ],
          [
            "2026-03-15T00:00:00",
            21
          ],
          [
            "2026-03-15T01:00:00",
            15
          ],
          [
            "2026-03-15T02:00:00",
            5
          ],
          [
            "2026-03-15T03:00:00",
            9
          ],
          [
            "2026-03-15T04:00:00",
            9
          ],
          [
            "2026-03-15T05:00:00",
            14
          ],
          [
            "2026-03-15T06:00:00",
            19
          ],
          [
            "2026-03-15T07:00:00",
            28
          ],
          [
            "2026-03-15T08:00:00",
            31
          ],
          [
            "2026-03-15T09:00:00",
            41
          ],
          [
            "2026-03-15T10:00:00",
            50
          ],
          [
            "2026-03-15T11:00:00",
            51
          ],
          [
            "2026-03-15T12:00:00",
            64
          ],
          [
            "2026-03-15T13:00:00",
            67
          ],
          [
            "2026-03-15T14:00:00",
            69
          ],
          [
            "2026-03-15T15:00:00",
            68
          ]
        ]
      }
    },
    "forecasts": {
      "Product A": {
        "timestamp": [
          "2026-03-15T16:00:00",
          "2026-03-15T17:00:00",
          "2026-03-15T18:00:00",
          "2026-03-15T19:00:00",
          "2026-03-15T20:00:00",
          "2026-03-15T21:00:00",
          "2026-03-15T22:00:00",
          "2026-03-15T23:00:00",
          "2026-03-16T00:00:00",
          "2026-03-16T01:00:00",
          "2026-03-16T02:00:00",
          "2026-03-16T03:00:00",
          "2026-03-16T04:00:00",
          "2026-03-16T05:00:00",
          "2026-03-16T06:00:00",
          "2026-03-16T07:00:00",
          "2026-03-16T08:00:00",
          "2026-03-16T09:00:00",
          "2026-03-16T10:00:00",
          "2026-03-16T11:00:00",
          "2026-03-16T12:00:00",
          "2026-03-16T13:00:00",
          "2026-03-16T14:00:00",
          "2026-03-16T15:00:00",
          "2026-03-16T16:00:00",
          "2026-03-16T17:00:00",
          "2026-03-16T18:00:00",
          "2026-03-16T19:00:00",
          "2026-03-16T20:00:00",
          "2026-03-16T21:00:00",
          "2026-03-16T22:00:00",
          "2026-03-16T23:00:00",
          "2026-03-17T00:00:00",
          "2026-03-17T01:00:00",
          "2026-03-17T02:00:00",
          "2026-03-17T03:00:00",
          "2026-03-17T04:00:00",
          "2026-03-17T05:00:00",
          "2026-03-17T06:00:00",
          "2026-03-17T07:00:00",
          "2026-03-17T08:00:00",
          "2026-03-17T09:00:00",
          "2026-03-17T10:00:00",
          "2026-03-17T11:00:00",
          "2026-03-17T12:00:00",
          "2026-03-17T13:00:00",
          "2026-03-17T14:00:00",
          "2026-03-17T15:00:00"
        ],
        "mean": [
          20.504526138305664,
          21.805526733398438,
          23.69278907775879,
          25.529420852661133,
          26.827110290527344,
          26.324140548706055,
          22.897764205932617,
          17.852794647216797,
          12.321682929992676,
          7.192910194396973,
          3.9130783081054688,
          3.9800643920898438,
          7.332183837890625,
          12.986684799194336,
          20.668590545654297,
          27.952547073364258,
          33.47609329223633,
          38.25192642211914,
          38.400447845458984,
          36.45668029785156,
          31.858444213867188,
          26.570825576782227,
          23.2839412689209,
          20.51091957092285,
          20.30457305908203,
          21.678436279296875,
          23.642099380493164,
          25.584678649902344,
          26.985809326171875,
          26.484193801879883,
          23.02522850036621,
          18.039037704467773,
          12.611462593078613,
          7.602766990661621,
          4.303823471069336,
          4.018426895141602,
          7.423919677734375,
          13.13841438293457,
          20.692811965942383,
          28.037954330444336,
          33.97454071044922,
          38.231040954589844,
          38.78217697143555,
          36.92472457885742,
          32.19001388549805,
          26.802392959594727,
          23.54244041442871,
          20.698514938354492
        ],
        "0.1": [
          19.15822410583496,
          20.50179100036621,
          22.401607513427734,
          24.21921157836914,
          25.45020294189453,
          24.837438583374023,
          21.506221771240234,
          16.50567626953125,
          10.83835220336914,
          5.582372665405273,
          2.285032272338867,
          2.251415252685547,
          5.641073226928711,
          11.404353141784668,
          18.795143127441406,
          25.81307601928711,
          31.14609718322754,
          35.49599838256836,
          35.904144287109375,
          34.05424499511719,
          29.796527862548828,
          24.967273712158203,
          21.782663345336914,
          19.394075393676758,
          19.236570358276367,
          20.604127883911133,
          22.458040237426758,
          24.36791229248047,
          25.4338436126709,
          24.74117088317871,
          21.389162063598633,
          16.495697021484375,
          10.960190773010254,
          5.869045257568359,
          2.5734004974365234,
          2.361164093017578,
          5.705011367797852,
          11.369453430175781,
          18.547435760498047,
          25.60714340209961,
          31.265169143676758,
          35.313446044921875,
          36.011741638183594,
          34.2758674621582,
          29.958742141723633,
          25.103273391723633,
          21.822275161743164,
          19.32248306274414
        ],
        "0.9": [
          21.669395446777344,
          23.053070068359375,
          24.99215316772461,
          26.91657066345215,
          28.313753128051758,
          27.791156768798828,
          24.152969360351562,
          19.0040283203125,
          13.467171669006348,
          8.364714622497559,
          4.990467071533203,
          5.050144195556641,
          8.647828102111816,
          14.336263656616211,
          22.190526962280273,
          29.632858276367188,
          35.39604949951172,
          40.310279846191406,
          40.52391815185547,
          38.57139587402344,
          33.898765563964844,
          28.34296226501465,
          25.04033088684082,
          22.027423858642578,
          21.667360305786133,
          22.99347686767578,
          24.871681213378906,
          26.878807067871094,
          28.497577667236328,
          28.168556213378906,
          24.56938934326172,
          19.346378326416016,
          14.037256240844727,
          8.928860664367676,
          5.4414215087890625,
          5.182031631469727,
          8.82529354095459,
          14.672514915466309,
          22.400375366210938,
          29.78118896484375,
          35.815494537353516,
          40.36121368408203,
          40.88827133178711,
          39.124969482421875,
          34.39842224121094,
          28.938234329223633,
          25.735769271850586,
          22.512235641479492
        ]
      },
      "Product B": {
        "timestamp": [
          "2026-03-15T16:00:00",
          "2026-03-15T17:00:00",
          "2026-03-15T18:00:00",
          "2026-03-15T19:00:00",
          "2026-03-15T20:00:00",
          "2026-03-15T21:00:00",
          "2026-03-15T22:00:00",
          "2026-03-15T23:00:00",
          "2026-03-16T00:00:00",
          "2026-03-16T01:00:00",
          "2026-03-16T02:00:00",
          "2026-03-16T03:00:00",
          "2026-03-16T04:00:00",
          "2026-03-16T05:00:00",
          "2026-03-16T06:00:00",
          "2026-03-16T07:00:00",
          "2026-03-16T08:00:00",
          "2026-03-16T09:00:00",
          "2026-03-16T10:00:00",
          "2026-03-16T11:00:00",
          "2026-03-16T12:00:00",
          "2026-03-16T13:00:00",
          "2026-03-16T14:00:00",
          "2026-03-16T15:00:00",
          "2026-03-16T16:00:00",
          "2026-03-16T17:00:00",
          "2026-03-16T18:00:00",
          "2026-03-16T19:00:00",
          "2026-03-16T20:00:00",
          "2026-03-16T21:00:00",
          "2026-03-16T22:00:00",
          "2026-03-16T23:00:00",
          "2026-03-17T00:00:00",
          "2026-03-17T01:00:00",
          "2026-03-17T02:00:00",
          "2026-03-17T03:00:00",
          "2026-03-17T04:00:00",
          "2026-03-17T05:00:00",
          "2026-03-17T06:00:00",
          "2026-03-17T07:00:00",
          "2026-03-17T08:00:00",
          "2026-03-17T09:00:00",
          "2026-03-17T10:00:00",
          "2026-03-17T11:00:00",
          "2026-03-17T12:00:00",
          "2026-03-17T13:00:00",
          "2026-03-17T14:00:00",
          "2026-03-17T15:00:00"
        ],
        "mean": [
          45.744361877441406,
          44.47789764404297,
          39.96786880493164,
          34.93931579589844,
          30.40752410888672,
          25.078933715820312,
          19.764469146728516,
          15.15910816192627,
          11.105031967163086,
          9.184202194213867,
          7.405527114868164,
          6.835023880004883,
          7.098142623901367,
          8.534454345703125,
          11.933398246765137,
          16.158313751220703,
          19.992860794067383,
          25.135028839111328,
          30.816650390625,
          35.86872863769531,
          39.165767669677734,
          42.46210479736328,
          44.626007080078125,
          45.996063232421875,
          45.7534065246582,
          44.59668731689453,
          40.11052703857422,
          35.24456787109375,
          31.033628463745117,
          25.713680267333984,
          20.289962768554688,
          15.610541343688965,
          11.549332618713379,
          9.544018745422363,
          7.7064056396484375,
          6.958499908447266,
          7.410867691040039,
          9.032258987426758,
          12.31091022491455,
          16.357358932495117,
          20.261585235595703,
          25.50418472290039,
          31.366159439086914,
          36.46283721923828,
          39.60572052001953,
          42.69723129272461,
          44.79161834716797,
          46.19174575805664
        ],
        "0.1": [
          43.202728271484375,
          41.657466888427734,
          37.34388732910156,
          32.49301528930664,
          27.895044326782227,
          22.69713592529297,
          17.48502540588379,
          12.914217948913574,
          8.867912292480469,
          6.805437088012695,
          5.133642196655273,
          4.6055755615234375,
          4.980224609375,
          6.566743850708008,
          9.907864570617676,
          14.042644500732422,
          17.96416664123535,
          23.004030227661133,
          28.466156005859375,
          33.398677825927734,
          36.72842788696289,
          39.793521881103516,
          41.68659973144531,
          42.83111572265625,
          42.48583984375,
          41.06452941894531,
          36.83848571777344,
          32.41840744018555,
          28.241992950439453,
          23.26666259765625,
          18.005842208862305,
          13.322606086730957,
          9.245460510253906,
          7.142238616943359,
          5.440708160400391,
          4.845056533813477,
          5.325952529907227,
          7.058143615722656,
          10.134407043457031,
          14.08029842376709,
          18.03704071044922,
          23.15070152282715,
          28.727794647216797,
          33.606204986572266,
          36.765869140625,
          39.615299224853516,
          41.445343017578125,
          42.517974853515625
        ],
        "0.9": [
          48.60978698730469,
          47.43096923828125,
          42.79112243652344,
          37.6799201965332,
          33.3004150390625,
          27.90454864501953,
          22.537134170532227,
          17.90163230895996,
          13.724783897399902,
          11.975788116455078,
          9.977222442626953,
          9.093873977661133,
          9.463135719299316,
          10.984129905700684,
          14.422269821166992,
          18.565746307373047,
          22.39069175720215,
          27.66008949279785,
          33.55706024169922,
          38.70289611816406,
          42.075965881347656,
          45.412227630615234,
          47.52215576171875,
          48.96488952636719,
          48.8265380859375,
          47.848453521728516,
          43.23004913330078,
          38.305755615234375,
          34.17613983154297,
          28.809988021850586,
          23.35015106201172,
          18.584577560424805,
          14.49343204498291,
          12.689022064208984,
          10.720396995544434,
          9.662089347839355,
          10.225909233093262,
          11.88810920715332,
          15.130329132080078,
          19.02608871459961,
          22.825077056884766,
          28.250431060791016,
          34.244171142578125,
          39.468650817871094,
          42.69873046875,
          45.907142639160156,
          47.94013214111328,
          49.381919860839844
        ]
      },
      "Product C": {
        "timestamp": [
          "2026-03-15T16:00:00",
          "2026-03-15T17:00:00",
          "2026-03-15T18:00:00",
          "2026-03-15T19:00:00",
          "2026-03-15T20:00:00",
          "2026-03-15T21:00:00",
          "2026-03-15T22:00:00",
          "2026-03-15T23:00:00",
          "2026-03-16T00:00:00",
          "2026-03-16T01:00:00",
          "2026-03-16T02:00:00",
          "2026-03-16T03:00:00",
          "2026-03-16T04:00:00",
          "2026-03-16T05:00:00",
          "2026-03-16T06:00:00",
          "2026-03-16T07:00:00",
          "2026-03-16T08:00:00",
          "2026-03-16T09:00:00",
          "2026-03-16T10:00:00",
          "2026-03-16T11:00:00",
          "2026-03-16T12:00:00",
          "2026-03-16T13:00:00",
          "2026-03-16T14:00:00",
          "2026-03-16T15:00:00",
          "2026-03-16T16:00:00",
          "2026-03-16T17:00:00",
          "2026-03-16T18:00:00",
          "2026-03-16T19:00:00",
          "2026-03-16T20:00:00",
          "2026-03-16T21:00:00",
          "2026-03-16T22:00:00",
          "2026-03-16T23:00:00",
          "2026-03-17T00:00:00",
          "2026-03-17T01:00:00",
          "2026-03-17T02:00:00",
          "2026-03-17T03:00:00",
          "2026-03-17T04:00:00",
          "2026-03-17T05:00:00",
          "2026-03-17T06:00:00",
          "2026-03-17T07:00:00",
          "2026-03-17T08:00:00",
          "2026-03-17T09:00:00",
          "2026-03-17T10:00:00",
          "2026-03-17T11:00:00",
          "2026-03-17T12:00:00",
          "2026-03-17T13:00:00",
          "2026-03-17T14:00:00",
          "2026-03-17T15:00:00"
        ],
        "mean": [
          68.25753784179688,
          64.33294677734375,
          58.953407287597656,
          52.182167053222656,
          44.8023567199707,
          36.48902130126953,
          29.293916702270508,
          23.117162704467773,
          18.24557876586914,
          12.591239929199219,
          9.324899673461914,
          7.880804061889648,
          10.169549942016602,
          14.116628646850586,
          18.203784942626953,
          24.026535034179688,
          30.23114776611328,
          38.921058654785156,
          47.02241897583008,
          53.7126350402832,
          60.47807312011719,
          64.84934997558594,
          68.66142272949219,
          70.09188842773438,
          68.77432250976562,
          64.90254974365234,
          59.55329132080078,
          52.759666442871094,
          45.605072021484375,
          37.1990966796875,
          29.969520568847656,
          23.500141143798828,
          18.895471572875977,
          13.273134231567383,
          9.766721725463867,
          7.782873153686523,
          10.10135269165039,
          14.322179794311523,
          18.6790828704834,
          24.71501922607422,
          31.01270866394043,
          39.43730163574219,
          47.36338806152344,
          54.099761962890625,
          61.12646484375,
          65.52592468261719,
          69.14380645751953,
          70.39305114746094
        ],
        "0.1": [
          65.0497055053711,
          61.02140808105469,
          55.667762756347656,
          49.130184173583984,
          41.937583923339844,
          33.930274963378906,
          26.850168228149414,
          20.65131950378418,
          15.420270919799805,
          9.610015869140625,
          6.014139175415039,
          4.563690185546875,
          6.7572479248046875,
          10.61678695678711,
          15.046772003173828,
          20.946298599243164,
          27.35129737854004,
          35.78847122192383,
          43.83382034301758,
          50.54799270629883,
          56.998382568359375,
          61.15869140625,
          64.4871597290039,
          65.62289428710938,
          64.30809020996094,
          60.597747802734375,
          55.28544616699219,
          49.05252456665039,
          42.306427001953125,
          34.51346206665039,
          27.43219757080078,
          21.02750015258789,
          15.994155883789062,
          10.284709930419922,
          6.550397872924805,
          4.792110443115234,
          6.905149459838867,
          10.953042984008789,
          15.455942153930664,
          21.445810317993164,
          27.832324981689453,
          35.966773986816406,
          43.770023345947266,
          50.32490539550781,
          56.82306671142578,
          60.98479080200195,
          64.19062805175781,
          65.11436462402344
        ],
        "0.9": [
          71.67506408691406,
          67.64664459228516,
          62.195289611816406,
          55.31642150878906,
          47.960060119628906,
          39.451725006103516,
          32.17584228515625,
          25.903423309326172,
          21.21776580810547,
          15.803155899047852,
          12.547943115234375,
          10.65243148803711,
          13.38730239868164,
          17.783737182617188,
          21.71316146850586,
          27.42102813720703,
          33.64549255371094,
          42.66716766357422,
          50.950584411621094,
          57.488285064697266,
          64.4905014038086,
          68.61067199707031,
          72.39262390136719,
          73.94755554199219,
          72.77479553222656,
          68.87016296386719,
          63.50397872924805,
          56.57518768310547,
          49.40583038330078,
          40.81800842285156,
          33.40961456298828,
          26.681062698364258,
          22.37085723876953,
          17.016590118408203,
          13.691097259521484,
          11.294649124145508,
          13.996709823608398,
          18.501005172729492,
          22.67669677734375,
          28.56482696533203,
          34.7428092956543,
          43.582984924316406,
          51.486045837402344,
          58.23878479003906,
          65.67634582519531,
          69.92729187011719,
          73.41410827636719,
          74.68563079833984
        ]
      }
    }
  }
}

Result

http://localhost:8004/plot_32abcfb962dc412f8909d2f8283c5067.html

Here's the combined view for all three products!

Here's a summary of the results across all three products:

Product AProduct BProduct C
Historical range~2–41 units/hr~3–48 units/hr~1–73 units/hr
Daily peak timing~9–10 AM~3–5 PM~2–4 PM
Forecast peak (Mar 16–17)~38–41~44–46~68–70
Uncertainty bandVery tightTightModerate

Key cross-product observations:

  • 🕐 Different peak hours: Product A peaks in the morning (~9 AM), while Products B and C peak in the afternoon (~3–5 PM) — suggesting different customer segments or use cases.
  • 📊 Volume hierarchy: Product C sells 2× more than Product B and 1.7× more than Product A at their respective peaks.
  • 🔄 Consistent seasonality: All three products show strong and stable daily cycles, which Chronos has picked up on very confidently.

The assistant consistently followed all instructions and used the correct tools in the right order. One limitation worth noting is that rather than joining the sales and products tables to resolve product names, the assistant memorized the product IDs from the products table and used them directly in subsequent queries. While this approach worked correctly in this case, it is not robust, as the products table may change over time. We also note that the model’s thinking is occasionally too verbose and shows domain slips in the last turn, though neither affected the final output.

You can download the full code from our GitHub repository.

References

[1] Ansari, A.F., Stella, L., Turkmen, C., Zhang, X., Mercado, P., Shen, H., Shchur, O., Rangapuram, S.S., Arango, S.P., Kapoor, S. and Zschiegner, J., (2024). Chronos: Learning the language of time series. arXiv preprint, doi: 10.48550/arXiv.2403.07815.

[2] Ansari, A.F., Turkmen, C., Shchur, O., and Stella, L. (2024). Fast and accurate zero-shot forecasting with Chronos-Bolt and AutoGluon. AWS Blogs - Artificial Intelligence.