Introduction This article is designed to go with my recent Data Stories Gallery submission, 3 Year Analysis of Gartner Magic Quadrant Leaders for Analytics and Business Intelligence. It's a rather lengthy title I know! Luckily however, the analysis was rather quick and easy. But, I thought that a few more insights could be shared around this than simply what appears in the Data Story Gallery posting or within the Power BI report. So here goes!
Getting the Data This data analysis started because @Marc Reguera posted the latest Gartner Magic Quadrant for Analytics and Business Intelligence (GMQABI). From my first glance at it, it struck me that Microsoft seemed to be pulling ahead of its rivals, but how could I be sure? Luckily, I have a powerful, free, analytics and reporting tool at my disposal to help me answer such questions...Power BI!
First things first though, I had to go get some source data. This meant tracking down the 2018 and 2017 versions of the GMQABI. That took all of about a minute. But, now I had a different problem, how to collect the "data" to aid in the analysis? Gartner Magic Quadrants don't really contain much data really, just relative positions of dots in a box with labels of company names and center lines that bisect the box into fourths. But then I had an idea, I could use a super high tech data gathering tool to aid me in my quest. After a search around the office, I was finally able to locate the high tech device...a plastic ruler.
After printing out each Magic Quadrant, I could simply measure the center of each company's dot on the x-axis (Completeness of Vision) and on the y-axis (Ability to Execute), using the lower left-hand corner as the origin (0,0). To make it as accurate as possible, I'd use millimeters. I decided to only measure the three perennial Leaders, Microsoft, Tableau and Qlik to speed up the analysis. But, depending on the feedback from this article, maybe I'll do an analysis that includes all of the companies.
It was at this point that I noticed a problem. Not all of my Magic Quadrants were the same size. That was a definite problem. Luckily though this wasn't a huge hurdle. I could easily normalize the data by also recording the full height and width of my Magic Quadrant printouts. A couple quick Enter Data queries into Power BI later and I was in business.
Crunching the Numbers First things first, I had to calculate the normalized positions of the dots within the Magic Quadrant frames. This could be done as a simple percentage, x / width and y / height. This gave me a normalized % of total x and total y within the Magic Quadrant and this could be compared year over year.
However what I really wanted to know is if "velocity" or rate of change was increasing or decreasing and by how much. So, to calculate this, I first calculated the x and y velocity of rate of change. How far backwards or forwards, up or down, did the normalized positions of the dots change from one year to the next. Since 2017 is the base year, the answer is 0 because I do not have 2016 data. For the other years it is simply a matter of subtraction regarding the current year versus the previous year.
This gave me the change in x and y positions over the course of a year, but I really wanted that in a single, aggregate number. Originally I was lazy and added the two together, but, of course, there's Pythagorean's theorem. If I truly wanted to magnitude of the change, I needed to do the ol' square root of A squared plus B squared. However, this left me with the problem of direction. Sure I had the right magnitude of the change now but was that magnitude positive or negative? Luckily, a quick bit of logic was able to solve that issue. If the signs of both changes were the same, just multiple by the sign of one or the other. If they were different and one was larger than the other, then multiply by the sign of the larger change.
Now, finally, I was able to get into "acceleration". How fast were the changes growing or shrinking from year to year and was this change accelerating or decelerating? To calculate the year over year rate of change, it is simply (current year - previous year) / (previous year). Of course, this number is only able to be calculated for 2019 since my velocity numbers for 2017 are 0. Dividing something by 0 really doesn't work too well.
The Analysis While the overall data set is relatively small, there is a lot of information to convey, including position changes year over year as well as the magnitude and direction of the velocity and acceleration of changes. Therefore, I chose to use Bubble Charts for their ability to convey data in both a quantitative and spatial way.
The chart on the left, "Market Position and Velocity" conveys the normalized positional X and Y data in the same manner as the Gartner Magic Quadrants but adds the elements of being able to visual see the change in positions year over year as well as how fast that change is occurring via the size of the "bubble". The color and shape of the bubbles distinguishes one company from another. I then added an additional element, essentially recursively subdividing Gartner's Leaders quadrant.
The chart shows a relatively large surge in Qlik's Completeness of Vision in between 2017 and 2018 but then a quick retreat from 2018 to 2019. Qlik obviously has the most dynamic graph in terms of overall distance traveled. In contrast, Microsoft has remained fairly static, especially between 2017 and 2018 where the bubbles nearly completely overlap. However, from 2018 to 2019 Microsoft surged in its Ability to Execute. Finally, Tableau seems to have had its best year in 2017. Tableau between 2017 to 2018 and 2018 to 2019 seems to have dealt Tableau a mixed bag. Exact numbers and commentary can be seen by mousing over the bubbles to display a Report Page Tooltip.
The chart on the right was initially identical to the chart on the left with the sole exeption of using the % YoY Velocity Change (acceleration) for the size of the bubbles. I wasn't really happy with that so I refactored it. Once I had corrected my magnitude of yearly velocity to be based on Pythagorean's Theorem, I had essentially kind of "lost" the direction of the velocity changes outside of spatially seeing them relative to other years. Since I only had a single value for acceleration, something needed to be done to spatially display the direction of the magnitude of the rate of change.
Changing the chart included using the X and Y velocities instead of the X and Y positions. This allowed me to express the direction of acceleration/deceleration. I also created a new Report Page Tooltip specifically for this visual that includes different commentary. Finally, I decided that the position of the bubbles in different quadrants meant something different. Here, truly was a representation of who was "winning" and who was "losing". Therefore, I came up with the four quadrants, winning, losing, conquering and retooling.
Winning denotes those with positive acceleration in both Ability to Execute and Completeness of Vision. These companies are building out the capabilities of their products while gaining market share. Losing meant the reverse, other companies were building capabilties faster and this company was essentially losing market share. The Conquering quadrant meant that the company was gaining market share (Ability to Execute) but giving up some ground in terms of capabilities. Finally, Retooling meant that company was accelerating its capabilities (Completeness of Vision) but losing market share.
Conclusion It seems clear from the data that Microsoft is the undisputed winner of the past year. The only stain is that Gartner somehow feels that Microsoft is losing ground in terms of their Completeness of Vision. I triple checked my measurements, so that is not the cause. This strikes me as extremely odd since if you look at the complete Gartner Magic Quadrant, Microsoft is clearly the furthest to the right in that regard. Therefore, I can only conclude that Gartner either "moved the bar" or made a mistake with regard to the exact placement on the Completeness of Vision axis. But, of course, Gartner never makes mistakes.