The problem
The case study presented the scenario of a transport company with data scattered across multiple unmodelled tables: customers, projects, transports, countries, drivers, and machinery. Management needed a consolidated view of the business to monitor revenue, analyse profitability by customer and country, and track monthly performance.
The source data was real (provided by the programme as the exam dataset), but there was no existing model or dashboard. The goal was to build a complete BI solution from scratch capable of answering the business questions defined in the case study’s user stories.
To give the project a more coherent narrative, I created a fictional company name: TransGlobal Logistics.
The approach
I followed a complete Power BI development workflow, replicating the real process of a data analyst.
Phase 1 · Data preparation — Power Query
I loaded the five entities from the case study (projects, transports, customers, countries, drivers, and machinery) into Power Query. I carried out the required cleaning and transformation process: renaming columns, adjusting data types, removing irrelevant fields, and validating key integrity before loading the model.
Phase 2 · Star schema data modelling
I built a star schema model with a central fact table (transports) connected to customer, country, project type, driver, machinery, and date dimensions generated in DAX. I also added a disconnected helper table for units (units, thousands, millions) with a slicer to allow dynamic scaling of all metrics without duplicating measures.
Phase 3 · DAX measures
I created the required measures to calculate:
- Total revenue
- Average revenue per project and per transport
- Number of projects and transports
- Month-over-month variations
- All metrics dynamically adjusted according to the selected unit
Phase 4 · Visualisation and reporting
I built two report pages and added bookmarks for navigation between the overview and detail views. I configured dynamic interactions between all visuals: when selecting a country, customer, or project type in any chart, the rest of the report updates automatically.
The dashboard
The report includes two pages connected through bookmarks and synchronised filters.
Overview Page · Main KPIs (5 projects, $28,500 revenue, 12 transports, averages per project and per transport), alongside charts showing revenue by customer, country, project type, and monthly evolution. Every visual is interactive: selecting a country, customer, or month automatically updates the rest of the dashboard.
Detail View · Full table breakdown of each transport operation: date, project, country, customer, driver, machinery, and revenue. Includes slicers for month, country, customer, project type, and driver. A "Back" button allows users to return to the overview page.
Dynamic Interaction · Selecting Costa Rica in the overview page automatically recalculates all KPIs and charts. Revenue filters to $17,000, while customers and project types display only data related to that country. The helper units table (available through the bottom slicer) allows switching between units, thousands, and millions without duplicating DAX measures.
Technical decisions
Star schema model.
I chose a star schema instead of a flat model to ensure better DAX performance and easier long-term maintenance.
Helper units table.
Rather than creating duplicated measures for each scale, a disconnected table with a slicer allows users to scale the entire dashboard dynamically without modifying the underlying DAX code.
Bookmarks for navigation.
I used bookmarks instead of complex multi-page navigation buttons, prioritising a cleaner user experience and reducing visual clutter.
Dynamic slicer interactions.
Every selection made in a chart or slicer automatically updates the rest of the report, enabling guided analysis without requiring multiple manual filters.
Tech stack & methodology
| Tool | Use in the project |
|---|---|
| Power Query | Data cleaning, transformation, and preparation |
| Power BI | Star schema modelling, DAX measures, dashboard design |
| DAX | Revenue metrics, averages, scalable KPIs, and date table |
| Bookmarks | Navigation between overview and detail views |