# Base de Conocimiento: Tablero "UB vs Presupuesto"
1. Propósito del Tablero
El tablero "UB vs Presupuesto" es una herramienta analítica diseñada para monitorear el rendimiento comercial y financiero de la empresa. Su objetivo principal es comparar las ventas y la Utilidad Bruta (UB) reales contra los Presupuestos (Comercial y Financiero) establecidos. **NOTA IMPORTANTE:** Actualmente los datos de presupuestos/metas no han sido cargados en el tablero; la comparación contra metas estará disponible en una actualización posterior.

2. Arquitectura del Modelo de Datos
El modelo está construido bajo un esquema de estrella (Star Schema) optimizado para Power BI, separando los eventos transaccionales (Hechos) de los catálogos descriptivos (Dimensiones).

2.1 Tablas de Hechos (Fact Tables)
Son las tablas que almacenan las métricas transaccionales diarias.

Ventas: Es la tabla principal del rendimiento real. Contiene el detalle a nivel de factura/producto.

Columnas Clave: CodigoFactura, FechaFactura, Cantidad, Costo, PrecioVenta, PrecioVentaProducto.

Llaves foráneas: CodigoProducto, CodigoCliente, CodigoEmpleado, CodigoLinea, CodigoCategoria.

PresupuestosVentas: Almacena las metas u objetivos definidos por la empresa.

Columnas Clave: Fecha, PRESUPUESTO DE VENTAS.

Llaves foráneas: CodigoEmpleado, CodigoPresupuesto.

2.2 Tablas de Dimensiones (Dimension Tables)
Son las tablas que permiten filtrar, segmentar y agrupar los datos.

Calendario: Fundamental para el análisis de "Inteligencia de Tiempo" (Acumulados, comparativas de Año Anterior - AA).

Niveles: Año, Mes, MesNumero, Trimestre, Semana del año, Día.

MarcaLineaCategoria: Jerarquía de productos.

Niveles: Marca > Grupo > Linea > Categoria > TipoProducto > Descripcion (Producto).

Clientes: Información demográfica y comercial de los compradores.

Atributos: Cliente, Canal Cliente, Tipo Cliente Canal, Pais, Provincia, Cantón, CalificacionPago.

Empleados: Estructura de la fuerza de ventas y personal.

Atributos: Empleado, Division, Canal, Zona, Cargo, Jefe Inmediato.

3. Diccionario de Métricas Principales (Medidas DAX)
Para evaluar la Utilidad Bruta (UB) frente al Presupuesto, el modelo cuenta con múltiples medidas calculadas predefinidas. 
**REGLA CRÍTICA:** Estas son MEDIDAS (Measures) de DAX ya existentes, NO columnas. Al generar consultas, DEBES usarlas exactamente con corchetes, ej: `[Utilidad Bruta]`, `[Venta]`. ¡No intentes calcularlas usando SUM de otras columnas!

💰 Métricas de Desempeño Real (Tabla Ventas)
Venta: El total de ingresos generados por las transacciones. 
**(Usa la columna `SUM('Ventas'[PrecioVenta])` para montos o `SUM('Ventas'[Cantidad])` para unidades si te piden calcular manualmente. NO USES 'VentaNeta')**

Utilidad Bruta (ub): El margen en moneda (Ingresos netos menos el costo de los productos vendidos). 
**(Usa ESTRICTAMENTE la medida `[Utilidad Bruta]`. NUNCA inventes columnas como `CostoTotal` o sumas directas.)**

Costos o Costo de Ventas: Valor de adquisición o producción.
**(Usa la suma `SUM('Ventas'[Costo])` o resta `([Venta] - [Utilidad Bruta])` cuando se pida analizar el costo, y `DIVIDE(SUM('Ventas'[Costo]), [Venta])` para el Margen o Porcentaje de Costo sobre Ventas.)**

Margen% / Margen%Acum: El porcentaje de rentabilidad sobre la venta.

UnidadesVendidas / Kilo/Litros: Volúmenes de salida de inventario.

Comparativas de Tiempo:

VentaAA / UBAA: Ventas y Utilidad Bruta del Año Anterior (AA) en el mismo periodo.

%CreciVenta / %CreciUB: Porcentaje de crecimiento frente al año anterior.

AcumUB / AcumVenta: Valores acumulados hasta la fecha (YTD).

🎯 Métricas de Meta y Cumplimiento (Tabla PresupuestosVentas)
PresuFinanciero: La meta monetaria oficial para la empresa a nivel financiero.

PresuComercial: La meta operativa exigida a la fuerza de ventas.

KPIs de Cumplimiento:

%CumpliPresuFinanciero: [Utilidad Bruta o Venta] / [PresuFinanciero]. Mide si se alcanzó el objetivo financiero.

%CumpliPresuComercial: Mide el esfuerzo de ventas contra el presupuesto operativo.

%AcumCumpliPresuFianciero: Cumplimiento acumulado en lo que va del año/mes.

7. **KPIs DETENIDOS:** Actualmente, todas las medidas de cumplimiento (`%CumpliPresuFinanciero`, `%CumpliPresuComercial`, etc.) devolverán valores vacíos o nulos debido a que la tabla de metas aún no contiene datos reales. No utilizar estos indicadores hasta nueva orden.

4. Casos de Uso Comunes y Capacidades Analíticas
Gracias a las relaciones del modelo, los usuarios del tablero pueden responder a las siguientes preguntas de negocio:

Análisis de Rentabilidad por Vendedor:

¿Qué vendedor (filtrando por Empleados'[Empleado]) generó mayor Utilidad Bruta en el mes actual?

¿Cuál es el %CumpliPresuComercial de la Zona Norte frente a la Zona Sur?

Rendimiento de Productos:

Cruzando la Utilidad Bruta con la dimensión MarcaLineaCategoria, se puede visualizar qué Línea o Marca tiene el mayor Margen%.

Tendencias Temporales:

Usando la dimensión Calendario, se grafica la curva de AcumVenta vs AcumPresuComercial para detectar desviaciones a mediados de mes.

Análisis Geográfico y de Canal:

Evaluación de la rentabilidad según la provincia o el Canal de Cliente (ej. Mayoristas vs Detallistas).

5. Mantenimiento y Actualización de Datos
Granularidad de Datos: Las ventas se registran a nivel diario por factura, mientras que el presupuesto suele estar a nivel mensual por vendedor.

Orígenes Físicos: Los datos provienen de un archivo Excel unificado (ej. Datos tablero 1 presupuestos (3).xlsx), por lo que las tablas de catálogo y de registro deben mantener la integridad de códigos (CodigoProducto, CodigoEmpleado, CodigoCliente).

6. Reglas Estrictas para Generación de DAX
1. **Abreviaturas y Expresiones:** 
   - `ub` = Utilidad Bruta
   - `rcc` = Recuperación de Cuentas por Cobrar (Solo disponible en el Tablero de Cartera, NO aquí).
2. **Uso de Medidas vs Columnas:** Siempre utiliza las medidas pre-calculadas como `[Utilidad Bruta]` o `[PresuFinanciero]`. Para ventas, SI PUEDES usar `SUM('Ventas'[PrecioVenta])` porque esa columna SÍ existe. NUNCA intentes sumar columnas base como `SUM('Ventas'[VentaNeta])` o `SUM('Ventas'[CostoTotal])`.
3. **Estructura de la Consulta Exitosa:** Este es el formato EXACTO comprobado en tu API REST para consultar y ordenar datos con `SUMMARIZECOLUMNS`:
   ```dax
   EVALUATE SUMMARIZECOLUMNS(
       'MarcaLineaCategoria'[Categoria], 
       "Total Cantidad", SUM('Ventas'[Cantidad]), 
       "Total Ventas ($)", SUM('Ventas'[PrecioVenta])
   ) ORDER BY SUM('Ventas'[PrecioVenta]) DESC
   ```
4. **Filtros de Meses (CRÍTICO):** NUNCA compares la columna de texto `'Calendario'[Mes]` con la función `MONTH()` porque arrojará error de Text vs Integer (`DAX comparison operations do not support comparing values of type Text with values of type Integer`). SIEMPRE usa la columna `'Calendario'[MesNumero]`.
   - Ejemplo para obtener la Venta del mes actual de forma correcta:
     `EVALUATE ROW("Total Venta", CALCULATE([Venta], 'Calendario'[MesNumero] = MONTH(TODAY()), 'Calendario'[Año] = YEAR(TODAY())))`
   - Ejemplo para obtener la Utilidad Bruta del mes anterior de forma correcta:
     `EVALUATE ROW("Total UB Mes Anterior", CALCULATE([Utilidad Bruta], 'Calendario'[MesNumero] = MONTH(EOMONTH(TODAY(), -1)), 'Calendario'[Año] = YEAR(EOMONTH(TODAY(), -1))))` 
5. **Rechazo de Preguntas Fuera de Contexto (CRÍTICO):** Las siguientes métricas financieras o conceptos **NO EXISTEN** en este modelo de datos bajo ninguna circunstancia:

   SI EL USUARIO PREGUNTA POR CUALQUIERA DE ESTOS TÉRMINOS, **DEBES** rechazar la pregunta inmediatamente usando `DIRECT_RESPONSE:`. Explícale que este tablero ('UB vs Presupuesto') analiza exclusivamente Ventas, Costos, Utilidad Bruta y Presupuesto Comercial, y que esos otros indicadores pertenecen a otros tableros corporativos (como Cartera o Nómina) o directamente no están en PowerBI. **NUNCA intentes inventar código DAX para lo que no existe.**
