Upload
job-dominick-nichols
View
215
Download
0
Tags:
Embed Size (px)
Citation preview
ERCOT Credit Loss ModelMark Ruane Credit Work Group / Market Credit Work GroupERCOT PublicApril 22, 2015
Former ERCOT Credit Loss Model
ERCOT Public
ERCOT received Potential Future Exposure (PFE) estimates from Oliver Wyman in February 2008. In 2009, subsequent to the adoption of the Market Credit Risk Standard, PFEs were re-estimated quarterly using the Wyman model.
Estimates were derived from two models:– Credit scoring model
• Uses Counter-Party financial data to generate synthetic Counter-Party credit ratings and probabilities of default, which was an input to:
– Credit loss model• Generates probability distribution of credit losses• Excel front end with VB code• Versions for zonal and nodal markets
Credit Scoring Model
ERCOT Public
The credit scoring model estimated proxy ratings based on Counter-Party financial ratios and qualitative assessment.
Quantitative Inputs• Working Capital / Sales• Cash / Assets• Current Ratio• EBITDA / Interest Expense• FCF / Debt• Total Debt / Total Capital• Equity / Assets• EBITDA / Sales• Net Income / Assets• Total Assets• Sales / Assets
Qualitative Inputs• Policies• Management Quality• ERCOT Relationship• Performance / Strategy• Industry Characteristics
Credit Scoring Model
ERCOT Public
– Allowance for warning signal adjustments– Ratings of subsidiaries tied to parents with “group logic” scoring
– Default probabilities for ratings calibrated based on ERCOT historical average loss rate and assumed worst case default probability.
Group Logic Determinants• QSE and parent have same primary line of business• QSE covers a key geographical area for the parent• QSE covers a key customer segment for the parent• QSE fulfills an essential activity for the parent within a service
line• QSE is clearly controlled by the parent through influence on
management• QSE and parent share the same name• The parent has a minimum 45% ownership in the subsidiary
Credit Loss Model
ERCOT Public
High-level model schematic
Simulated prices per dayper hub1
Price module
Simulates daily prices per hub over the specified time horizon
List of defaulted QSEs by scenario
Generates correlated default scenarios over the specified time horizon
ExposurebyQSE
Volumetric exposure module
Calculates exposure for defaulted QSEs using simulated prices and volumes
Collateral module
CollateralbyQSE
Calculates collateral for each of thedefaulting QSEs
Aggregate losses across all QSEs
Loss calculation
Based on exposure and collateral of defaulting QSEs, calculates loss (if any) for each simulation and summarizes results across all simulations
Default module
1. Hub refers to a zone, settlement point, location or market
NYC-ECO00111-007
Credit Loss Model
ERCOT Public
Price module schematic
Historical ERCOT
price parameters
Monthly natural gas
futures price
Convert natural gas monthly time
series to daily time series
Store daily heat rate by hub
Calculate implied ERCOT
forward prices by hub
ERCOT log forward prices by hub
Generate normal randoms and correlate them using Cholesky
Generate daily log price series and convert to
$/MWh
Base forward price simulations
Hub correlations
Mean reversion parameters
Jump parameters
Heat rate: (Ppower/Pnatgas)
Dependent on time horizon
Based on monthly avg. heat rate/hub and starting month
Nat gas price * heat rate
Convert to log price
Based on hub correlations for non-jump time series
Use mean reversion parameters, historical spot volatilities
Po = implied forward price for first forward month
No jumps included
Jump event parameters
Time horizon
To cover the default horizon
Frequency of multiple day events
Max and mean jump size
Generate uncorrelated uniform and
normal random numbers
Determine jump event probability based on historic jump parameters
Probable number of jumps
Simulate jump events (start day, number of days,
and jump amount)
Uniform randoms determine numbers of common and unique jumps and their timing
Jump size is lognormal, based on price cap and historical norms
Jump simulations
Combine base price and jump
simulations
Simulated prices per day per hub
Uncorrelated uniform and normals
Uniforms for jump placement
Normals for jump size
Correlated random normals
Forward ERCOT
price inputs
Alternatively, these can be used directly once available
OutputCalculationProcessInputUser input
NYC-ECO00111-007
Historical ERCOT
price parameters
Monthly natural gas
futures price
Convert natural gas monthly time
series to daily time series
Store daily heat rate by hub
Calculate implied ERCOT
forward prices by hub
ERCOT log forward prices by hub
Generate normal randoms and correlate them using Cholesky
Generate daily log price series and convert to
$/MWh
Base forward price simulations
Hub correlations
Mean reversion parameters
Jump parameters
Heat rate: (Ppower/Pnatgas)
Dependent on time horizon
Based on monthly avg. heat rate/hub and starting month
Nat gas price * heat rate
Convert to log price
Based on hub correlations for non-jump time series
Use mean reversion parameters, historical spot volatilities
Po = implied forward price for first forward month
No jumps included
Jump event parameters
Time horizon
To cover the default horizon
Frequency of multiple day events
Max and mean jump size
Generate uncorrelated uniform and
normal random numbers
Determine jump event probability based on historic jump parameters
Probable number of jumps
Simulate jump events (start day, number of days,
and jump amount)
Uniform randoms determine numbers of common and unique jumps and their timing
Jump size is lognormal, based on price cap and historical norms
Jump simulations
Combine base price and jump
simulations
Simulated prices per day per hub
Uncorrelated uniform and normals
Uniforms for jump placement
Normals for jump size
Correlated random normals
Forward ERCOT
price inputs
Alternatively, these can be used directly once available
Historical ERCOT
price parameters
Monthly natural gas
futures price
Convert natural gas monthly time
series to daily time series
Store daily heat rate by hub
Calculate implied ERCOT
forward prices by hub
ERCOT log forward prices by hub
Generate normal randoms and correlate them using Cholesky
Generate daily log price series and convert to
$/MWh
Base forward price simulations
Hub correlations
Mean reversion parameters
Jump parameters
Heat rate: (Ppower/Pnatgas)
Dependent on time horizon
Based on monthly avg. heat rate/hub and starting month
Nat gas price * heat rate
Convert to log price
Based on hub correlations for non-jump time series
Use mean reversion parameters, historical spot volatilities
Po = implied forward price for first forward month
No jumps included
Jump event parameters
Time horizon
To cover the default horizon
Frequency of multiple day events
Max and mean jump size
Generate uncorrelated uniform and
normal random numbers
Determine jump event probability based on historic jump parameters
Probable number of jumps
Simulate jump events (start day, number of days,
and jump amount)
Uniform randoms determine numbers of common and unique jumps and their timing
Jump size is lognormal, based on price cap and historical norms
Jump simulations
Combine base price and jump
simulations
Simulated prices per day per hub
Uncorrelated uniform and normals
Uniforms for jump placement
Normals for jump size
Correlated random normals
Forward ERCOT
price inputs
Alternatively, these can be used directly once available
OutputCalculationProcessInputUser input
NYC-ECO00111-007
Credit Loss Model
ERCOT Public
Default module schematic
Produced by Credit Scoring Model
For each QSE determine if
default occurred
Correlate random numbers
using Cholesky
matrix
Generate and normalize a set
of random numbers
1-yr PDs for each
QSE
Calculation of time adjusted
PDs
Time horizon of
the simulation
Normalization of time
adjusted PDs
List of QSE type for each
QSE
Default correlation between
QSE types
Creation of default
correlation matrix and
decomposition
Time adjusted PDsfor eachQSE
Critical values
List of defaulted QSEs by simulation
Correlated random numbers
Cholesky matrix
Normalizedrandom numbers
Set by user (in days)
PDs are scaled exponentially (based on Poisson default arrival rate)
PDs for each QSE scaled to length of simulation
Time adjusted PDs are transformed to critical values using Inverse Normal CDF
Critical values represent the number of standard deviations from the mean that correspond (in likelihood) to the PD of each QSE
Each QSE is segmented by type
Correlation matrix for each QSE is produced based on QSE type and decomposed using a Cholesky decomposition
Random numbers are generated (same # as # of QSEs) and normalized using Inverse Normal CDF
Correlation matrix after decomposition
Matrix multiplication using set of random normals and the Cholesky matrix
The set of random normals are now correlated based on the correlations between the QSE types
For each QSE compare critical value to its corresponding correlated random; if critical value is less than correlated random default has occurred
For each simulation record which QSEs default (if any)
OutputCalculationProcessInputUser input
NYC-ECO00111-007
Produced by Credit Scoring Model
For each QSE determine if
default occurred
Correlate random numbers
using Cholesky
matrix
Generate and normalize a set
of random numbers
1-yr PDs for each
QSE
Calculation of time adjusted
PDs
Time horizon of
the simulation
Normalization of time
adjusted PDs
List of QSE type for each
QSE
Default correlation between
QSE types
Creation of default
correlation matrix and
decomposition
Time adjusted PDsfor eachQSE
Critical values
List of defaulted QSEs by simulation
Correlated random numbers
Cholesky matrix
Normalizedrandom numbers
Set by user (in days)
PDs are scaled exponentially (based on Poisson default arrival rate)
PDs for each QSE scaled to length of simulation
Time adjusted PDs are transformed to critical values using Inverse Normal CDF
Critical values represent the number of standard deviations from the mean that correspond (in likelihood) to the PD of each QSE
Each QSE is segmented by type
Correlation matrix for each QSE is produced based on QSE type and decomposed using a Cholesky decomposition
Random numbers are generated (same # as # of QSEs) and normalized using Inverse Normal CDF
Correlation matrix after decomposition
Matrix multiplication using set of random normals and the Cholesky matrix
The set of random normals are now correlated based on the correlations between the QSE types
For each QSE compare critical value to its corresponding correlated random; if critical value is less than correlated random default has occurred
For each simulation record which QSEs default (if any)
Produced by Credit Scoring Model
For each QSE determine if
default occurred
Correlate random numbers
using Cholesky
matrix
Generate and normalize a set
of random numbers
1-yr PDs for each
QSE
Calculation of time adjusted
PDs
Time horizon of
the simulation
Normalization of time
adjusted PDs
List of QSE type for each
QSE
Default correlation between
QSE types
Creation of default
correlation matrix and
decomposition
Time adjusted PDsfor eachQSE
Critical values
List of defaulted QSEs by simulation
Correlated random numbers
Cholesky matrix
Normalizedrandom numbers
Set by user (in days)
PDs are scaled exponentially (based on Poisson default arrival rate)
PDs for each QSE scaled to length of simulation
Time adjusted PDs are transformed to critical values using Inverse Normal CDF
Critical values represent the number of standard deviations from the mean that correspond (in likelihood) to the PD of each QSE
Each QSE is segmented by type
Correlation matrix for each QSE is produced based on QSE type and decomposed using a Cholesky decomposition
Random numbers are generated (same # as # of QSEs) and normalized using Inverse Normal CDF
Correlation matrix after decomposition
Matrix multiplication using set of random normals and the Cholesky matrix
The set of random normals are now correlated based on the correlations between the QSE types
For each QSE compare critical value to its corresponding correlated random; if critical value is less than correlated random default has occurred
For each simulation record which QSEs default (if any)
OutputCalculationProcessInputUser input
NYC-ECO00111-007
Credit Loss Model
ERCOT Public
Price module schematic
Historical ERCOT
price parameters
Monthly natural gas
futures price
Convert natural gas monthly time
series to daily time series
Store daily heat rate by hub
Calculate implied ERCOT
forward prices by hub
ERCOT log forward prices by hub
Generate normal randoms and correlate them using Cholesky
Generate daily log price series and convert to
$/MWh
Base forward price simulations
Hub correlations
Mean reversion parameters
Jump parameters
Heat rate: (Ppower/Pnatgas)
Dependent on time horizon
Based on monthly avg. heat rate/hub and starting month
Nat gas price * heat rate
Convert to log price
Based on hub correlations for non-jump time series
Use mean reversion parameters, historical spot volatilities
Po = implied forward price for first forward month
No jumps included
Jump event parameters
Time horizon
To cover the default horizon
Frequency of multiple day events
Max and mean jump size
Generate uncorrelated uniform and
normal random numbers
Determine jump event probability based on historic jump parameters
Probable number of jumps
Simulate jump events (start day, number of days,
and jump amount)
Uniform randoms determine numbers of common and unique jumps and their timing
Jump size is lognormal, based on price cap and historical norms
Jump simulations
Combine base price and jump
simulations
Simulated prices per day per hub
Uncorrelated uniform and normals
Uniforms for jump placement
Normals for jump size
Correlated random normals
Forward ERCOT
price inputs
Alternatively, these can be used directly once available
OutputCalculationProcessInputUser input
NYC-ECO00111-007
Historical ERCOT
price parameters
Monthly natural gas
futures price
Convert natural gas monthly time
series to daily time series
Store daily heat rate by hub
Calculate implied ERCOT
forward prices by hub
ERCOT log forward prices by hub
Generate normal randoms and correlate them using Cholesky
Generate daily log price series and convert to
$/MWh
Base forward price simulations
Hub correlations
Mean reversion parameters
Jump parameters
Heat rate: (Ppower/Pnatgas)
Dependent on time horizon
Based on monthly avg. heat rate/hub and starting month
Nat gas price * heat rate
Convert to log price
Based on hub correlations for non-jump time series
Use mean reversion parameters, historical spot volatilities
Po = implied forward price for first forward month
No jumps included
Jump event parameters
Time horizon
To cover the default horizon
Frequency of multiple day events
Max and mean jump size
Generate uncorrelated uniform and
normal random numbers
Determine jump event probability based on historic jump parameters
Probable number of jumps
Simulate jump events (start day, number of days,
and jump amount)
Uniform randoms determine numbers of common and unique jumps and their timing
Jump size is lognormal, based on price cap and historical norms
Jump simulations
Combine base price and jump
simulations
Simulated prices per day per hub
Uncorrelated uniform and normals
Uniforms for jump placement
Normals for jump size
Correlated random normals
Forward ERCOT
price inputs
Alternatively, these can be used directly once available
Historical ERCOT
price parameters
Monthly natural gas
futures price
Convert natural gas monthly time
series to daily time series
Store daily heat rate by hub
Calculate implied ERCOT
forward prices by hub
ERCOT log forward prices by hub
Generate normal randoms and correlate them using Cholesky
Generate daily log price series and convert to
$/MWh
Base forward price simulations
Hub correlations
Mean reversion parameters
Jump parameters
Heat rate: (Ppower/Pnatgas)
Dependent on time horizon
Based on monthly avg. heat rate/hub and starting month
Nat gas price * heat rate
Convert to log price
Based on hub correlations for non-jump time series
Use mean reversion parameters, historical spot volatilities
Po = implied forward price for first forward month
No jumps included
Jump event parameters
Time horizon
To cover the default horizon
Frequency of multiple day events
Max and mean jump size
Generate uncorrelated uniform and
normal random numbers
Determine jump event probability based on historic jump parameters
Probable number of jumps
Simulate jump events (start day, number of days,
and jump amount)
Uniform randoms determine numbers of common and unique jumps and their timing
Jump size is lognormal, based on price cap and historical norms
Jump simulations
Combine base price and jump
simulations
Simulated prices per day per hub
Uncorrelated uniform and normals
Uniforms for jump placement
Normals for jump size
Correlated random normals
Forward ERCOT
price inputs
Alternatively, these can be used directly once available
OutputCalculationProcessInputUser input
NYC-ECO00111-007
Credit Loss Model
ERCOT Public
Exposure module schematic
List of defaulted QSEs by simulation
Default types and
dimensions
Day of default and associated prices
Exposure for each defaulting QSE
Historic BES exposure
and BES and total vol. by QSE by hub
Place defaults in the simulation
time horizon and determine default
scenario
Exposure calculation
Correlation of default and price by QSE
type
Simulated prices per day per
hub
BES “escalation”
type by QSE type
Defaulted QSEs output from Default Module
Prices per day per hub over the specified time horizon from Price Module
Identifies QSE types whose defaults are likely to be correlated with price
For QSE types whose defaults have low market event sensitivity, the day of default is picked at random over the time horizon
For QSEs types whose defaults have high market event sensitivity, a high price day (based on a four day rolling, weighted average of prices in hubs where the QSE has exposure) is randomly picked according to user defined parameters
Day of default and price as well as prices for days before and after
Amount BES exposure may increase in a default
Identifies the types of default and the associated number of days of exposure
Based on the number of days of exposure (from the default type) and the prices on those days, as well as accounting for any BES escalation, the exposure is calculated as price times volume over each day and the total exposure is the sum of the daily exposures
OutputCalculationProcessInputUser input
NYC-ECO00111-007
List of defaulted QSEs by simulation
Default types and
dimensions
Day of default and associated prices
Exposure for each defaulting QSE
Historic BES exposure
and BES and total vol. by QSE by hub
Place defaults in the simulation
time horizon and determine default
scenario
Exposure calculation
Correlation of default and price by QSE
type
Simulated prices per day per
hub
BES “escalation”
type by QSE type
Defaulted QSEs output from Default Module
Prices per day per hub over the specified time horizon from Price Module
Identifies QSE types whose defaults are likely to be correlated with price
For QSE types whose defaults have low market event sensitivity, the day of default is picked at random over the time horizon
For QSEs types whose defaults have high market event sensitivity, a high price day (based on a four day rolling, weighted average of prices in hubs where the QSE has exposure) is randomly picked according to user defined parameters
Day of default and price as well as prices for days before and after
Amount BES exposure may increase in a default
Identifies the types of default and the associated number of days of exposure
Based on the number of days of exposure (from the default type) and the prices on those days, as well as accounting for any BES escalation, the exposure is calculated as price times volume over each day and the total exposure is the sum of the daily exposures
OutputCalculationProcessInputUser input
NYC-ECO00111-007
Credit Loss Model
ERCOT Public
Key Assumptions – Default Module• Default probabilities from credit scoring model• Default correlations among market segments• QSE default sensitivity to market events• Default occurrence is a stochastic variable
Key Assumptions – Price Module• Mean reversion and jump parameters• Implied ERCOT market forward prices (based on NG forwards)• Shape factors reflecting differences between simple average and
load-weighted prices
Credit Loss Model
ERCOT Public
Key Assumptions – Exposure Module• Distinguishes between market price events and non-market
(random) shocks• Volume escalation, depending on nature of Counter-Party• Volume escalation and likelihood of default near a high-priced
day are stochastic variables• Mass transition days
Key Assumptions – Collateral Module• No excess cash collateral in base case• Illiquid collateral, eg guarantees, can be haircut• Collateral recomputed based on simplified EAL
Credit Loss Model
ERCOT Public
Model Base Case– Did not include current (excess) collateral held by ERCOT– Represented what was enforceable by ERCOT under Protocols
Model “Current Case”– Used actual levels and types of collateral– Assumed some degree of excess collateral would be maintained
until a default event
ERCOT Public
Historic outcomes – Base Case
Credit Loss Model
Note 1-year mean and median losses are higher than actual experience to date in nodal market.
Simulations using FYE-2009 and Q3-2009 Financials
FYE-2009
Q3-2009
$0
$20
$40
$60
$80
$100
$120
$140
$160
$180
90% (1:10) 95% (1:20) 99% (1:100) 99.9% (1:1,000)
Potential Credit Loss - Base Case($Millions) Horizon (in days)
Simulations
Total defaultsSimulations with defaultsSimulations without defaultsDefault simulations with zero lossTotal simulations with zero loss
($Millions)Expected LossMedian (1:2)
90% (1:10)95% (1:20)99% (1:100)99.9% (1:1,000)Max (1:10,000)
$6.8$11.7$34.3$86.5
$180.9
2592,2182,477
$2.6$0.2
FYE-2009Base Case
21410,000
58,8499,741
FYE-2009 Q3-2009Base Case Base Case
365 36510,000 10,000
59,362 44,7829,775 9,546225 454
2,087 3,6702,312 4,124
$3.2 $2.8$0.3 $0.0
$92.2 $152.8$153.3 $304.0
$8.4 $6.5$15.4 $12.9$43.6 $40.8
FYE-2009
Q3-2009
Simulations using FYE-2009 and Q3-2009 Financials
ERCOT Public
$0
$20
$40
$60
$80
$100
90% (1:10) 95% (1:20) 99% (1:100) 99.9% (1:1,000)
Potential Credit Loss - Current Case($Millions)
Horizon (in days)Simulations
Total defaultsSimulations with defaultsSimulations without defaultsDefault simulations with zero lossTotal simulations with zero loss
($Millions)Expected LossMedian (1:2)
90% (1:10)95% (1:20)99% (1:100)99.9% (1:1,000)Max (1:10,000)
$16.2$20.0$30.7$79.1
$212.2
2682,0822,350
$4.8$0.3
FYE-2009Current Case
21410,000
58,9799,732
$35.6$92.6
$204.4
3,656
$5.1$0.2
$17.3$21.3
$36.3$78.1
$133.0
Current Case365
10,000
44,0149,539461
3,195
$22.6
9,721279
1,9382,217
$5.4$0.4
$17.7
58,845
FYE-2009 Q3-2009Current Case
36510,000
Former ERCOT Potential Future Exposure Model
Historic outcomes – Current Case
ERCOT Public
Credit Loss Model
ERCOT Public
Key Assumptions – Nodal Model• Price simulation in key locations only• DAM price locations considered as additional hubs with different
parameters• Forward values for CRRs based upon implied ERCOT market
forward prices• CRRs envisioned as one-month obligations only, settling in DAM• Exposure calculation similar to zonal, with additions of DALE,
DAM invoices and Average Invoice Liability (AIL)
A model for the nodal market was prototyped but apparently never validated or run.
Former ERCOT Potential Future Exposure Model
ERCOT Public
In 2011 ERCOT solicited bids to update the credit loss model for the nodal market.
With a cost estimated at $400k - $800k, F&A elected to not update the model.
The credit scoring model could be updated internally with Market input.
Questions
ERCOT Public
Credit Updates