-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
d471568
commit 0810e81
Showing
29 changed files
with
717 additions
and
0 deletions.
There are no files selected for viewing
35 changes: 35 additions & 0 deletions
35
obs_files/asignaturas/valoracion_empresas/excel_handler.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
import pandas as pd | ||
import openpyxl | ||
import logging | ||
|
||
logging.basicConfig(level=logging.INFO) | ||
|
||
def read_excel_sheets_to_csv(file_path: str) -> None: | ||
""" | ||
Read all sheets of an Excel file and export each sheet to a separate CSV file. | ||
Args: | ||
file_path (str): The path to the Excel file. | ||
""" | ||
try: | ||
# Load the Excel file and extract sheet names | ||
excel_data = pd.ExcelFile(file_path, engine='openpyxl') | ||
sheet_names = excel_data.sheet_names | ||
|
||
# Loop through each sheet and export it to a CSV file | ||
for sheet_name in sheet_names: | ||
df = pd.read_excel(file_path, sheet_name=sheet_name, engine='openpyxl') | ||
csv_file_name = f"{sheet_name.replace(' ', '_')}.csv" # Create CSV file name | ||
df.to_csv(csv_file_name, index=False) | ||
logging.info(f"Exported sheet '{sheet_name}' to {csv_file_name}") | ||
except Exception as e: | ||
logging.error(f"Error processing Excel file: {e}") | ||
|
||
def main(): | ||
excel_file_path = 'obs_files/asignaturas/valoracion_empresas/Pista Evaluación final.xlsx' # Replace with your Excel file path | ||
read_excel_sheets_to_csv(excel_file_path) | ||
|
||
|
||
if __name__ == "__main__": | ||
main() | ||
|
187 changes: 187 additions & 0 deletions
187
obs_files/asignaturas/valoracion_empresas/final_vinatea.ipynb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,187 @@ | ||
{ | ||
"cells": [ | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"# WACC" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 12, | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"name": "stdout", | ||
"output_type": "stream", | ||
"text": [ | ||
"WACC: 0.04\n", | ||
"Costo de Financiación 0.13\n" | ||
] | ||
} | ||
], | ||
"source": [ | ||
"def calculate_wacc():\n", | ||
" # Aqui calculo el wacc, con los datos del problema\n", | ||
" Rf = 0.035 # Tasa libre de riesgo (3.5%)\n", | ||
" beta = 2.14 # Beta\n", | ||
" market_risk_premium = 0.0435 # Prima del mercado (4.35%)\n", | ||
" cost_of_debt = 0.036 # Costo de la deuda (3.6%)\n", | ||
" tax_rate = 0.30 # Tipo impositivo (30%)\n", | ||
" \n", | ||
" # Valores de Mercado\n", | ||
" equity_value = 1_000_000 * 1.22 # Patrimonio (1 millón de acciones * $1.22/Accion)\n", | ||
" debt_value = 6_300_000 + 4_500_000 # Deuda total (L/P + C/P)\n", | ||
" total_value = equity_value + debt_value # Valor del patrimonio neto \n", | ||
"\n", | ||
" # Costo de financiación usando CAPM\n", | ||
" cost_of_equity = Rf + beta * market_risk_premium\n", | ||
"\n", | ||
" # Formula del WACC\n", | ||
" wacc = (equity_value / total_value) * cost_of_equity + (debt_value / total_value) * cost_of_debt * (1 - tax_rate)\n", | ||
" \n", | ||
" return wacc, cost_of_equity\n", | ||
"\n", | ||
"print(f\"WACC: {wacc:,.2f}\") # Obtenemos el WACC\n", | ||
"print (f\"Costo de Financiación {cost_of_equity:,.2f}\") # Obtenemos el costo de financiación " | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"# DCF" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 10, | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"name": "stdout", | ||
"output_type": "stream", | ||
"text": [ | ||
"Valor de Negocio: $930,534,884.04\n" | ||
] | ||
} | ||
], | ||
"source": [ | ||
"def dcf_valuation():\n", | ||
" # Datos del Ejercicio\n", | ||
" sales = [42_500_000] # Ventas Iniciales\n", | ||
" sales_growth = [0.06, 0.06, 0.05, 0.04, 0.04] # Incremento de las ventas en 5 años\n", | ||
" gross_margin = [0.52, 0.52, 0.52, 0.45, 0.45] # Incremento del margen bruto\n", | ||
" personnel_reduction = 700_000 # Reducción en los costos de mano de obra\n", | ||
" personnel_growth = 0.03 # Incremento del costo de trabajo después del tercer año\n", | ||
" capex_percent = [0.07, 0.07, 0.06, 0.06, 0.06] # CAPEX en % de ventas\n", | ||
" working_capital_percent = 0.15 # Estimativa de cambio en el working capital\n", | ||
" wacc, _ = calculate_wacc() # WACC obtenido antes\n", | ||
" terminal_growth = 0.015 # Ritmo de crecimiento de los perpetuos\n", | ||
"\n", | ||
" # Proyección de ventas y EBITDA\n", | ||
" for i in range(1, 6):\n", | ||
" new_sales = sales[-1] * (1 + sales_growth[i-1])\n", | ||
" sales.append(new_sales)\n", | ||
"\n", | ||
" # Computo EBITDA, CAPEX, y flujos de caja libre\n", | ||
" free_cash_flows = []\n", | ||
" for i in range(5):\n", | ||
" ebitda = sales[i] * gross_margin[i]\n", | ||
" capex = sales[i] * capex_percent[i]\n", | ||
" free_cash_flow = ebitda - capex \n", | ||
" free_cash_flows.append(free_cash_flow)\n", | ||
"\n", | ||
" # Calculo los perpetuos\n", | ||
" terminal_value = free_cash_flows[-1] * (1 + terminal_growth) / (wacc - terminal_growth)\n", | ||
"\n", | ||
" # Calculato el valor presente de los flujos de caja futuros\n", | ||
" npv = sum(fcf / ((1 + wacc) ** (i + 1)) for i, fcf in enumerate(free_cash_flows))\n", | ||
" npv_terminal_value = terminal_value / ((1 + wacc) ** 5)\n", | ||
"\n", | ||
" # Valor de Negocio es equivalente al Valor presente de los FCF + Valor Presente de los perpetuos\n", | ||
" business_value = npv + npv_terminal_value\n", | ||
"\n", | ||
" return business_value\n", | ||
"\n", | ||
"business_value = dcf_valuation()\n", | ||
"print(f\"Valor de Negocio: ${business_value:,.2f}\") # Obtenemos el valor del negocio\n" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"# Enunciado\n", | ||
"\n", | ||
"### 1. **Calcular el Coste de Capital (WACC)**\n", | ||
"\n", | ||
"El **WACC** ya ha sido calculado y es:\n", | ||
"\n", | ||
"$$\n", | ||
"WACC = 0.0356 = 3.56\\%\n", | ||
"$$\n", | ||
"\n", | ||
"\n", | ||
"### 2. **Valoración del Target por el Método DCF**\n", | ||
"\n", | ||
"La **Valoración del Negocio** se realiza usando el método de **Flujo de Caja Descontado (DCF)**. El valor total del negocio fue calculado:\n", | ||
"\n", | ||
"$$\n", | ||
"\\text{Valor del negocio} = \\$930,534,884.04\n", | ||
"$$\n", | ||
"\n", | ||
"Este valor refleja la suma de los flujos de caja proyectados para los próximos años, descontados al presente utilizando el WACC, más el valor terminal (valor a perpetuidad).\n", | ||
"\n", | ||
"#### Valor de las Acciones:\n", | ||
" \n", | ||
"\n", | ||
"$$\n", | ||
"\\text{Valor de las acciones} = \\frac{930,534,884.04 - 10,800,000}{1,000,000} = \\$919.73 \\, \\text{por acción}\n", | ||
"$$\n", | ||
"\n", | ||
"El nuevo valor de las acciones después de la evaluación DCF con sinergias sería de aproximadamente **$919.73 por acción**, comparado con el valor actual de **$1.22 por acción** en el mercado.\n", | ||
"\n", | ||
"### 3. **¿Deben Tenerse en Cuenta las Potenciales Sinergias en los Flujos de Caja?**\n", | ||
"\n", | ||
"**Sí**: Las sinergias representan mejoras en la eficiencia operativa o financiera como resultado de la fusión o adquisición. Estas sinergias pueden reducir los costos operativos, mejorar las ventas, o hacer que el uso de los activos sea más eficiente, lo que a su vez incrementa el valor futuro del negocio. En el caso del target, las sinergias se traducen en una reducción de costos (como personal, alquiler, servicios, etc.), lo que mejora el flujo de caja y, en última instancia, el valor empresarial.\n", | ||
"\n", | ||
"### 4. **¿Es Adecuada la Tasa de Crecimiento Perpetuo?**\n", | ||
"\n", | ||
"Esta tasa está en línea con el crecimiento esperado de la economía a largo plazo. Una tasa de crecimiento perpetuo que exceda este valor podría ser demasiado optimista, especialmente para una empresa en un mercado competitivo y maduro como el de la robótica. Además, una tasa del 1.5% se encuentra ligeramente por encima de la inflación (sin considerar los escenarios recientes), lo que es razonable para mantener el valor del dinero en el tiempo.\n", | ||
"\n", | ||
"**Máxima Tasa Sugerida**: \n", | ||
"- La máxima tasa de crecimiento perpetuo que sugeriría sería alrededor del **2%**. Esto estaría alineado con un crecimiento económico sostenido sin ser demasiado optimista ni poner en riesgo la evaluación con un crecimiento perpetuo irreal. Como expliqué en la anterior actividad, la tasa se alinea con el modelo de crecimiento de Solow, para economias maduras de largo plazo.\n", | ||
"\n", | ||
"### 5. **¿Son Suficientes las Inversiones en CAPEX para el Cálculo de la Perpetuidad?**\n", | ||
"\n", | ||
"Las inversiones en **CAPEX del 7% y luego 6% de las ventas** parecen suficientes para los primeros años, pero pueden no ser adecuadas para la perpetuidad.\n", | ||
"- En las primeras fases, el 7% y 6% de CAPEX en relación con las ventas es apropiado para una empresa que está experimentando crecimiento. Esto asegura que la empresa está invirtiendo lo suficiente en infraestructura y tecnología para mantener su posición competitiva. En el sector de robótica, si hablamos de innovación, es natural que los pioneros desfruten de crecimiento acelerado mientras la ola de replicadores se empieza a configurar, como detallado por Schumpeter.\n", | ||
" \n", | ||
"- **Para la perpetuidad**, es probable que la empresa, una vez madura, no necesite invertir tanto en CAPEX. Una tasa de CAPEX más baja en la perpetuidad (por ejemplo, 3%-4%) sería más razonable, ya que las empresas maduras tienden a reducir sus necesidades de inversión en activos fijos y enfocarse en el mantenimiento de su capacidad actual.\n" | ||
] | ||
} | ||
], | ||
"metadata": { | ||
"kernelspec": { | ||
"display_name": "obs", | ||
"language": "python", | ||
"name": "python3" | ||
}, | ||
"language_info": { | ||
"codemirror_mode": { | ||
"name": "ipython", | ||
"version": 3 | ||
}, | ||
"file_extension": ".py", | ||
"mimetype": "text/x-python", | ||
"name": "python", | ||
"nbconvert_exporter": "python", | ||
"pygments_lexer": "ipython3", | ||
"version": "3.12.5" | ||
} | ||
}, | ||
"nbformat": 4, | ||
"nbformat_minor": 2 | ||
} |
2 changes: 2 additions & 0 deletions
2
obs_files/asignaturas/valoracion_empresas/metadata/[Content_Types].xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> | ||
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="bin" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings"/><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/><Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/><Override PartName="/xl/worksheets/sheet2.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/><Override PartName="/xl/worksheets/sheet3.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/><Override PartName="/xl/theme/theme1.xml" ContentType="application/vnd.openxmlformats-officedocument.theme+xml"/><Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/><Override PartName="/xl/sharedStrings.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"/><Override PartName="/xl/drawings/drawing1.xml" ContentType="application/vnd.openxmlformats-officedocument.drawing+xml"/><Override PartName="/xl/calcChain.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml"/><Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml"/><Override PartName="/docProps/app.xml" ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml"/></Types> |
2 changes: 2 additions & 0 deletions
2
obs_files/asignaturas/valoracion_empresas/metadata/_rels/.rels
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> | ||
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/></Relationships> |
2 changes: 2 additions & 0 deletions
2
obs_files/asignaturas/valoracion_empresas/metadata/docProps/app.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> | ||
<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"><Application>Microsoft Excel</Application><DocSecurity>0</DocSecurity><ScaleCrop>false</ScaleCrop><HeadingPairs><vt:vector size="2" baseType="variant"><vt:variant><vt:lpstr>Hojas de cálculo</vt:lpstr></vt:variant><vt:variant><vt:i4>3</vt:i4></vt:variant></vt:vector></HeadingPairs><TitlesOfParts><vt:vector size="3" baseType="lpstr"><vt:lpstr>6. Datos</vt:lpstr><vt:lpstr>WACC</vt:lpstr><vt:lpstr>7.Resultado</vt:lpstr></vt:vector></TitlesOfParts><LinksUpToDate>false</LinksUpToDate><SharedDoc>false</SharedDoc><HyperlinksChanged>false</HyperlinksChanged><AppVersion>16.0300</AppVersion></Properties> |
2 changes: 2 additions & 0 deletions
2
obs_files/asignaturas/valoracion_empresas/metadata/docProps/core.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> | ||
<cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><dc:creator>Master</dc:creator><cp:lastModifiedBy>Maria Isabel Jara López</cp:lastModifiedBy><cp:lastPrinted>2023-09-14T15:56:37Z</cp:lastPrinted><dcterms:created xsi:type="dcterms:W3CDTF">2015-07-05T20:50:13Z</dcterms:created><dcterms:modified xsi:type="dcterms:W3CDTF">2024-09-10T10:41:33Z</dcterms:modified></cp:coreProperties> |
Oops, something went wrong.