Building a Travel Insurance Dashboard with Power BI

Similar to the GenAI chatbot in my other post, this dashboard idea stemmed from my frustrating experience of searching for the right travel insurance before our epic Asia trip. I asked myself:

How can we help travelers make better decisions about health risks and insurance needs when visiting foreign countries?

The result is an interactive Power BI dashboard. It combines synthetic healthcare and insurance data into a clean, intuitive tool that travelers (and insurers) could realistically use to make smarter decisions more efficiently.

✈️ The Problem

International travelers often face similar questions like:

  • How expensive is healthcare in my destination country?
  • What quality of care can I expect in an emergency?
  • Are there major health risks like dengue or malaria?
  • What kind of plan fits my budget and risk tolerance?

These answers are hard to find, and even harder to compare across countries. That’s the gap this dashboard aims to fill.

🔧 The Solution

To build a fully flexible and safe-to-share prototype, I wrote a Python script to generate synthetic data simulating real-world healthcare costs, risk scores, and insurance premiums across major countries in East and Southeast Asia. This data follows a star schema, making it easy to model in Power BI. From there, I developed a dashboard with three key features:

🆚 Side-by-Side Country Comparison

Users can select two countries and compare:

  • Average doctor visit and hospital stay costs
  • Healthcare system capacity (beds and doctors per 1,000 people)
  • Emergency care quality index
  • Normalized health risk score (based on dengue, malaria and covid risks)
  • Typical insurance plan monthly cost

Below is a screenshot of this country comparison page. ✅/⚠️/❌ icons make risk levels instantly readable. I also wrote a step-by-step guide on how to create this visual in Power BI.

Side-by-Side Country Comparison

💰 Dynamic Insurance Cost Estimator

Using a What-If parameter, users adjust their risk tolerance from risk-seeking to risk-averse. The dashboard then dynamically recalculates estimated plan cost based on selected risk tolerance level and indicates whether evacuation coverage is included. I wrote a step-by-step guide on how to create this visual in Power BI.

Below are a few screenshots of the estimator. Cost estimate rises as lower risk tolerance level is selected. This gives a realistic feel for how pricing shifts based on preferences — a useful simulation for both travelers and underwriters.

Dynamic Cost Estimator
Estimated Cost with High Risk Tolerance (most risk-seeking, least risk-averse)
Estimated Cost with Medium Risk Tolerance (less risk-seeking, more risk-averse)

📐 Scalable Star Schema Design

The backend follows a clean, scalable star schema:

  • dim_region
  • dim_country
  • dim_risk
  • dim_coverage
  • fact – Contains all key metrics

This structure enables fast filtering and clear relationships. Also, the Python generator ensures data is consistent and reproducible, which is ideal for prototyping analytical tools and dashboards in any domain.

🔗 Try It Yourself

Check out the full project on my GitHub. You’ll find:

  • the Power BI report (.pbix)
  • the synthetic dataset
  • Python script used to generate the data
  • screenshots of the dashboard in action