Scouting Data Anaylsis

Thank you for sharing this. Are creating visualizations easy with tableau? Is it easy to view data from all of the matches from just one team or would that need to be set up differently?

I think that’s what I’m going to look into. I’m not completely sold on it yet, but I think it’s worth playing around with to see if it can fit our needs.

There will be a learning curve, there is a lot going on, it of course has all the options under the sun to make things look nice. I would focus heavily on the sort by and filter type stuff. That has been the most useful in my experience.

1 Like

The learning curve for tableau is pretty steep. I took me several hours of monkeying with already-collected data to produce useful charts. That said, it’s a pretty powerful tool and worth the effort, if you can spare your lead scout/strategist’s time in other areas.

The toughest part to learn, in my opinion, is how to import data quickly and consistently. Depending on how you tablulate your data, this may be quite nonobvious.

Honestly last year I may have spent near equal amounts of time setting up scouting app stuff (android app, non-web based) and altering/validating json output from the python SQL parsing script as needs changed.

If your careful on how you structure things and are not asking super complex questions a basic .csv can get you a long ways in tableau.

Our team uses Tableau to visualize our data. We started out with basic bar charts and scatter plots last year before trying some more advanced visualizations this season.

Tableau provides some materials on this page, as well as sample workbooks and data to play around with. It’s a bit outdated but it should give you a basic understanding of how to create some simple displays.

Hope you can find a solution that works for you!

While you get the hang of the interface, it’s probably best to start with simpler, single-element visualizations like ‘team number’ vs. ‘Mobility’ (average), and otherwise just play with the features. Everything is drag-and-drop, which is very condusive to learning by experimentation.

My favorite visualization is a bar chart that summarizes every team’s scoring ability:

  • in the data table/import screen, add calculated columns for each way of scoring points (eg. ‘Cones high points’ from ‘Cones high scored’ with a simple multiplier, or ‘Endgame points’ from ‘Climb level’ using string comparisons).
  • Make sure ‘Team number’ and anything you might want to seprate data by (like match number) is set to “dimension” (dark blue) and everything else (like things you might want to sort teams by) is set to “measure” (light greenish blue).
  • Make a bar chart visualization, and put ‘Team number’ on the horizontal axis.
  • On the vertical axis, put ‘Measure values’, from the measure column, and select “Average” in the aggregation selection dropdown.
  • From the dimenstions window, find ‘Measure names’ and put it in the “Color” and “Filter” panels. In the filter section, select only your “points scored” measures, and customize the colors to make a descriptive visualization. (eg. yellow for cones, purple for cubes, light for low, dark for high)
  • Add ‘team number’ to “Filter” and “Highlight”, and opt to make sidebar widgets for each, respectively checkboxes and search box.
  • Right-click the ‘Measure values’ and hit Sort By

The result is a bar chart of the total points scored by each team, on average, during matches. Each team’s bar is multi-colored, with the size of each colored section telling how many points are scored in each category.

This is definutely the most complicated visualization I made during my time as scouting captain. But this can maybe give you something to work toward, as an example of the sort of power that Tableau has, and also some hints at solutions to problems you might run into with simpler problems.

Nice little guide. Could you provide a toy dataset to use? Doesn’t need to be real data (as long as it is labeled as fake data). Also doesn’t need to be this year’s data.

Unfortunately the last time I touched this was when I graduated in 2019, and I’ve since swapped computers. So no, I have neither a dataset nor a tableau file to share. It’s also possible that the software has changed a fair bit since then, which might break something about my little tutorial.

I don’t have exactly the setup that ash4fun is describing, but some of the visualization that we’ve been working on utilizes stacked bar charts. These charts are made in Google Sheets, and use the Google Charts engine, but the point is visualization more than the technology behind it.

I like to start with an objective. We want to see what each team’s mobility success rate is, so let’s create a simple chart for that - see the gauge chart in the top left of the dashboard. We want to see if teams favor cones or cubes. So let’s find a chart that gives us the information in an easy to consume way. Stacked bar charts allow us to see if teams favor cones or cubes and, at the same time, let us see which height of the scoring nodes they favor - see the middle top chart. These objectives go on until we fill out the dashboard below.

I know earlier in the thread, Skyehawk mentions not to use pie charts as they are rarely useful, but I quite enjoy them for Charge Station success this year. Below you will find a couple screen shots of a limited data set from the week0 competition, specifically about team 1512. Please don’t be confused by the purple and yellow colors, I picked a pretty color palette, then made colors mean something. Red is generally not good. The first step towards success is blue, then yellow, then purple is the best. I believe having at least some inklings of a consistent color scheme is important. When I look at the chart for a team, if I see a lot of red, then I can instantly glean information even without looking at the charts themselves. If I see a lot of purple, I can do the same thing.

Here is the sample data set that was hand scouted by me, and then some supplemental data from thebluealliance that was used to create the charts above:

Week0_SampleDataSet.xlsx (9.6 KB)
Week0_TBAData.xlsx (14.6 KB)

My team also uses Tableau to visualize our scouting data. HERE is an example from last season. We like to rank all the robots at a competition but, by clicking on the team on the top chart, can see the match-by-match play in the bottom left chart. The bottom right chart ranks defense robots.

Because it’s break for me and it was bugging me that I don’t have an example of this, I went ahead and made some fake 2023 scouting data based off the week zero API.

Here the Grid scoring is red-purple-blue (making cones and cubes their respective colors was too garish), links are yellow, auto mobility and charge station are green and teal, and endgame parking and charge station is red and orange. The total width of the bar is the team’s average point contribution.

Dataset and Tableau file are here.

Some other visualizations I was able to whip up:


Some of these are better than others, of course. Tableau is very easy to get for free with a student email; I would invite you to play around with some of these.


I think a couple people mentioned it above, but there’s really 3 use cases for scouting data… The 2 most obvious ones are strategy (like Corey highlighted above) and alliance selection/picklist development with the third optional one being predictions.

For strategy, my team has been using pure statistics for the past several years. We just threw in a performance (points) graph this year, so we’ll see how much that gets used. The biggest issue with match data that I’ve been wanting to tackle is not only validating data (again, Corey has a pretty good way his team does that) but figuring out how to quantify data with variability, as match schedules can help or hurt them (ie. Defense) and with robot issues some matches (broken down) and then coming back strong in others. Right now my team is using averaging of matches and that has seemed to work pretty well.

Pick Lists is another major area for teams. I’ve been wanting to tackle this issue for several years, and finally have gotten around to it this year (just got a working prototype done a couple of minutes ago actually). This is where you let your data shine in all it’s glory :slight_smile: It’s all about identifying the right metrics/rankings to sort on, how to sort them, and how to weight them.

The third area is mainly just for fun, but it can serve a purpose to give you a rough idea of where you’ll end up for alliance selection. When I was on the team with Corey, we were able to predict Saturday Qual matches at the 2013 KC regional with a 97% accuracy and the Minnesota North Star regional with an 88% accuracy. Though some games lend themselves better for prediction then others (ie. the links in this year’s game have the potential to significantly influence match results).

As you can see in our examples, we’re really focused on the numbers and less so on charts. What I like to tell clients in my day job as a Data Engineer/Architect, is that as long as the data is there, the rest will eventually figure itself out. This is really true in these graphics, as each year new iterations and improvements are made. And there’s definitely things that can be implemented without charts, think colors & sizes. Make the HIGHS and LOWS stand out. Does a team do something really well? You obviously want to consider them when picking an alliance.

The next thing in scouting data (which is partially here already) is Zebra data (X,Y,Time) - example match. LOTS of possibilities for that!

1 Like

I also want to say Tableau is not the only data visualizing tool around. I built a dataset into google sheets and then used Looker Studio to display TBA data. It is a little easier for a beginner to use and accessible on the web.

I have used Tableau and Quik as well and where these tools get complicated is when joining multiple datasets together. Looker studio is a little weaker in that regard.


For multiple data sets I usually just combine them together in Excel first, then it gets rid of all of the connections which make it wacky to work with. Usually that fixes any problems that would potentially occur.

Yeah, that is what I have been doing in Google Sheets. The formulas are similar to Excel.

We really just started on a “system” last year. Until then it was very shrouded in mystery by whoever was in charge of Scouting. We’ve had a difficult time transitioning from year to year. (Then covid killed it for sure so we started over last year)

We focus on getting data for match strategy. Which we give to the drive team and they handle the strategy part. We run new current data to them for whatever their upcoming match is each time. Then we focus on picklist data. (Is the same data, just used differently) We don’t really do any predictive strategy or anything like that yet.

As far as our system goes, the data that the scouts collect is dumped into a speadsheet that calculates all of it. We ask the drivers every year what kind of match data they want to see, and how they want to see it. (But We don’t really do charts of any kind, we just display the data.)

I’ll ask questions like: When planning your strategy, do you care where a cone is placed? Or are you just looking for cycle time? Do you need to know chassis size? (Pit scouting) Do you want to know the same things about your partners as you do about your opponents? Based on their answers we make a tab in the spreadsheet just for match strategy.

All the information is automatically filled in when you put the match number in. And gives the most up to date information we have. (Including "comments for any given team. Which is easily inputed from a separate tab. That way we can write qualitative data and observations as well)

Our picklist is generated by giving a “weight” to whatever we think is the most important features we’re looking for in an alliance partner. And the totals are simply multiplied by the weight.

Such as in this example, we gave a multiplier of 2 to high and mid cones, but only a 1 to low. The total number of cones they placed will be multiplied by that number to give it more “weight”. Then team ‘scores’ are totaled and ranked. This allows us flexibility to easily change the weight and thus change the ranked picklist between our first pick and second pick. (Because you usually chose each for different reasons)

We then take that list and review it along with any comments that were made on each team (while adding the drivers experiences to any teams they played with or against) and manually move teams up or down the list as needed.

It’s not super fancy, but its fairly easy to understand and explain to new students. It’s also almost all automated so all we have to do is input the match schedule in the morning and add the raw data throughout the day. Hit the match strategy tab, put in the match number and you can see the teams playing and how they’ve been doing. Hit the picklist tab and it’s updated everytime new data is added, or the weights are changed.

There’s definitely flaws. We dont have any data pre-event. So until you get a few matches underway there’s not much to go on, but hopefully we’ll continue to improve it with time.

*As far a data collection, we use scouts with ipads running a custom app. It displays a QR code at the end of each match that allows us to quickly input it into the database.

Tableau is somewhat popular in FRC. Tableau is rather difficult to learn, especially if you have no experience with that kind of thing, but it can be very good for visualizing your data. Google Data Studio is similar to tableau but on the web. Google Data Studio offers less flexibility and options than tableau does, but still a viable option. You can also make custom visualizations with python. Python is super easy to use as a data visualization tool, and it can be set up to grab straight from google sheets.

No need to reinvent existing tooling (unless you find it fun, in which case go right ahead)— can predict matches with pretty high accuracy, for example, here is 2023 ISR #1.

1 Like

You’re welcome to use Fondy Fire’s Scouting Analysis Spreadsheet. See the link I just posted.

1 Like