[ Followup guest post by Hans Romeijn: Calculating Period-To-Date/PoP with Indicators for Better Performance ]

Year to Date (YTD) and Year over Year (YoY) calculations are very important in business dashboards. Jim Dehner recently wrote a great post on the topic. It inspired me to present additional approaches for the issues.

Calculating YTD and YoY without LOD

We have been using YTD and YoY long before LOD (level of details) appeared. So we are not dependent on LOD at all. 

Here is how we calculate YTD, YTD Sales, Previous YTDPrevious YTD Sales and YoY Change %. Note that YTD and Previous YTD can be applied to any other measure's YTD calculations.


An example of using the above formula is provided below and here is the workbook.

What is good about LOD?

With LOD, such as below, it provides portability when using the same value in different sheets with different dimensions. (Caveat: make your filters contextual when using LOD). If you use it in a single sheet, LOD is not a concern. In most cases, we don't need LOD.

Formatting YoY

When calculating YoY change % using the native quick table calculation "Percent Difference", we find that the first column is empty. Visually it's not an agreeable thing, although we perfectly understand why. With a little formatting, we can make the viewers feel better like below. 

Double click the green pill of Percent Difference and use ZN() to wrap around the formula. Then format the pill as follows.

This will put a dash "-" in the empty  column. If you wish, we can put a N/A there. 

Calculations for QTD/QoQ, MTD/MoM and WTD/WoW

Note that you can replace the date part 'year' in YTD/YoY calculations by  'quarter', 'month' or 'week' in both DATEDIFF() and DATEADD() for calculating QTD/QoQ, MTD/MoM and WTD/WoW. Here are the calculations for QTD, Previous QTDQoQ Change % and respective sales. You can apply QTD and Previous QTD to calculating other measures.

Calculations for QoPYQ: QTD over Previous Year QTD

The condition for the previous year QTD is like 
We also provide calculations for PoPYP: PTD over Previous Year PTD. P is a parameterized period which can be quarter, month or week.

The companion workbook can be downloaded here.

Date Grain and Anchor Date as Parameters

PS. Tom T left a comment below saying that we can use a parameter for the date grain like year, quarter, month and week. That's very true. It will allow user to select a date grain. So here is the parameter Date Grain:

And here is the Period to Date calculation, Period being defined by the Date Grain.

Also Tom also suggested we can use a parameter for the anchor date instead of Today() as in Period to Date. So here is the parameter Date Select:
And here is the PTD Select Date calculation.
And Previous PTD, Period over Period Change % etc are included in the companion workbook. Check it out.

Feel free to leave comments below or contact me at twitter @aleksoft .
9

View comments

  1. With a little bit of tweaking, you can also make this even a bit more generic by using parameters to select the date part and the measure. Very likely, you could also select a date to compare to

    ReplyDelete
    Replies
    1. Tom,
      Just added a section at the bottom of the post. It describes what you suggested. Thanks a bunch!

      Delete
  2. Hi Alex,

    I've an issue. When you compare QoQ, both the quarters are in the same year. How do you compare the current quarter with last year's quarter ?

    ReplyDelete
    Replies
    1. Updated the above post with QTD over Previous Year QTD. Details can be found in the companion workbook.

      Delete
  3. Hi Alex,

    I need some more assistance as I'm stuck. I wonder if you can come to my rescue. I need to build this formulae, but my fiscal year starts in February. Tableau does not factor fiscal dates in the calculation. I tried following these steps https://tarsolutions.co.uk/blog/fiscal-dates-in-tableau/#comment-3607

    However, prior year/quarter calculations do not work. I'll owe you a ton of gratitude if you can enlighten mortals like us with your gifted knowledge. Thanks again.

    ReplyDelete
    Replies
    1. Could you find me in LinkedIn or Twitter so that we can chat a bit?

      Delete
    2. Sure. Just sent you an invitation on Linkedin. My real name is Farrukh Kidwai

      Delete
Creating In-Place Help Page for Tableau Dashboards
Accommodating Variable Height in a Text Table in Tableau
A 30-Day Learning Plan for Mastering Tableau
A 30-Day Learning Plan for Mastering Tableau
Embedding Mundane Charts with Pareto Insights
Creating Pareto Chart Multiples in Tableau
A Preview of Sankey Chart Type in Tableau 2024
AI's Perception of People Looks in USA
1
AI's Perception of Top US Banks as a Dog
Multi-Level Sankey with the New Sankey Chart Type in Tableau
A First Look into the New Sankey Chart Type in Tableau
Visualizing Cross-Tab Tables with Column Sort
1
A Couple of Mismatches in Tableau's Map
Converting Date to Fiscal Calendar Date in Excel
Converting Date to Fiscal Calendar Date in Tableau
Resolving Simpson's Paradox: The Whole vs The Parts
#TweakThursday: Horizontal vs Vertical Bars
Recreating Datasaurus Dozen in Tableau
Rendering Anscombe's Quartet in Tableau
How to install database drivers for Tableau in Mac
Drawing Line Charts without Axis Offset in Tableau
Charting "Top N and Others" via Table Calculations in Tableau
Calculating YoY of Quarterly and Yearly Sums in Tableau
Imagining Tableau Social
Imagining Tableau Social
Imagining an Enhanced Formula Editor for Tableau
Imagining an Enhanced Formula Editor for Tableau
Filtering Partial Date Period in Tableau
How to Send Email from Tableau with a Template
How to Make Phone Calls from Tableau via Cisco Jabber
Labeling Trellis Chart via Stacked/Shared Axis
Sizing a Trellis Chart in Tableau
Placing Multiple Labels in Trellis Chart
Creating Compact View of a Sparse Table in Tableau
Labeling Trellis Chart Anywhere in Tableau
3
Labeling Trellis Chart in Tableau
1
Computing Spearman's Rank Correlation in Tableau
Computing Cumulative Grand Total in Tableau
Filling Down in Tableau
Pre-Filters, Post-Filters and the Order of Operations in SQL
2
Charting Project Flow via Multiple Data Densifications
Calculating Period-To-Date/PoP with Indicators for Better Performance
Counting Consecutive Occurrences in Tableau
1
Creating Bridge Chart with ARR vs AOP
Calculating the Difference Between Any Two Points in Tableau
Drilling Down with Containers
Creating Sunburst Chart via Map Layers in Tableau
Simple Calculations for YTD/YoY, QTD/QoQ, MTD/MoM and WTD/WoW in Tableau
9
One Button Sheet Swap in Tableau
One Button Sheet Swap in Tableau
2
Coloring the Area between Two Lines in Tableau
Sorting 100% Stacked Bars by Percentage
Creating Kanban Board in Tableau
4
Multiple Bars and Lines in Layers
Referencing Another Data Source without Relationship in Tableau
2
Dynamic Date Granularity and Show Missing Grains
4
Creating Global Variables in Tableau
Creating Sankey Funnel Chart via Template
59
Creating a Simple Toggle Button in Tableau
Monitoring Data Source Delay in Business Dashboard
Analysis of Tableau's Multi-Variable Clustering Algorithm
Iris Classification via Clustering in Tableau
Always Showing Empty Columns in Tableau
Creating Date Range Filter with Dynamic End Date = Max Date
5
Visualizing Crosstab and Grand Totals
Getting the Last Date/Value/Variance in Tableau
A Template for 3-Stage Sankey Chart in Tableau
26
Deselecting Button on a Different Sheet
Deselecting/De-dimming Buttons in Action-Driven Sheet Swap
3
Game of Life in Tableau
Enhancing Text Tables with Visual Background
1
20 Calculation Use Cases: LOD vs Non-LOD
Nested Sorting and Hierarchical Nested Sorting in Tableau
1
Creating 3D Bar Chart via Custom Shapes
Creating Sankey Chart with Sorting/Grouping
5
Creating Sankey Chart with Grouping
4
Enhancing Chart Contrast #TweakThursday 43
Creating a Multi-Stage Sankey Chart via Template Cascading
13
Creating Radial Stacked Bar Chart in Tableau
11
Creating Waffle Chart Multiples in Tableau
Creating Waffle Chart from a Single Percentage in Tableau
Creating Hierarchical Bar Chart in Tableau
Hiding Subtotals at Single Subcategory in Tableau
3
Making Label Text Wrap in Tableau
9
Accessing Excel Files on SharePoint from Tableau
Accessing Excel Files on SharePoint from Tableau
Creating Bar Chart Multiples In One Sheet 2/2: Different Measures
Creating Bar Chart Multiples In One Sheet 1/2: Same Measure
Using Color to Reveal More Insights #TweakThursday 42
Customizing Subtotals and Grand Totals in Tableau
4
Annotating Dual Axis with Alternative Color Legend #TweakThursday 41
A Divide-n-Conquer Approach to Counting Word Occurrence
Sorting Stacked Bars in Tableau
8
256 Cellular Automata in One Sheet
Creating Polygon Hex Maps in Tableau
Creating Joy Plot in Tableau With Fewer Steps
How Amazon failed to deliver: Analytical lessons
Polygon-based US Hex Map Revisited
Visualization, Data and Tableau Eco System
Creating Sankey Chart as Easy as 1-2-3 in Tableau
62
Tableau Licensing Cost Visual Calculator
Tableau Licensing Cost Visual Calculator
Creating 3-Way Venn Diagram with Dynamic Labels
1
Placing and Aligning Labels on Small Multiples
1
#WorkoutWednesday 35 - Superstore Small Multiples Tiled Map with Quad Chart
Creating Polygon Circumscribing Graph #MathVizMonday
Blog Archive
Loading
Dynamic Views theme. Powered by Blogger. Report Abuse.