# Methodology

## Approach

The project runs two workstreams over CAISO data.

**Spreads.** From the hub APNode LMP, compute the basic price
relationships: DAM-RT spreads (day-ahead hourly price minus the average of
the matching real-time intervals at the same location), location spreads
between hubs, time spreads within an operating day, and TBx storage value
(average of the x most expensive hours minus the x cheapest). Definitions
and formulas live on the Formulas page.

**Quantos.** Build toward weather-contingent power instruments. The gas leg
comes from CAISO fuel-region prices (PG&E and SoCal Citygate) and feeds
market implied heat rate, spark spread, and heat-rate call option
calculations. The weather leg is HDD/CDD indices computed from daily station
temperatures. The link between them is conditioning: generator-level outage
reasons are weather-driven capacity reductions, and regional temperature
indices are matched to hubs so that the weather signal aligns with prices.

## Implementation Notes

- All computation uses Polars vectorized expressions; no row loops. Dense
  time-series charts render on Bokeh's WebGL canvas.
- Timestamps are stored as naive UTC everywhere on disk; US/Pacific views
  are computed at analysis time, never stored.
