Sykes Event Simulator 2022

This workbook is a tool which can be used to simulate upcoming or live 2022 events, or to calculate statistics for completed events. Data is pulled from the TBA API in the “Data Import” sheet. Explanations for how to use each sheet can be found in the “instructions and FAQ” sheet.

You can download it from GitHub here:
Sykes Event Simulator 2022

As of today, it is missing a lot of the functionality I had at the end of last year. I have hidden the non-functional sheets, so everything visible should be fully functional. I’ve done a fair bit of testing, but there are always bugs, so if you come across one don’t hesitate to reach out. I’ll add all of the other functionality by the start of week 2

Here are the threads from my simulators from previous years if you are curious:

You can also find direct downloads of prior year simulators in the linked GitHub repository.


Here is a direct download for the initial release:

Couple of things I should mention:
Elos are preliminary, the formula will change after week 1 based on the winning margin standard deviation.
ILSs and calculated contributions are seeded rather poorly, as again all I had to go off of was week 0 data, these will also change after all week 1 results come in.
I did my best to validate, but there are always bugs. I’d encourage people to check for weird things on their own, and to report back to me if any values appear erroneous.

I ended up removing a lot of the metrics I was planning to track regarding ball exits from the hub. There were just too many of them and they had basically no usefulness. In their place, I have added a “Hub Distributions” sheet, which sums up all ball exits at the event and performs a Chi Squared test on the upper and lower distributions to see if they are statistically different from a uniform distribution.

I’ll be adding a lot more functionality over the coming days.


the “simulations to run” cell seems to be empty past the current default of “no”. It will not let me type in that 1000 manually.

Yeah, that’s my sneaky way to stop people from running simulations until I get the predicted rankings methods working. Metrics only for now unfortunately.

Also, there’s an error that was popping up at the end of the Update macro. That is fixed in v0.3:


Updated to v0.7:

Changes since v0.3:
Fixed headers in “Data Import”
Added “Predicted Rankings” and “Rankings”
Added “Team Lookup”, “Match Lookup”, and “Images”

I got everything almost back to 2020 capabilities, still missing a few minor things though.

Ranking validation looked reasonable to me, albeit very conservative early in events since Elos are heavily mean-reverted and calculated contributions start the same for all teams. After week 1 I am going to update seed ILS values based on Start-of-season Elos, and calculated contributions will be set to week 1 averages instead of week 0 averages. Calculated contributions will remain the same for all teams though, which will keep win/ranking predictions very conservative. I think that’s okay though, it’s very difficult to predict who will do well in 2022 given we haven’t had official competitions in almost 2 years, so I’d rather stay on the conservative side.

This is now “fixed” :wink:


Thanks again for posting this, Caleb. The old saw goes, if you always do what you always did, you will always get what you always got. Combing the data for details is how we improve.

Have you had time yet to compare Week 1 predictions against actuals?

Updated to v0.8:

Changes since v0.7:
Added “Overrides”, “Full-Event Graphs”, and “Strength of Schedule” books

Barring critical errors, this will be my last week 0 upload. The week 1 upload will come out sometime after Israel 1 completes. This book now has everything that was in the 2022 simulator.

1 Like

Updated through week 1 (including Israel):

Note that there seem to be quite a few data errors on FIRST’s side this season, so be mindful of that if you see unexpected results.

1 Like

I realized that the previous release did not actually include Israel 1 data. This version now does:

The only predictions it would have affected would have been teams at Israel 2 that also competed in Israel 1, which was only 5291.

1 Like

Is there any chance you could use the “Releases” feature on GitHub when you publish new versions? This provides an easy way to get notified when they release, rather than having to turn on notifications for every message on this thread.


Updated through week 2 (excluding New York Tech Valley):

Oklahoma seeds are missing due to inaccurate TBA data. Greater DC Event 1 Day 1 is also still missing data as well.

I’m trying out “Releases” on GitHub, let me know if I’m using them correctly.


Updated through Tech Valley and Istanbul:

Just like in my scouting database, I’m trying out using GitHub releases instead of posting direct links. So the link above references a zipped file. Not positive if I will continue doing this moving forward.

Other changes:
The headers in “Rankings” for surrogate matches and DQ matches were previously swapped. They should now be correct.
I updated some descriptions in the “Schedule Strengths” sheet to hopefully better explain “Rank Diff” and renamed it to be “Elo Rank Diff”.


Updated to include Oklahoma:

FYI the back end TBA data now has the Oklahoma matches past qm 72 removed, the website still looks like it shows them though.


I know you’re iffy on them Caleb, but i am liking the releases a lot (when im not downloading the whole archive with it lmao)

Thanks again for this!


Yeah, the notifications are nice, especially because I am already tuned into GitHub notifications for Rev and CTRE software

Updated through week 3 (except Israel 3 and Long Island 1):

Also some minor formatting changes. Israel 3 will be included later tonight hopefully.


Updated through Israel 3 and SBPLI 1:


Added Week 4:

Added Greater DC #1 Day 1 (Elo and ILS calculations skip this event)
Israel Champs will be added in a few days.


Added week 5:

About halfway done with alliance selection predictions. Likely to have them by the next update.


@Caleb_Sykes I’m getting a compile error when running data import with the week 5 sheet. The week 4 sheet works perfectly fine for me. Am I doing something wrong?