frclocks.com - Update!

Just in time for the madness of week 3 district elims!

All district rankings in one place, with predictions of who’s moving on and who is staying home.

frclocks.com

Initial thread

I’ve made some major updates, which will make the calculations more accurate. The biggest being that chairmans winning teams are now accounted for in the calculations, and shown in the table in CheezyPoof Blue™ (cue Wil Payne “BRANDING STANDARDS”). Out of district teams also got the boot and are no longer shown.

Changelog

v1.0 - Initial release

v1.1 - 	Rebuilt cleaner code
	Removed out of district teams
	Chairman's teams are now locks
	Lock calculations more accurate while events in progress - still needs tweaking
	Added Blue Alliance links
	Assumed a score of 4 per team per unplayed event
	Updated footer
	Added debug mode (add &debug=true to a url for more data)
	Less aggressive colors

Goals for future versions:

v1.2 -	Make lock calculations 100% accurate while events are in progress
	Add estimated finishing rank column
	Add sortable Columns
	Add a DCMP cutoff line
	Add lock percentage explanation

v1.3 -	Clean up code/add caching for faster load times

Once again, thank you to AGPapa for support and Paul for hosting space

I don’t understand your numbers. In the PNW district there are currently multiple teams listed with a negative lock percentage. What is that supposed to mean?

Teams that are still to play are assumed to score 4 points at their unplayed event, as it is impossible to get anything under 4. This inflates their score slightly, and thus their lock percentage, at the toll of teams that have already played two events.

So if there is a negative percentage, that team has played two events but will be overtaken by the teams under them (I guess this assumes that these teams show up and play) and will be knocked out of DCMP range.

Note that if these teams are still currently playing in an event they can obviously increase their score and crawl out of the red. Once the event they’re in is over, if they’re still red they are out.

Why don’t you just say that they have a 0% chance of going to the district championship instead of a negative number? If “lock %” is supposed to be a probability then a negative number is inherently wrong and it means your algorithm is broken.

What methodology are you using anyway? Is it documented someplace? Is there any reason why people should care what your numbers say?

It is not a probability, it is a ratio of points needed for other teams to tie and knock a team out of DCMP to points still available in the district. If points needed to knock a team out > points available, the team is considered a lock. Think of it more as “You are guaranteed to hold your spot in the DCMP by this percentage with the points you currently have”, which is why teams below the threshold don’t have a percentage but arn’t locked out if they still have a play remaining. Based off of previous spreadsheets done by AGPapa for MAR, which was based off of Brian Lucas’ paper.

If you’d like to see the numbers used for the ratio, add &debug=true](http://frclocks.com/index.php?d=pnw&debug=true) to the end of the url. On the top the points left in the district are displayed, and the PTT column is “points to tie”

Not only that, but his listings of teams is inaccurate. For instance, his listing for Chesapeake does NOT have my team. (4466)

Teams that have not played yet do not have points and are not listed. You will appear once you play.

4466 has not earned points yet.

EDIT: It appears you guys either didn’t show up to your event or there is an issue with the blue alliance, in either case that is out of my hands as I’m using the blue alliance for data

Ah…so the negative numbers are because the ranking is done only based on points earned so far instead of “minimum points that they’ll end up with at the end of the season”, but then “minimum that will be earned this season” is used elsewhere.

Thanks for the details. That’s kind of a cool metric although I’m not really sure how to interpret the numbers other than >=100% is in, <=0 is out, and higher is better.

Thats the jist of it. If your team isn’t playing this week, their % will still fluctuate depending on what other teams do and how the rankings move around. You could move closer to a lock or farther.

Just something to follow and something else to ease anxiety near the end of the season

I think I’ve figured out the part that’s bugging me:

-There isn’t a 1 to 1 mapping between probabilities and “lock %”. A higher “lock %” does not necessarily mean that you have a higher probability of making the district championship even among teams that have played all their events. For teams that have played all their events, I think a higher “lock %” means the probability of making the district championship is at least as good though not necessarily better than a team with a lower “lock %”.

-It’s possible to have a non-zero lock % after having been mathematically eliminated from the district championship.

Here’s an example to illustrate:

-Supposed team 1 has 50 points and is ranked lowest among teams who are set to make the cuttoff but is not tied with any other teams. This would mean their “lock %” is greater than zero.
-Now suppose that teams 2, 3 and 4 are playing against teams 5, 6 and 7 in the last match of the finals of the last district event of the year. Let’s also assume that all of 2-7 have 49 points.

One of the alliances is going to earn points for winning the match, which will bump team 1 out. So despite having a non-zero lock percentage team 1 had already been eliminated.

Now suppose there is also team 4, which has played all their events and has 51 points. They will have a higher “lock %” than team 1 since it will take more points to bump them. However, they’d also get bumped and have a 0% chance of going to the district championship, just like team 1.

Does this agree with your understanding? Maybe I’m taking this a little too seriously.

I don’t rally understand your stats. I’m in Michigan, so we have 451 teams and have 160 of the teams going to states. Based on previous data and this years data, I would estimate 63 pts is around where the cut off will be this year.

I would assume 2619 to be 100% and 4216 to be near 100%:
Rank Team Event 1 Event 2 Age Bonus Total Lock %
19 frc2619 78 0 0 78 40.98
45 frc4216 61 0 0 61 19.09

I would expect 5248 that has played two events and just below the cut off to be a little less than 50%:
Rank Team Event 1 Event 2 Age Bonus Total Lock %
47 frc5248 38 22 0 60 14.25

And a team like 5467 that has two events and way below line to be 0.
Rank Team Event 1 Event 2 Age Bonus Total Lock %
73 frc5467 32 18 0 50 4.84

A negative % is just a flag that “This team is currently in DCMP range but mathematically can’t stay there”

Not sure what you mean by a non-zero lock % after being eliminated. The only case that applies is in the above scenario. You can’t calculate how many points it takes to bump a team from DCMP if they’re not currently in the DCMP.

Yes, I agree with all of your example. That’s why I’m working to perfect the accuracy while events are in progress, basically making it live updating. Every time points are awarded (Quals, Selections, Each round of elims, Awards) it should recalculate the points left in the district and reshuffle everyone around to where they should be with updated %. So yes, at the conclusion of a round of elims, team A might bump team B who has a “lock %” of 0.5 but in the end, it was a really low “lock %” and was probably bound to get bumped out anyway. It would just be too much work to worry about things like predicting whos on what alliance (or backup robots, or the fact that everyone can’t all win the same event, ect). Its just strictly by points needed.

In practice, I’ve gotten it to update after Quals, Selections, and after awards. I’m still working on elims but its close to ready. For now elims update with the awards at the end of the event.

But yeah, you’re probably taking it too seriously. Then again, you’re not the one who made an entire website for it so maybe I am :wink:

And I would agree with these predictions assuming your cutoff numbers are correct. We’re just using different methods. FiM is a monster district. Mathematically, there are still 10565 points left up for grabs. Thats enough to still knock out the 3 team (9221pts needed to knock out). As more events go on, the season progresses, and more points are assigned and removed from the pool then yes the locks will get closer and closer to the true cutoff. Its just too early right now.

As I said in previous posts, you can sort of think of the percentage as the chance that you hold your spot in dcmp. In your example team 5467 has 50 points and you think they have little chance of holding that spot. I would agree, as my number is 4.84.

I guess if I had to make it more clear I would say: This is not a prediction tool, it is the current state of whos locked in mathematically and whos not.

Can this predict whether FMAR will decide to add five more teams to DCMP days before the event??? :rolleyes:

To be totally honest, to me this means your method is not very useful. Yeah, there’s a certain finality about being mathematically 100% in, but your method assumes nothing about distributions of points at events. However, we have a lot of information about distributions of points! And about the number of points teams get at their first event versus their second, etc. Your tool is what it is, and it sounds like you’re applying this method correctly, but that doesn’t make it good, nor does it make it helpful. As the previous poster said, 2619 is definitely going to MSC, but your tool doesn’t reflect that. That’s a red flag to me.

Thanks for clarifying.

No we were not able to compete this week. At this point we ended up only raising enough to compete at one of our events and had to choose the one that best fit into our budget.

It seems like there’s a lot of confusion from non-MAR teams about what this does. This figures out whether or not a team is mathematically certain to go to their District Championships, it is not a probabilistic determination. This is really useful because it allows a team to buy hotel rooms and start planning for District Champs with the guarantee that they will get it.

If you look at this you’ll see that team 103 is green and is a ‘lock’ to make it to MAR champs. It is impossible to distribute the remaining unearned points in a way that 103 will not qualify. The ‘Lock %’ is just how close a team is to that mathematical cutoff, it’s not a probability.

Here in MAR we’ve had a similar calculation for the past few years.
Brian Lucas first developed the system in 2013.
*(https://www.chiefdelphi.com/forums/showpost.php?p=1364720&postcount=45)then used in 2014 to find who was locked in.
In 2015 MAR actually gave teams invites early based on the same system.

In their 2015 email, MAR explained the system like this:

The method used to determine which teams have clinched eligibility is an iterative process that tests whether the points earned by a team that has completed its season may be exceeded by teams that will earn points in the week 6 event. In descending order, each team’s present ranking is decremented by the number of teams who might earn higher point totals to create a worst-case final ranking. Teams whose worst-case final ranking remains within the 55-team eligibility limit (taking into account the automatic eligibility extended to DCA-winning teams) are determined to have clinched their eligibility. The result is an absolute determination, not a prediction.

The innovative part of this website is that the calculation is automatic, where before Brian and I were doing it semi-manually in Excel.*

One bug (or poorly-described feature) I noticed: it appears that Event 1 and Event 2 are sometimes getting flipped. Example: 4580 in Indiana:

http://frclocks.com/index.php?d=in


http://frc-districtrankings.firstinspires.org/2017/IN

Tippecanoe was a 4-point event for them, and was chronologically first (Week 1), but it shows as Event 2 here.

Yes, good eye. That is due to TBA returning a team’s events in schizophrenic order. I’ve seen them swap back and forth multiple times hah.

It seems generally like it tries to return the event with the higher score first, but it gets weird while events are in progress. I dunno ¯_(ツ)_/¯

I could eventually look at the dates of each event and determine event 1 and 2 that way but it just wasn’t a high priority at this point.

And it is now expanded to all districts

Maybe :cool:

This is neat! So to be clear, it only updates itself once the values are locked in? So it won’t update Friday night and show someone who is currently the 1 seed locked in, who might then go on to lose 3 straight matches Saturday morning and then be no longer locked it?

It might be good to clarify somewhere on the page what the numbers mean, so people don’t use them incorrectly.

Values update literally every time you load the page because I’m a lazy bum and have yet to make a method of caching data. Sorry TBA bandwidth and user load time (especially Michigan) </3

The only time it could possibly show someone locked in and then “revoke” the lock is when qualifications are happening, because of the way the the district scoring system works. Its possible to lose points if you go down in rank. I debated on removing this but I see this more as a feature. I’d want to know this information if I was currently competing.

So basically, if you see yourself as a lock while you’re playing quals and say you’re rank 13, that just means if you were to finish in rank 13 you’d be locked in

Yes I am also planning on adding clarification.