Removing Beatloops

There have been a lot of questions about how beatloops are removed, and under what circumstances a beatpath segment reappears. Read on to see a graph of some common cases and to discuss what is the best way to handle the different scenarios.

Technorati Tags: , ,

Here are some common “snarled” scenarios, with redundant wins, beatloops, etc. These are hypothetical situations, not results from any particular NFL season.


Beatloops-Ex1-1 Let’s look at Dallas/Philadelphia first.

Dallas is 2-1 over Philly. I think it would be clear that if it were 1-1, it would be ambiguous who was better. Same if it were 2-2. So, I am handling this situation by canceling out a win and a loss, and seeing what is left over. The end result should be that DAL would have a beatpath to PHI.

Beatloops-Ex2 Next is the KC situation.

The reason a 3-team beatloop is ambiguous is because if A->B->C->A, then if A is truly better than B, they should have beaten any team that B beat. But they didn’t. So it isn’t really clear that A is better than B, because it appears that C is better than A.

But in the KC situation, KC and SEA have split. Well, let’s look at the three-team beatloop first:

  1. SEA wouldn’t be given credit for beating TEN because they were beaten by a team that TEN is apparently better than.
  2. Furthermore, TEN wouldn’t be given credit for beating KC, because they were beaten by a team that KC is apparently better than.

However, since SEA split with KC, it gives lie to the assertion that KC is better than SEA. In case #1, SEA isn’t clearly beaten by KC anymore. And in case #2, KC isn’t apparently clearly better than SEA, the team that beat TEN.

Both cases suggest the same solution. KC and SEA’s split should cancel out. That would leave one clear beatpath segment with SEA on top: SEA=>TEN=>KC.

Beatloops-Ex3 Now for CHI.

There’s nothing here to cancel out the beatpath loop. You can make an equal case for CLE->CHI, and CHI->BAL. And it’s obvious that BAL->CLE. So the beatpath loop must be removed. The only remaining issue is whether it is clear afterwards that BAL->CLE. I think it is – that extra win really proves dominance. It doesn’t make sense to delete both wins. So it appears this scenario should result in one clear beatpath: BAL->CLE.

Beatloops-Ex4 Time for the Miami snarl with ARI and ATL.

Miami is in two different beatloops. Do you remove one? Both? Only some of the arrows? I’ve considered complicated solutions like just removing the arrows connection to MIA since they are in the center, or perhaps just the wins, but they’re problematic. It wouldn’t really change the fact that NYJ and BUF have an ambiguous relationship with MIA. Perhaps NYJ=>BUF and ARI=>ATL should be retained because MIA is so inconsistent, but the problem with this is that this becomes an exception to a rule, an exception that may behave in haywire ways as beatloop scenarios get more complicated. It may not always be possible to tell who is in the center of a beatloop cluster. The truth remains that these are two separate beatloops, and it’s ambiguous who is better than who out of all five teams. So the system removes both beatloops. One thing that’s interesting about this is that if NYJ beats ATL, it would have absolutely no effect.

Beatloops-Ex5 Now check out the MIN situation.

This is the one that has come up before in the comments. These are two separate beatloops, but there is only one win that MIN has over NO. So, which beatloop do you remove? Once you remove the MIN->NO win, the other beatloop doesn’t exist anymore. So which do you choose first?

Well, the answer is, you don’t. I just remove all of them. It doesn’t change the fact that MIN->NO->DET->MIN is ambiguous and MIN->NO->TB->MIN is ambiguous. All should be removed. Doesn’t that mean that NO gets kind of screwed in this situation? Well, it depends on how you look at it. Yes, they do lose two wins from only one loss. But you can also argue that if MIN was beaten by two teams that NO beat, then NO really should have beaten MIN. And also, NO comes out of the situation a bit protected. MIN won’t ever get credit for its win over NO unless it can somehow cancel out its two losses to teams that NO beat. And if MIN managed to beat DET to split the series, NO would then get credit for beating DET.

Beatloops-Ex6 All right, now for the monster. I know you’ve been looking at it.

CIN has beaten DEN twice. This is that really seems kooky at first. What happens in that graph scenario?

The answer is that CIN->DEN->IND->CIN gets obliterated. Then, because it’s part of a longer beatpath, the other CIN->DEN win gets obliterated, as part of CIN->DEN->PIT->JAC->CIN . So we’re left with DEN, PIT, and JAC floating off by themselves with no beatpaths.

I think it makes sense. Pretend that CIN vs. DEN were the final two games in the season. CIN would be suffering under several different beatpaths from DEN. If CIN won once, DEN would still have a long beatpath over CIN through JAC. CIN wins twice, and has enough to make up for both beatpaths.

But here’s the curveball. What if DEN also beat JAC directly? This becomes a situation like MIN on the left of the graph. CIN->DEN->IND->CIN and CIN->DEN->JAC->CIN both get removed, with a CIN->DEN win remaining. So in a sense, Denver gets penalized for defeating Jacksonville by having CIN ranked ahead of them, whereas otherwise, they’d be off by themselves.

Freaky, huh? I’d argue that it’s actually not a problem. The fact that a team is off by themselves doesn’t mean that there aren’t dynamics in the graph that are on the verge of affecting them. Plus, if you’re off by yourself, it doesn’t mean you aren’t a bad team, it just means there’s a lot of ambiguity about where to put you. Finally, this scenario isn’t all bad for DEN, because it would restore their DEN->PIT->JAC beatpath.

Finally, here is the resultant “Clean” graph of all the examples (not including the hypothetical DEN=>JAC victory). This is how the graph would look after all the beatloops are removed in order.


In general, these are complicated scenarios, but it is all based off of one simple set of rules. Find the smallest beatloops. Remove them all at once. Repeat. By doing so, we remove all the ambiguity from the season, and we’re left with a graph of all the clear wins, losses, and patterns of dominance of all the teams.

8 Responses to Removing Beatloops

  1. Miles says:

    Thanks for the explanation 🙂 Last bit I’m missing though — is this new logic or already applied to the weeks past graphs.

  2. tt says:

    Should already be applied to past graphs. The only recent fixes I’ve made have had to do with a team beating another team multiple times, and unless I’m mistaken, that hasn’t happened yet this year. I think CHI vs DET will be the first rematch.

  3. Jason says:

    The “monster” above appears to say that GB beat CIN, which we all know didn’t happen. Factual errors make complex ideas even more confusing.

  4. ThunderThumbs says:

    Right. These examples are all hypothetical. None of these situations were taken from the 2005 season. I went ahead and added the clarification to the entry.

  5. Jason says:

    I think there is a more logical way to resolve your Cle=>Chi=>Bal=>(2x)Cle situation. You assume that since Bal=>Cle twice, that that beatpath is strong enough to survive the beatloop cancellation. However, there is no reason to think the Chi=>Bal loop is any stronger (or weaker) than the Cle=>Chi. As you probably know, the biggest downside to ranking system is that you can not accurately assign quantitative value to the rankings (conversely, with a value system it is difficult to use the value to make any reasonable ranking with 32 teams playing only 16 games). I don’t think it is correct to allow the double win remain as a beatloop. Another way of looking at this is that you have established hundreds of beatpaths by the time the season is over, 256 to be exact. To make any sense of this, you need to consolidate and eliminate as many as possible. You logically decided to consider the shorter loops before the longer ones because there is less of a chance there is a fluke in the shorter one. You can use the same logic to consolidate 2 team relationship between Bal and Cle (2x) into one beatpath, and THEN consider the 3 team beatloop that exists. That only justifies my suggestion using your logic for order of cancellation. The bottom line is that it is not accurate to start adding more “value” to one beatpath because Bal beat Cle.

  6. Jason says:

    My last posting would also change your Cin=>Den=>Ind Etc. loops. I believe Cin=>Den should be consolidated to 1 beatpath, then Cin=>Den=>Ind=>Cin would be removed and you would be left with Ind=GB=>Cin and Den=>Pit=>Jax=>Cin. The reason for not cancelling the part of the loops with GB and Jax is that the key to those loops (Cin=>Den) is removed. Ironically this puts Ind over Cin because Ind=>GB=>Cin, even though Ind’s direct win over Cin was cacelled out. And we shouldn’t worry about Ind, GB, Pit, and Jax developing beatpaths to Cin. Cin’s protection from Their win(s) vanished when the beatloop Cin=>Den=>Ind=>Cin disappeared. If Den hadn’t played Ind and had split with Cin, the result would have been the same. In that case we wouldn’t worry about the 2 4-team beatloops not being removed because the 4-team beatloop takes a back seat to the 2 team beatloop of Cin and Den splitting. So we shuoldn’t worry abuot removing the 4 team beatloops after the Cin=>Den wins are consolidated and the Cin=>Den+.Ind=>Cin is removed, this 3-team beatloop, just like the 2 team CinDen, takes priority over either of the 4-team beatloops.

    If you were to run the formula with these modifications, I think you find there to be several more meaningful relationships between teams in the middle of the graph (not an ends justify the means arguement, just an observation). And to corrent my earlier posting, since there are 30 teams, not 32, the 256 I stated above should be 240.

  7. ThunderThumbs says:

    RE: #5 – I think I need more explanation of why you think it’s a good idea. You’re saying that even if BAL beat CLE twenty times, they should be canceled out by one occurrence of CLE=>CHI=>BAL. I don’t see why that is a good idea.

    The rationale behind the current way I do it is because when you have a beatloop, it means the relationship between those teams is ambiguous: there is not enough data to determine which of the beatloop teams is clearly better than the other. In that example, BAL has overcome that ambiguity by proving they are better than CLE. There is still no information to suggest that CLE=>CHI or CHI=>BAL, as you point out, so they are left out.

    As for the other way of looking at it, I do always resolve smaller beatloops first, including two-team beatloops (splits). But CLE=>BAL (x2) isn’t a beatloop. It’s a “repeat”. There are various points in the system where I remove repeats, but I do them late in the process after all beatloops are resolved. If I did them beforehand, the graph would in general be much more ambiguous with less beatpath data, and that is because the CLE=>BAL (x2) case is much more common than the CIN=>DEN (x2) case (where both wins are swallowed up by beatloops of different size). I’d also be willing to bet that the win/loss pick record would be less accurate, but that’s easy for me to test… I’ll report back with that.

    There *is* still something inconsistent with the way I resolve the beatloops and I haven’t yet found a solution. Imagine the BAL=>CLE (2x) scenario above, but also add, say, a CLE=>NE=>BAL beatpath segment. In that case, BAL=>CLE remains. But if it were instead CLE=>NE=>STL=>BAL, all arrows would disappear.

    It feels inconsistent to me. The only way both wins get removed is if there are multiple beatloop paths back to them, but of different lengths.

    If I were to make it consistent, there would be two ways to deal with it. The first would be to remove both beatwins if both beatloops were of the same length. But that would mean I would have to start counting beatwins, which I’ve already noticed causes problems, and it contradicts how I handle the MIN=>NO example.

    The second would be if I removed BAL=>CLE only once in both cases. I’d have to think about that one more. It has possibilities but there are some weird side effects that might happen.

  8. ThunderThumbs says:

    All right, I’m running a test for the 2005 season, using the same tiebreaking algorithm for power rankings.

    When I use the current method (without reducing multiple wins down to one win before evaluating beatloops) the performance is:

    Beatpath picks: 64-28
    All picks: 151-88

    When I clean the multwins first, the performance is:

    Beatpath picks: 62-26
    All picks: 153-86

    That’s really interesting. It does result in a more ambiguous graphs (making four less beatpath picks over the season), but they end up more accurate. So you might be right, I would’ve lost my bet. 🙂 Still, it just strikes me as odd and I don’t yet understand why this would be more accurate. I’ll have to do more testing on previous years. If you refer back to my first paragraph in comment #7, that scenario still doesn’t feel right at all, especially when applied to leagues like MLB and NBA.

    Just because I’m curious: the beatflukes variant.

    Without multwins cleaned out (normal):
    Beatpath picks: 68-33
    Overall picks: 154-85

    With multwins cleaned out:
    Beatpath picks: 66-31
    Overall picks: 154-85

Leave a Reply

Your email address will not be published. Required fields are marked *