Skip to main content
Portfolio Projects TransGlobal Logistics: revenue, clients, and operations in Power BI
TransGlobal Logistics: revenue, clients, and operations in Power BI
2025

TransGlobal Logistics: revenue, clients, and operations in Power BI

Performance analysis dashboard for a transport and logistics company, built on a star schema data model with revenue, customer, and operations metrics. Final project of the University Advanced Programme in Data Analyst using Power BI.

Power BI

Year

2025

Tools

1

Reading

4 min

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

ToolUse in the project
Power QueryData cleaning, transformation, and preparation
Power BIStar schema modelling, DAX measures, dashboard design
DAXRevenue metrics, averages, scalable KPIs, and date table
BookmarksNavigation between overview and detail views
Let's talk

Interested in this project?

Feel free to reach out if you'd like to know more or exchange ideas.