Luis Mendoza

Visualizando la rentabilidad multitienda

Visualizando la rentabilidad multitienda
Power BI Report
Report powered by Power BI

Click Para visualizar reporte


Un escenario ficticio construido con lógica y herramientas reales

Este proyecto nace como una simulación profesional: una empresa minorista con dos tiendas físicas quiere entender cuál es más rentable, por qué, y cómo optimizar su operación diaria.

Aunque los datos utilizados son completamente sintéticos, la arquitectura, el enfoque y la lógica son totalmente aplicables a un caso real.


Escenario

Imaginemos que trabajas en operaciones o analítica de una empresa de retail con múltiples tiendas. El área comercial te lanza una pregunta concreta:

“¿Cuál tienda está funcionando mejor y qué deberíamos hacer al respecto?”

Esa pregunta detona un análisis que va más allá del volumen de ventas: incluye márgenes, eficiencia por día, desempeño de vendedores, rotación de stock, proveedores, devoluciones y más.


Objetivo del ejercicio

Crear un dashboard que permita, en este contexto simulado:

  • Comparar rentabilidad diaria e histórica entre tiendas.
  • Identificar productos, marcas y proveedores de mayor y menor retorno.
  • Visualizar el rendimiento de los vendedores.
  • Detectar oportunidades para optimizar la asignación de personal y stock.
  • Automatizar la actualización de datos en Power BI Service, sin necesidad de configurar el Gateway Personal.

Arquitectura implementada

La solución técnica se diseñó pensando en simplicidad, escalabilidad y autonomía:

Extracción de datos
Se parte de una API simulada (como la de un ERP real) que alimenta una base de datos MySQL.

Automatización
Un script PHP genera diariamente un archivo CSV con los datos relevantes. Este se ejecuta diariamente gracias a un cronjob.

Almacenamiento
El CSV es subido vía FTP a un servidor EC2 de AWS, accesible por URL directa.

Transformación (ETL)
Se realiza en Power Query, con limpieza de campos vacíos, normalización de proveedores y validación de fechas.

Visualización
Power BI Desktop para el diseño, y Power BI Service como entorno de publicación, con actualización automática del dataset desde el FTP. Esto permite eliminar la necesidad de tener un ordenador encendido permanentemente usando el Gateway Personal.


Modelo de datos

El modelo en Power BI se estructuró bajo una lógica de estrella, optimizando la consulta y navegación. Se definieron relaciones limpias entre hechos y dimensiones, permitiendo análisis cruzado por fecha, proveedor, producto y tienda sin ambigüedades.

Las relaciones entre ventas, stock, proveedores y calendario fueron planteadas de forma directa, activas, y con claves simples, facilitando el uso de medidas DAX eficientes y visualizaciones reactivas.


Medidas utilizadas en el modelo (bloque completo)

Beneficio Store 1 = 
CALCULATE(
    SUM('Ventas Tienda'[BeneficioNeto]), 
    'Ventas Tienda'[location] = "Store 1"
)

Beneficio Store 2 = 
CALCULATE(
    SUM('Ventas Tienda'[BeneficioNeto]), 
    'Ventas Tienda'[location] = "Store 2"
)

BeneficioNeto = 
IF(
    'Ventas Tienda'[SoldUnits] < 0, 
    0, 
    'Ventas Tienda'[BeneficioBruto] - 'Ventas Tienda'[IVACobrado]
)

Ranking_Actual_Vendedor = 
VAR Ranking = RANKX(
    ALLSELECTED('Ventas Tienda'[shipping_method]), 
    CALCULATE(SUM('Ventas Tienda'[BeneficioNeto])), 
    , 
    DESC, 
    DENSE
)
VAR Medalla = SWITCH(
    Ranking,
    1, "🥇",
    2, "🥈",
    3, "🥉",
    ""
)
RETURN 
    Medalla & " " & Ranking

refunds_tienda = 
COALESCE(
    CALCULATE(
        SUM('Ventas Tienda'[SoldUnits]),
        FILTER(
            'Ventas Tienda', 
            'Ventas Tienda'[type] = "Refund" &&
            'Ventas Tienda'[Marketplace] = "Tienda" &&
            'Ventas Tienda'[SalesChannel] = "Tienda"
        )
    ),
    0
)

Estas medidas, junto con un modelo tabular bien estructurado y una arquitectura automatizada, permiten responder en segundos preguntas clave para la operación diaria.


Componentes del dashboard

El tablero presenta de forma clara y accionable:

  • Rentabilidad diaria y acumulada por tienda.
  • Top productos por unidades, margen y beneficio.
  • Ranking de vendedores por beneficio generado.
  • Análisis de stock inicial vs vendido.
  • Comparativo de marcas y proveedores.
  • Visualización de devoluciones y ajustes.

Todo puede filtrarse por tienda, categoría, fecha y proveedor.


Resultados obtenidos en la simulación

Al analizar este conjunto de datos sintéticos, se simulan decisiones que una empresa real podría tomar:

  • Una tienda muestra mejor desempeño en unidades, pero con productos de margen bajo. Se sugiere revisar el mix comercial.
  • Se detecta una vendedora con desempeño sobresaliente en términos de beneficio. Esto permite pensar en replicar sus prácticas o generar programas de mentoría interna.
  • Marcas específicas presentan un retorno superior al promedio. Se sugiere priorizarlas en stock, campañas y vitrinas.
  • Ciertos días presentan déficit de personal en una tienda, mientras que la otra tiene capacidad. Se propone reorganizar turnos.

Valor del ejercicio

Este proyecto muestra cómo una solución automatizada, sostenible y orientada al análisis de negocio puede construirse con herramientas accesibles y un enfoque claro.

No es un ejemplo decorativo. Es un caso técnico, funcional y estratégico de cómo resolver un problema común en retail multitienda, usando una arquitectura real y datos generados con criterio.


Cierre

Los dashboards no deben solo mostrar métricas. Deben ayudar a tomar decisiones.

Este caso simulado demuestra cómo usar datos, automatización y visualización para construir una herramienta de gestión operativa, sin depender de infraestructuras complejas.

About the author

Escríbeme

¿Tienes alguna consulta, propuesta o solo quieres saludar? No dudes en escribirme.

¡Genial! Te has inscrito con éxito.

Bienvenido de nuevo! Has iniciado sesión correctamente.

Te has suscrito correctamente a Luis Mendoza.

¡Éxito! Comprueba en tu correo electrónico el enlace mágico para iniciar sesión.

Éxito! Su información de facturación ha sido actualizada.

Su facturación no se actualizó.