From API to UI: Cracking the Code on ISO Trading Hub Price Forecasting
This week, Sunairio is officially launching our Trading Hub Price Forecast Ensemble directly in the Sunairio User Interface (first in ERCOT, other ISO regions to follow soon).
For a while now, customers have used our price forecasts via API to quantify market risk. By moving this capability into the UI, we’re making a truly probabilistic, fundamentals-driven view of ISO power prices significantly more accessible — no code required.
To mark the occasion, we want to lift the hood on our methodology and share how we cracked the code on modeling highly non-linear energy prices—even in the notoriously volatile gas basis markets of the Northeast US.
A Quick Refresher: The Grid Stress Index (GSI)
You can't accurately forecast power market prices without understanding the underlying physical reality of the grid. Traditional price models try to track this by building massive, unit-by-unit generation stacks. But in a modern grid dominated by variable renewables and unpredictable weather, that traditional approach breaks down.
Our solution is the Grid Stress Index (GSI)TM. Instead of tracking thousands of individual power plants, we compress the entire grid’s supply-and-demand tension into a single, elegant metric in percentage space:

This is fundamentally a relationship between [the energy that needs to be supplied by dispatchable capacity] to [the amount of dispatchable capacity available to generate].
By mapping GSI to Delivered Spark Spreads (using a standard 6.5 HR to filter out commodity fuel noise), we uncover the true, empirical supply curve of a market, as seen in Figure 1.
Figure 1 plots GSI vs delivered North Hub delivered spark spreads in ERCOT for Dec 2025 - May 2026. What we observe is a learned market supply curve that reflects the enormously skewed behavior of most power markets: relatively controlled increases in price for much of the supply-demand regime, followed by extreme increase after an inflection point (about GSI = 75% in ERCOT).

Figure 1. The relationship between grid stress and power market prices
How the Sunairio Fundamental Price Model Works
Unlocking the relationship between grid stress and spark spreads was only step one.
Translating that relationship into highly accurate, hourly forward prices requires a clever mathematical approach. Here is how the Sunairio Fundamental Price Model operates under the hood.
1. Handling DA and RT Prices as a DA+RT Average
There are significant differences in the way that the DA market is solved compared to the RT market. For example, the RT market is fundamentally physical (physical supply must match physical demand), while the DA market is essentially a financial construct. Moreover, the DA energy market doesn’t even utilize a load forecast – it clears supply offers against demand bids.
Power markets also utilize specific products known as virtuals (virtual supply and virtual demand) that work as a converging force to drive DA and RT prices together. Over the long term, the spread between DA and RT prices is exceptionally low in most power markets, though hourly and daily spreads can be quite wide.
Given the difficulty of fully reconstructing the DA market inputs (you would have to know demand bids and exact virtuals participation), and the existence of virtuals as a converging force, Sunairio doesn’t model the DA and RT markets separately. Instead we model an average of DA and RT prices, which represent the overall economic balance for that day.
2. Temporal Bucketing
Power markets behave differently depending on the clock and the calendar. The grid dynamics of a Tuesday afternoon are vastly different from a Sunday morning – driven by both the hourly/daily cycle of demand and the physical constraints (like ramp rates and minimum run times) of many thermal generators.
For example, units with high startup costs or long minimum run times may self-schedule themselves overnight (essentially offering the plant as a market-price taker with $0 marginal cost rather than an economic resource at actual marginal costs) in order to more effectively compete for the prime daytime peak prices the next day. This means the overnight (7x8) stack is different from the weekday peak (5x16) stack.
To capture these operational nuances, we segment our historical grid data into distinct time buckets:
- 5x16 (Weekday peak)
- 2x16h (Weekend peak and holidays)
- 7x8 (Off-peak/night)
3. Outage Regime Bucketing
The Grid Stress Index is dependent on knowing the amount of dispatchable generation offline. While we can never know with 100% certainty exactly what units will be unavailable in the future, Sunairio has built highly accurate outage forecasts that can predict the aggregate amount of MW offline.
The challenge is that not all generation outages are made the same. Removing 100 MW of baseload power from the generation stack could affect every hour’s price (by forcing the grid operator to dispatch more expensive units to meet baseload demand), while removing 100 MW of a peaker might not affect anything if demand doesn’t rise high enough.
We can clearly observe this dynamic in the plot below, which colors the GSI vs spark spread plot for ERCOT according to the percentage of dispatchable units offline. As Figure 2 shows, the inflection point in the empirical market supply curve is shifted left (occurs at lower levels of apparent GSI) when total nonrenewable outages are greater than 25% of installed nonrenewable capacity.

Figure 2. The effect of nonrenewable (thermal) generation outages on the relationship between GSI and delivered spark spreads
4. Emulating the Stack via Isotonic Regression
Once the data is bucketed, we fit the GSI vs. Spark Spread relationship using Isotonic Regression.
Unlike standard linear regressions that force a smooth line through data points, isotonic regression specifies only one constraint: the function must be non-decreasing. This mathematical choice yields an extraordinary side effect—it naturally produces step-wise models.

Figure 3. Using isotonic regression to construct an empirical power market supply curve
Because physical grid operators dispatch generators in blocks of capacity from lowest to highest marginal cost, the true supply curve is literally a staircase. Isotonic regression allows our model to learn the physical supply stack empirically from market behavior, without us having to model individual power plant heat rates or fuel contracts.
5. The PJM Paradox: Solving the "Messy Blob"
In a market like ERCOT, mapping GSI to spark spreads with time buckets generally gets the job done beautifully. But when we applied this exact framework to Northeast markets like PJM, we ran into a wall.
When you plot Western Hub LMPs against local northeast gas prices using a standard 6.5 heat rate, the data doesn't look like a nice hockey stick. It looks like a messy, unreadable blob. There appeared to be no relationship between grid stress and spark spreads.
The breakthrough came when we realized that in the Northeast, extreme fuel price variations don't just shift the cost of power—they fundamentally alter market bidding behavior. To fix this, we introduced Fuel Price Regimes.
We segmented the PJM data by delivered gas price bands. When you filter the data through these regimes, the magic happens: the blob vanishes, and distinct, beautifully defined curves emerge.
| Fuel Price Regime | Observed Market Behavior | Impact on Curve |
|---|---|---|
| Low Gas | Abundant cheap fuel; flat bidding behavior. | Flatter, lower inflection point. |
| Moderate Gas | Standard economic dispatch behavior. | Moderate, predictable "hockey stick." |
| High Gas | High opportunity costs; aggressive scarcity bidding. | Steeper, highly aggressive price acceleration. |
When gas prices are high, generator bidding behavior becomes significantly more aggressive for the exact same level of physical grid stress. By building separate isotonic regressions for both different time buckets, outage regimes, and fuel price regimes, our model successfully masters the complexity of PJM and the Northeast.

Figure 4. Modified empirical market supply curves according to local delivered natural gas prices
6. Running the 1,000-Path Hourly Ensemble
With our mathematical curves established, we feed the model our probabilistic inputs: Sunairio ONE’s 1,000-path hourly GSI ensemble.
Because our weather-driven ensemble correctly forecasts thousands of fully correlated scenarios—perfectly capturing the joint probabilities of a heatwave, low wind speeds, and forced thermal outages—passing those GSI paths through our price regressions yields a true, mathematically rigorous probability distribution of hourly energy prices.
Conclusions
- Empirical Supply Stacks: By utilizing isotonic regression, Sunairio's price model naturally replicates the step-wise nature of a physical dispatch stack without the data burden of traditional unit modeling.
- Fuel Price Conditioning: In volatile markets like PJM, looking at grid stress alone isn't enough. Sunairio isolates distinct market behaviors by segmenting forecasts into specific fuel price regimes.
- True Probabilistic Pricing: Power price risk lives in the tails. By pairing our fundamental price model with our 1,000-path weather ensemble, we provide users with a clear view of the frequency, duration, and severity of potential price spikes.
Now in the UI: Beginning now, users no longer need code to access these insights. The full power of our trading hub price forecast ensemble can be completely visualized and interactive right inside the Sunairio platform.












































