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:
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."
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.
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.
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.
Adjust LTV ratio projections: With the property value adjusted for physical and transition risk, an adjusted LTV ratio is projected.
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")
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
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))
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))
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))
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
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
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
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')
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
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