Skip to main content

Common Workflows

This guide covers typical usage patterns for Snowtrail data.

Daily Signal Monitoring

Fetch the latest signal values for your subscribed products:

from snowtrail import Snowtrail

client = Snowtrail(api_key="your-api-key")

# Get the latest system stress signal for US natural gas
df = client.gbsi_us.system_stress()
print(df[["signal_date", "stress_regime_label", "confidence_score"]])

Historical Analysis

Retrieve historical data for a date range:

# Get historical system stress data
df = client.gbsi_us.system_stress(date_from="2024-01-01", date_to="2024-12-31")
print(df.head())

Point-in-Time Backtesting

Use as_of for backtest-safe queries that only return data known at a given date:

# See only what was known on June 15, 2024
df = client.gbsi_us.system_stress(
date_from="2024-01-01",
date_to="2024-06-30",
as_of="2024-06-15"
)

Event Monitoring

Track market events across products:

# Get storage surprise events for US natural gas
df_events = client.gbsi_us.storage_surprise(date_from="2024-01-01")
print(df_events.head())

Working with Features

Access curated feature datasets:

# Get balance momentum features
df_features = client.gbsi_us.balance_momentum(date_from="2024-01-01")
print(df_features.head())

Multi-Product Analysis

Combine data from multiple products:

# US gas system stress
df_us = client.gbsi_us.system_stress(date_from="2024-01-01")

# European gas system stress
df_eu = client.gbsi_eu.system_stress(date_from="2024-01-01", country="DE")

# LNG marginality
df_lng = client.glmi.marginality(date_from="2024-01-01", basin="EU")

# Power grid stress
df_power = client.pemi.grid_stress(date_from="2024-01-01", bidding_zone="10YDE-RWENET---I")

Exporting Data

All methods return pandas DataFrames, so export to common formats directly:

df = client.gbsi_us.system_stress(date_from="2024-01-01")

# Export to CSV
df.to_csv("system_stress.csv", index=False)

# Export to Parquet
df.to_parquet("system_stress.parquet")

# Export to JSON
df.to_json("system_stress.json", orient="records")