Skip to content

Commit

Permalink
nuevo contenido del modulo
Browse files Browse the repository at this point in the history
  • Loading branch information
luisvinatea committed Sep 17, 2024
1 parent d471568 commit 0810e81
Show file tree
Hide file tree
Showing 29 changed files with 717 additions and 0 deletions.
35 changes: 35 additions & 0 deletions obs_files/asignaturas/valoracion_empresas/excel_handler.py
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 obs_files/asignaturas/valoracion_empresas/final_vinatea.ipynb
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
}
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>
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>
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>
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>
Loading

0 comments on commit 0810e81

Please sign in to comment.