Tableau for FRC applications

Hello once again.

In the past months since i have dived deeper into the world of scouting and strategy on my team, I have heard many wonderful things about Tableau from many different people. I have just downloaded it and gotten into the software, and have been messing around with it for the past hour or so. My question to all of you is, what can it be used for? I know the general concept of the program, and have a basic feel as to how it works, but im curious as to how other teams use this software to their advantage. Im also still trying to figure out how to navigate this software, and what combinations of what data does what, so any and all suggestions/examples i get will be appreciated.

Thank you!


Consider the following threads. This is a pretty exhausted topic.

And these pretty helpful pages from Tableau’s website:

1 Like

I looked through those and got some basic ideas, but most of those are 3+ years old and i was interested in some new ideas or other ways people have used it, including from some CD members who may not have been around at the time of those threads

For starters, I’d get comfortable bringing data into Tableau. When I was using it, I mostly used .xlsx files. But their is opportunity to pull data from online sources or other types of local files. Figuring out what will work, will save you time when you are doing it at competition.

Next, you can quickly dig around a good scouting dataset without going much further than some basic uses. Like creating scatter charts. The power I found was setting up some filters and being able to sort the data in your charts pretty quickly. For basic looks I guess would cross compare basic values, like cargo scored vs hatches scored, and several charts that covered the data. Then maybe I could set a filter to remove teams that were below some level, to focus in.

You can design your workbooks to your liking. You may want to make it so you can dig into each match. Or plot some match-to-match trends. You can also do some more analysis within Tableau, like developing different weights as a model of your preferred teams. There is room here to explore what works. When you have things like you like (with sample data) you can then quickly update the data source while keeping the charts like you like.

The output I used was these charts. I’m sure you could make for a more significant output. You could publish your vizualization, use web data source (either custom or drawing from FMS/TBA), and then access that for real-time scouting. There is a lot of options there.

Finally, I think that FIRST is probably a bit constraining on learning the use cases for a software, so I would look also into some of the public vizzes to get ideas and learn. I can count and /r/tableau and /r/dataisbeautiful as places I’ve found more inspiration in the past.


I created a ‘coach view’ using Tableau in 2017. This was useful to provide a snapshot of our upcoming matches to help us determine our match strategy for an upcoming match. Here’s a screenshot of what it looked like:

Some explanation: Teams were populated on the screen by using a match selector in the top left. Each alliance had a set of total score averages for gears, fuel, and climb at the top. For gears, I also added lines to mark the breakpoints for each rotor.
When you selected/hovered over a team number, their stats would be highlighted (I couldn’t figure out how to have the graphs line up with a team’s positions. Graphs were ordered by team number, so this was a workaround). Each graph represented the team’s performance over the competition, which was useful for trend analysis (e.g. If a team was zig-zagging, they were probably inconsistent, if they were trending upwards, it meant they were improving as the competition went on, etc.). For gears, the line across the team’s graph for each stat represented the entire team’s average, and there was an individual line per team for teh team’s own average (kind of hard to see in the image since I’m highlighting my team).

Note that the data would not filter as a snapshot of the data before/during the match, so it just filled it with all the data we collected, so looking at QM1 would have data from the team across all the future matches as well.

All the data was populated using a custom-made scouting app I did back then, which would send the data to a Firebase database. I then had a google sheet with a script that would pull the data from the scouting app into it so that Tableau could see it. Tableau isn’t able to connect to Firebase directly, so this was another workaround. Images were also uploaded to the Firebase database and they populated a url that Firebase could pull to get a team’s image. The OPR/DPR/CCWM was pulled into the google sheets using TBA’s API.

As a note, I totally forgot how I did all this since I hadn’t touched this stuff since 2017. I’ll probably look into it again for 2020.

If you’re interested, here’s a standalone copy of the Tableau Worksheet that doesn’t require a google sheets connection.
Tableau Dashboard Test 2 (Google Sheets) (4k Res).twbx (134.0 KB)


Can you discuss how you had your data set up to do the MatchNoControl sheet? This has been something myself and a couple others have been trying to figure out how to do, and would love some insight on how to replicate it.

Okay, so I did a little reverse engineering on my sheet and I think this is how I did it.

I had two sheets in the same google sheet containing two separate datasets: One for the scouted match data and second that had match schedule/alliance/alliance positions which was taken from TBA. (To make each row unique for Tableau, I had another column for matchID, which was just [TeamNumber]-[MatchType][MatchNo], ex: 4201-QM01). I did a union of the two under the data source tab on Tableau to get them to work together.

The columns are filled out as Match Number, Alliance, Alliance Position, and Team Number. Order is important and they are all dimensions.

You need to create a parameter of [Match Number] to select the match to filter the data on (Right-click the match number dimension and create a parameter from it). Once you have the parameter, right-click on it and select “Show Control” to have it appear as a selectable list (This can be modified if you wish). Then add the dimension of [Match Number] as a filter. Modify this filter to use the condition [Match Number] == [Match Number Parameter].

Since I had a union of multiple sheets, I then had to add the table name of the match data as a filter to get rid of some weird data that shows up due to using a union.

1 Like

In addition to the threads mentioned earlier, I think this presentation given by 2834 in 2018 might be another great resource to check out. They talk specifically about how they use Tableau on their team and give some good examples for how data can be visualized.

2019 was the first time our team used Tableau so I’ll try and share a little about our experience with it this year.

One thing we did was to create an alliance selection workbook containing a “team view dashboard” that showed all of the most relevant quantitative scouting data we had on a particular team. We’d pull this up along with our qualitative data to help order teams on our pick list.

I think one of my favorite uses for Tableau is making trend lines. They’re really useful for seeing how well a team has been performing recently compared to earlier in competition. This video goes over how to make 'em (I highly recommend checking out all of Quinn’s videos if you haven’t already) . Any places where there are steep drops may be a good thing to ask a team about if you’re thinking about picking them for an alliance. Using our team as an example, it’s clear that we were some having some trouble with our climber (and the rest of our robot too tbh) by the end of this particular event :(.

We actually had an entire page filled with total point trend lines so we could catch teams that may not have had great scoring potential in the past (and subsequently low means/maxs) but were “on the rise.”

Here’s a link to the view we sent to our driveteam to help with match strategy. I think it’s relatively self-explanatory but if any questions come up please feel free to let me know!

Best of luck with Tableau! I hope you and your team gets as much out of it as we have.

Personally I absolutely love Tableau. There’s a learning curve and it takes time to really get the software down but my team uses it for match strategy and predicting outcomes of matches. We use match prediction to test the accuracy of the data. Here’s a link to my 2019 comp analysis. Feel free to DM if you have any questions!!/vizhome/InsightCollectiveCHSFRC2019TeamAnalysisandBreakdown/STRATEGYBOARD


Hi All,

I’m Steven, scouting and strategy lead for team 2834, the Bionic Black Hawks. We have been using Tableau on our team since at least the 2015 season and it has been the main contributor to our team’s competition success since then. @ngreen said it best: Tableau is great for making any charts you feel will help you get a quicker grasp of what your alliance can do and how you can beat your opponents.

My personal favorite part of Tableau is the ability to make custom calculations on the spot. These are called “calculated fields.” This past season, we implemented several new calculations to make our match predictions more accurate and therefore our strategies more effective. One such calculation, which we named “Focus,” calculated the amount of a certain element scored only in matches where that element was scored more than other elements (and above a certain threshold amount, which was modified throughout the season based on observations). This was especially useful when viewing medians and averages of elements scored since they were not weighed down by matches where a robot played defense or decided to focus on another scoring element.

Overall, Tableau is an amazing resource for making your data more interpret-able and useful for a specific season or match. As for learning how to use the software, I found this video playlist quite useful (excluding video #1, which mainly pertains to a limited form of data collection). I suggest you specifically research using calculated fields and a variety of filters to help improve the accuracy and usefulness of your data as it pertains to strategy. Tableau can be tough, but its data is beautiful!


Hello there. My team uses Tableau for both FTC and FRC competitions, helping us to strategize and prioritize game play as well as coming up with Alliance Pick Lists. We also partner with Caleb Sykes during the competition season and produce Pre-Scouting visualizations for teams. We put THIS together for World’s last season. There are filters which allow teams to see the data for their field prior to getting to the competition.

The goal is to do the same in 2020.

Hope this helps.

1 Like

Hi again, Kaitlyn. Happy to hear that Bad News Gears is getting integrated with Tableau :smile:

HERE is the finished product of what 1918 uses throughout a competition for game strategy as well as alliance selection. We like to see as much data as possible on one screen. If you hover over a bar on the top graph, you’ll see a pop-up box with the team’s averages. If you click on the bar in that top chart, you’ll see the match-over-match details on the bottom bar chart. There are also filters on the right side. This interactive dashboard goes with our Team Representative down to Alliance Selection so they can do analysis on-the-fly during the selection process.

If you have any questions, I’m happy to do a webex to further explain.

Tableau is AWESOME. It makes it easy to make data beautiful !!

1 Like

Here is a summary dashboard for what we use tableau to show.

We use AppSheet to populate a google sheet spreadsheet with a bunch of the calculations. We also connect to The Blue Alliance to pull ranking information (there is other useful stuff but we don’t over complicate things) but you can easily just enter that data manually into a spreadsheet to join it all together.

We use box plots and other stuff a lot too and have dashboards for end game, hatch panels, cargo, etc… Once you have the data structure you can go to town on making all sorts of cool stuff.

Next year I’m hoping to do a match prediction dashboard using tableau where we pick the 6 teams and it pops up analysis on real-time performance of the teams to figure out match strategy a bit easier than what we do now.

1 Like

You sure picked an awesome event to display. :crazy_face: :crazy_face:

Haha, this happened to be our most recently scouted event from last season available to share. I would’ve posted States or Worlds but we didn’t push those workbooks to Tableau Public yet. Will have to find those workbooks on the scouting laptop and publish for sharing. :grin:

1 Like

I love the idea of pulling in rankings from TBA and working that into the analysis. Awesome charts!

1 Like

I saw this link today and thought it had a good collection of resources for Tableau learners:

1 Like

Why does our license end before the end of the season?

1 Like

Just get the academic license. (
It is pretty quick and is a year long.

It’s hard to understand why Tableau provides only one product key and that for less than a year for FRC. They have a student program which provides a product key per student for a year at a time. They also have a teacher program which provides a product key per teacher for a year at a time. Tableau’s approach to FRC leaves out non-teacher mentors, who would probably be responsible for teaching Tableau for a majority of teams.

The inability for mentors to have an active license and teach Tableau over the summer and fall when time is most available for teaching really limits the way Tableau is used in FRC. Many teams put something together with Tableau during the competition season, but with only enough depth of understanding to produce a functioning workbook. Tableau could probably double engagement with FRC students, teachers, and mentors if they provided year-long licenses per team member like most software sponsors of FRC.

Tableau clearly provides significant support to the education market. It seems like they would want to be all-in with FRC, but they seem to only be about half-in.