TBA Match Stats

TBA has a great new feature that shows the match score and power ups live. Sorry the official name is escaping me. This is really, really cool.

Question about it though. Is it recording? Can it graph the score per second of a match? I’m not quite sure how this data would be useful yet, but in a game where the scoring rate is critical over the entire match this would be cool to visualize at the very least. Would be cool to see/analyse where an alliance took over.

Football and basketball (maybe other sports idk) have a graph of probability of winning vs time remaining. Basically its a graph where one team (alliance) is on top and the other on bottom and over the course of the game it shows how likely (percentage) either team is of winning. In a game like this year’s this actually would be pretty good. How useful, idk yet. But visualizing WHEN alliances are winning matches could be useful. Sorry but I don’t have a clue how that is calculated for these other sports.

I don’t know how much delay the image processing takes.

One thing that might be interesting would be to see which teams build leads early vs the comeback kids. Look at first 100 seconds vs last 50 seconds.

What I’d do is calculate the margin for each alliance at that point and then run OPR on it to try and get at a margin for each team. I’d be interested to see plotted against the number of wins. Or even just graph these margins at a few different time points.

These would probably somewhat correlate with how good at different stages of the game certain teams are. Like a good auto team might take an early lead vs. a team with a good climb assist might comeback.

Yep, all the data is being saved. Everyone’s pretty busy right now and hard at working trying to keep this new feature working smoothly, but you can expect to see the data being used for more match insights (e.g. the avg. number of times the scale switched ownership) and to have more data accessible from an API endpoint in the nearish future. Eugene might be able to answer better about the plans for the data.

The image processing itself only takes a few milliseconds. The limiting factor in how “live” GameDay Live is is mainly the delay in the stream from the source (usually about 20-30sec). Uploading the data to Firebase and having the browser load the data also takes a second, but it’s not much in the grand scheme of things. In fact, GameDay Live can even occasionally be ahead of the streams displayed on GameDay by a few seconds depending on your internet connection!

Everything Andrew said is correct. We’re using week 1 to test things out. More info on how we’re making the data accessible coming soon.

Oh sorry I missed the thread.

Awesome work guys!

You mean something like this?

1 Like

I’ve been wanting to do something like this. Mind sharing your methodology?

I just made an list of 149 logistic classification models(one for each second in the match) with the score difference and who won the match. Though, looking at the models I need to do some data cleaning.

That’s exactly what I was planning to do.

Yeah that was exactly like what I was talking about. Sweet!

Just an FYI - We’ve posted API docs for timeseries data. There are two endpoints “/event/{event_key}/matches/timeseries” lists matches at an event w/ timeseries data and “/match/{match_key}/timeseries” gets all the timeseries info.

(APIv3 - The Blue Alliance)

I want to take a minute to call out the disclaimers in the docs:

WARNING: This is not official data, and is subject to a significant possibility of error, or missing data. Do not rely on this data for any purpose. In fact, pretend we made it up.

WARNING: This endpoint and corresponding data models are under active development and may change at any time, including in breaking ways.

Have fun with it, use it, but please don’t even think of using it at your event to argue with your HR or FTA/FTAA.

Lastly, as timeseries data is year-specific, the endpoints do not link to the data model, so you’ll need to handle that manually in your implementation.

Would it also be possible for TBA to use this to record match videos from the livestreams? The OCR could be used to determine the start and end of a match, which could trigger a recording, even naming the file based on the match information given on the overlay.

This would probably be far more data than is currently being collected, but it would be awesome to have near real-time posting of match videos for ongoing events, as well as having an archive of match videos for nearly all matches of nearly all events from 2018(19?) onward.

I’d be surprised if this hadn’t been discussed by TBA developers yet, but I’d still be interested in hearing your thoughts.

This is basically what I’m doing for a scouting program I’ve been tinkering with. I record the webcast feed then use the FMS start time data to automatically cut the video at the right times. Last weekend it was way too slow so I’ve lowered the resolution to reduce file size and hopefully speed it up. Goal is to be able to pull match videos on Friday night during the pick list meeting.

I’m quite positive someone way more skilled on here could figure out a more efficient way to do this.

The problem is one of copyright. TBA doesn’t own the copyright of the video, the person/group that recorded it does. If your team records match video and wants to post it, go right ahead, however ripping and splitting FIRST Webcast Unit video would be a no no, unless you had explicit permission.

One technique that I use is to just spend 15 seconds to find the right spot on the stream VOD. That said, I like the idea of making the process more convenient.