👉 Link to Tableau site 👈

Task:

The objective was to design two dashboards for managers and executives that provide a clear, quick view of sales performance and customer trends. The dashboards needed to be intuitive, interactive, and efficient—helping stakeholders understand how the business is performing at a glance.

Insights

We can now quickly identify most profitable customers on a TOP 10 table, and which subcategories are behind in sales or profits as marked with orange colour. KPIs provide a quick clanse overview of the development.

Conclusion

Client has received a dashboard providing interactive and instant visibility to their sales data and top customers. Helping management to make quick decisions where to focus their attention.

Final Dashboards

Process

I followed a rigorous end-to-end Tableau workflow: capturing user stories, sketching wireframes, building a star-schema data source, creating dynamic calculated fields (e.g., current-year vs. prior-year KPIs, min/max markers), and assembling fully interactive dashboards.

Features included:

  • KPI BANs (Sales, Profit, Quantity YTD vs. PYTD)

  • Sparklines to track performance over time

  • Bar-in-bar comparisons of subcategories

  • Weekly trend lines for sales and profit with above/below average markers

  • A year-selector parameter and collapsible filter panel for flexible exploration

Key Requirements

KPI Overview

  • KPI Overview → Current-year vs. prior-year totals for sales, profit, and quantity

  • Sales Trends → Monthly performance with highest/lowest months highlighted

  • Product Subcategory Comparison → Sales and profit comparisons across subcategories

  • Weekly Trends → Weekly sales/profit vs. averages, with above/below thresholds clearly marked

  • Design & Interactivity → Dynamic year selection, easy navigation between dashboards, interactive filters by category, subcategory, region, state, and city

Data

The dashboards were built on clean CSV files. I reviewed and adjusted data types where needed, particularly dates, region fields, and numerical columns. Data quality was strong, requiring no corrections beyond ensuring consistency and accuracy for analysis.

Build

Calculations

Need two separate calculations to show current year and previous year numbers. Then separate versions created for each necessary calculation.

For example for Current Year Sales:

IF YEAR([Order Date]) = [Select Year] THEN [Sales]
END

Previous Year Sales:

IF YEAR([Order Date]) = [Select Year] - 1 THEN [Sales]
END

To show the change between current and past year:

(SUM([CY Sales]) - SUM([PY Sales])) / SUM([PY Sales])

To mark max and min points on the line:

IF SUM([CY Sales]) = WINDOW_MAX(SUM([CY Sales]))
THEN SUM([CY Sales])
ELSEIF  SUM([CY Sales]) = WINDOW_MIN(SUM([CY Sales]))
THEN SUM([CY Sales])
END

Parameters

One parameter is needed so user can choose what year they want to look at.

KPIs

Using above calculations and parameter, and other modifications and beautifying steps, such as removing gridlines and removing all excess, we end up with below KPI cards.

Bar Chart and Trend Lines

First bar chart is a bar-in-bar chart, combining two bar charts together to create the desired effect.

To add the coloured ball icons to show where current year is below previous year, I used this calculation:

IF SUM([CY Sales]) < SUM([PY Sales]) THEN "⬤"
ELSE " "
END

Then simply formatted their colour to be orange.

Second bar chart is a normal bar chart showing positive and negative values

Regarding the trend lines: To colour the line according to if it is below or above the average line I used this calculation (for Profit line in this case):

IF SUM([CY Profit]) > WINDOW_AVG(SUM([CY Profit]))
THEN "above"
ELSE "below"
END

To add the average line following settings were used:

Grouping and Top Customers

Column chart is created by using BIN option from Tableau options. Pivot table is then using previously created calculations to show the relevant values per TOP 10 customers.

Filter

Year selection is a parameter and its creation was shown at the beginning. Rest are normal filter options.

I placed them inside a container and connected that container to a button with hide/show effect. Therefore that container can be hidden based on a button press.

Building the Dashboard

Besides normal beautifying I used containers to easily place the graphs and padding to create enough space and clarity between the graphs.

Final Result

Previous
Previous

•Restaurant Data Model for Reducing Food Waste

Next
Next

•A/B Test Case Study: Offer Optimization in Mobile Gaming