Main Content

Assess Physical and Transition Risk for Mortgages

This example shows an approach to assess physical and transition risks for mortgages. Physical and transition risks are the two main categories of climate change risks. Physical risks for mortgages relate to natural events such as flooding and wildfires. Transition risks for mortgages derive from policy changes related to the transition away from fossil fuels. For example, a mortgage transition risk is a change in energy-efficiency standards for buildings.

Multiple institutions, including central banks, offer climate scenarios that include projections on emissions and economic variables. The economic variables include unemployment rate and gross domestic product (GDP) [1], [2], [4]. Projections of physical variables are also available from meteorological agencies about changes in precipitation or sea-level rise [7], [8]. In some countries, central bank estimates project energy-efficiency upgrade costs [9]. This example brings together economic variables, physical variables, and transition costs to assess the impact of physical and transition risk on mortgage loan provisions and capital requirements.

The workflow in this example is:

  1. Define climate scenarios: In this example, the data is simulated, but captures trends similar to those in real climate scenario data sets. The economic variables in this example are residential and commercial real estate price indices. The only physical variable is precipitation change. There are three climate scenarios: "Early Action," "Delayed Action," and "No Action."

  2. Compute baseline loan-to-value (LTV) ratio projections: The loan balance projections are straightforward for mortgages. To project the property value, this example uses the real estate price indices. This example uses the resulting loan-to-value (LTV) ratio as a reference to compare against the LTV ratio adjusted for physical and transition risk.

  3. Specfiy physical risk: This example proposes a simple adjustment to the baseline house price index (HPI) scenario using physical variables and precipitation changes to adust the property value for flood risk.

  4. Specify transition risk: This example makes adjustments to the property value based on its current energy efficiency rating and the estimated energy-efficiency transition costs necessary to reach a higher rating.

  5. Adjust LTV ratio projections: With the property value adjusted for physical and transition risk, an adjusted LTV ratio is projected.

  6. Estimate provisions and capital: This example assumes a probability of default (PD) model is available that includes LTV as a predictor. This model is the basis for the provisions and capital requirements computations. Use the PD model to compute the lifetime PD and the lifetime ECL, or provisions. Also use the PD model for capital requirements calculations in the form of risk-weighted assets (RWA).

Computational approaches to measure mortgage physical and transition risks require a combination of data from multiple sources, qualitative assessments, and expert judgement. The time horizon for this type of analysis is decades. There is no data to assess sensitivities to risk drivers because the climate scenarios have not yet been realized and not all the feedback loops and impacts are understood. Multiple models and assumptions must be brought together with qualitative adjustments and simplifications, and interdisciplinary collaboration is important. This example points out the places where different data sources, models, and qualitative adjustments intersect.

This example is extensible. You can apply additional economic variables to the analysis, such as unemployment rate, as long as the PD model also includes these variables. You can also add an LGD model to the analysis, as long as it is sensitive to the variables used in this analysis (for example, age of the loan, LTV ratio, and the economic variables). Multiple risks are explicitly excluded from this example, for example, exposure to wild fires or coastal flooding due to sea-level rise. You can use a similar approach to incorporate these physical risks into an analysis. Also, this example analyzes only an existing mortgage, and the effects of climate impact towards the end of the loan are not large because the credit risk is much smaller in the late years of the loan. You can complement this loan analysis with hypothetical new loans starting in the future. The loan analysis of this example focuses only on property value, yet additional risk considerations can include insurance considerations. For example, insurance considerations might be the rising costs of insurance due to more severe climate events or the fact that a property may become uninsurable. Therefore, the results of this example are limited and do not show a comprehensive assessment of the impact of climate change on mortgage loans.

Define Climate Scenarios

This example uses simulated data with the following three different climate scenarios:

  • "Early Action" — The world takes immediate action and climate policies are put into effect. There may be an initial impact on the economy, but this scenario leads to the best conditions in the long run.

  • "Delayed Action" — No significant policy changes take place until 2030. The climate policies at that point are more aggressive, hence initially there is a more important impact on the economy, but the economic conditions improve later on.

  • "No Action" — The assumption is that no climate policies are in effect. Initially, there are less economic disruptions because there are no policy changes, but the effects of climate change have an impact on the economy in the long run. Also, the overall state of the economy is worse in this scenario than the other two scenarios by the end of the simulated time horizon. Arguably, the worst conditions in the "No Action" scenario would take place after year 2050 when the simulated scenarios end. These trends are similar to those in real climate scenario data sets.

The economic variables in this example are residential and commercial real estate price indices. These variables are available in some real climate scenario data sets. An alternative for the economic variables is a general price index, which is commonly available in climate scenario data.

Load the simulated data and generate plots for the residential and commercial price indices. These projected indices already incorporate climate impact in the aggregate level, showing overall trends in the average market value of the properties. Because the mortgage physical and transition risks are incorporated in the Compute LTV Projections Adjusted for Physical and Transition Risk section, there are property-specific adjustmets to these property value projections.

load SimulatedClimateScenarioData.mat
ScenarioLabels = ["Early Action" "Delayed Action" "No Action"];

figure
t = tiledlayout(2,1);

nexttile
PropertyType = "Residential";
VarName = strcat("RealEstate",PropertyType);
hold on
for s = ScenarioLabels
   Ind = EconomicVariables.Scenario == s;
   plot(EconomicVariables.Year(Ind),EconomicVariables.(VarName)(Ind))
end
hold off
title(PropertyType)
xlabel('Year')
ylabel('Index')
legend(ScenarioLabels,'Location','northwest')
grid on

nexttile
PropertyType = "Commercial";
VarName = strcat("RealEstate",PropertyType);
hold on
for s = ScenarioLabels
   Ind = EconomicVariables.Scenario == s;
   plot(EconomicVariables.Year(Ind),EconomicVariables.(VarName)(Ind))
end
hold off
title(PropertyType)
xlabel('Year')
ylabel('Index')
legend(ScenarioLabels,'Location','northwest')
grid on

title(t,"Real Estate Price Indices")

Figure contains 2 axes objects. Axes object 1 with title Residential, xlabel Year, ylabel Index contains 3 objects of type line. These objects represent Early Action, Delayed Action, No Action. Axes object 2 with title Commercial, xlabel Year, ylabel Index contains 3 objects of type line. These objects represent Early Action, Delayed Action, No Action.

The simulated data also includes physical variables. In this example, there is information on precipitation change. The periodicity of these projections is not the same as the economic variables, so you must interpolate the data.

The increase in precipitation is worse for the "No Action" scenario. Properties with higher flood risk are affected by the precipitation changes more than properties with low flood risk. You can use this data for the physical risk adjustments to the property value projections.

PhysicalVariablesYearly = EconomicVariables(:,["Year" "Scenario"]);
PhysicalVariablesYearly.PrecipitationChange = zeros(height(PhysicalVariablesYearly),1);
for s = ScenarioLabels
   IndYearly = PhysicalVariablesYearly.Scenario == s;
   IndOrig = PhysicalVariables.Scenario == s;
   PhysicalVariablesYearly.PrecipitationChange(IndYearly) = interp1(PhysicalVariables.Year(IndOrig),PhysicalVariables.PrecipitationChange(IndOrig),PhysicalVariablesYearly.Year(IndYearly));
end

figure;
hold on
for s = ScenarioLabels
   Ind = PhysicalVariablesYearly.Scenario == s;
   plot(PhysicalVariablesYearly.Year(Ind),PhysicalVariablesYearly.PrecipitationChange(Ind))
end
hold off
title('Precipitation Change')
xlabel('Year')
ylabel('Change (mm/day)')
legend(ScenarioLabels,'Location','northwest')
grid on

Figure contains an axes object. The axes object with title Precipitation Change, xlabel Year, ylabel Change (mm/day) contains 3 objects of type line. These objects represent Early Action, Delayed Action, No Action.

Compute Baseline Loan-to-Value Projections

The loan-to-value (LTV) ratio is the main link between the scenario variables and the credit analysis. You can compare a baseline projection against projections that include the effects of the physical and transition risk.

Start by choosing a climate scenario.

ScenarioChoice =  ScenarioLabels(1);
ScenarioInd = EconomicVariables.Scenario == ScenarioChoice;

For the LTV projections, project the mortgage balance and the property value separately, and then work with yearly projections using 2020 as the current year.

To project the mortgage balance, start from the current loan balance and use the age, term, and loan's interest rate to project the balance forward, using standard annuity techniques. Define the exposure at the end of the year as the scheduled payment amount plus the remaining balance after the payment.

CurrentYear = 2020; % Assume end of year
Age = 12; % Assume loan is already this age, next end of year will be age + 1
Term = 30; % Original mortgage term
Rate = 0.0575; % Assume fixed rate
CurrentBalance = 90000; % Current mortgage balance at end of current year

[PrincipalPayment,InterestPayment,RemainingBalance] = amortize(Rate,(Term-Age),CurrentBalance);

Projections = table;
Projections.Year = (CurrentYear+1:CurrentYear+(Term-Age))';
Projections.Age = (Age+1:Term)';
% Exposure at the end of next year is the expected payment amount plus remaining
% balance after the payment
Projections.LoanBalance = PrincipalPayment'+InterestPayment'+RemainingBalance';

For the property value, start out with the current property value and use the corresponding real estate price index (either residential or commercial) to project the value into the future. Different climate scenarios lead to different projected values.

You can compute the LTV ratio projections from the loan balance and the property values in each time period.

CurrentValue = 150000;
PropertyType = "Commercial";

PropertyTypeVarName = strcat("RealEstate",PropertyType);
Projections = join(Projections,EconomicVariables(ScenarioInd,["Year" PropertyTypeVarName]));
Projections.Properties.VariableNames{end} = 'PriceIndex';
Projections.ValueReference = CurrentValue*Projections.PriceIndex/100;
Projections.LTVReference = Projections.LoanBalance./Projections.ValueReference;
disp(Projections)
    Year    Age    LoanBalance    PriceIndex    ValueReference    LTVReference
    ____    ___    ___________    __________    ______________    ____________

    2021    13        95175         101.2         1.518e+05          0.62698  
    2022    14        92022         102.4         1.536e+05           0.5991  
    2023    15        88687         103.6         1.554e+05           0.5707  
    2024    16        85161         104.8         1.572e+05          0.54174  
    2025    17        81432           106          1.59e+05          0.51215  
    2026    18        77489         107.8         1.617e+05          0.47921  
    2027    19        73319         109.6         1.644e+05          0.44598  
    2028    20        68909         111.4         1.671e+05          0.41238  
    2029    21        64245         113.2         1.698e+05          0.37836  
    2030    22        59313           115         1.725e+05          0.34385  
    2031    23        54098         116.8         1.752e+05          0.30878  
    2032    24        48583         118.6         1.779e+05          0.27309  
    2033    25        42751         120.4         1.806e+05          0.23672  
    2034    26        36583         122.2         1.833e+05          0.19958  
    2035    27        30061           124          1.86e+05          0.16162  
    2036    28        23164         126.2         1.893e+05          0.12237  
    2037    29        15870         128.4         1.926e+05         0.082399  
    2038    30       8156.7         130.6         1.959e+05         0.041637  

This result is a reference LTV ratio for the loan, for the selected climate scenario. The Physical Risk for Floods and Transition Risk for Energy Efficiency Upgrades sections describe the additional impact on the property value, specific to each mortgage.

Specify Physical Risk for Floods

To incorporate risk of flooding, adjust the price index using property-specific flood risk information from the property with a sensitivity parameter for precipitation change. Assume there are known flood risk ratings for the properties. For properties in a flood area, reduce the baseline property value projections as the projected precipitation increases.

This simple approach that requires qualitative views to determine the sensitivity parameters. You could incorpoate a more sophisticated model where the projected drop in property value includes additional information from the property. You might distinguish additional types of flood risk. For example, precipitation changes are significant for flash-flooding risk. However, the value of coastal properties is sensitive to sea-level rise, which is a physical variable often projected with climate scenario data. Interdisciplinary collaboration can greatly enhance the granularity and quality of these adjustments.

Calibrate the sensitivity parameters. Then, display the impact of the flood risk adjustment on the property value at the end of the mortgage term.

Projections = join(Projections,PhysicalVariablesYearly(ScenarioInd,["Year" "PrecipitationChange"]));

FloodRisk = "High";
switch FloodRisk
   case "High"
      PrecipitationSens = -100;
   case "Medium"
      PrecipitationSens = -50;
   case "Low"
      PrecipitationSens = 25;
end

Projections.PriceIndexPhysical = Projections.PriceIndex + PrecipitationSens*Projections.PrecipitationChange;
Projections.ValuePhysical = CurrentValue*Projections.PriceIndexPhysical/100;
Projections.LTVPhysical = Projections.LoanBalance./Projections.ValuePhysical;

figure
t = tiledlayout(2,1);
nexttile
plot(Projections.Year,Projections.ValuePhysical,'-',Projections.Year,Projections.ValueReference,':')
title('Property Value')
legend('Adjusted','Reference','Location','northwest')
nexttile
plot(Projections.Year,Projections.LTVPhysical,'-',Projections.Year,Projections.LTVReference,':')
title('LTV')
legend('Adjusted','Reference','Location','southwest')
title(t,strcat("Adjustment for Physical Risk, ",ScenarioChoice))

Figure contains 2 axes objects. Axes object 1 with title Property Value contains 2 objects of type line. These objects represent Adjusted, Reference. Axes object 2 with title LTV contains 2 objects of type line. These objects represent Adjusted, Reference.

fprintf('Value adjustment due to physical risk in the last year of the mortgage (%d): %4.2f%%',Projections.Year(end),100*(Projections.ValuePhysical(end)/Projections.ValueReference(end)-1))
Value adjustment due to physical risk in the last year of the mortgage (2038): -4.13%

Even though the property value drop is noticeable at the end of the mortgage term, the effect on the LTV ratio is small. This effect is because mortgages are amortizing loans and the balance and the corresponding LTV ratio are small toward the maturity of the loan. However, if a future loan is assessed, the impact on LTV ratio would be more significant near the origination of the loan, resulting in a different impact on the credit analysis.

Specify Transition Risk for Energy Efficiency Upgrades

Changing regulations for energy efficiency of properties represent a transition risk. For example, new regulations may require a minimum energy efficiency rating to rent a property. An energy efficiency rating itself may be required to sell a property in order to inform prospective buyers and lenders about potential maintenance and upgrade costs. New energy efficiency regulations affect the market value of a property.

This example assumes there are known energy efficiency ratings for the properties. Examples of these efficiency ratings are Energy Perfomance Certificates [9] or Energy Star [10]. This example uses a simulated scale with five levels: "Low", "Medium Low", "Medium", "Medium High", and "High":

EnergyRatingScale = string(EnergyEfficiencyUpgradeCost.Properties.VariableNames);
disp(EnergyRatingScale)
    "High"    "Medium High"    "Medium"    "Medium Low"    "Low"

Assume that there are estimates of the cost to upgrade to a higher rating. The estimates in this example are simulated, but an example of these kinds of estimates can be found in the CBES Guidance document [3].

disp(EnergyEfficiencyUpgradeCost)
                   High     Medium High    Medium    Medium Low    Low
                   _____    ___________    ______    __________    ___

    High               0         NaN         NaN         NaN       NaN
    Medium High    30000           0         NaN         NaN       NaN
    Medium         40000       20000           0         NaN       NaN
    Medium Low     50000       30000       12000           0       NaN
    Low            70000       50000       35000       25000         0

To enhance this example, you could replace these estimates with a more granular model, where different characteristics of the property can help predict the upgrade costs.

Assume each property has a current rating and that there is a maximum attainable rating.

CurrentEER = EnergyRatingScale(4);
MaxEER = EnergyRatingScale(2); % Cannot be worse than current rating

TotalEnergyUpgradeCost = EnergyEfficiencyUpgradeCost{CurrentEER,MaxEER}
TotalEnergyUpgradeCost = 30000

The estimated cost is an estimated amount as of the current year. In the "Early Action" climate scenario, deduct this cost from the property value immediately, where the rationale is that this cost would be deducted from the property price when the property is sold. Then assume improvements are made in the following years until the property reaches its maximum energy efficiency rating. The initial drop in value gradually disappears and the adjusted projected property value matches the baseline value at the end of the loan. For the "Delayed Action" climate scenario, the same approach applies except the drop in value occurs in 2030 and the subsequent investments occur in a shorter time span. The yearly costs are adjusted by the price index of the corresponding scenario. In the "No Action" climate scenario, the upgrades never take place and, therefore, there is no transition risk impact.

Projections.ValueTransition = adjustValueProjections(Projections.PriceIndex,CurrentValue,TotalEnergyUpgradeCost,ScenarioChoice);
Projections.LTVTransition = Projections.LoanBalance./Projections.ValueTransition;

figure
t = tiledlayout(2,1);
nexttile
plot(Projections.Year,Projections.ValueTransition,'-',Projections.Year,Projections.ValueReference,':')
title('Property Value')
legend('Adjusted','Reference','Location','northwest')
nexttile
plot(Projections.Year,Projections.LTVTransition,'-',Projections.Year,Projections.LTVReference,':')
title('LTV')
legend('Adjusted','Reference','Location','southwest')
title(t,strcat("Adjustment for Transition Risk, ",ScenarioChoice))

Figure contains 2 axes objects. Axes object 1 with title Property Value contains 2 objects of type line. These objects represent Adjusted, Reference. Axes object 2 with title LTV contains 2 objects of type line. These objects represent Adjusted, Reference.

Different implementations are possible to adjust the property value with the transition costs. It is also possible to include disposable income in the analysis to adjust the disposable income by the investments required each year to enhance the efficiency of the property. In that case, the credit models in this analysis would need to include disposable income as a predictor to capture the effect of the projections for provisions or capital. You can add other types of transition risk to this approach as long as the impact of these risks can be captured in the projected values of the variables included in the credit models.

Compute LTV Projections Adjusted for Physical and Transition Risk

To adjust LTV projections for both physical and transition risks, combine physical and transition risk adjustments from the Physical Risk for Floods and Transition Risk for Energy Efficiency Upgrades sections.

Projections.ValuePhysicalTransition = adjustValueProjections(Projections.PriceIndexPhysical,CurrentValue,TotalEnergyUpgradeCost,ScenarioChoice);
Projections.LTVPhysicalTransition = Projections.LoanBalance./Projections.ValuePhysicalTransition;

figure
t = tiledlayout(2,1);
nexttile
plot(Projections.Year,Projections.ValuePhysicalTransition,'-',Projections.Year,Projections.ValueReference,':')
title('Property Value')
legend('Adjusted','Reference','Location','northwest')
nexttile
plot(Projections.Year,Projections.LTVPhysicalTransition,'-',Projections.Year,Projections.LTVReference,':')
title('LTV')
legend('Adjusted','Reference','Location','southwest')
title(t,strcat("Adjustment for Physical and Transition Risk, ",ScenarioChoice))

Figure contains 2 axes objects. Axes object 1 with title Property Value contains 2 objects of type line. These objects represent Adjusted, Reference. Axes object 2 with title LTV contains 2 objects of type line. These objects represent Adjusted, Reference.

Estimate Provisions and Capital

To assess the impact of the physical and transition risk adjustments, use credit models that include the LTV ratio as a predictor and then estimate the provisions and capital with and without the adjustments.

This example uses a lifetime probability of default (PD) model (see fitLifetimePDModel) that includes the LTV ratio and the age of the mortgage as predictors.

load SimulatedClimatePDModel.mat
disp(ClimatePDModel)
  Probit with properties:

            ModelID: "Probit"
        Description: "Simulated ad-hoc lifetime PD model for climate risk analysis of mortgages."
    UnderlyingModel: [1x1 classreg.regr.CompactGeneralizedLinearModel]
              IDVar: "ID"
             AgeVar: "Age"
           LoanVars: "LTV"
          MacroVars: ""
        ResponseVar: "Default"
         WeightsVar: ""

An ad-hoc model is fitted for this analysis, including the projected variables of interest, in this case the LTV ratio. The training data is a historical data set that is representative of the current mortgage loan portfolio. Alternatively, you could use an existing PD model for a mortgage loan portfolio if it includes the projected variables as predictors. You can create this type of PD model using customLifetimePDModel. In this example, age is included because it is a common predictor variable for credit models, especially for lifetime PD models in the context of lifetime expected credit losses. You can compute lifetime expected credit loses (ECL) using portfolioECL. For more information, see Overview of Lifetime Probability of Default Models.

You can also include other economic variables in this analysis. Climate scenarios typically include other economic variables commonly included in risk models, such as the unemployment rate. You can add these additional variables as long as the credit model uses these as predictors.

You can also include a loss given default (LGD) model (see fitLGDModel) in this analysis, provided it includes some or all of the projected loan variables and economic variables as predictors. An exposure-at-default (EAD) model (see fitEADModel) is not as relevant for mortgages because they use a standard payment schedule.

Reformat the adjusted projections to use these projections with the predict function for the credit model.

dataPredictAdjusted = Projections(:,{'Year' 'Age' 'LTVPhysicalTransition'});
dataPredictAdjusted.Properties.VariableNames{3} = 'LTV';
dataPredictAdjusted = addvars(dataPredictAdjusted,ones(height(dataPredictAdjusted),1),'NewVariableNames','ID','Before','Year');

dataPredictReference = dataPredictAdjusted;
dataPredictReference.LTV = Projections.LTVReference;

Calculate the yearly, conditional PD using predict.

PDAdjusted = predict(ClimatePDModel,dataPredictAdjusted);
PDReference = predict(ClimatePDModel,dataPredictReference);

figure;
bar(dataPredictAdjusted.Year,[PDAdjusted,PDReference])
title(strcat("Yearly (Conditional) PD, ",ScenarioChoice))
xlabel('Year')
ylabel('PD')
legend('Adjusted','Reference')
grid on

Figure contains an axes object. The axes object with title Yearly (Conditional) PD, Early Action, xlabel Year, ylabel PD contains 2 objects of type bar. These objects represent Adjusted, Reference.

The PD values decrease with age. In the early years (2022 to 2024), the difference between the reference and adjusted projections are noticeable because they have an impact on the early PD values. For climate risk, more adjustments to projections happen many years into the future, where the PD values are smaller and have a decreasing the impact on downstream credit computations. One such downstream computation is the yearly risk-weighted assets (RWA) value, which is equivalent to the capital requirements. The computation of RWA follows Basel II and uses the asymptotic single risk factor (ASRF) model (see asrf). In this example, the asrf function uses the conditional yearly PD, LGD, and EAD values. If an LGD model is available, you can use its predictions here. For EAD, use the projected loan balances.

LGD = 0.50;
EAD = Projections.LoanBalance;
MortgageAssetCorrelation = 0.15;

CapAdjusted = asrf(PDAdjusted,LGD,MortgageAssetCorrelation,'EAD',EAD);
RWAAdjusted = 12.5*CapAdjusted;

CapReference = asrf(PDReference,LGD,MortgageAssetCorrelation,'EAD',EAD);
RWAReference = 12.5 * CapReference;

figure;
bar(dataPredictAdjusted.Year,[RWAAdjusted,RWAReference])
title(strcat("Yearly Risk-Weighted Assets (RWA), ",ScenarioChoice))
xlabel('Year')
ylabel('RWA')
legend('Adjusted','Reference')
grid on

Figure contains an axes object. The axes object with title Yearly Risk-Weighted Assets (RWA), Early Action, xlabel Year, ylabel RWA contains 2 objects of type bar. These objects represent Adjusted, Reference.

The RWA value decreases with time because mortgages are amortizing loans and the decreasing PD values also contribute to this pattern.

To compute provisions, use a lifetime credit analysis. Start by comparing the cumulative lifetime PD values using predictLifetime.

LPDAdjusted = predictLifetime(ClimatePDModel,dataPredictAdjusted); % With adjusted LTV
LPDReference = predictLifetime(ClimatePDModel,dataPredictReference); % With reference LTV

figure;
plot(dataPredictAdjusted.Year,LPDAdjusted,'-',dataPredictReference.Year,LPDReference,':')
title(strcat("Cumulative Lifetime PD, ",ScenarioChoice))
xlabel('Year')
ylabel('Lifetime PD')
legend('Adjusted','Reference','Location','southeast')
grid on

Figure contains an axes object. The axes object with title Cumulative Lifetime PD, Early Action, xlabel Year, ylabel Lifetime PD contains 2 objects of type line. These objects represent Adjusted, Reference.

Use the portfolioECL function to get the lifetime ECL, or lifetime provisions. To get this projection, you need the marginal version of the lifetime PD values, the LGD and EAD values, and an effective interest rate for the loan.

NumRemainingYears = height(Projections);
MPDTable = table;
MPDTable.ID = ones(NumRemainingYears,1);
% Marginal PDs for adjusted
MPDTable.MPD = predictLifetime(ClimatePDModel,dataPredictAdjusted,'ProbabilityType','marginal');

LGDTable = table;
LGDTable.ID = 1;
LGDTable.LGD = 0.50;

EADTable = table;
EADTable.ID = ones(NumRemainingYears,1);
EADTable.EAD = Projections.LoanBalance;

EIR = 0.045; % Effective interest rate

[LifetimeECLAdjusted,~,ECLAdjustedPerPeriod] = portfolioECL(MPDTable,LGDTable,EADTable,Periodicity="annual",InterestRate=EIR);

% Marginal PDs for reference
MPDTable.MPD = predictLifetime(ClimatePDModel,dataPredictReference,'ProbabilityType','marginal');
[LifetimeECLReference,~,ECLReferencePerPeriod] = portfolioECL(MPDTable,LGDTable,EADTable,Periodicity="annual",InterestRate=EIR);

The following plot shows how the discounted yearly provisions accumulate during the remaining life of the loan.

CumulECLAdjusted = cumsum(ECLAdjustedPerPeriod.Scenario1);
CumulECLReference = cumsum(ECLReferencePerPeriod.Scenario1);
figure;
plot(dataPredictAdjusted.Year,CumulECLAdjusted,'-',dataPredictReference.Year,CumulECLReference,':')
xlabel('Year')
ylabel('Provisions')
title(strcat("Cumulative Provisions, ",ScenarioChoice))
grid on
legend('Adjusted','Reference','Location','southeast')

Figure contains an axes object. The axes object with title Cumulative Provisions, Early Action, xlabel Year, ylabel Provisions contains 2 objects of type line. These objects represent Adjusted, Reference.

The following plot shows the total impact that the physical and transition risk adjustments have on lifetime provisions.

figure;
bar(categorical({'Lifetime ECL'}),[LifetimeECLAdjusted LifetimeECLReference])
title(strcat("Total Lifetime Provisions, ",ScenarioChoice))
ylabel('Provisions')
legend('Adjusted','Reference')
grid on

Figure contains an axes object. The axes object with title Total Lifetime Provisions, Early Action, ylabel Provisions contains 2 objects of type bar. These objects represent Adjusted, Reference.

fprintf('Lifetime provisions, percent increase / decrease relative to reference: %4.2f%%',100*(LifetimeECLAdjusted./LifetimeECLReference-1))
Lifetime provisions, percent increase / decrease relative to reference: 1.67%

The "Early Action" climate scenario shows a larger increase with respect to the baseline. However, this increase may be because the shocks occur early, where the exposure and PD values are larger. A hypothetical loan starting in the future may lead to different impacts. A more comprehensive analysis may better capture the impact of future shocks.

Conclusion

This example shows a workflow to incorporate some physical and transition risks into a climate-related credit analysis for mortgages. The methodology in this example is a simple approach to bring together existing information and models to assess the impact of climate change on provisions.

Climate risk is a complex developing area and this example is a starting point that you can extend in different directions. You might add more variables (such as rate of unemployment or sea-level rise) and other models (such as LGD, flood, or cost models) to the analysis. Bringing an entire portfolio of mortgages could also shed light on portfolio composition or potentially a dynamic balance sheet analysis. You might also explore debt serviceability to analyze the disposable income projections in the analysis. Another area of investigation could be additional insurance considerations, such as projections on the cost of insurance or whether a property is no longer insurable.

References

[1] Bank of Canada, Climate Transition Scenario Data, https://www.bankofcanada.ca/2022/01/climate-transition-scenario-data/.

[2] Bank of England, Key elements of the 2021 Biennial Exploratory Scenario: Financial risks from climate change, June 2021, https://www.bankofengland.co.uk/stress-testing/2021/key-elements-2021-biennial-exploratory-scenario-financial-risks-climate-change.

[3] Bank of England, Guidance for participants of the 2021 Biennial Exploratory Scenario: Financial risks from climate change, June 2021, https://www.bankofengland.co.uk/-/media/boe/files/stress-testing/2021/the-2021-biennial-exploratory-scenario-on-the-financial-risks-from-climate-change.pdf.

[4] European Central Bank, Banking Supervision, Climate Risk Stress Test, January 2022, https://www.bankingsupervision.europa.eu/ecb/pub/pdf/ssm.macrofinancialscenariosclimateriskstresstest2022~bcac934986.en.pdf.

[5] U.S. Federal Government, 2022: U.S. Climate Resilience Toolkit. [Online] https://toolkit.climate.gov. Climate Explorer: https://toolkit.climate.gov/tool/climate-explorer-0. Accessed June, 2022.

[6] Intergovernmental Panel on Climate Change (IPCC), https://www.ipcc.ch/.

[7] National Oceanic and Atmospheric Administration (NOAA), https://www.noaa.gov/.

[8] Met Office, https://www.metoffice.gov.uk/.

[9] Energy Performance Certificate Wiki: https://en.wikipedia.org/wiki/Energy_performance_certificate.

[10] Energy Star Wiki: https://en.wikipedia.org/wiki/Energy_Star.

Local Functions

function ValueAdjusted = adjustValueProjections(PriceIndex,CurrentValue,TotalCost,ScenarioChoice)

NumRemainingYears = length(PriceIndex);
ValueAdjusted = zeros(NumRemainingYears,1);
PriceIndexPrevious = [100;PriceIndex(1:end-1)];
PriceIndexRate = (PriceIndex-PriceIndexPrevious)./PriceIndexPrevious;

switch ScenarioChoice
   case "Early Action"
      CostPerYear = TotalCost/NumRemainingYears;
      TransitionCost = CostPerYear*PriceIndex/100;
      ValueAdjusted(1) = (CurrentValue-TotalCost)*(1+PriceIndexRate(1)) + TransitionCost(1);
      for ii=2:NumRemainingYears
         ValueAdjusted(ii) = ValueAdjusted(ii-1)*(1+PriceIndexRate(ii)) + TransitionCost(ii);
      end
   case "Delayed Action"
      TransitionCost = zeros(NumRemainingYears,1);
      ValueAdjusted = CurrentValue*PriceIndex/100; % Initialize
      if NumRemainingYears>=10
         % TotalCost = TotalCost*PriceIndex(9)/100; % Adjust by price index
         CostPerYear = TotalCost/(NumRemainingYears-9); % Make upgrades in remaining years
         TransitionCost(10:end) = CostPerYear*PriceIndex(10:end)/100;
         ValueAdjusted(10) = (ValueAdjusted(9)-TotalCost*PriceIndex(9)/100)*(1+PriceIndexRate(10)) + TransitionCost(10);
         for ii=11:NumRemainingYears
            ValueAdjusted(ii) = ValueAdjusted(ii-1)*(1+PriceIndexRate(ii)) + TransitionCost(ii);
         end

      end
   case "No Action"
      ValueAdjusted = CurrentValue*PriceIndex/100; % No upgrades
end

end

Related Examples

More About

External Websites