# Base de Conocimiento: Patrones DAX Validados (Test 20-03-2026)

Este documento contiene las fórmulas corregidas y patrones DAX confirmados tras la validación del archivo `resultados_test_lhia_agrotaPaul20-03-2026`. El asistente DEBE priorizar estas medidas precalculadas sobre el cálculo manual de columnas.

## 1. Talento Humano (Nómina y Eficiencia)

### Medidas Críticas Confirmadas:
- **Costo Total Real**: Usa siempre `[CostoTotalEmpleado-Historico]`.
  - *Composición*: Sueldos + Comisiones + Décimos + Fondos Reserva + Aporte Patrono + Vacaciones + Beneficios.
- **Peso del Rol sobre Ventas**: `[CostoTotalEmpleado-Historico] / [VentaSinFiltro Areas]`
- **Peso del Rol sobre Utilidad Bruta**: `[CostoTotalEmpleado-Historico] / [Utilidad Bruta sin filtro]`
- **Costo Presupuestado**: `[CostoTotalEmpleado-Presupuestado]`
- **Cumplimiento de Presupuesto (Costo)**: `[% Costo real/presup]`

### Patrones de Consulta:
- **¿Cuál es el costo de personal de [Mes]?**
  ```dax
  EVALUATE ROW("Costo Personal", CALCULATE([CostoTotalEmpleado-Historico], 'Calendario'[Año] = 2026, 'Calendario'[Mes] = "FEBRERO"))
  ```
- **Comparativa de Peso del Rol (MoM):**
  ```dax
  EVALUATE ROW(
      "Peso actual", CALCULATE([%PesoEmpleado/UB-historico], 'Calendario'[Año] = 2026, 'Calendario'[Mes] = "FEBRERO"),
      "Peso anterior", CALCULATE([%PesoEmpleado/UB-historico], 'Calendario'[Año] = 2026, 'Calendario'[Mes] = "ENERO")
  )
  ```

---

## 2. Gestión y Cartera

### Medidas Críticas Confirmadas:
- **Saldo Total de Cuentas por Cobrar**: `[Saldo_total2]`
  - *Fórmula*: `SUM(Saldo_clientes[Saldo])`
- **Cartera Total (V2)**: `[Cartera Total]`
  - *Fórmula*: `[Saldo_total2] + [Cartera_documentada_v2]`
- **Cartera Documentada (Activa)**: `[Cartera_documentada_v2]`
  - *Fórmula*: `[Cartera_documentada_MAQ_v2] + [Cartera_documentada_QUIMI_v2]` 
  - *Nota*: Filtra cheques con `FechaDocumentoPagoDetalle >= TODAY()`.
- **Valor Recuperado (Pagos)**: `[Pagos_total]`
- **Porcentaje de Recuperación**: `DIVIDE([Pagos_total], [Saldo_total2], 0)`
- **Días Promedio de Cobro**: `DIVIDE([Saldo_total2], [Pagos_total], 0)`
- **Cartera Vencida**: `[Total Vencido]`
- **Peso Cartera Vencida**: `[% Cartera Vencida]`
- **RCC (Rotación)**: Debe obtenerse SIEMPRE mediante el cálculo explícito: `DIVIDE([Cartera Total] * 365, [Ventas 365 Dias], 0)`. NUNCA uses la variable `[RCC2]`. **NOTA:** No existe historial de RCC para fechas anteriores.

### Patrones de Consulta:
- **¿Cuánto hemos recuperado este mes?**
  ```dax
  EVALUATE ROW("Valor Recuperado", [Pagos_total])
  ```
- **Días de cobranza:**
  ```dax
  EVALUATE ROW("Días Cobro", DIVIDE([Saldo_total2], [Pagos_total], 0))
  ```

---

## 3. Patrones "Certeros" Confirmados (Test 25-03-2026)
Tras la validación del archivo `resultados_test_lhia_agrota25-03-2026cartera.xlsx`, se establecen las siguientes fórmulas como definitivas para la operación:

- **Saldo en Libros (Base)**: `[Saldo_total2]`
- **Valor Recuperado (Efectivo)**: `[Pagos_total]`
- **Peso del Rol sobre Ventas**: `DIVIDE([CostoTotalEmpleado-Historico], [VentaSinFiltro Areas], 0)`
- **Peso del Rol sobre UB**: `[%PesoEmpleado/UB-historico]`
- **Venta Divisional (Agroquímicos)**: `CALCULATE(SUM(Ventas[precio]), 'Historico_NominaRol'[departamento] = "AGROQUIMICOS")`
- **Venta Divisional (Maquinaria)**: `CALCULATE(SUM(Ventas[precio]), 'Historico_NominaRol'[departamento] = "MAQUINARIA")`

---

## 4. Ventas y Utilidad Bruta (UB vs Presupuesto)

### Medidas Críticas Confirmadas:
- **Ventas**: `[Venta]` (Evita `SUM(Ventas[PrecioVenta])`, usa la medida que ya maneja descuentos/cantidades).
- **Utilidad Bruta**: `[Utilidad Bruta]`
- **Margen %**: `[Margen%]`
- **Costo de Ventas**: `[CostodeVentas]`

### Patrones de Consulta:
- **Comparativa Crecimiento (MoM):**
  ```dax
  EVALUATE ROW(
      "Venta Marzo", CALCULATE([Venta], 'Calendario'[Año] = 2026, 'Calendario'[Mes] = "MARZO"),
      "Venta Febrero", CALCULATE([Venta], 'Calendario'[Año] = 2026, 'Calendario'[Mes] = "FEBRERO"),
      "Crecimiento %", DIVIDE(CALCULATE([Venta], 'Calendario'[Año] = 2026, 'Calendario'[Mes] = "MARZO") - CALCULATE([Venta], 'Calendario'[Año] = 2026, 'Calendario'[Mes] = "FEBRERO"), CALCULATE([Venta], 'Calendario'[Año] = 2026, 'Calendario'[Mes] = "FEBRERO"))
  )
  ```

---

## 🚨 Notas de Implementación:
1. **Nombres de Clientes**: Usa siempre `Clientes_BI[ApellidosNombres_Cliente]`.
2. **Mayúsculas en Meses**: En el tablero de Talento Humano, los meses en `Calendario[Mes]` suelen estar en **MAYÚSCULAS**. En UB vs Presupuesto están en **minúsculas**.
3. **RCC**: No segmentar por tiempo; es un dato acumulado de 365 días móvil (snapshot actual). ACLARAR al usuario que no existe registro histórico de periodos previos.
