By Shubham Pawar
My LinkedIn Profile: LinkedIn
This comprehensive Power BI project analyzes movie revenue, ratings, and box office data across multiple countries and genres.
The interactive dashboard provides actionable insights into global box office trends, movie popularity, ROI performance, and audience ratings, demonstrating proficiency in data modeling, visualization, and storytelling aligned with industry best practices.
Note: This dataset was generated and prepared by me using Python scripting for data cleaning and filtering prior to analysis.
-
Global Box Office Trends
- Average global box office revenue exhibited a 1.43% decline between 2000 and 2025.
- Beginning in 2015, a rebound was observed with a 0.28% increase ($76,937.43) over ten years.
- The steepest incline occurred between 2015 and 2025, with average global box office rising from $271,342,16.80 to $272,111,54.23.
-
Popularity by IMDb Ratings
- The IMDb rating bin with the highest movie count (6) includes 138,329 movies, which is approximately 20,546% greater than the lowest bin (1) with 670 movies.
- This bin accounts for 26.16% of the total movie count.
- Across all ten IMDb rating bins, movie counts range from 670 to 138,329.
- Developed a robust data model with clear relationships enabling dynamic and interactive reporting.
- Created advanced DAX measures to capture key business metrics such as ROI, average ratings, and revenue.
- Leveraged Power BI's Smart Narrative visual to automatically summarize key insights for effective storytelling.
- Implemented Row-Level Security (RLS) to enforce data access control based on continent grouping.
- Utilized conditional formatting, slicers, and drill-through functionalities to enhance user experience and actionable insights.
Power BI’s powerful combination of data modeling, intuitive visuals, and real-time interactivity makes it an indispensable tool for uncovering patterns and delivering business intelligence clearly and efficiently.
- Executed Python scripts using libraries such as pandas and numpy for advanced data cleaning and filtering, improving data quality prior to Power BI ingestion.
- Handled missing values, duplicates, and formatted date columns to ensure consistency.
- Generated exploratory summaries and visualizations to validate data distributions and identify anomalies early in the process.
Python's versatility in preprocessing complements Power BI's analytical strengths, enabling a seamless end-to-end data science workflow from raw datasets to actionable dashboards.
-
The data model consists of a single, denormalized table (movies_cleaned) containing all relevant movie attributes, including genre, country, director, and ratings. While a star schema with separate dimension and fact tables is a best practice for larger or more complex datasets, a single-table model is appropriate here given the project scope and simplicity.
-
This design simplifies filtering and aggregation directly on the columns within the one table, enabling straightforward and performant reporting without the overhead of managing multiple related tables.
-
Created a dedicated Measures Table to centralize all DAX calculations and KPIs for maintainability.
Within Power BI, the following Power Query Editor steps were performed to further shape and enrich the data:
-
Source: Imported the prepared movie dataset.
-
Promoted Headers: Ensured correct column naming from source data.
-
Changed Type: Set appropriate data types for each column for accurate calculations.
-
Added ROI%: Created a custom column to calculate Return on Investment as a percentage.
-
Added Profit: Derived the Profit column from global box office and budget values.
-
Added Decade: Extracted decade info to enable time-based analysis.
-
Reordered Columns: Organized columns for better accessibility and logical flow.
-
Changed profit to decimal: Ensured numeric formatting for profit calculations.
-
Added Continent: Mapped each movie's country to its continent for enhanced filtering and RLS configuration.
-
Reordered Columns1: Final reordering to optimize dataset structure.
These data transformation steps ensured clean, well-structured data, enabled meaningful aggregations, and supported the dashboard’s interactive features and security requirements.
Defined critical measures covering business metrics such as:
totalMovies = COUNT(movies_cleaned[MovieID])
AvgIMDbRating = AVERAGE(movies_cleaned[IMDbRating])
MaxProfit = MAX(movies_cleaned[Profit])
AvgGlobalBoxOffice = AVERAGE(movies_cleaned[Global_BoxOfficeUSD])
ROI = DIVIDE(
SUM(movies_cleaned[Global_BoxOfficeUSD]) - SUM(movies_cleaned[BudgetUSD]),
SUM(movies_cleaned[BudgetUSD]),
0
)
- Applied conditional formatting to highlight high-ROI and high-grossing films.
- Leveraged other DAX functions such as
COUNTROWS
,DIVIDE
,IF
, andAVERAGEX
for nuanced aggregations. - Incorporated Smart Narrative visuals to dynamically surface key insights.
Implemented Row-Level Security by continent to restrict data access appropriately:
- Created a custom
Continent
calculated column mapping countries to continents. - Defined continent-specific roles in Power BI Desktop.
- Configured permissions so users only access relevant regional data, enhancing data governance and compliance.
- Designing data models that support dynamic and precise reporting.
- Leveraging Python and Power Query to enhance data quality.
- Crafting complex DAX measures to capture business-critical KPIs.
- Building interactive dashboards that communicate data stories effectively.
- Implementing RLS to safeguard sensitive information and enforce access controls.