Power BI Dashboard Tutorial: Year over Year Difference Analysis

I want you to increase your efficiency and to stop using spreadsheets for every single analysis.

Everybody works with time series data at some point in time. Year over year (also known as YoY) analysis is one of the most useful analyses you can perform to determine changes, analyze growth and recognize trends in quantity on an annual basis.

Unfortunately, most data preparers are used to performing some unaesthetic flavor of this analysis using only Excel (looking at you FP&A). Without the benefit of using visualization to easily recognize trends, data consumers are forced to work harder to tease out the most salient information.

If you have access to Power BI Desktop (available for free), then you can perform a tabular year over year difference calculation and then tie that information to a bar chart that will help you visualize the variances.

In this video I will show you how to create a calendar table in DAX (Microsoft’s formula expression language) and use that table to enable a year over year analysis of customer orders at fictional Stark Industries. You don’t need to be an expert in DAX to take advantage, just type in the date calendar formula you see in the video and tweak the simple calculations to fit your data.

You could obviously perform a simple YoY analysis in Excel, but I want you to stay relevant and learn something new!

If you find this type of instruction valuable make sure to subscribe to my Youtube channel.



Tableau Dashboard Tutorial: Dot Strip Plot

In this video tutorial I describe a dashboard that I put together that displays the distribution of various NBA player statistics. I use the always handy parameter to enable the user to choose which statistics are displayed on the dashboard. Although I’m showing sports statistics measures in this dashboard, it could easily be repurposed to show the distribution of a variety of business related metrics.

I break the dashboard up into three areas: histogram, dot strip plot, and heat map. In the second part of the video, I describe in detail how to build out a jittered dot strip plot. The benefit of the jittered dot strip plot is that the marks representing NBA players obstruct each other much less as compared to the linear dot strip plot.

Techniques used in the dashboard were previous outlined in my Ultimate Slope Graph and How to Use Jittering in Tableau (Scattered Data Points) posts.

Feel free to head to my Tableau Public page and download the workbook for yourself. Drop me a line in the comments or on YouTube if you learned something.

As always, do great things with your data!

If you find this type of instruction valuable make sure to subscribe to my Youtube channel.

Walmart Technology Brief: April 2019

March 30th, 2019
photo courtesy of technologyreview.com

The King has Left the Building

Jeremy King, Walmart’s Chief Technology Officer for the past 8 years is leaving the company. Mr. King is taking his talents from Bentonville, Arkansas to Silicon Valley. Specifically, to pre-IPO unicorn Pinterest, where he will serve as the company’s Chief Engineering Officer reporting directly to the CEO. CNBC reports that he will be accountable for Pinterest’s “visual discovery engine” that recommends posts and images to Pinterest users. Pinterest had Mr. King pinned on their board as he represents a splashy technical hire that is strategically happening before the company files for an IPO.

King will be replacing Pinterest’s outgoing head of engineering Li Fan who is scooting to become the head of engineering for Lime.

As the head of Walmart Labs, King was instrumental in revamping the company’s e-commerce technology and bringing cutting edge innovations to stores such as automated shelf scanning robots, in-store pickup and grocery delivery. He led the company through more than 10 acquisitions and spearheaded the organization’s transition to the cloud (although not the Amazon Cloud for obvious competitive reasons).

He also championed open source development at Walmart due to the company’s “build rather than buy” philosophy. The organization has historically held the belief that their information systems provide a competitive advantage over other industry players. Additionally, a third party developing custom systems for an organization the size of Walmart would encounter a Herculean task. The Wall Street Journal quoted King as stating, “You would be surprised at the list of companies that have completely choked on Walmart’s scale, because no one really builds products for Fortune One,”.

King’s last day with Walmart is March 29th 2019.


The Wall Street Journal reported on Walmart’s upscale, member’s only, text to order service that is targeted to wealthy NYC moms. For $50 a month, a small beta group in Manhattan will have access to personal shoppers/couriers that will white-glove deliver any non-food item on the same day as the order. The service, named “JetBlack”, is being helmed by Jenny Fleiss of Rent the Runway fame.

The items are wrapped in black (the “Black” in JetBlack) and the idea is a pet project of Jet.com co-founder Marc Lore (the “Jet” in JetBlack). Currently, the initiative is not profitable but its larger aim is to train AI powered systems that could one day “..power an automated personal-shopping service, preparing Walmart for a time when the search bar disappears and more shopping is done through voice-activated devices,” per Jenny Fleiss. JetBlack is essentially a research initiative on AI.

Surprisingly, the service does not restrict users to items only available through Walmart properties and subsidiaries. If a customer wants an Amazon product, then JetBlack will complete the request. Why the customer wouldn’t just order off Amazon themselves is anyone’s guess.

Walmart will be able to inventory the products that their members use after an initial in home visit and the company is building up a trove of data on the products that their wealthy clients order. In this age of data as power, Walmart is taking steps to gather valuable data on upscale clientele which could prove useful in its ongoing battle with Amazon.

Walmart Games?

A number of established tech players have announced or not officially announced their intentions to bring video game streaming to the masses; “Netflix for gaming” is the metaphor. Removing expensive hardware from the gamer equation and running games from giant data centers enables gamers to game with nothing more than a browser, tablet or smart phone.

Google made a big splash recently when it unveiled its cloud based gaming platform named Stadia at the 2019 Game Developers Conference. Microsoft has xCLoud, Amazon has a yet unnamed gaming platform and even Verizon is testing a gaming app on Nvidia Shield.

Walmart, yes Walmart is also rumored to be in on the action with the development of their own streaming game platform. Before we dismiss this as a flight of fancy, consider that Walmart already owns streaming video platform Vudu, where it can leverage existing technology and resources.

It is not known how far along Walmart is in the development process but I would suspect that this initiative is once again driven by the need to keep pace with Amazon.

For more Walmart technology coverage please check out Part 1Part 2 and Part 3 of my series on Walmart’s overall technology strategy.

Additional Walmart technology coverage can be found here

If you’re interested in Business Intelligence & Tableau check out my videos here: Anthony B. Smoak


  1. Pinterest hires Walmart CTO ahead of IPO. CNBC. (March 21, 2019). https://www.cnbc.com/2019/03/21/pinterest-hires-walmart-cto-jeremy-king-ahead-of-ipo.html
  2. Pinterest Pins Tech Hopes on Walmart Technology Chief. Wall Street Journal. (March, 21, 2019). https://www.wsj.com/articles/pinterest-pins-tech-hopes-on-walmart-technology-chief-11553209071
  3. Walmart Builds a Secret Weapon to Battle Amazon for Retail’s Future. (March, 21, 2019). https://www.wsj.com/articles/walmart-builds-a-secret-weapon-to-battle-amazon-for-retails-future-11553181810
  4. Walmart May Follow Google’s Cue On Game Streaming. Android Headlines. Report (March 22, 2019).https://www.androidheadlines.com/2019/03/walmart-google-game-streaming-service.html
  5. Walmart is reportedly considering taking on Google and Microsoft with a video game streaming service. Business Insider. (March 21, 2019). https://www.businessinsider.com/walmart-video-game-streaming-google-stadia-2019-3

Create Rounded Bar Charts in Tableau

Part 1: How to Make Rounded Bar Charts in Tableau

In this post you’re getting two videos for the price of one (considering they’re all free for now, that’s a good thing). I put together a relatively simple dashboard to help illustrate a few intermediate level concepts. In this first video I take a look at the number of total assists by NBA players during the 2017-2018 season. In case you were wondering, Russell Westbrook led the league in assists during that season. If you don’t know who Russell Westbrook is, then skip this Tableau stuff and watch the last video immediately (and then come back to the Tableau stuff).

In the first Tableau dashboard video, you’ll learn two concepts:

  • How to make rounded bar charts;
  • How to filter the number of bar chart marks via use of a parameter;

Part 2: Apply Custom Sorting in Tableau

In the second video I build upon the dashboard built in the first video by showing you how to add a custom sort. The custom sort relies upon the creation of a parameter and a calculated field. The parameter and calculated field enable the user to select either a dimension (e.g., Player Name) or a measure (e.g., sum of assists) from a drop down box and the visualization will sort ascending or descending as requested.

The calculated field relies upon the RANK_UNIQUE function.

In this context, RANK_UNIQUE returns the unique rank of each player’s assist total. The key with RANK_UNIQUE is that identical values are assigned different ranks. As an example, the set of values (6, 9, 9, 14) would be ranked (4, 2, 3, 1), as no tied rankings are allowed.

Part 3: Interact with the Dashboard

Bonus: Russell Westbrook on the Attack

For those of you who do not know who Russell Westbrook is, I’ve got you covered. These aren’t assists but in these situations, he didn’t need to pass!


Thanks to both the Tableau Magic blog for outlining the concept of rounded bar charts and the VizJockey blog for the custom sort methodology. Check out and support these  blogs!

As always, do great things with your data!

If you find this type of instruction valuable make sure to subscribe to my Youtube channel.

The Ultimate Tableau Slope Graph Video

In this video I tackle the subject of slope graphs also known as slope charts. I had some fun putting together this dashboard that illustrates the changes in wins for NBA teams during the 2016-2017 and 2017-2018 seasons. From the video you’ll discover that Chicago, Atlanta and Memphis are on a Hindenburg-like trajectory, while trusting the process in Philadelphia led to huge season gains in overall wins.

Here’s what you will learn from this video:

  • How to create a parameter that enables a user to select which win statistic measure to visualize;
  • How to use Table calculations like, LOOKUP(), FIRST() and LAST() to calculate period over period change;
  • How the impact of Mike Conley’s injury affected the Memphis Grizzlies last season;

Click the pic to interact with the Tableau Public visualization, also download the workbook and data to dissect as needed.

For your convenience the calculated fields that I used to create the measures are listed here. Note that [Selected Measure] is a parameter that you need to create that lists all of the measures.

Calc Select Measure
CASE [Selected Measure]
WHEN “Home Losses” Then [Home Losses]
WHEN “Home Wins” Then [Home Wins]
WHEN “Overall Losses” Then [Overall Losses]
WHEN “Overall Wins” Then [Overall Wins]
WHEN “Road Losses” Then [Road Losses]
WHEN “Road Wins” Then [Road Wins]
WHEN “vs East Conf Losses” Then [vs East Conf Losses]
WHEN “vs East Conf Wins” Then [vs East Conf Wins]
WHEN “vs West Conf Losses” Then [vs West Conf Losses]
WHEN “vs West Conf Wins” Then [vs West Conf Wins]

Better or Worse
IF [Selected Measure] = “Home Wins” OR
[Selected Measure] = “Overall Wins” OR
[Selected Measure] = “Road Wins” OR
[Selected Measure] = “vs East Conf Wins” OR
[Selected Measure] = “vs West Conf Wins”
//WIN MEASURES: Negative delta treated as “WORSE”, Positive delta treated as “BETTER”
//LOSS MEASURES: Positive delta treated as “WORSE” (more losses are worse), Negative delta treated as “BETTER”
LOOKUP(SUM([Calc Select Measure]),LAST()) – LOOKUP(SUM([Calc Select Measure]),FIRST())
Delta ABS Value
ABS(LOOKUP(SUM([Calc Select Measure]),LAST()) – LOOKUP(SUM([Calc Select Measure]),FIRST()))
<Team> Trend: <AGG(Better or Worse)> by <AGG(Delta ABS Value)>
During the <Season> Season, the <Team> had <SUM(Calc Select Measure)> <Parameters.Selected Measure>.

I have to give thanks to Ben Jones at the Data Remixed blog for the inspiration!

As always, If you find this type of instruction valuable make sure to subscribe to my Youtube channel.

Free SQL Data Profiling Tool: Idera SQL Data Profiler

In this tip I will provide an overview of a completely free data profiling tool (at least as of the time of this post) that is easy to use if you are in the Microsoft database stack. You can download the IDERA SQL Profiling tool and immediately put it to work to perform basic column profiling and analyses. The tool will display a summary of the data contained in a selected table and each of its columns. 

Use this tool on the following systems:

  • Microsoft SQL Server: 2008 R2, 2012, 2014, 2016; 2017 Windows & Linux (provisional); Express, Standard, Enterprise editions
  • Microsoft Azure SQL Database
  • Amazon Relational Database Service (RDS)

IDERA SQL Data Profiler has some minor quirks but you can’t beat the price. Check out my review in the video above.

Just remember that data profiling should always be done initially before you start analyzing a new dataset or designing a new visualization. Always start with the basics.

If you find this type of instruction valuable make sure to subscribe to my Youtube channel.

Filter Top N Values with a Slicer in Power BI

In this video you will learn how to filter the top N values shown in your bar chart visualization using a slicer.

  1. This technique uses one measure that generates a number 1-10, that will be applied to a slicer.
  2. Another measure will basically rank all of the values associated with your data bars and only return the values that are less than or equal to the number you select in the slicer.

The comments that I apply to the DAX function should help make it easy to understand. I have to give a shoutout to GilbertQ from the PowerBI community for coming up with the  initial approach which I tweaked for the video.

As always, If you find this type of instruction valuable make sure to subscribe to my Youtube channel!