samipote

Untitled

Sep 22nd, 2023
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.18 KB | None | 0 0
  1. df_valuation = monte_carlo_valuator_multi_phase(
  2. risk_free_rate = ot.Normal(0.04,.002),
  3. ERP = ot.Normal(0.048,.001) ,
  4. equity_value = ot.Triangular(45,51.016,57),
  5. debt_value = ot.Triangular(3.7,3.887,4),
  6. unlevered_beta = ot.Triangular(.8,.9,1),
  7. terminal_unlevered_beta = ot.Triangular(.8,.9,1),
  8. year_beta_begins_to_converge_to_terminal_beta = ot.Uniform(1,2),
  9. current_pretax_cost_of_debt = ot.Triangular(.057,.06,.063),
  10. terminal_pretax_cost_of_debt = ot.Triangular(.052,.055,.058),
  11. year_cost_of_debt_begins_to_converge_to_terminal_cost_of_debt = ot.Uniform(1,2),
  12. current_effective_tax_rate = ot.Triangular(.23,.24,.25),
  13. marginal_tax_rate = ot.Triangular(.23,.25,.27),
  14. year_effective_tax_rate_begin_to_converge_marginal_tax_rate = ot.Uniform(1,3),
  15. revenue_base = ot.Triangular(8.8,9.2,9.6),
  16. 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
  17. 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
  18. length_of_cylcle1 = ot.Uniform(4,8),
  19. 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
  20. 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
  21. length_of_cylcle2 = ot.Uniform(4,8),
  22. 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
  23. revenue_growth_rate_cycle3_end = ot.Normal(0.04,.002),
  24. length_of_cylcle3 = ot.Uniform(4,8),
  25. revenue_convergance_periods_cycle1 = ot.Uniform(1,2),
  26. revenue_convergance_periods_cycle2 = ot.Uniform(1,2),
  27. revenue_convergance_periods_cycle3 = ot.Uniform(1,2),
  28. current_sales_to_capital_ratio = ot.Triangular(1.5,1.7,1.9),
  29. terminal_sales_to_capital_ratio = ot.Triangular(1.1,1.3,1.6),
  30. year_sales_to_capital_begins_to_converge_to_terminal_sales_to_capital = ot.Uniform(1,3),
  31. current_operating_margin = ot.Triangular(.145,.15,.155),
  32. terminal_operating_margin = ot.Triangular(.12,.175,.22),
  33. year_operating_margin_begins_to_converge_to_terminal_operating_margin = ot.Uniform(1,3),
  34. additional_return_on_cost_of_capital_in_perpetuity = ot.Triangular(0.0,0.02,0.035),
  35. cash_and_non_operating_asset = ot.Uniform(1.6,1.8),
  36. asset_liquidation_during_negative_growth = ot.Uniform(0,0.000000001),
  37. current_invested_capital = ot.Uniform(5.8,6.2),
  38. sample_size= 20000,
  39. list_of_correlation_between_variables=[#### Intuitive / common sense correlations
  40. ['revenue_growth_rate_cycle3_end','risk_free_rate',.95],
  41. ['revenue_growth_rate_cycle3_end','terminal_pretax_cost_of_debt',.9],
  42. ['terminal_pretax_cost_of_debt','risk_free_rate',.9],
  43. ### valuation specific correlation
  44. ['ERP','revenue_growth_rate_cycle2_begin',.4],
  45. ['ERP','revenue_growth_rate_cycle2_end',.4],
  46. ['ERP','revenue_growth_rate_cycle3_begin',.4],
  47. ['additional_return_on_cost_of_capital_in_perpetuity','terminal_sales_to_capital_ratio',0.25],
  48. ['additional_return_on_cost_of_capital_in_perpetuity','terminal_operating_margin',.5],
  49. ['terminal_sales_to_capital_ratio','terminal_operating_margin',.3],
  50. ]
  51. )
  52.  
Advertisement
Add Comment
Please, Sign In to add comment