Build a five-view analysis of a specialty coffee roastery's wholesale and subscription business, then assemble a dashboard.
Connect to the provided data source and build each visualization on its own worksheet, named exactly as specified. Add the required caption to each sheet. Submit your packaged workbook (.twbx).
BeanCraft Roasters is a specialty coffee company that roasts green coffee beans in large batches for wholesale and retail distribution. The operations team wants to better understand roast production patterns, weight loss efficiency, and yield consistency across different roast levels to optimize scheduling and reduce waste. As a data analyst intern, your task is to build a series of Tableau visualizations that transform raw roast batch records into actionable operational insights.
Visualization 1: Roast Level Batch Count (12 pts)
Create a horizontal bar chart showing the total number of roast batches for each Roast Level. Color each bar by Roast Level. Sort the bars in descending order by number of batches so the most common roast level appears at the top.
Caption required: Write a 2-3 sentence business insight (minimum 120 characters) explaining which roast level is produced most frequently and what this may indicate about customer demand or production priorities.
Hint: Remember that COUNT of a dimension field will count the number of records. Think about which shelf orientation makes the bar chart horizontal.
Step-by-step: 1. Drag 'roastLevel' to the Rows shelf. 2. Drag 'roastBatchId' to the Columns shelf and change its aggregation to COUNT. 3. In the Marks card, ensure the mark type is set to Bar. 4. Drag 'roastLevel' to the Color shelf on the Marks card so each bar is colored distinctly. 5. Right-click on the x-axis (CNT(roastBatchId)) and select 'Sort Descending' to sort bars by count. 6. Add labels by dragging CNT(roastBatchId) to the Label shelf. 7. Name the worksheet 'Roast Level Batch Count'. 8. Add a caption via Worksheet > Show Caption and type your business insight.
Visualization 2: Monthly Roast Volume Over Time (13 pts)
Create a line chart showing total roastedWeightKg over time, aggregated by Month of roastDate. Color the lines by roastLevel so you can compare monthly output across each roast level. Add a basic filter to allow the user to filter by roastLevel (show the filter control on the view).
Caption required: Write a 2-3 sentence business insight (minimum 120 characters) describing trends in monthly roasted weight over time, noting any seasonality or growth patterns visible in the chart.
Hint: Make sure you choose the continuous Month date part (green pill) rather than the discrete month (blue pill) so you see a proper time series line rather than separate marks.
Step-by-step: 1. Drag 'roastDate' to the Columns shelf; Tableau will default to YEAR. Click the dropdown on the pill and select 'Month' (the continuous green pill showing Month/Year). 2. Drag 'roastedWeightKg' to the Rows shelf; it will default to SUM. 3. Drag 'roastLevel' to the Color shelf on the Marks card so each level has its own line. 4. Ensure the mark type is Line. 5. Drag 'roastLevel' to the Filters shelf. Right-click the filter pill and select 'Show Filter' to expose the filter control on the view. 6. Name the worksheet 'Monthly Roast Volume Over Time'. 7. Add a caption via Worksheet > Show Caption.
Visualization 3: Weight Loss by Roast Level and Duration (18 pts)
Create a scatter plot that explores the relationship between roastDurationMin (x-axis) and a calculated field called 'Weight Loss %' (y-axis). Weight Loss % should be calculated as ((greenWeightKg - roastedWeightKg) / greenWeightKg) * 100. Each mark represents one roast batch. Color the marks by roastLevel. Add roastBatchId to the Detail shelf so each batch is its own mark.
Caption required: Write a 2-3 sentence business insight (minimum 120 characters) discussing whether longer roast durations appear to correlate with higher weight loss percentages and what implications this has for yield management.
Hint: When placing roastBatchId on Detail, make sure you use ATTR or Dimension disaggregation so each batch appears as a separate point. Check Analysis > Aggregate Measures setting if all points collapse.
Step-by-step: 1. Create a calculated field: go to Analysis > Create Calculated Field. Name it 'Weight Loss %' and enter the formula: ((greenWeightKg - roastedWeightKg) / greenWeightKg) * 100. Click OK. 2. Drag 'roastDurationMin' to the Columns shelf (aggregation: AVG). 3. Drag 'Weight Loss %' to the Rows shelf (aggregation: AVG). 4. Drag 'roastBatchId' to the Detail shelf on the Marks card so each record is plotted as its own circle mark. 5. Change the mark type to Circle if not already. 6. Drag 'roastLevel' to the Color shelf. 7. Adjust the color palette as desired and add a color legend title if needed. 8. Name the worksheet 'Weight Loss by Roast Level and Duration'. 9. Add a caption via Worksheet > Show Caption.
Visualization 4: Green Bean Roast Efficiency Heatmap (20 pts)
Create a highlight table (text table with color encoding) showing the average 'Weight Loss %' (the same calculated field as Viz 3: ((greenWeightKg - roastedWeightKg) / greenWeightKg) * 100) broken down by roastLevel (columns) and a discrete binned Year of roastDate (rows). Apply a context filter on roastDate to include only records from 2021 onwards. Color the cells by AVG(Weight Loss %) using a diverging color palette.
Caption required: Write a 2-3 sentence business insight (minimum 120 characters) identifying which roast level and year combination exhibits the highest weight loss percentage and what operational adjustments might improve efficiency.
Hint: To make a highlight table, set the mark type to Square, place a measure on both Color and Text. The context filter option appears by right-clicking the filter pill in the Filters card after adding the date filter.
Step-by-step: 1. Ensure the 'Weight Loss %' calculated field exists (create as in Viz 3 if not already). 2. Drag 'roastDate' to the Rows shelf and set it to discrete YEAR (blue pill). 3. Drag 'roastLevel' to the Columns shelf. 4. Drag 'Weight Loss %' to the Text shelf and to the Color shelf on the Marks card; set aggregation to AVG. 5. Change the mark type to Square (this creates a highlight table). 6. To apply the context filter: drag 'roastDate' to the Filters shelf, choose 'Years', select 2021 and all later years. Then right-click the filter pill on the Filters shelf and select 'Add to Context'. 7. Edit the color palette to a diverging palette (e.g., Red-Blue). 8. Optionally format the text to show one decimal place. 9. Name the worksheet 'Green Bean Roast Efficiency Heatmap'. 10. Add a caption via Worksheet > Show Caption.
Visualization 5: Dual Axis: Green vs Roasted Weight by Batch (22 pts)
Create a dual-axis chart that displays, for each roastLevel, both the average greenWeightKg (as bars) and the average roastedWeightKg (as a line with circle markers) on the same view. Also create a calculated field called 'Avg Yield Ratio' defined as AVG(roastedWeightKg) / AVG(greenWeightKg) and add it as a label on the line axis. Synchronize the two axes. Sort the roastLevels along the x-axis by descending average greenWeightKg.
Caption required: Write a 2-3 sentence business insight (minimum 120 characters) comparing the green vs. roasted weight relationship across roast levels and what the yield ratio reveals about roasting efficiency per level.
Hint: When working with dual axis, each measure gets its own Marks card — make sure you are editing the correct one. Synchronize Axis is found by right-clicking the secondary (right) axis after making it dual.
Step-by-step: 1. Drag 'roastLevel' to the Columns shelf. 2. Drag 'greenWeightKg' to the Rows shelf; set aggregation to AVG. 3. Drag 'roastedWeightKg' to the Rows shelf next to the first pill; set aggregation to AVG. This creates two separate axes. 4. Right-click the second axis (AVG(roastedWeightKg)) and select 'Dual Axis'. 5. Right-click the right-hand axis and select 'Synchronize Axis'. 6. Click on the AVG(greenWeightKg) Marks card and set the mark type to Bar. 7. Click on the AVG(roastedWeightKg) Marks card and set the mark type to Line, then also add Circle to the Marks card path. 8. Create a calculated field 'Avg Yield Ratio': AVG([roastedWeightKg]) / AVG([greenWeightKg]). 9. Drag 'Avg Yield Ratio' to the Label shelf of the AVG(roastedWeightKg) Marks card. Format the label to show as a percentage or 2 decimal places. 10. Sort the roastLevel dimension on the Columns shelf by descending AVG(greenWeightKg): right-click the roastLevel pill > Sort > Field > Descending > greenWeightKg > Average. 11. Name the worksheet 'Dual Axis: Green vs Roasted Weight by Batch'. 12. Add a caption via Worksheet > Show Caption.
Dashboard 1: Coffee Roast Operations Overview (15 pts)
Create a dashboard named 'Coffee Roast Operations Overview' that combines four of your worksheets: 'Roast Level Batch Count', 'Monthly Roast Volume Over Time', 'Green Bean Roast Efficiency Heatmap', and 'Dual Axis: Green vs Roasted Weight by Batch'. Set the dashboard size to Automatic. Arrange the sheets in a 2x2 grid layout using a tiled layout: top-left = Roast Level Batch Count, top-right = Monthly Roast Volume Over Time, bottom-left = Green Bean Roast Efficiency Heatmap, bottom-right = Dual Axis: Green vs Roasted Weight by Batch. Add a dashboard title 'Coffee Roast Operations Overview'. Create a filter action so that clicking a bar in 'Roast Level Batch Count' filters all other sheets on the dashboard by roastLevel. Add a text object at the bottom of the dashboard with a one-sentence summary of the key operational takeaway.
Layout hint: Use a tiled layout with a 2x2 grid. Place a horizontal container on top splitting Roast Level Batch Count (left) and Monthly Roast Volume Over Time (right). Place a second horizontal container on the bottom splitting Green Bean Roast Efficiency Heatmap (left) and Dual Axis: Green vs Roasted Weight by Batch (right). Stack both containers in a vertical container. Add a Text object below both containers for the summary sentence. Enable 'Show Dashboard Title' from the Dashboard menu.