model_clo_insight.clo_external_data_contracts module¶
This module serves as the location for all of the external model object classes used to communicate with Rest APIs or Excel.
- class AgencyRecovery(seniority=None, rec_rate=None, **kwargs)¶
Bases:
object
Used to store non-DBRSM rating agency recovery assumptions (by seniority only, no country tiering)
- class CFMatrixMetaData(tranche=None, is_retranche=None, dbrs_rtg=None, libor_curve=None, def_pattern=None, **kwargs)¶
Bases:
object
Table row that represents the inputs to a Proprietary Cashflow Engine BDR scenario
- class CFNamedRangeRow(named_range=None, row=None, col=None, **kwargs)¶
Bases:
object
Table row representing the Excel named ranges that are controlled by Proprietary Cashflow Engine’s dynamic runner
- class CFRepline(name=None, dbrs_tier=None, par=None, percent=None, cpn_type_int=None, daycount=None, spread=None, coupon=None, rec_lag=None, **kwargs)¶
Bases:
object
Data structure for a cash flow analysis repline (representative group of collateral loans)
- class CFReplineTradingPct(dbrs_tier=None, cpn_type_int=None, daycount=None, rec_lag=None, name=None, s_1=None, s_2=None, s_3=None, **kwargs)¶
Bases:
object
Data structure used for storing the information about each seniority/tier combination used in the trading scenario analysis
- class CLOConcLimitException(num=None, pct=None, **kwargs)¶
Bases:
object
Represents a concentration limitation exception (used for obligor and industry)
- class CLOPoolRow(obligor=None, security=None, ind_dbrsm=None, country=None, seniority=None, is_cov_lite=None, is_defaulted=None, cpn_type=None, cpn=None, spd=None, libor_floor=None, dt_maturity=None, rtg_mdy=None, rtg_sp=None, rtg_fitch=None, rtg_dbrs=None, rtg_dbrs_ce=None, rec_rate_mdy=None, rec_rate_sp=None, rtg_watch_mdy=None, rtg_watch_sp=None, rtg_watch_fitch=None, rtg_watch_dbrs=None, par=None, unfunded=None, ind_code_dbrsm=None, **kwargs)¶
Bases:
object
Represents a single row for the Indicative Portfolio
- dt_maturity: datetime.datetime = None¶
Legal maturity date for the security
- is_cov_lite: str = None¶
True if loan is a cov-lite loan (e.g. lack of maintenence covenants). Drives recovery assumptions.
- is_defaulted: str = None¶
True if loan is defaulted loan. Exclude defaults from asset default simulations, and included from repline builder for Proprietary Cashflow Engine
- obligor: str = None¶
unique obligor ID. Obligors with the same string ID share the same random vars in the simulation
- rec_rate_mdy: float = None¶
Moody’s recovery rate. Determined by difference in corp family vs facility rating
- rtg_mdy: str = None¶
Moodys obligor default probability or corporate family credit rating. Set at the obligor level (first occurrence)
- security: str = None¶
unique security ID. Two line items with same obligor ID should have different security ID
- class CLOTranche(name=None, bond_group=None, par=None, unfunded=None, assumed_draw=None, cpn_type=None, cpn=None, spd=None, rtg_sp=None, rtg_mdy=None, rtg_fitch=None, rtg_dbrs=None, oc_test=None, ic_test=None, rvst_oc_test=None, **kwargs)¶
Bases:
object
Represents a tranche of a CLO’s capital structure
- class CLOTrancheOutputStep1(name=None, bond_group=None, par=None, rtg_dbrs=None, par_subordination=None, **kwargs)¶
Bases:
object
Represents a tranche row in the tranche-related input for step 2
- class CLOTrancheOutputStep2(name=None, bond_group=None, par=None, rtg_dbrs=None, par_subordination=None, davinci_tranche_name=None, exp_maturity=None, BDR=None, default_hurdle=None, cushion=None, result=None, **kwargs)¶
Bases:
object
Represents a tranche row in the tranche-related output of step 2
- davinci_tranche_name: str = None¶
name of the tranche in Proprietary Cashflow Engine (used for lookups later)
- default_hurdle: float = None¶
cumulative default hurdle rate from the predictive model simulation (lookup via propsosed DBRSM rating)
- class CLOTrancheOutputStep5(name=None, davinci_tranche_name=None, bond_group=None, par=None, rtg_dbrs=None, par_subordination=None, bdr_min=None, hurdle_min=None, min=None, n_fail=None, min_loc=None, is_pass=None, **kwargs)¶
Bases:
object
Represents a tranche row in the tranche-related output of step 5
Note: inheritance not used here due as it changes in order of the fields
- davinci_tranche_name: str = None¶
name of the tranche in Proprietary Cashflow Engine (used for lookups later)
- class CLOTransaction(dt_closing=None, dt_first_pay=None, dt_end_rvst=None, dt_non_call=None, dt_maturity=None, pmt_per_yr=None, rvst_target_par=None, total_capitalization=None, max_wal=None, max_warf=None, mdy_warr_floor=None, mdy_warr_cap=None, trading_scenario_mode=None, is_surv_mode=None, dt_last_pmt=None, libor_spot=None, max_wal_surv=None, princ_proceeds=None, ce_in_transit=None, fee_sr_admin=None, fee_sr_mgmt=None, fee_jr_mgmt=None, fee_incentive=None, cl_obligor=None, cl_industry=None, cl_cov_lite=None, cl_second_lien=None, cl_fixed=None, cl_long_dated=None, cl_dbrs_II=None, cl_dbrs_III=None, cl_dbrs_IV=None, cl_ex_obligor=None, cl_ex_industry=None, tranches=None, revolver_method=None, net_agg_exp_amt=None, perf_par_adj_amt=None, perf_par_adj_rationale=None, mdy_warr_cushion_floor=None, **kwargs)¶
Bases:
object
Top level data structure that represents the transaction level data for a CLO
- cl_ex_industry: List[model_clo_insight.clo_external_data_contracts.CLOConcLimitException] = None¶
instances of
CLOConcLimitException
that represent the industry concentration limitations
- cl_ex_obligor: List[model_clo_insight.clo_external_data_contracts.CLOConcLimitException] = None¶
instances of
CLOConcLimitException
that represent the obligor concentration limitations
- dt_closing: datetime.datetime = None¶
closing date
- dt_end_rvst: datetime.datetime = None¶
end of the reinvestment period
- dt_first_pay: datetime.datetime = None¶
first payment date
- dt_last_pmt: datetime.datetime = None¶
last payment date (used to calculate remaining reinvestment period)
- dt_maturity: datetime.datetime = None¶
legal maturity date
- dt_non_call: datetime.datetime = None¶
end of the non-call period
- fee_incentive: model_clo_insight.clo_external_data_contracts.CLOFee = None¶
instance of
CLOFee
- incentive fee
- fee_jr_mgmt: model_clo_insight.clo_external_data_contracts.CLOFee = None¶
instance of
CLOFee
- junior management fee
- fee_sr_admin: model_clo_insight.clo_external_data_contracts.CLOFee = None¶
instance of
CLOFee
- senior administrative fee
- fee_sr_mgmt: model_clo_insight.clo_external_data_contracts.CLOFee = None¶
instance of
CLOFee
- senior management fee
- max_warf: float = None¶
Maximum weighted average rating factor test (global constraint in addition to CDO monitor / collateral quality matrix)
- net_agg_exp_amt: float = None¶
Net Aggregate Exposure Amount (total unfunded collateral par - principal proceeds
- perf_par_adj_amt: float = None¶
Analyst adjustment to performing par (+ or - depending on how the trustee calcs work)
- princ_proceeds: float = None¶
pricipal proceeds (repline balances will be adjusted on pro-rata basis as principal proceeds are used for reinvestment purposes during reinvestment period)
- revolver_method: int = None¶
1=use explicit funded vs unfunded in Indicative Portfolio, 2=use Net Aggregate Exposure Amount
- rvst_target_par: float = None¶
Reinvestment Target Par (defined term in the docs, this is the par amount we model to)
- total_capitalization: float = None¶
Optional for certain middle market CLOs where the concentration limitations are computed off this vs the actual par
- trading_scenario_mode: float = None¶
mode 1 for continuous formula constraints, mode 2 for discrete matrix constraints, mode 3 for full DBRSM matrix
- tranches: List[model_clo_insight.clo_external_data_contracts.CLOTranche] = None¶
instances of
CLOTranche
- class CorrelationMatrix(same_reg_same_ind=None, same_reg_diff_ind=None, diff_reg_same_ind=None, diff_reg_diff_ind=None, **kwargs)¶
Bases:
object
correlation matrix dataclass contains 4 values based on a list of lists in Excel, values are taken out and made into 4 separate values
- class DBRSMatrixInputs(risk_score=None, dscore=None, advance_rate=None, tenor=None, pool_par=None, conc_limit_basis=None, was=None, warr=None, **kwargs)¶
Bases:
object
Table row that represents a row in a DBRSM-style collateral quality matrix
- class DaVinciResults(davinci_tranche_name=None, exp_maturity=None, BDR=None, **kwargs)¶
Bases:
object
- class DetailedDiagnosticRow¶
Bases:
object
Table row that contains the diagnostic info from the predictive model simulation
- class ForceRating(rtg=None, pct=None, **kwargs)¶
Bases:
object
Tuple for storing forced rating assumptions for the hypo pool generator
- class InputStep1(deal=None, indicative_port=None, **kwargs)¶
Bases:
object
Master data structure that represents the inputs to
model_clo_insight.app.step_1_parse_pool()
- deal: model_clo_insight.clo_external_data_contracts.CLOTransaction = None¶
instance of
CLOTransaction
that represents the transaction data
- indicative_port: List[model_clo_insight.clo_external_data_contracts.CLOPoolRow] = None¶
instances of
CLOPoolRow
that represent the indicative portfolio
- class InputStep2(amort_tail_choice_indicative=None, rvst_per_choice_indicative=None, tranche_data=None, davinci_results=None, modeling_portfolio=None, modeling_portfolio_asset_specific=None, amort_tail_comment_indicative=None, rvst_per_comment_indicative=None, **kwargs)¶
Bases:
object
Master data structure that represents the inputs to
model_clo_insight.app.step_2_run_indicative_pool()
- davinci_results: List[model_clo_insight.clo_external_data_contracts.DaVinciResults] = None¶
instances of
DaVinciResults
that represent the Proprietary Cashflow Engine results inputs (BDR, final maturity)
- modeling_portfolio: List[model_clo_insight.clo_external_data_contracts.ModelPoolRow] = None¶
instances of
ModelPoolRow
that represent the modeling portfolio (e.g. ratings & industries mapped)
- modeling_portfolio_asset_specific: List[model_clo_insight.clo_external_data_contracts.ModelPoolRowAssetSpecific] = None¶
modeling portoflio with asset specific input for ABS deals
- rvst_per_choice_indicative: int = None¶
user choice for the number of periods in the cash flow modeling that covers the reinvestment period
- rvst_per_comment_indicative: str = None¶
user comment for choice of number of periods in the cash flow modeling that covers the reinvestment period
- tranche_data: List[model_clo_insight.clo_external_data_contracts.CLOTrancheOutputStep1] = None¶
instances of
CLOTrancheOutputStep1
that represent the tranche data inputs (Par, DBRSM Rating and Par Subordination)
- class InputStep3(hypo_diversity_mode=None, hypo_n_simple_ind=None, trading_scenario_hypo_mode_comment=None, trading_scenario_n_ind_comment=None, was_ind_port_choice=None, warf_ind_port_choice=None, dbrs_risk_score_ind_port_choice=None, dscore_ind_port_choice=None, was_high_choice=None, was_low_choice=None, was_low_comment=None, dscore_high_choice=None, dscore_low_choice=None, dscore_high_comment=None, dscore_low_comment=None, AAA_was_choice=None, AAA_was_comment=None, repline_trading_pct_choice=None, monitor_coef_bdr=None, monitor_coef_sdr=None, rec_rates_agency_choice=None, force_rtg_hi_choice=None, force_rtg_lo_choice=None, wal_monitor_choice=None, max_warf_drift_choice=None, deal_matrix_dbrs=None, deal_matrix_dbrs_warr_rtg=None, deal_matrix_moody_dscore=None, deal_matrix_moody_was=None, deal_matrix_moody_warf=None, deal_matrix_mod_moody_dscore=None, deal_matrix_mod_moody_was=None, deal_matrix_mod_moody_warf=None, repline_trading_pct_comment=None, rec_rates_agency_comment=None, monitor_coef_bdr_comment=None, monitor_coef_sdr_comment=None, force_rtg_hi_comment=None, force_rtg_lo_comment=None, wal_monitor_comment=None, max_warf_drift_comment=None, deal_matrix_dbrs_warr_rtg_comment=None, amort_tail_choice_matrix=None, rvst_per_choice_matrix=None, amort_tail_comment_matrix=None, rvst_per_comment_matrix=None, was_ind_port_comment=None, warf_ind_port_comment=None, dscore_ind_port_comment=None, **kwargs)¶
Bases:
object
Master data structure that represents the inputs to
model_clo_insight.app.step_3_build_trading_scenarios()
- AAA_was_choice: List[float] = None¶
entire permitted WAS range as per the transaction documents. User chooses how granular to discretize
- deal_matrix_dbrs: List[model_clo_insight.clo_external_data_contracts.DBRSMatrixInputs] = None¶
instances of
DBRSMatrixInputs
that represent the transaction’s collateral quality matrix if structured to DBRS’s methodology (trading_scenario_mode = 3)
- deal_matrix_dbrs_warr_rtg: str = None¶
for deals structured to DBRSM’s methodology (trading_scenario_mode = 3), the rating stress level that the WA recovery rate test was sized to
- deal_matrix_mod_moody_dscore: List[int] = None¶
dscore values for discrete modifier matrix constraints
- deal_matrix_mod_moody_warf: List[List[float]] = None¶
weighted average rating factor values for discrete modifier matrix constraints
- deal_matrix_mod_moody_was: List[float] = None¶
weighted average spread values for discrete modifier matrix constraints
- deal_matrix_moody_warf: List[List[float]] = None¶
weighted average rating factor values for discrete matrix constraints
- deal_matrix_moody_was: List[float] = None¶
weighted average spread values for discrete matrix constraints
- force_rtg_hi_choice: model_clo_insight.clo_external_data_contracts.ForceRating = None¶
instance of
ForceRating
that represents the high rating category to be fixed prior to solving for the rating mixture
- force_rtg_lo_choice: model_clo_insight.clo_external_data_contracts.ForceRating = None¶
instance of
ForceRating
that represents the low rating category to be fixed prior to solving for the rating mixture
- hypo_diversity_mode: int = None¶
determines how the industries are allocated in the hypo pool generator. 1 = multiple of obligor base conc limit, 2 = repeating sequence of N industries
- max_warf_drift_choice: float = None¶
user choice absolute max WARF increase in the trading scenarions (e.g. regardless of monitor/matrix, WARF cannot increase by more than this)
- monitor_coef_bdr: List[float] = None¶
BDR coefficients for the CDO Monitor test. For new transactions, this is determined by analyzing comparable transactions
- monitor_coef_sdr: List[float] = None¶
SDR coefficients for the CDO Monitor test. Typically this does not change deal to deal
- rec_rates_agency_choice: List[model_clo_insight.clo_external_data_contracts.AgencyRecovery] = None¶
user choice for generic non-DBRSM rating agency recovery rate assumptions
- repline_trading_pct_choice: List[model_clo_insight.clo_external_data_contracts.CFReplineTradingPct] = None¶
repline percentages user choice for the trading scenario recommendation
- rvst_per_choice_matrix: int = None¶
user choice for number of periods in the cash flow modeling that covers the reinvestment period
- class InputStep4a(repline_trading_pct_choice=None, rl_recoveries_trading=None, repline_trading_pct_choice_mode_3=None, scenarios=None, trading_scenario_is_on_choice=None, deal_matrix_dbrs=None, deal_matrix_dbrs_warr_rtg=None, deal_matrix_dbrs_cf_attributes=None, deal_matrix_dbrs_cf_levels=None, deal_matrix_dbrs_cf_values=None, wac=None, trading_scenario_is_on_comment=None, repline_trading_pct_mode3_comment=None, amort_tail_choice_matrix=None, **kwargs)¶
Bases:
object
Master data structure that represents the inputs to
model_clo_insight.app.step_4a_generate_cf_scenarios()
- deal_matrix_dbrs: List[model_clo_insight.clo_external_data_contracts.DBRSMatrixInputs] = None¶
instances of
DBRSMatrixInputs
that represent the transaction’s collateral quality matrix if structured to DBRS’s methodology (trading_scenario_mode = 3)
- deal_matrix_dbrs_cf_attributes: List[str] = None¶
Cash Flow Dynamic Matrix attributes if available for MM deal (tranche Par or coverage Test)
- deal_matrix_dbrs_cf_levels: List[int] = None¶
Cash Flow Dynamic Matrix attribute levels if available for MM deal (e.g. which tranche)
- deal_matrix_dbrs_cf_values: List[float] = None¶
Cash Flow Dynamic Matrix data if available for MM deal
- deal_matrix_dbrs_warr_rtg: str = None¶
for deals structured to DBRSM’s methodology (trading_scenario_mode = 3), the rating stress level that the WA recovery rate test was sized to
- repline_trading_pct_choice: List[model_clo_insight.clo_external_data_contracts.CFReplineTradingPct] = None¶
repline percentages user choice for the trading scenario recommendation (modes 1 & 2)
- repline_trading_pct_choice_mode_3: List[float] = None¶
repline percentages user choice for the trading scenario recommendation (mode 3)
- rl_recoveries_trading: List[model_clo_insight.clo_external_data_contracts.RatingVectorData] = None¶
instances of
RatingVectorData
that represent the recovery rate assumptions for the trading scenario replines
- scenarios: List[model_clo_insight.clo_external_data_contracts.TradingScenarioRow] = None¶
instances of
TradingScenarioRow
that represent the trading scenarios generated by step 3
- trading_scenario_is_on_choice: List[model_clo_insight.clo_external_data_contracts.TradingScenarioIsOnRow] = None¶
instances of
TradingScenarioIsOnRow
that represent the user’s choice if the scenario is active
- class InputStep4b(hypo_diversity_mode=None, hypo_n_simple_ind=None, amort_tail_choice_matrix=None, rvst_per_choice_matrix=None, repline_trading_pct_choice=None, tranche_results=None, monitor_coef_bdr=None, monitor_coef_sdr=None, force_rtg_hi_choice=None, force_rtg_lo_choice=None, scenarios=None, trading_scenario_is_on_choice=None, starting_period_choice=None, wal_monitor_choice=None, starting_period_comment=None, **kwargs)¶
Bases:
object
Master data structure that represents the inputs to
model_clo_insight.app.step_4b_run_trading_scenarios()
- force_rtg_hi_choice: model_clo_insight.clo_external_data_contracts.ForceRating = None¶
instance of
ForceRating
that represents the high rating category to be fixed prior to solving for the rating mixture
- force_rtg_lo_choice: model_clo_insight.clo_external_data_contracts.ForceRating = None¶
instance of
ForceRating
that represents the low rating category to be fixed prior to solving for the rating mixture
- hypo_diversity_mode: int = None¶
determines how the industries are allocated in the hypo pool generator. 1 = multiple of obligor base conc limit, 2 = repeating sequence of N industries
- monitor_coef_bdr: List[float] = None¶
BDR coefficients for the CDO Monitor test. For new transactions, this is determined by analyzing comparable transactions
- monitor_coef_sdr: List[float] = None¶
SDR coefficients for the CDO Monitor test. Typically this does not change deal to deal
- reinvestment_periods_choice: int = None¶
user choice for number of periods in the cash flow modeling that covers the reinvestment period
- repline_trading_pct_choice: List[model_clo_insight.clo_external_data_contracts.CFReplineTradingPct] = None¶
user choice for repline percentages recommended for the trading scenario recommendation
- rvst_per_choice_matrix: int = None¶
user choice for forward start period in the simulation (e.g. reduce tenor in reinvestment period by this amount)
- scenarios: List[model_clo_insight.clo_external_data_contracts.TradingScenarioRow] = None¶
instances of
TradingScenarioRow
that represent the trading scenarios generated from step 3
- starting_period_choice: int = None¶
user choice for surveillance starting period in Proprietary Cashflow Engine for the trading scenarios
- trading_scenario_is_on_choice: List[model_clo_insight.clo_external_data_contracts.TradingScenarioIsOnRow] = None¶
instances of
TradingScenarioIsOnRow
that represent the user’s choice if the scenario is active
- tranche_results: List[model_clo_insight.clo_external_data_contracts.CLOTrancheOutputStep2] = None¶
instances of
CLOTrancheOutputStep2
that represent the tranche data inputs from output_step_2
- class InputStep5(tranche_results=None, deal_matrix_dbrs=None, scenarios=None, trading_scenario_is_on_choice=None, default_hurdle_matrix=None, cf_meta_data=None, bdr_matrix=None, cf_scenario_data=None, cf_scenario_lookup=None, **kwargs)¶
Bases:
object
- bdr_matrix: List[List[float]] = None¶
matrix of break even default rates (BDRs) from Proprietary Cashflow Engine’s dynamic runner
- cf_meta_data: List[model_clo_insight.clo_external_data_contracts.CFMatrixMetaData] = None¶
instances of
CFMatrixMetaData
that represent the Proprietary Cashflow Engine cash flow scenario meta data
- cf_scenario_lookup: List[int] = None¶
lookup that maps each Trading Scenario row to the unique CF scenario
- deal_matrix_dbrs: List[model_clo_insight.clo_external_data_contracts.DBRSMatrixInputs] = None¶
instances of
DBRSMatrixInputs
that represent the transaction’s collateral quality matrix if structured to DBRSM’s methodology (trading_scenario_mode = 3)
- default_hurdle_matrix: List[List[float]] = None¶
matrix of cumulative default hurdle rates from the predictive model simulation
- scenarios: List[model_clo_insight.clo_external_data_contracts.TradingScenarioRow] = None¶
instances of
TradingScenarioRow
that represent the trading scenarios generated from step 3
- trading_scenario_is_on_choice: List[model_clo_insight.clo_external_data_contracts.TradingScenarioIsOnRow] = None¶
instances of
TradingScenarioIsOnRow
that represent the user’s choice if the scenario is active
- tranche_results: List[model_clo_insight.clo_external_data_contracts.CLOTrancheOutputStep2] = None¶
instances of
CLOTrancheOutputStep2
that represent the tranche data inputs (BDR, final maturity)
- class JsonMetaData(guid=None, time_stamp=None, deal_name=None, run_type=None, run_name=None, user_name=None, davinci_ind_guid=None, davinci_ind_run_name=None, davinci_scenarios_guid=None, davinci_scenarios_run_name=None, davinci_scenarios_guid_supplemental=None, davinci_scenarios_run_name_supplemental=None, user_notes=None, model_version=None, **kwargs)¶
Bases:
object
Contains the meta data to organize the json input/output files, and Proprietary Cashflow Engine run references
- davinci_ind_guid: str = None¶
reference guid to the Proprietary Cashflow Engine run used for the indicative portfolio analysis
- davinci_ind_run_name: str = None¶
reference run name to the Proprietary Cashflow Engine run used for the indicative portfolio analysis
- davinci_scenarios_guid: str = None¶
reference guid to the Proprietary Cashflow Engine run used for the trading scenario matrix analysis
- davinci_scenarios_guid_supplemental: List[str] = None¶
additional reference guids to the Proprietary Cashflow Engine run used for the trading scenario matrix analysis
- davinci_scenarios_run_name: str = None¶
reference run name to the Proprietary Cashflow Engine run used for the trading scenario matrix analysis
- class MethodologyAssumptions(correl_matrix, recovery_lags_clo, n_cf_scens_per_tranche)¶
Bases:
object
Represents the methodology assumptions
- class MethodologyParameters(correlation_matrix=None, recovery_lags=None, **kwargs)¶
Bases:
object
Represents the methodology parameters that can be overriden
- class ModelParameters(meth_assumptions, settings, recommended_vals, country_tier_tbl, recoveries_tbl, amort_tbl, amort_tbl_bullet, amort_tbl_eu, amort_tbl_half, trading_repline_tbl, agency_recoveries_tbl, scenario_shell_tbl, dbrsm_industry_tbl, performance_drift_table_dict)¶
Bases:
object
Master data structure that contains all of the parameters necessary to run each step of the model
- agency_recoveries_tbl: Dict[str, Dict]¶
recovery rate assumptions used by other rating agency constraints in modes 1 & 2
- amort_tbl_half: Dict[str, Dict]¶
half speed of US table of amortization schedules by WAL covenant tail
- build_dataframes()¶
- meth_assumptions: model_clo_insight.clo_external_data_contracts.MethodologyAssumptions¶
methodology assumptions including correlation matrix, recovery lags
- recommended_vals: model_clo_insight.clo_external_data_contracts.TradingScenarioRecommendedValues¶
recommended values for trading scenarios like dscore high and low, monitor wal, max warf drift
- settings: model_clo_insight.clo_external_data_contracts.ModelSettings¶
model settings like custom pd curves, amort curve choice
- class ModelPoolRow(obligor=None, security=None, ind_code=None, numerical_rtg=None, par=None, **kwargs)¶
Bases:
object
Table row for the modeling pool (post-step 1, and hypo pools)
- class ModelPoolRowAssetSpecific(obligor=None, security=None, ind_code=None, numerical_rtg=None, par=None, recovery_rate=None, tenor=None, custom_pd_curve=None, **kwargs)¶
Bases:
object
Asset specific input for the modeling pool (post-step 1, and hypo pools)
- class ModelSettings(mc_seed=None, n_bins=None, n_trials=None, hypo_obligor_floor=None, hypo_industry_floor=None, monitor_solver_mode=None, monitor_cushion=None, monitor_rs_lower_bound=None, monitor_rs_upper_bound=None, ppy_is_off=None, amort_curve_choice=None, is_forward_start_AAA=None, is_stochastic_recoveries=None, is_asset_specific_rec=None, is_asset_specific_tenor=None, is_custom_pd=None, custom_pd_curves=None, cloam_setting=None, step4a_par_selection=None, **kwargs)¶
Bases:
object
Represents the model settings
- hypo_industry_floor: float = None¶
floor for the base industry concentration limitation (during solver)
- hypo_obligor_floor: float = None¶
floor for the base obligor concentration limitation (during solver)
- is_asset_specific_tenor: bool = None¶
if True, each asset will use specific tenor for recovery and pd and computations
- is_forward_start_AAA: bool = None¶
if True, forward start will be used for AAA, otherwise starting period will be 0
- is_stochastic_recoveries: bool = None¶
if True, assume stochastic recoveries (no current functional use)
- monitor_rs_lower_bound: float = None¶
lower bound for the max DBRSM risk score constraint when running the monitor solver
- monitor_rs_upper_bound: float = None¶
upper bound for the max DBRSM risk score constraint when running the monitor solver
- class OutputStep1(replines=None, rl_recoveries=None, rl_recoveries_trading=None, modeling_portfolio=None, tranche_data=None, was_high_recommend=None, was_low_recommend=None, dscore_high_recommend=None, dscore_low_recommend=None, AAA_was_recommend=None, repline_trading_pct_recommend=None, rec_rates_agency_recommend=None, force_rtg_hi_recommend=None, force_rtg_lo_recommend=None, amort_tail_recommend_indicative=None, rvst_per_recommend_indicative=None, amort_tail_recommend_matrix=None, rvst_per_recommend_matrix=None, prepay_start_recommend=None, wal_monitor_recommend=None, max_warf_drift_recommend=None, starting_period_recommend=None, pool_total_par=None, pool_perf_par=None, pool_def_par=None, dbrs_risk_score_ind_pool=None, warf_ind_port=None, WARF_mdy=None, dscore_ind_port=None, was_ind_port=None, wa_cpn=None, wa_life=None, wa_pd=None, total_tranche_draws=None, total_collat_px=None, davinci_prin_proceeds=None, strats_seniority=None, strats_cpn_type=None, strats_cov_lite=None, strats_country_tier=None, strats_country=None, strats_obligor=None, strats_industry=None, strats_dbrs_rating=None, **kwargs)¶
Bases:
object
Master data structure that represents the outputs from
model_clo_insight.app.step_1_parse_pool()
- AAA_was_recommend: List[float] = None¶
entire permitted WAS range as per the transaction documents. User chooses how granular to discretize
- amort_tail_recommend_indicative: float = None¶
recommended value for the amortization schedule lookup
- davinci_prin_proceeds: float = None¶
if deal out of reinvestment period, use for Proprietary Cashflow Engine starting period section
- force_rtg_hi_recommend: model_clo_insight.clo_external_data_contracts.ForceRating = None¶
instance of
ForceRating
that represents the high rating category to be fixed prior to solving for the rating mixture
- force_rtg_lo_recommend: model_clo_insight.clo_external_data_contracts.ForceRating = None¶
instance of
ForceRating
that represents the low rating category to be fixed prior to solving for the rating mixture
- max_warf_drift_recommend: float = None¶
recommended absolute max WARF increase in the trading scenarions (e.g. regardless of monitor/matrix, WARF cannot increase by more than this)
- modeling_portfolio: List[model_clo_insight.clo_external_data_contracts.ModelPoolRow] = None¶
instances of
ModelPoolRow
that represent the modeling portfolio (e.g. ratings & industries mapped)
- prepay_start_recommend: int = None¶
recommended periods in the cash flow modeling to start prepayments
- rec_rates_agency_recommend: List[model_clo_insight.clo_external_data_contracts.AgencyRecovery] = None¶
recommended values for generic non-DBRS rating agency recovery rate assumptions
- repline_trading_pct_recommend: List[model_clo_insight.clo_external_data_contracts.CFReplineTradingPct] = None¶
repline percentages recommended for the trading scenario recommendation
- replines: List[model_clo_insight.clo_external_data_contracts.CFRepline] = None¶
instances of
CFRepline
that represent the cash flow replines
- rl_recoveries: List[model_clo_insight.clo_external_data_contracts.RatingVectorData] = None¶
instances of
RatingVectorData
that represent the recovery rate assumptions for the indicative portfolio replines
- rl_recoveries_trading: List[model_clo_insight.clo_external_data_contracts.RatingVectorData] = None¶
instances of
RatingVectorData
that represent the recovery rate assumptions for the trading scenario replines
- rvst_per_recommend_indicative: int = None¶
recommended number of periods in the cash flow modeling that covers the reinvestment period
- rvst_per_recommend_matrix: int = None¶
recommended number of periods in the cash flow modeling that covers the reinvestment period
- starting_period_recommend: int = None¶
recommended surveillance starting period in Proprietary Cashflow Engine for the trading scenarios
- strats_country: List[model_clo_insight.clo_external_data_contracts.PoolStratRow] = None¶
Pool Stratifications by country
- strats_country_tier: List[model_clo_insight.clo_external_data_contracts.PoolStratRow] = None¶
Pool Stratifications by country tier
- strats_cov_lite: List[model_clo_insight.clo_external_data_contracts.PoolStratRow] = None¶
Pool Stratifications by cov lite
- strats_cpn_type: List[model_clo_insight.clo_external_data_contracts.PoolStratRow] = None¶
Pool Stratifications by cpn type
- strats_dbrs_rating: List[model_clo_insight.clo_external_data_contracts.PoolStratRow] = None¶
Pool stratifications by DBRSM rating (credit estimate vs rating)
- strats_industry: List[model_clo_insight.clo_external_data_contracts.PoolStratRow] = None¶
Pool Stratifications by industry
- strats_obligor: List[model_clo_insight.clo_external_data_contracts.PoolStratRow] = None¶
Pool Stratifications by obligor
- strats_seniority: List[model_clo_insight.clo_external_data_contracts.PoolStratRow] = None¶
Pool Stratifications by seniority
- total_tranche_draws: float = None¶
total amount of $ from undrawn tranches that the analyst assumed drawn
- tranche_data: List[model_clo_insight.clo_external_data_contracts.CLOTrancheOutputStep1] = None¶
instances of
CLOTrancheOutputStep1
that represent the capital structure of the CLO
- wal_monitor_recommend: float = None¶
recommended WAL value for the monitor test only (seperate from other WAL/tenor assumptions)
- class OutputStep2(time_elapsed=None, pool_expected_EAD=None, implied_correlation=None, moments=None, default_hurdle_rates=None, cutpoint_tenors=None, tranche_results=None, **kwargs)¶
Bases:
object
Master data structure that represents the inputs to
model_clo_insight.app.step_2_run_indicative_pool()
- cutpoint_tenors: List[float] = None¶
tenor assumptions used for the IDT percentiling (expected tranche maturities)
- default_hurdle_rates: List[float] = None¶
result of the predictice model - rating-based cumulative default rate hurdles
- implied_correlation: float = None¶
implied correlation metric (Vasicek correlation that produces the same variance as the monte carlo)
- tranche_results: List[model_clo_insight.clo_external_data_contracts.CLOTrancheOutputStep2] = None¶
tranche summary result table
- class OutputStep3(scenarios=None, scenario_hypo_results=None, **kwargs)¶
Bases:
object
Master data structure that represents the outputs to
model_clo_insight.app.step_3_build_trading_scenarios()
- scenario_hypo_results: List[model_clo_insight.clo_external_data_contracts.TradingScenarioHypoResultRow] = None¶
instances of
TradingScenarioHypoResultRow
that represent the results of the hypo pool generator for eachTradingScenarioRow
- scenarios: List[model_clo_insight.clo_external_data_contracts.TradingScenarioRow] = None¶
instances of
TradingScenarioRow
that represent the trading scenarios generated by step 3
- class OutputStep4a(cf_named_range=None, cf_scenario_lookup=None, cf_scenario_data=None, is_on_category=None, **kwargs)¶
Bases:
object
Master data structure that represents the outputs to
model_clo_insight.app.step_4a_generate_cf_scenarios()
- cf_named_range: List[model_clo_insight.clo_external_data_contracts.CFNamedRangeRow] = None¶
lookup key for cash flow modeling - Excel named ranges for dynamic runner
- class OutputStep4b(hypo_exception_results=None, hypo_exception_headers=None, default_hurdle_matrix=None, pooling_diagnostics=None, **kwargs)¶
Bases:
object
- default_hurdle_matrix: List[List[float]] = None¶
matrix of cumulative default hurdle rates from the predictive model simulation
- hypo_exception_results: List[model_clo_insight.clo_external_data_contracts.HypoException] = None¶
matrix of the realized concentration limitation exceptions from the hypo pool generator
- pooling_diagnostics: List[model_clo_insight.clo_external_data_contracts.PoolingDiagnosticRow] = None¶
instances of
PoolingDiagnosticRow
that represent the diagnostics from the simulation
- class OutputStep5(tranche_summary_results=None, detailed_diagnostics_bdr=None, detailed_diagnostics_hurdle=None, detailed_diagnostics_cushion=None, bdr_headers=None, hurdle_headers=None, cushion_headers=None, **kwargs)¶
Bases:
object
- detailed_diagnostics_bdr: List[model_clo_insight.clo_external_data_contracts.DetailedDiagnosticRow] = None¶
prints out bdr for each scenario
- detailed_diagnostics_cushion: List[model_clo_insight.clo_external_data_contracts.DetailedDiagnosticRow] = None¶
prints out cushions for each scenario
- detailed_diagnostics_hurdle: List[model_clo_insight.clo_external_data_contracts.DetailedDiagnosticRow] = None¶
prints out hurdle rates for each scenario
- tranche_summary_results: List[model_clo_insight.clo_external_data_contracts.CLOTrancheOutputStep5] = None¶
instances of
CLOTrancheOutputStep5
that represent the final tranche summary analysis across all the trading scenarios
- class PoolStratRow(Name=None, Count=None, Par=None, Percent=None, **kwargs)¶
Bases:
object
Table row that contains the pool strats outputs from step 1
- class PoolingDiagnosticRow(time_elapsed=None, max_risk_score=None, dscore=None, pool_expected_ead=None, implied_correl=None, moment_1=None, moment_2=None, moment_3=None, moment_4=None, AAA_wal=None, AA_wal=None, A_wal=None, BBB_wal=None, BB_wal=None, B_wal=None, **kwargs)¶
Bases:
object
Table row that contains the diagnostic info from the predictive model simulation
- class RatingVectorData(AAA=None, AAH=None, AA=None, AAL=None, AH=None, A=None, AL=None, BBBH=None, BBB=None, BBBL=None, BBH=None, BB=None, BBL=None, BH=None, B=None, BL=None, CCCH=None, CCC=None, CCCL=None)¶
Bases:
object
Used to store vectors of rating-based assumptions (e.g. recovery rates) or model outputs (e.g. default hurdle rates)
- class RecoveryLags(tier1=None, tier2=None, tier3=None, **kwargs)¶
Bases:
object
list that shows overriden recovery lags
- class TradingScenarioHypoResultRow(credit_result=None, bdr=None, adj_bdr=None, sdr=None, monitor_cushion=None, risk_score=None, warf=None, credit_dispersion=None, dscore=None, ob_base=None, ind_base=None, n_assets=None, diversity_result=None, **kwargs)¶
Bases:
object
Table row for the results of the hypo pool solver
- class TradingScenarioIsOnRow(is_AAA=None, is_AA_BBB=None, is_BB_CCC=None, **kwargs)¶
Bases:
object
Table row for the users selection of which trading scenarios to turn on
- class TradingScenarioRecommendedValues(relative_was_drift, dscore_high, dscore_low, max_warf_drift, monitor_wal, trading_scenario_start_period, AAA_was_recommend)¶
Bases:
object
Contains the recommended values for the trading scenarios
- class TradingScenarioRow(scenario=None, spread_selection=None, credit_selection=None, pool_par=None, conc_limit_basis=None, was=None, dscore=None, seniority=None, warr=None, max_risk_score=None, amort_tail=None, is_AAA=None, is_AA_BBB=None, is_BB_CCC=None, **kwargs)¶
Bases:
object
Table row for a trading scenario