Initial commit: Horux Strategy Platform

- Laravel 11 backend with API REST
- React 18 + TypeScript + Vite frontend
- Multi-parser architecture for accounting systems (CONTPAQi, Aspel, SAP)
- 27+ financial metrics calculation
- PDF report generation with Browsershot
- Complete documentation (10 documents)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-31 22:24:00 -06:00
commit 4c3dc94ff2
107 changed files with 10701 additions and 0 deletions

232
docs/08-metricas.md Normal file
View File

@@ -0,0 +1,232 @@
# 8. Métricas Financieras
## Resumen
El sistema calcula **27+ métricas financieras** organizadas en 6 categorías:
| Categoría | # Métricas |
|-----------|------------|
| Márgenes | 7 |
| Retorno | 4 |
| Eficiencia | 6 |
| Liquidez | 3 |
| Solvencia | 3 |
| Gestión | 4 |
---
## Estados Financieros Base
### Balance General
```
ACTIVOS
├── Activos Circulantes
│ ├── Efectivo
│ ├── Cuentas por Cobrar
│ └── Inventarios
├── Activos No Circulantes
│ ├── Propiedad, Planta y Equipo
│ └── Activos Intangibles
└── TOTAL ACTIVOS
PASIVOS
├── Pasivo Circulante
│ ├── Cuentas por Pagar
│ └── Deuda Corto Plazo
├── Pasivo No Circulante
│ └── Deuda Largo Plazo
└── TOTAL PASIVOS
CAPITAL
├── Capital Social
├── Utilidades Retenidas
└── TOTAL CAPITAL
TOTAL PASIVOS + CAPITAL = TOTAL ACTIVOS
```
### Estado de Resultados
```
Ingresos
(-) Costo de Venta
= Utilidad Bruta
(-) Gastos Operativos
= Utilidad Operativa (EBIT)
(-) Otros Gastos
(-) Gastos Financieros
= Utilidad Antes de Impuestos (EBT)
(-) Impuestos
= UTILIDAD NETA
```
### Flujo de Efectivo (Método Indirecto)
```
FLUJO DE OPERACIÓN
Utilidad Neta
+ Depreciación
- Cambios en Capital de Trabajo
FLUJO DE INVERSIÓN
- Adquisición de Activos Fijos
+ Venta de Activos
FLUJO DE FINANCIAMIENTO
+ Nueva Deuda
- Pago de Deuda
+ Aportaciones de Capital
- Dividendos
= FLUJO NETO
```
---
## Métricas por Categoría
### 1. Márgenes
| Métrica | Fórmula | Interpretación |
|---------|---------|----------------|
| **Margen Bruto** | Utilidad Bruta / Ingresos | Rentabilidad después de costos directos |
| **Margen EBITDA** | EBITDA / Ingresos | Rentabilidad operativa antes de D&A |
| **Margen Operativo** | EBIT / Ingresos | Rentabilidad operativa |
| **Margen Neto** | Utilidad Neta / Ingresos | Rentabilidad final |
| **Margen NOPAT** | NOPAT / Ingresos | Utilidad operativa después de impuestos |
| **Margen OCF** | Flujo Operación / Ingresos | Generación de efectivo operativo |
| **Margen FCF** | Flujo Libre / Ingresos | Efectivo disponible |
Donde:
- EBITDA = EBIT + Depreciación + Amortización
- NOPAT = EBIT × (1 - Tasa Impuestos)
- FCF = Flujo Operación - CapEx
### 2. Retorno
| Métrica | Fórmula | Interpretación |
|---------|---------|----------------|
| **ROIC** | NOPAT / Capital Invertido | Retorno sobre capital invertido |
| **ROE** | Utilidad Neta / Capital | Retorno para accionistas |
| **ROA** | Utilidad Neta / Activo Total | Eficiencia de activos |
| **ROCE** | EBIT / Capital Empleado | Retorno sobre capital empleado |
Donde:
- Capital Invertido = Activo Total - Pasivo Circulante
- Capital Empleado = Activo Total - Pasivo Circulante
### 3. Eficiencia
| Métrica | Fórmula | Interpretación |
|---------|---------|----------------|
| **Asset Turnover** | Ingresos / Activo Total | Rotación de activos |
| **Inventory Turnover** | Costo Venta / Inventario | Rotación de inventario |
| **Días Clientes** | (Clientes / Ingresos) × 365 | Días para cobrar |
| **Días Proveedores** | (Proveedores / Costo) × 365 | Días para pagar |
| **Días Inventario** | (Inventario / Costo) × 365 | Días de inventario |
| **Ciclo Conversión** | Días Clientes + Días Inv. - Días Prov. | Ciclo de efectivo |
### 4. Liquidez
| Métrica | Fórmula | Interpretación |
|---------|---------|----------------|
| **Current Ratio** | Activo Circ. / Pasivo Circ. | Capacidad de pago corto plazo |
| **Quick Ratio** | (Activo Circ. - Inv.) / Pasivo Circ. | Liquidez sin inventario |
| **Cash Ratio** | Efectivo / Pasivo Circ. | Liquidez inmediata |
### 5. Solvencia
| Métrica | Fórmula | Interpretación |
|---------|---------|----------------|
| **Net Debt/EBITDA** | (Deuda - Efectivo) / EBITDA | Años para pagar deuda |
| **Interest Coverage** | EBITDA / Gastos Financieros | Cobertura de intereses |
| **Debt Ratio** | Deuda Total / Activo Total | Apalancamiento |
### 6. Gestión
| Métrica | Fórmula | Interpretación |
|---------|---------|----------------|
| **Revenue Growth** | (Ingreso Actual - Anterior) / Anterior | Crecimiento de ventas |
| **Key Score** | Crec. Ingreso 12m + Margen EBITDA 12m | Score compuesto |
| **CapEx/Revenue** | CAPEX / Ingresos | Inversión en activos |
| **Effective Tax Rate** | Impuestos / EBT | Tasa impositiva efectiva |
---
## Sistema de Semáforos
Cada métrica se evalúa contra umbrales para determinar su "tendencia":
| Tendencia | Color | Significado |
|-----------|-------|-------------|
| muy_positivo | Verde oscuro | Excelente desempeño |
| positivo | Verde claro | Buen desempeño |
| neutral | Amarillo | Desempeño aceptable |
| negativo | Naranja | Área de atención |
| muy_negativo | Rojo | Área crítica |
### Ejemplo de umbrales (Margen Neto):
| Tendencia | Umbral |
|-----------|--------|
| muy_positivo | ≥ 20% |
| positivo | ≥ 10% |
| neutral | ≥ 5% |
| negativo | ≥ 2% |
| muy_negativo | < 2% |
### Umbrales por Giro
Los umbrales pueden personalizarse por industria. Por ejemplo, hotelería puede tener diferentes expectativas de margen que manufactura.
---
## Comparativos
Para cada métrica se calculan:
| Comparativo | Descripción |
|-------------|-------------|
| Valor Actual | Valor del periodo actual |
| Periodo Anterior | Valor del periodo inmediato anterior |
| Variación Absoluta | Diferencia numérica |
| Variación % | Cambio porcentual |
| Promedio 3 Periodos | Media de últimos 3 periodos |
| Mismo Periodo Año Anterior | Para comparación interanual |
---
## Implementación
```php
// CalculadorMetricas.php
public function calcular(Reporte $reporte): array
{
// 1. Calcular estados financieros por periodo
foreach ($balanzas as $balanza) {
$periodos[] = [
'periodo' => $balanza->periodo_fin,
'balance_general' => $this->calcularBalanceGeneral($balanza),
'estado_resultados' => $this->calcularEstadoResultados($balanza),
];
}
// 2. Calcular métricas del último periodo
$metricas = $this->calcularTodasLasMetricas($ultimoPeriodo);
// 3. Calcular comparativos
$comparativos = $this->calcularComparativos($periodos, $metricas);
// 4. Calcular flujo de efectivo
$flujoEfectivo = $this->calcularFlujoEfectivo($periodos);
return [
'periodos' => $periodos,
'metricas' => $metricas,
'comparativos' => $comparativos,
'flujo_efectivo' => $flujoEfectivo,
];
}
```