From 96eccdea50613c789b5830f537f9d2c85df15fcf Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 11 Sep 2025 14:33:34 +0000 Subject: [PATCH] Extend DCF projections to 10 years and update related calculations Co-authored-by: luizeduardop --- Mining_Contractor_Valuation_Model.xlsx | Bin 15406 -> 15624 bytes R&D_Mining_Contractor_Valuation_Model.xlsx | Bin 17657 -> 18445 bytes mining_contractor_valuation_model.py | 33 +++++++++--------- updated_valuation_model.py | 37 ++++++++++++--------- 4 files changed, 39 insertions(+), 31 deletions(-) diff --git a/Mining_Contractor_Valuation_Model.xlsx b/Mining_Contractor_Valuation_Model.xlsx index d87183d7c53ece86689f80546723d67a547ccabc..813b6ee13f640ab86b5501ebc3df0fce41ee4aff 100644 GIT binary patch delta 12744 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 F{~vbISxW!_ delta 12487 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 diff --git a/R&D_Mining_Contractor_Valuation_Model.xlsx b/R&D_Mining_Contractor_Valuation_Model.xlsx index 267b82e84f5da271dd5df11a08e6590adc5b4c81..0b3989ec7ad46a021e6069f75530fb326f6e86b1 100644 GIT binary patch delta 15740 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 Tf5MdzM#7^6G9-iGU;q3+otKDl diff --git a/mining_contractor_valuation_model.py b/mining_contractor_valuation_model.py index e62afc8..fe87436 100644 --- a/mining_contractor_valuation_model.py +++ b/mining_contractor_valuation_model.py @@ -203,35 +203,36 @@ def create_dcf_valuation(writer): 'Tax Rate (%)', 'Revenue Growth Rate (Years 1-3)', 'Revenue Growth Rate (Years 4-5)', + 'Revenue Growth Rate (Years 6-10)', 'EBITDA Margin (Terminal)', 'Capex as % of Revenue', 'Working Capital as % of Revenue', 'Depreciation as % of Capex' ], - 'Value': [2.5, 12.0, 25.0, 8.0, 5.0, 15.0, 8.0, 10.0, 80.0] + 'Value': [2.5, 12.0, 25.0, 8.0, 5.0, 3.0, 15.0, 8.0, 10.0, 80.0] } - # DCF Projections (5 years) - years = ['2025', '2026', '2027', '2028', '2029', 'Terminal'] + # DCF Projections (10 years) + years = ['2025', '2026', '2027', '2028', '2029', '2030', '2031', '2032', '2033', '2034', 'Terminal'] dcf_projections = { 'Year': years, - 'Revenue': [0, 0, 0, 0, 0, 0], - 'EBITDA': [0, 0, 0, 0, 0, 0], - 'EBIT': [0, 0, 0, 0, 0, 0], - 'Taxes': [0, 0, 0, 0, 0, 0], - 'NOPAT': [0, 0, 0, 0, 0, 0], - 'Depreciation': [0, 0, 0, 0, 0, 0], - 'Capex': [0, 0, 0, 0, 0, 0], - 'Working Capital Change': [0, 0, 0, 0, 0, 0], - 'Free Cash Flow': [0, 0, 0, 0, 0, 0], - 'Discount Factor': [0, 0, 0, 0, 0, 0], - 'Present Value': [0, 0, 0, 0, 0, 0] + 'Revenue': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + 'EBITDA': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + 'EBIT': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + 'Taxes': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + 'NOPAT': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + 'Depreciation': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + 'Capex': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + 'Working Capital Change': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + 'Free Cash Flow': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + 'Discount Factor': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + 'Present Value': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] } # DCF Summary dcf_summary = { 'Metric': [ - 'Sum of PV of FCF (2025-2029)', + 'Sum of PV of FCF (2025-2034)', 'Terminal Value', 'PV of Terminal Value', 'Enterprise Value', @@ -383,7 +384,7 @@ def create_valuation_summary(writer): 'Weight (%)': [40, 30, 20, 10, 100], 'Weighted Value (R$ MM)': [0, 0, 0, 0, 0], 'Notes': [ - 'Based on 5-year projections', + 'Based on 10-year projections', 'Based on trading multiples', 'Based on transaction multiples', 'Based on asset values', diff --git a/updated_valuation_model.py b/updated_valuation_model.py index eb7be6e..1e715c9 100644 --- a/updated_valuation_model.py +++ b/updated_valuation_model.py @@ -257,21 +257,23 @@ def create_dcf_valuation(writer, annual_data): 'Tax Rate (%)', 'Revenue Growth Rate (Years 1-3)', 'Revenue Growth Rate (Years 4-5)', + 'Revenue Growth Rate (Years 6-10)', 'EBITDA Margin (Terminal)', 'Capex as % of Revenue', 'Working Capital as % of Revenue', 'Depreciation as % of Capex' ], - 'Value': [2.5, 12.0, 25.0, 5.0, 3.0, 15.0, 8.0, 10.0, 80.0] + 'Value': [2.5, 12.0, 25.0, 5.0, 3.0, 2.5, 15.0, 8.0, 10.0, 80.0] } - # DCF Projections (5 years) - starting with annualized 2025 data - years = ['2025', '2026', '2027', '2028', '2029', 'Terminal'] + # DCF Projections (10 years) - starting with annualized 2025 data + years = ['2025', '2026', '2027', '2028', '2029', '2030', '2031', '2032', '2033', '2034', 'Terminal'] # Calculate projections revenue_2025 = annual_data['Revenue'] revenue_growth_y1_3 = 0.05 # 5% revenue_growth_y4_5 = 0.03 # 3% + revenue_growth_y6_10 = 0.025 # 2.5% revenues = [ revenue_2025, @@ -279,7 +281,12 @@ def create_dcf_valuation(writer, annual_data): revenue_2025 * (1 + revenue_growth_y1_3) ** 2, revenue_2025 * (1 + revenue_growth_y1_3) ** 2 * (1 + revenue_growth_y4_5), revenue_2025 * (1 + revenue_growth_y1_3) ** 2 * (1 + revenue_growth_y4_5) ** 2, - revenue_2025 * (1 + revenue_growth_y1_3) ** 2 * (1 + revenue_growth_y4_5) ** 2 * 1.025 # Terminal + revenue_2025 * (1 + revenue_growth_y1_3) ** 2 * (1 + revenue_growth_y4_5) ** 2 * (1 + revenue_growth_y6_10), + revenue_2025 * (1 + revenue_growth_y1_3) ** 2 * (1 + revenue_growth_y4_5) ** 2 * (1 + revenue_growth_y6_10) ** 2, + revenue_2025 * (1 + revenue_growth_y1_3) ** 2 * (1 + revenue_growth_y4_5) ** 2 * (1 + revenue_growth_y6_10) ** 3, + revenue_2025 * (1 + revenue_growth_y1_3) ** 2 * (1 + revenue_growth_y4_5) ** 2 * (1 + revenue_growth_y6_10) ** 4, + revenue_2025 * (1 + revenue_growth_y1_3) ** 2 * (1 + revenue_growth_y4_5) ** 2 * (1 + revenue_growth_y6_10) ** 5, + revenue_2025 * (1 + revenue_growth_y1_3) ** 2 * (1 + revenue_growth_y4_5) ** 2 * (1 + revenue_growth_y6_10) ** 5 * 1.025 # Terminal ] ebitda_margin = 0.15 @@ -302,8 +309,8 @@ def create_dcf_valuation(writer, annual_data): for nopat, capex, wc_change in zip(nopats, capexes, wc_changes)] wacc = 0.12 - discount_factors = [1 / (1 + wacc) ** (i + 1) for i in range(5)] - discount_factors.append(1 / (1 + wacc) ** 5) # Terminal year + discount_factors = [1 / (1 + wacc) ** (i + 1) for i in range(10)] + discount_factors.append(1 / (1 + wacc) ** 10) # Terminal year present_values = [fcf * df for fcf, df in zip(free_cash_flows, discount_factors)] @@ -314,7 +321,7 @@ def create_dcf_valuation(writer, annual_data): 'EBIT': ebits, 'Taxes': taxes, 'NOPAT': nopats, - 'Depreciation': [annual_data['Total_Assets'] * depreciation_rate] * 6, + 'Depreciation': [annual_data['Total_Assets'] * depreciation_rate] * 11, 'Capex': capexes, 'Working Capital Change': wc_changes, 'Free Cash Flow': free_cash_flows, @@ -323,16 +330,16 @@ def create_dcf_valuation(writer, annual_data): } # DCF Summary - pv_fcf_5yr = sum(present_values[:5]) - terminal_value = free_cash_flows[5] / (wacc - 0.025) # 2.5% terminal growth - pv_terminal = terminal_value / (1 + wacc) ** 5 - enterprise_value = pv_fcf_5yr + pv_terminal + pv_fcf_10yr = sum(present_values[:10]) + terminal_value = free_cash_flows[10] / (wacc - 0.025) # 2.5% terminal growth + pv_terminal = terminal_value / (1 + wacc) ** 10 + enterprise_value = pv_fcf_10yr + pv_terminal net_debt = annual_data['Total_Debt'] - annual_data['Cash'] equity_value = enterprise_value - net_debt dcf_summary = { 'Metric': [ - 'Sum of PV of FCF (2025-2029)', + 'Sum of PV of FCF (2025-2034)', 'Terminal Value', 'PV of Terminal Value', 'Enterprise Value', @@ -341,7 +348,7 @@ def create_dcf_valuation(writer, annual_data): 'Shares Outstanding (MM)', 'Value per Share' ], - 'Value': [pv_fcf_5yr, terminal_value, pv_terminal, enterprise_value, net_debt, equity_value, 10, equity_value / 10] + 'Value': [pv_fcf_10yr, terminal_value, pv_terminal, enterprise_value, net_debt, equity_value, 10, equity_value / 10] } # Write to Excel @@ -541,7 +548,7 @@ def create_valuation_summary(writer, annual_data): 'Weight (%)': [40, 30, 20, 10, 100], 'Weighted Value (R$ MM)': [dcf_value * 0.4, comp_value * 0.3, precedent_value * 0.2, asset_value * 0.1, 0], 'Notes': [ - 'Based on 5-year projections', + 'Based on 10-year projections', 'Based on trading multiples', 'Based on transaction multiples', 'Based on asset values', @@ -593,7 +600,7 @@ def create_sensitivity_analysis(writer, annual_data): for growth in growth_scenarios: # Simplified DCF calculation terminal_value = base_ebitda * (1 + growth/100) / (wacc/100 - growth/100) - dcf_value = terminal_value / (1 + wacc/100) ** 5 + dcf_value = terminal_value / (1 + wacc/100) ** 10 sensitivity_data.append({ 'WACC (%)': wacc,