Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- df_valuation = monte_carlo_valuator_multi_phase(
- risk_free_rate = ot.Normal(0.04,.002),
- ERP = ot.Normal(0.048,.001) ,
- equity_value = ot.Triangular(45,51.016,57),
- debt_value = ot.Triangular(3.7,3.887,4),
- unlevered_beta = ot.Triangular(.8,.9,1),
- terminal_unlevered_beta = ot.Triangular(.8,.9,1),
- year_beta_begins_to_converge_to_terminal_beta = ot.Uniform(1,2),
- current_pretax_cost_of_debt = ot.Triangular(.057,.06,.063),
- terminal_pretax_cost_of_debt = ot.Triangular(.052,.055,.058),
- year_cost_of_debt_begins_to_converge_to_terminal_cost_of_debt = ot.Uniform(1,2),
- current_effective_tax_rate = ot.Triangular(.23,.24,.25),
- marginal_tax_rate = ot.Triangular(.23,.25,.27),
- year_effective_tax_rate_begin_to_converge_marginal_tax_rate = ot.Uniform(1,3),
- revenue_base = ot.Triangular(8.8,9.2,9.6),
- revenue_growth_rate_cycle1_begin = ot.Distribution(ot.SciPyDistribution(scipy.stats.skewnorm(-2.9, loc= .145, scale=.032))), ## high growth is priced in already, skewed towards left if there is any surprise, it's most likely bad
- revenue_growth_rate_cycle1_end = ot.Distribution(ot.SciPyDistribution(scipy.stats.skewnorm(-2.9, loc=.18, scale=.033))), ## high growth, skewed towards left if there is any surprise, it's most likely bad
- length_of_cylcle1 = ot.Uniform(4,8),
- revenue_growth_rate_cycle2_begin = ot.Distribution(ot.SciPyDistribution(scipy.stats.skewnorm(-2.9, loc= .165, scale=.034))), ## high growth, skewed towards left if there is any surprise, it's most likely bad
- revenue_growth_rate_cycle2_end = ot.Distribution(ot.SciPyDistribution(scipy.stats.skewnorm(-2.9, loc= .11, scale=.032))), ## high growth, skewed towards left if there is any surprise, it's most likely bad
- length_of_cylcle2 = ot.Uniform(4,8),
- revenue_growth_rate_cycle3_begin = ot.Distribution(ot.SciPyDistribution(scipy.stats.skewnorm(-2.9, loc=.09, scale=.024))), ## high growth, skewed towards left if there is any surprise, it's most likely bad
- revenue_growth_rate_cycle3_end = ot.Normal(0.04,.002),
- length_of_cylcle3 = ot.Uniform(4,8),
- revenue_convergance_periods_cycle1 = ot.Uniform(1,2),
- revenue_convergance_periods_cycle2 = ot.Uniform(1,2),
- revenue_convergance_periods_cycle3 = ot.Uniform(1,2),
- current_sales_to_capital_ratio = ot.Triangular(1.5,1.7,1.9),
- terminal_sales_to_capital_ratio = ot.Triangular(1.1,1.3,1.6),
- year_sales_to_capital_begins_to_converge_to_terminal_sales_to_capital = ot.Uniform(1,3),
- current_operating_margin = ot.Triangular(.145,.15,.155),
- terminal_operating_margin = ot.Triangular(.12,.175,.22),
- year_operating_margin_begins_to_converge_to_terminal_operating_margin = ot.Uniform(1,3),
- additional_return_on_cost_of_capital_in_perpetuity = ot.Triangular(0.0,0.02,0.035),
- cash_and_non_operating_asset = ot.Uniform(1.6,1.8),
- asset_liquidation_during_negative_growth = ot.Uniform(0,0.000000001),
- current_invested_capital = ot.Uniform(5.8,6.2),
- sample_size= 20000,
- list_of_correlation_between_variables=[#### Intuitive / common sense correlations
- ['revenue_growth_rate_cycle3_end','risk_free_rate',.95],
- ['revenue_growth_rate_cycle3_end','terminal_pretax_cost_of_debt',.9],
- ['terminal_pretax_cost_of_debt','risk_free_rate',.9],
- ### valuation specific correlation
- ['ERP','revenue_growth_rate_cycle2_begin',.4],
- ['ERP','revenue_growth_rate_cycle2_end',.4],
- ['ERP','revenue_growth_rate_cycle3_begin',.4],
- ['additional_return_on_cost_of_capital_in_perpetuity','terminal_sales_to_capital_ratio',0.25],
- ['additional_return_on_cost_of_capital_in_perpetuity','terminal_operating_margin',.5],
- ['terminal_sales_to_capital_ratio','terminal_operating_margin',.3],
- ]
- )
Advertisement
Add Comment
Please, Sign In to add comment