Case study

Global GDP Atlas

How the world economy grew from 1960 to 2025, and who grew with it. Sixty-five years of World Bank data, as a Power BI dashboard and an interactive website I built from scratch.

Built with
Power BI, Power Query, DAX, Python, HTML and D3
Data
World Bank, World Development Indicators
Covers
217 economies, 1960 to 2025
Outputs
A three-page Power BI dashboard and an interactive website
Cover of the Global GDP Atlas dashboard: world GDP of $118T in 2025, 26% of it from the US, South Asia growing 6.6% a year, and Saudi Arabia ranked 18th in 2024.

The idea

GDP numbers are everywhere, but they rarely tell you much on their own. I wanted to take one public dataset and make it easy to read: where the world's money is made, how that changed, and where Saudi Arabia and the Gulf sit in that picture.

The data

The source is the World Bank's GDP file (current US$), covering 217 economies from 1960 to 2025. The raw file mixes countries with regions and income groups, so the first step was separating them. I cleaned it into a simple star schema:

Fact_GDPOne row per economy per year
Dim_CountryRegion, income group and a GCC flag
Dim_YearYear and decade

World totals come from the World Bank's official world figure, not from adding up countries. Some economies haven't reported 2025 yet, so the dashboard says so instead of hiding the gap.

How I built it

1. Cleaning the data

  1. Converted the original .xls file and reshaped it from one column per year to one row per economy per year.
  2. Removed empty values, so a missing year stays missing instead of showing as zero.
  3. Matched every economy to its region and income group using the World Bank's metadata.
  4. Separated the 217 economies from 48 aggregate rows, such as regions and income groups, so nothing is counted twice.
  5. Added a GCC flag for the six Gulf states, and an order for income groups so they sort from low to high, not alphabetically.
  6. Built a year table with decades for grouping.

2. Modelling in Power BI

  1. Linked the tables with many-to-one relationships and hid the fields readers don't need.
  2. Wrote about 30 DAX measures for growth, 10-year CAGR, world rank, share of world and share of the GCC. Each one follows the year and country you pick, so GDP shows one year's value instead of adding every year together.
  3. Used the World Bank's world row for world GDP, and countries only for rankings and shares.
  4. Added a Top 10 filter and custom sorting for income groups.

3. Designing the report

  1. Created a custom colour theme and a background for each page.
  2. Set which filters affect which charts, so the charts over time always show every year while the cards follow the year you pick.
  3. Added navigation buttons between the three pages.

The dashboard

Global Overview page: world GDP, growth versus last year, the largest economy, economies reporting, a treemap by region and country, the top 10 economies, and world GDP since 1960.
Global overview. How big the world economy is, and who drives it: world GDP, growth, the largest economy and the top 10.
Regions and Income page: largest and fastest-growing region, high- and low-income shares, GDP by region over time, share by income group, 10-year growth by region, and GDP at the end of each decade.
Regions and income. Where the money sits, how regional shares shifted over time, and growth by region.
Country Spotlight page set to Saudi Arabia: GDP, growth, world rank and 10-year growth, GDP over time, a GCC comparison, share of the GCC economy, and global rank over time.
Country spotlight. Saudi Arabia by default, or any country you pick: its GDP, rank and 10-year growth, with the GCC side by side.

The website

A dashboard is good for exploring. It's less good for explaining. So I also built a website for the same data, coded by hand in HTML and D3, with the data prepared in Python.

It tells the story in eight steps as you scroll. One chart changes as you read, every chart shows exact values when you hover, and the last step lets you look up any economy yourself.

Visit the website

Design choices

  • Seven region colours, each tested to stay distinct for colour-blind readers.
  • One accent colour for the thing that matters in each chart.
  • Plain sentences over labels, so every chart says what it shows.
  • Every number traced back to the source data.

What I found

  • 87×The world economy is about 87 times its 1960 size, in current dollars.
  • #1The United States has ranked first every year. It produced about 40% of world GDP in 1960, and still produces about 26% today.
  • #2China went from 11th in 1990 to 2nd by 2010.
  • 6.6%South Asia has grown fastest over the last ten years, at 6.6% a year.
  • #19Saudi Arabia's rank follows the oil market. It reached 13th in 1981, and it was 19th in 2025, at $1.28T.

What I learned

Most of the work happened before any chart. Cleaning the data, separating countries from aggregates, and making every measure respond correctly to the year you pick took longer than the visuals.

Clean data in, clear decisions out.