Healthcare · Advanced
Build a Power BI report that lets legislators compare health outcomes and health spending across nine East African countries.
The East Africa Health Policy Forum is a fictional think-tank that briefs parliamentary health committees. Before the budget hearings, committee members want to compare Kenya with Uganda, Tanzania, Rwanda, Burundi, South Sudan, DR Congo, Somalia and Ethiopia on child and maternal deaths, immunisation, health workers and health spending, and to see whether countries that spend more get better results. You have three files from the World Bank and a week to build a report that a non-technical legislator can explore on their own.
Your role
BI Analyst, East Africa Health Policy Forum
Committee members get health figures as long tables they cannot filter or compare. They need one clear report that shows how each country is doing over time and how spending relates to outcomes, without overstating what the numbers prove.
Load all three CSV files into Power BI Desktop with Get data, then Text/CSV. In Power Query, select the four name columns of hnp-indicators-wide, choose Unpivot Other Columns, rename the new columns to year and value, set year to whole number and value to decimal, and remove rows where value is blank. Checkpoint: before you remove blanks the unpivoted table has 3,375 rows; after, it has 2,700.
Create a year table (the years 2000 to 2024) and relate it to the fact table. Relate the fact table to hnp-countries on country_code and to hnp-indicators on indicator_code. Check every relationship is one-to-many from the dimension to the fact table, and hide the key columns in the fact table.
Real data from the World Bank's Health Nutrition and Population Statistics database (CC BY 4.0), downloaded on 24 October 2026 (World Bank release dated 1 July 2026). We kept 9 countries, 15 indicators and the years 2000 to 2024; values are exactly as published. Three CSV files: • hnp-indicators-wide.csv: 135 rows × 29 columns. One row is one indicator for one country. The first four columns name the country and indicator; then there is one column per year, 2000 to 2024. This wide shape is deliberate: you will unpivot the year columns in Power Query. • hnp-countries.csv: 9 rows, one per country, with region, World Bank income group, East African Community membership and currency. • hnp-indicators.csv: 15 rows, one per indicator, with its theme (child and maternal health, immunisation, health workforce, health spending), unit, whether a higher or lower value is better, a short definition and the original source. Relate the fact table to the countries table on country_code and to the indicators table on indicator_code. Things to know: many cells are blank because not every indicator is measured every year, and some countries have long gaps; mortality figures are modelled estimates that the World Bank revises between releases; indicators have different units, so never add or average values across indicators.
hnp_indicators_wide15 health indicators for 9 East African countries, one column per year from 2000 to 2024. Unpivot the year columns in Power Query. · 135 rows
Write a Selected Value measure that returns the value for one indicator, then a Latest Value measure that returns each country's most recent non-blank year, a Change Since 2010 measure, and a Rank measure that ranks the nine countries on the selected indicator, respecting whether higher or lower is better (use the better_when column).
Build an overview page with one card per theme for the selected country, then one page per theme (child and maternal health, immunisation, health workforce, health spending) with a trend line over time and a ranked bar chart of the nine countries. Add a scatter chart of health spending per person against under-5 mortality, one dot per country, with a year slicer. Add a short note on each page explaining the unit.
Write one page for the committee: three findings, each tied to a chart in your report, and one honest limitation of the data. Submit the .pbix file, screenshots of each report page and the brief.
| Column | Type | Description | Example |
|---|---|---|---|
country_name | text | Country name as the World Bank writes it. | Kenya |
country_code | text | Three-letter ISO country code; relates to hnp-countries. | KEN |
indicator_name | text | Full indicator name, including its unit. | Mortality rate, under-5 (per 1,000 live births) |
indicator_code | text | World Bank indicator code; relates to hnp-indicators. | SH.DYN.MORT |
2000 … 2024 | decimal | The indicator's value in that year, in the indicator's own unit. Blank when there is no estimate for that year. | 38.8 |
hnp_countriesOne row per country with region, income group and East African Community membership. · 9 rows
| Column | Type | Description | Example |
|---|---|---|---|
country_code | text | Three-letter ISO country code; the key. | KEN |
country_name | text | Country name as the World Bank writes it. | Kenya |
iso2_code | text | Two-letter ISO country code, useful for map visuals. | KE |
region | text | World Bank region. | Sub-Saharan Africa |
income_group | text | World Bank income group. | Lower middle income |
eac_member | text | Yes if the country is a member of the East African Community. | Yes |
currency_unit | text | National currency. | Kenyan shilling |
hnp_indicatorsOne row per indicator with its theme, unit, which direction is better, a short definition and its source. · 15 rows
| Column | Type | Description | Example |
|---|---|---|---|
indicator_code | text | World Bank indicator code; the key. | SH.IMM.MEAS |
indicator_name | text | Full indicator name. | Immunization, measles (% of children ages 12-23 months) |
theme | text | Report theme: Child and maternal health, Immunisation, Health workforce or Health spending. | Immunisation |
unit | text | Unit of the values. | % of children aged 12-23 months |
better_when | text | Higher or Lower: which direction counts as better. Use it for ranking and colours. | Higher |
short_definition | text | First sentence of the World Bank definition. | Child immunization, measles, measures the percentage of children ages 12-23 months who received the measles vaccination before 12 months or at any time before the survey. |
source | text | Original source of the estimates. | World Health Organization (WHO) |
The fact table is unpivoted and correctly typed, the model relates it to the three dimension tables, and blank values are treated as missing, not as zero. Measures return the right value for the latest available year per country. The report is readable by a non-specialist and the policy brief separates what the data shows from what it cannot prove.
Recommended tools
Skills covered