Introducing (for real this time!): ScoutLess 2022, a way to scout less, letting the data work for you

As previewed, I’m excited to announce a working* copy of ScoutLess for 2022!

Introducing ScoutLess, a way to scout less

Try it now!

*Since we don’t have real 2022 data, screenshots use 2020 data. However, the document is now ready to go using the 2022 API spec, and should work once matches begin.

Configure your event
Simply grab an API key from The Blue Alliance (takes just a minute), enter your event code, and go. The config page also supports custom API data you may want to collect.

The data will appear
You now have an accurate dataset to integrate with your existing systems and analysis. Sort it, color code it, vlookup it (v-look-it-up?)– whatever you wanna do. Feeling really ambitious? IMPORTRANGE the heck out this into your existing system!

Data included
Auto: Taxi (yes/no)
Endgame: Climb (no/low/mid/high/traversal)
One option for custom API fields (experimental, and probably not helpful for this year’s game)

Ready? Try it now!

I posted lots of disclaimers on the previous thread – I suggest you take a look. Tl;dr, there are probably better ways to do this, and I’d encourage you to find them. If that’s out of scope, though, use this to make the jobs of your scouts just a little bit easier, letting them focuses on game pieces and higher level strategy.

Lastly, always subject to change if the FRC API spec changes ahead of Week 0.


Excited to try this out and see if it works for the official Week 0 (if the Week 0 page appears and is updated live like I believe it usually is.

(Currently not up:

EDIT: Made some data improvements which impact the stats below. More importantly, you should make a fresh copy of the sheet. There were some mismatched rows in the old sheet.

Seems to be working with Week0 data, though when I have a bit more time I’ll go in and do one more quality check. Please let me know if you have any issues!

Some interesting week 0 data:

If I didn't have scouts

If I didn’t have scouts and wanted to leverage this data, here’s what I’d do:

  • Create a very rough “power score” for each team, based on their data, and sort by score.
  • I assigned each API item a point value corresponding to its match point value (very simple…an auto taxi adds two to a team’s power score, a traversal climb adds 15, etc.)
  • I then sorted by power score, and got this pick list (quals ranking for reference):

Obviously HUGE caveat that this doesn’t consider game piece scoring at all. However, just one person taking some notes on game pieces supplemented with this should be a good starting point for teams with limited scouting abilities.

Team Power Score Qualification ranking (for reference only)
58 233 3
3467 134 5
2713 92 12
8724 88 6
1153 67 24
2370 44 7
151 42 22
88 27 13
5687 25 10
125 24 4
5459 22 23
238 18 1
5813 18 8
501 16 18
157 6 20
246 6 11
1073 6 14
4041 6 15
2342 4 16
4909 4 21
811 2 9
1721 2 17
509 0 2
6153 0 19
Raw data
Auto - Taxi Endgame
Team Yes No Mid None Traversal Low
58 1 10 11 0 0 0
88 3 5 1 7 0 0
125 8 2 0 2 6 2
151 0 4 2 2 0 0
157 3 3 0 6 0 0
238 5 5 0 8 0 2
246 3 3 0 6 0 0
501 8 3 0 11 0 0
509 0 7 0 0 7 0
811 1 5 0 6 0 0
1073 3 5 0 8 0 0
1153 2 8 3 7 0 0
1721 1 6 0 7 0 0
2342 2 2 0 4 0 0
2370 1 5 2 4 0 0
2713 4 6 4 6 0 0
3467 2 5 6 0 0 1
4041 3 3 0 6 0 0
4909 2 4 0 6 0 0
5459 7 3 0 8 0 2
5687 2 8 1 9 0 0
5813 9 2 0 11 0 0
6153 0 4 0 4 0 0
8724 2 6 4 4 0 0
8897 0 2 0 2 0 0
8898 0 2 0 2 0 0
8899 0 2 0 2 0 0

Auto Taxi: 37.5% (72/192)

No Climb: 66.67% (138/192)
Low Climb: 3.65% (7/192)
Mid Climb: 17.7% (34/192)
High Climb: 0% (0/192)
Traversal Climb: 6.77% (13/192)

1 Like

Thank you so much for this tool! Our team will be using it to supplement our scouting. I might add an extra API query to pull in total cargo scored for each alliance, so we can give our cargo scouting a “confidence rating” of sorts. (e.g. our scouts recorded 18 cargo scored between the 3 robots on red alliance, but the API returned 25).


How close to real-time is this data during the season? Unless it is available very shortly after a match, it won’t be very useful in scouting, just post-mortem. Or is the idea to look how a team did in previous comps?

1 Like

If an event is reporting scores in real time (which most do, assuming they have reliable internet), the full breakdown is available in real-time, too. You could refresh this each match if you really wanted to.

Hey @jaredhk,

I had gotten a copy of your sheet set up and was working great pulling in week 0 data as a test. This morning I went to pull some data for a week 1 event and the API status says it’s not working. I tried generating new keys, punching in different event codes, nothing. I made a second copy of your sheet and that worked immediately with the same keys and event code. Any ideas? Is there a way to re-authenticate the “TeamStat Dashboard” or whatever it was that I had to give permissions to? The only changes I made to the configure tab was adding a custom API path.


One thing I’ve found works when the script hits a snag is to change the event code to another valid code, and then back to the one you want.

If that doesn’t work, feel free to DM me so I can take a closer look at your copy.

Trying this and I like it. I had written a Python script to be similar, but having it in a Google Sheet might be useful.

The headings in the Match stats tab seem missing? I see 1 row with “Key” and some other fields, but most are “1”, “2”, etc (and there is a “4” ;-). I can work it out, but it would be nice if there were slightly more explanatory headers, or a 2-row header for the groups.

Thanks for the work!!!

Can you share a screenshot of what you’re talking about?


I realized after posting that maybe you intended that table only for the query results, and the useful stuff is in the TeamData tab.

That’s correct. This page is kind of an in between processing page. Feel free to use it if it’s helpful to you, but all the data is returned via the other tab.

The 1/2/3 is the raw data of red/blue robot 1, 2, and 3 per match, which isn’t helpful in most cases in this format.

I was trying to test this out today with real match data, and when I change the event key, none of the data is populated, just saying loading continuously. Has anyone else had this issue? any fix that you found?

I have tried copying the sheet again, emptying the event code and reentering, trying other keys, nothing seems to work.

Is the script authorized and returning a good message on the setup tab?

Unfortunately it seems that Google Script is having a pervasive problem inconsistency failing to resolve requests for data. I’ve observed this on a number of projects, unrelated to this. This seems to be a new problem that I don’t yet have a good solution for.

I’d try with another Google account and see if that helps. I’ll try to dig into this if it continues after the weekend.

Important Update

You may have noticed that traversal climbs were not counting properly on certain versions of the sheet, depending on when you made a copy. Please make a new copy as this has been fixed.

Formatting note

I’m now including a version date in the file name in case of any future updates so it will be easier to track

A note on the “Loading…” Shenanigans

This problem is only impacting a subset of folks and it is intermittent. It seems to have nothing to do with this sheet, but with any functions calling data from elsewhere on the web. Looking to find a solution, but guessing this is a temporary bug on Google’s end. In the mean time, some possible workarounds:

  1. Make a new copy
  2. Change the event code and change it back
  3. Deauthorize and reauthorize the script
  4. Edit your TBA Auth Key and edit it back
  5. Different Google Account
1 Like

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.