OPR after Week Three Events

The OPR/CCWM numbers up to Week 3 events have been posted, please see


All events are now included. Enjoy the data!

If you find any error or have any questions, please let me know.

Thanks for all the work you put into this!

Thanks for putting this together. Always fun to use these numbers to compare teams between separate events.

Noticed that the WM results page was based on the Max CCWM for teams that have played in multiple tournaments, but the Query page posts and ranks based on the average. Is that an intentional difference?

On the Query page 2056 has an OPR of 85.6 for 2nd best, while the OPR results page has them at 86.8, which would be 1st. Also curious about the difference here.

The OPR and CCWM results page can use different criteria to sort OPR and CCWM. You can put a different number in cell G3 to use other options other than highest OPR and highest CCWM.

The Query page does not use the average. It shows the world OPR and CCWM ranking which is obtained by using all the match data from all the events so far and calculate OPR and CCWM. This way all interactions through teams that attend multiple events will be incorporated in the calculations. So there is no argument about strong or weak competitions.

Does anybody know the score of qualification match 72 at New York? It affects teams’ OPR because I temporarily put in 0-0 to do the calculations.

Has anyone calculated Autonomous/Tele/Hanging OPR separately?

I actually discussed this recently with one of our other programmers, which wasn’t too hard to write once you have overall OPR. Although it may not be important for alliance selection and such events, the results can be interesting and may tell something about the robots’ general strategies.

It’s in the spreadsheets; scroll over on any (completed) event page.

Thanks. Didn’t realize that.

Just went through our qualification match videos for KC, and best I can tell our average climb and teleop scores are pretty close to our Teleop and Climb OPR.

(Hard to see everything when the video cuts away, but it looks like in match 72 we went 4/4 on 5 sets and still had time to hang for 20. :slight_smile: Unfortunately an autonomous error kept us from beating our personal best performance from match 25.)

Our autonomous OPR is quite a bit lower than our average contribution to the autonomous. I wonder if that is because many teams practice lining up for the center autonomous and are moved to the wing when they play with us. If they are not as accurate/practiced from that secondary location that might explain the difference.

Moral to the Story… If you are not going to pick up the extra discs in auto please practice a wing location so that you are compatible with those that will. (We are developing an extra disc wing autonomous just in case we are paired with a 7 disc center partner too.)


There’s also an overall World rank, in columns AA thru AC on the “World Rank” sheet.

Interesting. I would agree though, that your speculation is right. Teams that ordinarily score 3/3 or 2/3 from the center pyramid getting moved to the wings so you can run for 7, and missing their 3 would artificially deflate your Auto OPR.

I analyzed 4343’s numbers from GTREast, and I would say that our Auto OPR is right where I guessed it would be (I guessed 80% x 3/3, 20% x 2/3 for 16.8 avg, and our OPR is 16.7). Our Climbing OPR is way low though, as is 2056’s. Either we didn’t hang in as many matches as I thought we did, or something is skewing that, because a hanging OPR of 4.5ish suggests we’re hanging for 10 less than half the time. Our Teleop OPR is lower than I’d like, but thankfully there’s lots of room for improvement. A slight change to our hopper design should prevent us from dropping our 4th disk out the top of our hopper (this happened about 60% of the time on the way back to the pyramid). Several times in the interest of time, the drivers elected to shoot for the 2pt goal when an alliance partner was using the pyramid. Hard to determine what effect that had on OPR though, since its still scoring points, but saving time.

This is so true. One of the worst things a coach has to do this year is talk to a team who can only shoot three in autonomous and they need the center back of the pyramid to start.

Here’s a thought:

Put a trim pot on your bot. Read it with an analog input. Use that value to trim your autonomous shooter speed.

You can easily make tweaks between matches in the heat of competition. No software changes or uploads.

Good idea.

If you’re worried about a trim pot getting bumped and screwing you up, you can put a very simple text file on the cRIO to adjust your speed. You can change the text file and FTP it to the cRIO in about 10 seconds. We call it our “fudge file” (as in the fudge factor to adjust or speed/angle/etc.). If anyone wants an example of how to do this in LabVIEW, let me know and I’ll either post it here or e-mail it to you.

The twitter feed says 119 for red and 46 for blue

Yet another option:

If you have 3 free buttons on the operator console, you can use them to adjust values in the fudge file. Use button1 to cycle through the available fudge values in the file to select the one you want to adjust. Use button2 to bump the selected value up. Button3 to bump the selected value down. No need to connect a development computer.


First off, this is an impressive collection of VBA scripts!

Second - when I try to run the refresh data script, I get an error, something about runtime error ’ 13’ Type mismatch.

I opened v3.0, go to the Dallas page, as thats the one I’m interested in, and make sure that I enable macros and a data connection. When I hit ctrl-shift-P it starts doing a lot of stuff but then stops at that error. When I run the step into the command and do it line by line, it seems it’s because it’s going through the teams list (which is blank at the time) until it hits the word “match” in C353.

Any tips? Am I missing a step? I don’t see anything else suggested in the instructions page.


Thanks. Do you know why the match score was not shown? Did they replay that match?

I am not sure what you are trying to do. While this can be used as a predictive tool in terms of match results, projected ranking at the end of qualifying round etc., it needs data to start. It is not that good a predictive tool when the match schedule has not come out yet. Try to run the macro again after each team has at least played 3 matches. Otherwise you may get an error saying insufficient data or something like that due to the ill condition of the matrix. For the OPR numbers to be meaningful, you need at least 4 to 5 matches completed for each team. I think some people have done that study so others please chime in.