Pizza Store Sales Dashboard

Tools used in this project
Pizza Store Sales Dashboard

Pizza Sales Tableau Dashboard

About this project

Pizza Store Sales Dashboard

Tableau Public Dashboard Presentation Video

Github Repository

Project Aim:

  • Use Python Pandas to read in and explore sales data for a fictional pizza store and determine if any data cleaning or transformation is required
  • Build a monthly sales and KPI dashboard
  • Used Python to analyze the data for confirming the accuracy of the calculations on the dashboard
  • Find insights in sales data for December 2015 (most recent month in the dataset) and recommend business decisions based on the data


  • Data for year 2015 stored in four separate CSV files

    • orders.csv
    • order_details.csv
    • pizzas.csv
    • pizza_types.csv
  • Tools Used:

  • Tableau Public - Paramters - Calculated Fields - Conditional Formatting

    • Python 3.9.7, Pandas, Jupyter Notebook
      • Groupby
      • Time Series Resampling
      • Merging Dataframes
      • Checking for nulls and duplicates
    • Powerpoint - Dashboard wire frame background

Questions to Answer:

  • Find monthly totals for KPIs with percentage change from previous month
    • Total Sales Dollars
    • Total Units Sold
    • Total Orders
  • At what times and days are sales the strongest and weakest?
  • Which pizza sizes are the strongest and weakest?
  • Which pizza types are the strongest and weakest?
  • What opportunities are there to capitalize on strong sellers and cut costs on weak sellers?


  • Total dollars sold, total orders, and total units sold are all down in December from November
  • Total dollars is down a slightly more than number of orders and total units
    • Fewer people are ordering multiple pizzas on an order
  • Total dollars are stronger at lunch time hours than dinner hours
  • Total dollars are stronger on weekdays than weekends
  • Avg units sold per order is highest during lunch time hours
  • Very few orders are being placed before 11:00 am and after 10:00 pm
  • Very few XL or XXL pizzas are being sold
  • Items such as Brie Carre pizza sell far fewer units than other types in the same category


  • Offer buy-one-get-one 25% off in the evening hours to encourage more orders and increase pizzas per order, thus improving total dollars in evening
  • Reduce business hours to 11:00 am to 10:00 pm to eliminate labor costs during low-sales times
  • Eliminate XL and XXL sizes from the menu, cutting down on inventory costs and inventory spoilage
  • Eliminate Brie Carre and other pizza types from the menu, cutting costs for specialty ingredients


The coloring of the heat map initially did not update when the month parameter was changed, while the tooltips did update. Upon checking the dashboard against the data analysis done in python, I determined that the tooltips were correctly showing the sales data for the chosen month, while the coloring was summarizing the entire year. I changed fields for the heat map to use the Chosen Month Sales calculated field which fixed the problem.

Techniques Used

Tableau Techniques:

  • Bar Charts, KPI Cards, Heatmap
  • Used Parameters to allow users to select the month of sales to view for the whole dashboard and which category to view for one chart
  • Used Calculated Fields to display total dollars, units, and orders for the user's chosen month, to calculate month-over-month changes in the KPIs, and create up and down arrows for KPI cards
  • Conditional Formatting to color up arrows green and down arrows red

Python Techniques:

  • Read in csv files with pandas
  • Checked for null values and duplicates in columns where values should be unique
  • Checked number of unique values in certain columns to validate foreign key columns
  • Checked data types and converted strings to datetime object for time series analysis
  • Merged dataframes
  • Groupby and resample to aggregate data

Additional project images

Parameter to allow user to select the month for which they wish to view data
Example of Calculated Field incorporating the chosen month parameter
Resampling of time series data in Pandas to get monthly sales dollars, orders, and pizzas sold
EDA in Pandas to verify no null values and no duplicates in unique id columns
Dashboard Conditional formatting for KPI up and down arrows
Discussion and feedback(1 comment)
Margaret Efron
Margaret Efron
8 months ago
Great job! Very clear and helpful explanation.
2000 characters remaining