Definitions and Math Formulas#
Reference doc for the Summer 2026 Project Lab (Fama-Miller funded). Based on the proposal and supplemental info docs. This repository implements the CAISO slice of the program.
A typeset PDF of this reference is available: formulas.pdf
Workstream 1: Spreads#
Collecting and computing price relationships across ISOs. These are the basic objects.
ISO (Independent System Operator). The entity that runs the grid and the wholesale electricity market for a region. Our seven: ERCOT (Texas), CAISO (California), PJM (Mid-Atlantic), NYISO (New York), MISO (Midwest), SPP (Great Plains), ISONE (New England).
DAM (Day-Ahead Market). Auction held the day before delivery. Generators and buyers commit to schedules; produces one price per hour per location.
RT (Real-Time Market). The balancing market. Every 5 minutes the ISO reprices electricity based on actual conditions. Much spikier than DAM because it absorbs forecast errors, outages, and weather surprises in real time.
Nodal Prices (LMPs). Prices are set at thousands of individual grid locations (nodes), not one region-wide price. Two nodes differ because of transmission congestion and line losses between them.
DAM-RT Spread. The financial difference between the hourly Day-Ahead Market (DAM) price and the volume or time-weighted average of Real-Time Market (RTM) prices for the corresponding hour and electrical node.
Location Spread. Price at node A minus price at node B. Pure congestion and losses.
Time Spread. The price difference between two distinct blocks of time within the same operating day at the same electrical node.
TBx (Top-Bottom x). You take the x most expensive hours of the day, average them out, and subtract the average of the x cheapest hours at that specific spot on the grid. This represents the absolute maximum cash a storage could theoretically make in a day if it has a crystal ball.
Workstream 2: Quantos#
HDD / CDD (Heating / Cooling Degree Days). Daily weather indices against a 65°F base:
\(\text{HDD} = \max(0,\ 65 - T)\): how cold it was, heat (gas) demand
\(\text{CDD} = \max(0,\ T - 65)\): how hot it was, A/C (electricity) demand
Contracts settle on the cumulative sum over a month or season. Note the \(\max(0,\cdot)\) structure: each daily value is already an option-style payoff on temperature.
Heat rate. A gas generator’s efficiency: MMBtu of gas burned per MWh of electricity produced. Lower is better. Physical floor is 3.412 (perfect conversion). A generator’s marginal cost is heat rate × gas price.
Location pairs and the Hub Mapping. Spark-spread objects are indexed by a market pair \((z, g)\): a power hub \(z\) and the gas hub \(g\) whose gas a generator at \(z\) actually burns. The baseline mapping \(g^*(z)\), with the CAISO fuel-region series that carries each gas leg:
Power hub \(z\) |
Gas leg \(g^*(z)\) |
Fuel region series |
|---|---|---|
NP15 |
PG&E Citygate |
|
ZP26 |
PG&E Citygate |
|
SP15 |
SoCal Citygate |
|
PACE |
PacifiCorp East |
|
PACW |
PacifiCorp West |
|
Shorthand: \(S^{(z)}(H) := S^{(z,\,g^*(z))}(H)\). ZP26 sits between gas systems and has no unique hub: PG&E Citygate is the baseline, and Kern River / SoCal Citygate are the admissible alternates for sensitivity runs.
The gas leg is daily. Gas is nominated once per gas day, and each CAISO fuel-region price is a daily index carried forward across the day’s hours.
MIHR (Market Implied Heat Rate). Power price divided by gas price:
Units work out to MMBtu/MWh, a heat rate. Interpretation: the breakeven efficiency line. Any generator with heat rate below the MIHR is profitable to run right now (undefined when the gas print is non-positive).
Spark Spread. The gross margin of a gas generator per MWh, at strike heat rate \(H\):
Same information as MIHR, in dollar form instead of ratio form. A gas plant is economically a real option on the spark spread: it runs when positive, idles when negative. Daily aggregation touches only the power leg (the gas leg is already daily):
with \(n_d\) the number of intervals in Pacific trade day \(d\) (23-25 at hourly granularity on DST days).
Gas basis. How expensive gas is at hub \(g\) relative to the defined reference hub:
Convention: all bases quote relative to PG&E Citygate. The anchor only shifts where zero sits: basis differences between hubs are anchor-invariant, and with the \(g^*\) mapping in place the anchor never enters any spread or option value.
HRCO (Heat Rate Call Option). The core instrument. Payoff per settlement interval:
Equivalently (at zero VOM), a call option on the MIHR itself:
VOM is a variable O&M adder (dollars per MWh of non-fuel running cost); the stylized version sets it to 0. The cost is zero for simplicity.
Profitability and Dispatch. \(\text{ITM}(H) = \Pr[S(H) > 0]\) is the share of intervals a heat-rate-\(H\) unit is profitable - it says nothing about how much. A unit forced to run every interval earns the average spread; one that runs only profitable intervals earns the average positive part:
Settlement Frequency Defines the Instrument (Jensen). \(V_\bullet(H)\) is the expected payoff per MWh with \(\max(0,\cdot)\) applied at the settlement frequency named in the subscript:
Rule: apply the payoff at the contract’s settlement frequency, never at the data’s observation frequency. Because \(\max(0,\cdot)\) is convex, Jensen’s inequality orders the conventions (within one price series; DAM and RT are different prices, not averages of each other):
with equality only when the spread holds one sign inside the averaging window. A physical unit (start costs, minimum up/down times) sits between the brackets, \(V_{\text{daily}} \leq V_{\text{unit}} \leq V_{\text{hourly}}\)
Intraday optionality premium. The headline object:
The value created purely by the ability to pick profitable hours within the day. With hourly power against daily-indexed gas, \(\Pi\) isolates the value of intraday power shape (duck curve, evening ramp) uncontaminated by gas noise.
Margrabe: Both legs (Power and Gas) are stochastic; they are constantly changing. The pedagogical pricing model is Margrabe, where the key input is the spread volatility:
Quanto Option. Imagine this as a protection contract. It does not just protect you from high prices; it activates when two conditions are met: extreme weather occurs and market prices spike. The pricing consequence:
Cost of carry / the Zero-Carry Assumption. No-arbitrage forward pricing says