Portfolio

Projects

Power BI dashboards, data visualisations, analysis with Python, SQL and R, and map experiments. Projects built from real business questions, focused on clarity, context and decision-making.

Power BI Data Analysis Information Design Maps
01 Power BI

En esta página recopilo proyectos desarrollados con Power BI a partir de necesidades reales de negocio. Cada caso está diseñado para responder preguntas concretas, priorizando claridad, contexto y utilidad en la toma de decisiones.

IBCS Sales Report
01 / 06Ventas
Análisis de ventas

IBCS Sales Report

En muchos equipos comerciales, el análisis de ventas empieza y termina en el total anual. Si la cifra sube, todo bien. El problema es que dos años pueden cerrar con el mismo número y haber sido radicalmente distintos por dentro. Diseñé un informe que integra volumen, variación absoluta y porcentaje en un único visual — para que el usuario vea de un vistazo cuánto vendió, cuánto cambió y si ese cambio importa.

IBCSDAXStar schemaDrill-downVariación absoluta y relativaParámetros dinámicosVisual hierarchySales analyticsYoY analysis
Ver dashboard
Kosta Cálida — Retail Network Reporting
02 / 06Retail
Retail · Red de tiendas

Kosta Cálida — Retail Network Reporting

Una cadena de tiendas con datos completos en el TPV pero sin capacidad de responder preguntas básicas de negocio: qué tienda rinde mejor, dónde se pierde margen, si los objetivos se cumplen o solo se supera el mes anterior. Diseñé un sistema de reporting integral — desde el modelo de datos hasta el dashboard — que convirtió números dispersos en decisiones concretas.

Star schemaPower QueryDAXSales vs TargetsProfitability analysisDrill-downYTDVisual hierarchyRetail analytics
Ver dashboard
Social Media Performance | 2025 vs 2024
03 / 06Marketing
Marketing analytics

Social Media Performance | 2025 vs 2024

Cuando los resultados de marketing caen de un año a otro, la conclusión rápida es que algo ha empeorado. Pero un –12% en impresiones se lee de forma completamente distinta si el gasto también cayó un –26%. Diseñé un dashboard de comparación interanual que no mide solo si hay más o menos volumen, sino si el negocio está siendo más o menos eficiente con lo que invierte.

DAX interanualTablas desconectadasCTR · CPCStar schemaSparklinesYoY comparisonMarketing analyticsEfficiency vs volume
Ver dashboard
Full Financial Report
04 / 06Financiero
Análisis financiero

Full Financial Report

En la mayoría de empresas, la información financiera existe: hay balances, cuenta de resultados, presupuestos, asientos contables. El problema no es que falten datos, sino que están dispersos y nadie en dirección puede ver el negocio completo en una sola lectura. Diseñé un sistema de análisis financiero integral que conecta balance, PyG y cash flow — y permite pasar de un KPI de dirección hasta el asiento contable que lo explica.

Modelado contable en estrellaDAX financieroBalance · PyG · Cash FlowEBITDAVertical and horizontal analysisBudget deviationYear-end projectionDrill-through a asientoFinancial analytics
Ver dashboard
Profit & Loss Statement
05 / 06Financiero
Análisis financiero

Profit & Loss Statement

La Profit & Loss Statement es el informe más importante de una empresa y, curiosamente, uno de los que peor funciona en herramientas de BI. El problema no es técnico: es que una PyG tiene subtotales con reglas propias, signos contables que no coinciden con la lógica analítica y totales que dejan de cuadrar en cuanto cambias el contexto. Construí un P&L en Power BI que es riguroso, dinámico y mantiene coherencia financiera en cualquier nivel de filtro.

P&L en Power BIDAX financieroIntelligent subtotalsReal vs PresupuestoWaterfall chartAccounting sign controlStar schemaFinancial analyticsAccounting hierarchy
Ver dashboard
Airbnb Market Analysis — Basque Country
06 / 06Mercado
Análisis de mercado

Airbnb Market Analysis — Basque Country

"Airbnb en el País Vasco está carísimo" es una afirmación que se repite constantemente — y casi siempre se basa en una media general. El problema es que una media sin contexto puede ser tan engañosa como no tener datos. Diseñé un análisis del mercado turístico construido alrededor del territorio, no de un único número, para entender qué hay detrás del precio y dónde están las diferencias reales.

Análisis territorialMapas en Power BIMarket segmentationKPIsExploratory analysisDAX
Ver dashboard
02 Data Analysis
Python · SQL · R · GitHub

Data exploration, cleaning and analysis with Python, SQL and R. Projects with documented code and business-applicable findings, available on GitHub.

PythonPandasData Analysis
Best cities for remote work

Exploratory analysis para identificar municipios con buena conectividad, calidad ambiental y precios de vivienda competitivos.

View full analysis
SQLExploración de datosVisualización
Airbnb Market — Price Analysis

Data exploration to analyse pricing patterns, availability and demand in the tourist rental market.

View queries and findings
RData AnalysisVisualización
Socioeconomic profile of Madrid

Analysis of demographic and economic indicators to understand the territorial distribution of income and population.

Explore full analysis
Ver más proyectos en GitHub
04 Maps
Cartografía · 3D · Behance
Mapa de relieve 3D de Madrid
QGIS · Blender · 3D Cartography

Spanish Regions in three dimensions

A collection of 3D maps of the Spanish regions, built with QGIS and rendered with Blender. A different approach to visualising and understanding territorial data — when relief is not decoration, but information.

Ver en Behance
IBCS Sales Report 1IBCS Sales Report 2IBCS Sales Report 3
Análisis de ventas
IBCS Sales Report

En muchos equipos comerciales, el análisis empieza y termina con una pregunta: ¿hemos vendido más que el año pasado? Si el total anual sube, se respira tranquilo. Si baja, saltan las alarmas. El problema es que un total anual es solo el final de la película — no cuenta cómo ha sido el viaje. Dos años pueden cerrar con la misma cifra y haber tenido comportamientos completamente distintos por dentro.

El error de fondo no estaba en los datos sino en cómo se presentaban. La mayoría de informes separaban el volumen, la variación absoluta y el porcentaje en gráficos distintos, obligando al usuario a hacer el cálculo mental para conectarlos. Cuando alguien tiene que hacer ese esfuerzo, el informe ya está fallando: no está comunicando, está delegando la interpretación en quien menos debería tener que hacerla.

Apliqué principios IBCS — un estándar internacional de comunicación visual para datos de negocio — para forzar un orden en las decisiones de diseño: qué es señal, qué es contexto, qué merece color y qué no. El resultado fue un único patrón visual donde las columnas muestran el volumen, la variación absoluta se integra dentro de la propia barra y el porcentaje aparece como una capa adicional. El mismo patrón funciona para el análisis temporal y para el análisis por categoría y producto, de forma que el usuario no tiene que reaprender el gráfico cada vez que cambia de página.

Lo que cambia cuando se usa este informe es la calidad de las preguntas que genera. No solo si se vendió más, sino si ese crecimiento es sostenido o puntual, qué categorías impulsan el resultado y cuáles lo maquillan, qué meses críticos el total anual estaría ocultando. La diferencia entre un informe que muestra datos y uno que reduce el riesgo de interpretarlos mal es exactamente esa: uno responde preguntas, el otro las evita.

Diseñar bien un informe de ventas no es una decisión estética. Es una decisión sobre quién tiene que pensar — el gráfico o quien lo lee.

IBCSDAXStar schemaDrill-downVariación absoluta y relativaParámetros dinámicosVisual hierarchySales analyticsYoY analysis
Ver dashboard Power BI · DAX
Kosta Cálida — Retail Network Reporting 1Kosta Cálida — Retail Network Reporting 2Kosta Cálida — Retail Network Reporting 3
Retail · Red de tiendas
Kosta Cálida — Retail Network Reporting

Una cadena de tiendas en zonas turísticas registraba cada venta, cada producto, cada ticket desde el primer día. Los datos existían, estaban ahí, y nadie los cuestionaba. El problema era otro: nadie podía responder con claridad si el negocio iba bien o simplemente estaba vendiendo.

La dirección tomaba decisiones con números delante pero sin contexto. Sabían la recaudación del día, pero no podían decir qué tienda rendía mejor en margen, qué categorías erosionaban el beneficio ni si estaban cumpliendo objetivos o solo superando el mes anterior. Cada departamento miraba su parte. No existía una fuente única que conectara ventas, rentabilidad y objetivos en una sola lectura coherente. Eso no es un problema de datos. Es un problema de estructura analítica.

Identifiqué que el error de fondo era el orden en que se había planteado el análisis: se habían construido vistas parciales sobre datos sin modelar, en lugar de diseñar primero cómo debía funcionar el negocio como modelo. Decidí empezar por ahí — modelo en estrella con tabla de hechos central y dimensiones limpias de fecha, tienda, producto y objetivos. Solo cuando la base era sólida y los cálculos eran fiables, diseñé los dashboards con una jerarquía visual clara: primero la pregunta que responde cada página, después el gráfico que la responde.

El resultado cambió la dinámica de las reuniones. Donde antes alguien decía "creo que Ibiza está floja este mes", ahora la conversación empieza con "Ibiza cumple en ventas, pero su margen está dos puntos por debajo de la media — hay que revisar el mix de producto". El sistema permite bajar desde una desviación en un KPI hasta el ticket concreto que la explica. Las decisiones dejaron de basarse en percepción y empezaron a basarse en estructura.

Un dashboard no muestra datos. Responde preguntas — y la calidad de las preguntas determina la calidad de las decisiones.

Star schemaPower QueryDAXSales vs TargetsProfitability analysisDrill-downYTDVisual hierarchyRetail analytics
Ver dashboard Power BI · DAX
Social Media Performance | 2025 vs 2024 1Social Media Performance | 2025 vs 2024 2Social Media Performance | 2025 vs 2024 3
Marketing analytics
Social Media Performance | 2025 vs 2024

Comparar resultados de un año a otro parece una tarea sencilla. Si en 2025 hay menos impresiones, menos clics y menos conversiones que en 2024, la conclusión rápida sería que el rendimiento ha empeorado. Pero en marketing el dato bruto rara vez cuenta toda la historia: una caída en volumen puede significar menor inversión, cambio de estrategia o, incluso, una mejora real en eficiencia. Este proyecto nace exactamente de esa duda.

El problema habitual en los reportes de marketing es que se compara volumen sin mirar inversión, se analizan clics sin mirar CTR, se celebran conversiones sin analizar su coste. Los KPIs se revisan de forma aislada, sin conectarlos entre sí, y eso genera lecturas engañosas que llevan a decisiones equivocadas. Identifiqué que el reto no era añadir más métricas, sino introducir contexto sin añadir ruido — obligar a que cada dato apareciera siempre junto a su referencia.

Diseñé un modelo en estrella con una tabla de hechos central y dimensiones de fecha, plataforma, campaña y audiencia. Uno de los puntos menos visibles pero más importantes fue el selector de periodos: en lugar de filtrar directamente el modelo, usé una tabla desconectada que marca el periodo a analizar. Eso garantiza que los cálculos interanuales sean siempre coherentes, independientemente de cómo navegue el usuario. Cada KPI se presenta con el mismo marco — valor actual, valor del año anterior, variación absoluta, variación porcentual y un mini gráfico mensual para detectar tendencia.

Lo que cambia cuando se usa este dashboard es el tipo de pregunta que se hace. No si hay más o menos volumen, sino si la caída es por menor inversión o por menor rendimiento, si hay meses con mejor retorno donde reforzar estrategia, si el negocio está siendo más eficiente con lo que gasta. Esa diferencia de pregunta es la diferencia entre gestionar con percepción y gestionar con criterio.

Un reporte de marketing no debería decirte si las cifras suben o bajan. Debería decirte si estás invirtiendo mejor o peor.

DAX interanualTablas desconectadasCTR · CPCStar schemaSparklinesYoY comparisonMarketing analyticsEfficiency vs volume
Ver dashboard Power BI · DAX
Full Financial Report 1Full Financial Report 2Full Financial Report 3
Análisis financiero
Full Financial Report

En la mayoría de empresas, la información financiera existe en algún lugar. Hay asientos contables, balances, cuenta de resultados, presupuestos. El problema no es que falten datos — es que están dispersos, que cada área analiza su parte por separado y que cuando dirección necesita una visión completa del negocio, alguien tiene que construirla manualmente cada vez. Ese proceso es lento, poco trazable y genera versiones distintas de la misma realidad.

Identifiqué que el problema de fondo era estructural: no había un modelo que conectara las tres grandes piezas del análisis financiero — balance, PyG y cash flow — de forma coherente y con trazabilidad hasta el origen. Sin esa base, cualquier análisis era una foto parcial. Decidí empezar por ahí, diseñando una estructura contable en esquema estrella que unificara los tres estados financieros, mantuviera coherencia entre periodos y permitiera navegar desde un KPI de alto nivel hasta el asiento concreto que lo genera.

A partir de ese modelo construí el informe como si fuera una aplicación financiera con navegación clara entre áreas: vista general de KPIs, checklist de validación de calidad del dato, balance de sumas y saldos, análisis del balance con enfoque vertical y horizontal, cuenta de resultados con comparativa interanual y proyección a cierre, y cash flow con ratios de solvencia y liquidez. Cada página responde una pregunta distinta pero todas comparten el mismo lenguaje visual.

Lo que cambia cuando se usa este sistema no es solo la velocidad. Cambia el tipo de decisión que es posible tomar. Detectar que el margen empieza a deteriorarse antes de que se convierta en problema, ver tensiones de liquidez con semanas de antelación, evaluar si el negocio puede asumir una inversión — todo eso requiere que balance, resultados y tesorería hablen el mismo idioma al mismo tiempo. Antes no era posible sin rehacer el análisis desde cero.

La contabilidad registra lo que ha pasado. Un sistema financiero bien construido permite anticipar lo que va a pasar.

Modelado contable en estrellaDAX financieroBalance · PyG · Cash FlowEBITDAVertical and horizontal analysisBudget deviationYear-end projectionDrill-through a asientoFinancial analytics
Ver dashboard Power BI · DAX
Profit & Loss Statement 1Profit & Loss Statement 2Profit & Loss Statement 3
Análisis financiero
Profit & Loss Statement

La Profit & Loss Statement sigue viviendo en Excel en la mayoría de organizaciones — múltiples hojas, exportaciones del ERP que nadie quiere tocar, PDFs que muestran el resultado final pero no explican qué lo está generando. No es un problema de voluntad sino de complejidad: trasladar una PyG a una herramienta de BI con rigor es considerablemente más difícil de lo que parece desde fuera.

El problema real aparece cuando conviven datos reales y presupuesto, cuando las cuentas no siguen una jerarquía limpia o cuando los signos contables no coinciden con la lógica analítica. En esos casos, un error en el modelado o en una medida DAX puede romper toda la coherencia del informe. Y en un contexto financiero, perder coherencia significa perder credibilidad — que es exactamente lo peor que puede pasarle a un informe que dirección usa para tomar decisiones.

Construí el modelo desde la lógica contable, no desde la visual. Cada cuenta clasificada explícitamente como ingreso, coste o gasto, con reglas de signos definidas a nivel de modelo para que los totales cuadraran en cualquier nivel de filtro sin parches visuales. Los subtotales — Margen Bruto, Beneficio Operativo, Beneficio Neto — responden cada uno a su estructura contable concreta, no a una agregación automática. A partir de esa base construí la comparativa Real vs Presupuesto con variación absoluta, porcentaje de desviación y un gráfico de cascada que no solo muestra la diferencia sino que explica qué partidas la generan y en qué dirección.

Lo que cambia en una reunión financiera cuando se usa este informe es la precisión de la conversación. Donde antes alguien decía "estamos por debajo del presupuesto", ahora es posible decir "la desviación viene del aumento en gastos operativos, no de caída de ingresos". Esa diferencia no es cosmética — determina dónde se actúa y con qué urgencia.

En BI financiero la dificultad no está en el gráfico. Está en la lógica que lo sostiene.

P&L en Power BIDAX financieroIntelligent subtotalsReal vs PresupuestoWaterfall chartAccounting sign controlStar schemaFinancial analyticsAccounting hierarchy
Ver dashboard Power BI · DAX
Airbnb Market Analysis — Basque Country 1Airbnb Market Analysis — Basque Country 2Airbnb Market Analysis — Basque Country 3
Análisis de mercado
Airbnb Market Analysis — Basque Country

Hay afirmaciones sobre mercados que circulan como hechos cuando en realidad son simplificaciones. "Airbnb en el País Vasco está carísimo" es una de ellas — y casi siempre se sostiene sobre una media global que mezcla San Sebastián en agosto con un municipio interior en enero, un alojamiento completo con una habitación privada, un anfitrión ocasional con uno que gestiona treinta propiedades. Un mismo precio puede parecer caro o barato dependiendo del contexto. El problema no era la falta de datos sino la falta de estructura para interpretarlos.

Identifiqué que el error de fondo en los análisis habituales era tratar el mercado turístico como si fuera homogéneo. No lo es — es espacial antes que estadístico, y cualquier análisis que ignore esa dimensión territorial está describiendo un mercado que no existe. Diseñé el modelo alrededor de esa premisa: el mapa como eje principal de lectura, con filtros que modifican el patrón espacial en tiempo real según provincia, tipo de alojamiento, rango de precios y disponibilidad. La concentración y dispersión real de la oferta solo se ve cuando el territorio es protagonista.

A partir de esa base añadí la segmentación que los análisis habituales omiten: precio por tipo de alojamiento, clasificación por rangos, distinción entre anfitrión ocasional y operador profesional con cartera. Eso permite responder una pregunta mucho más útil que "¿es caro?": si un precio elevado responde a alta demanda, a baja oferta, a profesionalización del mercado o a estacionalidad puntual. Cada KPI aparece siempre acompañado de ese contexto, porque un número grande en pantalla sin referencia no informa — solo impresiona.

Lo que cambia cuando se usa este dashboard es la precisión del análisis. En lugar de decir "Airbnb es caro en el País Vasco", es posible decir "en zonas costeras concretas, en temporada alta y para alojamientos completos gestionados profesionalmente, el precio es alto — y responde a estas razones". Dejas de ver un mercado y empiezas a ver muchos mercados coexistiendo en el mismo territorio.

La media simplifica. El contexto explica. Y cuando ves las diferencias reales, decides mejor.

Análisis territorialMapas en Power BIMarket segmentationKPIsExploratory analysisDAX
Ver dashboard Power BI · DAX