We’re well past the mid-point of the year, with two and half weeks left until Supernova, the impending release of SummerSSBMRank, and presumably Zain taking Kirby to the top spot of Ranked. This gives me some time to talk about whatever I want, and I’ve lately been thinking about upsets. This whole decade has been filled with them, and 2025’s continued to add to the list of all-time shocking tournament results.
In today’s column, I’m going to do my best to break down the statistics behind the ten biggest upsets of this year, some of which are on the big stage, and some of which happened off-stream. I will first explain the process of collecting my contenders for this title, and then bring up the five most notable honorable mentions before concluding with each of the resulting Top 10 in detail.
Methodology
To begin, I made an executive call to only look at majors. While I’d love to examine every single notable tournament that happened in 2025, I ultimately decided I wanted to prioritize the most important events. The only really high-consequence result that I believe that might be arguable for a snub based on this process was bonn’s out-of-nowhere 3-2 over Jmook at Creed IV. If that were included, it would almost certainly land within the top five.
With all the majors to look through, I went through every bracket, taking note of notable seeding upsets across every phase of a respective event, leading to a sheet of 67 upsets – more than enough to guarantee that I didn’t miss out on anything super obvious. For each result, I gathered relevant information about an underdog and favorite involved: their seed and their most recent national rank. I made note of players who were not nationally ranked, keeping in mind the need to classify them later. After collecting each player’s seed, I then calculate the relative Upset Factor of each upset. If you’re not familiar with this statistic, Upset Factor is the normalized difference between each player’s expected placement by seed. For examples of what expected placement by seed looks like on an individual basis, I’ve provided a table below.
| Expected Placement By Seed | Expected Placement Score |
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
| 5-6 | 5 |
| 7-8 | 6 |
| 9-12 | 7 |
| 13-16 | 8 |
| 17-24 | 9 |
| 25-32 | 10 |
| 33-48 | 11 |
| 49-64 | 12 |
| 65-96 | 13 |
| 97-128 | 14 |
| 129-192 | 15 |
| 193-256 | 16 |
| 257-384 | 17 |
| 385-512 | 18 |
| 513-768 | 19 |
| 769-1024 | 20 |
| 1025-1536 | 21 |
| 1537-2048 | 22 |
I did the same process, only with each player’s national ranking. When it came to players who weren’t nationally ranked, I manually classified them broadly into a respective “range” that fit whatever relevant results I could find for them. For example, before he beat Krudo, I treated RapMonster as equal to a player within the range of a Top 51 to the edge of the SSBMRank ballot. Admittedly, this is a subjective process, but it’s one meant to counter cases where seeding might overplay or underplay a difference in skill between two players.
Following this step, I subtracted the difference between the two given players involved in an upset in order to create a parallel category to Upset Factor that accounts for ranking differences. I called it “PNR.” With that said, I unfortunately forgot what PNR actually stood for as an acronym. Instead of having an alternate name for it though, I’ve kept the name the same for this column because it’s way funnier than not.
| Tiers of Skill | Previous Rank (or Estimated Rank) |
| 1 | 1-5 |
| 2 | 6-10 |
| 3 | 11-25 |
| 4 | 26-50 |
| 5 | 51-Edge of Ballot |
| 6 | Top of PR in Solid Region |
| 7 | Middle of PR in Solid Region |
| 8 | Edge of PR or top-tier Arcadian level in Stacked Region |
| 9 | Make it out of R1 Pools caliber |
| 10 | Has results |
Not every seeding or ranking-related upset is necessarily an upset. There are instances in which a lower ranked player may routinely have a recently positive head-to-head history against a higher ranked player, like any time Soonsay has beaten moky or when Joshman has upset Jmook. To adjust for these circumstances, I simply looked at any example in which an underdog had played at least three sets against a favorite since 2023 and made note of how many of them that they had won (zero to three). In cases where there wasn’t a relevant history, I ignored them.
Essentially, what we end up with here are three key fields: Upset Factor, “PNR,” and a third one of the number of sets taken by the underdog in the last three sets of a relevant head-to-head history. For all three fields, I normalized their values by turning them into Z-Scores: effectively measuring each data point’s number of standard deviations from the sample’s mean. As my final step, I calculated the average value of each field together to create the Top 10.
EDITOR’S NOTE: Technically speaking, if I wanted to have something more statistically grounded, I would use a T-score. That’s due to the fact that I technically gathered a sample of all results I deemed notable for seeding upsets’ – and not every single recorded major upset ever or obviously every major result. At the same time though, I thought for my target audience that this methodology and approach would suffice given time constraints and its relevance.
Before we get into the actual list, I want to be clear: this list is not necessarily one to one with my personal opinion on what I think are the biggest upsets for the year. While I do believe it’s an okay starting point, we will see some of this methodology’s limitations come to light in the next section.
Honorable Mentions (Score in Parenthesis)
By virtue of this being a 12 seed taking down a 2 seed, Axe defeating Zain at Full House 2025 (0.46) has an Upset Factor of 6. In addition to that, Zain had also beaten Axe in each of their last few sets while also being the reigning No. 1 player in the world. With that said, I am somewhat relieved this was only an honorable mention. The statistics overplay the level of upset this was given the nature of previous close calls and the long-term nature of the two’s rivalry.
In a very different fashion, I feel like the methodology underplays the nature of Junebug beating Jmook at Genesis X2 (0.57). A Top 5 player losing to a Donkey Kong player is hardly news-worthy, but the guy who nearly 12-stocked Quang losing to another Donkey Kong player is certainly a surprise. This result also had an Upset Factor of 6, and given the matchup at play here, as well as scale, you could argue this to be higher. So why isn’t it? Because my methodology doesn’t account for matchups; if it did, I think it would make the top ten.
Tied as an honorable mention is RapMonster over Krudo at GOML: Forever (0.57). In hindsight, RapMonster’s previous close call with Jmook showed that he was at least capable of taking a top-tier Sheik main to the brink. Still though: Krudo had come off his best major performance ever. RapMonster, though undeniably a talented hidden boss, had yet to really achieve this type of win.
We then get into one of my favorite lowkey upsets of 2025 in Case vanquishing Komodo at Tipped Off 16: Safari (0.61). I like this one for a ton of reasons, starting with the fact that it’s a Peach player upsetting a Jigglypuff player. More than that though, Komodo had finished in the Top 100 for the first time last year, while Case has mostly hovered near the top of Austin’s power rankings (No. 4 on the most recent one before this list) with no big national breakouts.
Lastly comes the methodology’s biggest snub in SDJ sending Cody Schwab to the losers bracket at GOML: Forever (0.64). In fairness, the fact that SDJ had taken a set from moky at Genesis does admittedly give context to the idea of them being capable of defeating a similar enough caliber of Fox. Where the model goes wrong has nothing to do with that though; by our PNR metric, it technically assesses SDJ as a Top 25 player upsetting a Top 5 player. In other words, this treats SDJ’s historic win as no different than if Ossify had beaten Cody. To me, that doesn’t pass the smell test or account for another huge factor that goes into how surprising this was: the fact that Cody has lately looked impervious vs. Hungrybox.
Obscure & Underrated vs. Consequential & Overrated
To my readers who know ball, Tuddy over Yamasaki in Genesis X2 pools (0.72) was a big surprise. Yamasaki is an Oregon Marth player who barely missed the Top 100 last year despite making it onto the ballot. Tuddy, on the other hand, is an unranked dual spacies player from San Diego and, in the context of this result, a 439 seed. When I looked up Tuddy’s name and results in the Melee Stats Discord, the most recent results were a 2-1 loss to s-f, a 2-1 loss to local Fox Liang for 9th at a local, a 2-1 loss to local Captain Falcon player bagel, and a 2-1 loss to NorCal Marth player Arcadia back in October. Tuddy ended up beating Yamasaki, of course, by a score of 2-1.
Conversely, the No. 9 upset on our list is one that is objectively important, yet doesn’t feel that surprising in Junebug’s 3-1 win over Zain at Nouns Bowl 2025 (0.83). Their respective ranking ranges fall into a very similar category of upset as SDJ over Cody Schwab, but this is a great example of where Upset Factor (7) doesn’t tell the full story. The two hadn’t played a serious set at a tournament since Junebug’s switch to Donkey Kong, and Zain’s shown vulnerability before against mid-tier characters. It’s a good upset, but I’d personally have Junebug over Jmook at this spot instead.
Definitive Top 10 Upsets
One of the year’s most underrated upsets is SoCal Fox Iggy defeating Top 50 Marth player Fro116 at Genesis X2 (1.14). Fro116 had come off a year where he finished in the Top 50 and had taken sets from Aklo, Magi, and KJH. Respectfully, Iggy is 0-8 lifetime vs. s-f. By national-level and regional-level results, there was a significant difference between the two players and basically no reason from the outside to expect Iggy to win this; it’s a great win.
Tied in the same spot is Zuppy 3-0’ing Mang0 at Battle of BC 7 (1.14). It’s especially crazy because of the specific matchup here: Mang0’s Falco vs. a Top 100 Fox. Granted, Zuppy isn’t an average Top 100 Fox and had a brief stretch where he was making top eights, and yet if there’s a matchup you’d expect Mang0 to have in the bag, it would be this one. The magnitude of this upset was unfortunately overshadowed by the very dark circumstances surrounding the scene at the time, but it shouldn’t be glossed over.
As previously detailed in my Genesis X2 recap, Aura 3-0’ing Cody at Genesis X2 (1.51) has an Upset Factor of 8. That would make it one of the eleven most surprising results by seed in the history of Genesis. The fact that I did think it was possible beforehand does admittedly make it less surprising; at the same time, it’s one of only six results with a final score of 1.5 or higher. In terms of statistical rarity and significance, this deserves to be high on the list.
Barely ahead of that at No. 5 on our list is a neat surprise in Graves clutching out a last-stock nailbiter over moky at Battle of BC 7 (1.55). moky is not a stranger to suffering upsets, but it’s very rare to see him lose this early, let alone to someone who entered this tournament unranked. By pure difference in results between moky and whomever has beaten him, this is probably the “worst” loss he’s had since being a Top 10 player. It will likely earn Graves a spot on the Top 50 for the upcoming summer too.
Lastly in this category comes Kevbot eliminating Nicki from GOML: Forever at 33rd place (1.82). As a 64 seed defeating an 8 seed, Kevbot clearly did something crazy. However, I do think that he was already having a very good season before beating Nicki. The model currently overplays the level of upset we have here because of two factors: Kevbot’s extremely low seed and the fact that his most recent ranking was not indicative of his pound-for-pound “skill” even before the upset. It’s a great win; it just shouldn’t be this high in my opinion.
Upsets of the Year
The first contender for biggest upset of 2025 is the 63-seed-over-2-seed result of Maelstrom’s 3-1 victory over Hungrybox (2.04): the first domino to drop in a series of events leading to Hungrybox’s worst major performance ever. While Hungrybox had dropped sets before to Top 100 Fox players, as well as had a few calls with non-Top 100 ones, this result has changed Maelstrom’s reputation. He’s gone from a player who made the bottom of the annual list to a guaranteed spot within the 30s in the summer.
We then get into a result that is undeniably historic: SaltInYourEye catching Krudo off guard at Genesis X2 (2.34) in round one pools. I think what’s really crazy is that what’s happened to both players since has made it feel like the result exists in an alternate dimension. Krudo’s come close to outright winning a major and effectively locked up a spot in the Top 10. With respect to SaltInYourEye, who remains a good example of rising young talent in the scene, his best win after Krudo is either Gooms or s-f. This win over Krudo is like a glitch in the matrix that everyone noticed and then proceeded to move on from, with no real fundamental change for either player in the following six months.
And yet somehow one result stands atop the methodology and will likely remain unparalleled for the rest of this year: 938 seed branted’s stunning victory over 38 seed Khalid in the first match of their pools at Genesis X2 (2.61). Simply put, this type of result has never happened in the history of Genesis. In fact, I looked at the history of The Big House, GOML, and Supernova as well, and the closest thing I can find for a seed hovering around the four-digit-range achieving this caliber of upset is the infamous case of Ginger defeating Druggedfox in a 1201 seed over 17 seed upset. Even then though, that largely happened before the advent of modern seeding; back in the mid 2010s, major seeders did not go nearly as deep as they do today, and, at least to my understanding, it was common for late sign-ups to go unseeded because it was not worth the event’s time to re-seed everything. Granted, it’s impossible to definitively claim that was the case in Ginger’s example, but at the very least, there’s reason to believe the seeding disparity did not accurately assess the nature of this upset. After all, Ginger was already ranked in Michigan. He was clearly a bit better relative to his time than a typical player around that seeding range would be to today’s time.
branted has been a part of the NorCal and broader West Coast Melee community for most of the last decade. Though he had close calls with regionally power ranked players and NorCal Arcadian talent before, he’s largely been a local 3-2’r in terms of results (though he does have a DarkGenex win from back in 2020 well before DarkGenex’s competitor glow-up). While that’s nothing to scoff at, and branted did previously have a neat run to 257th place at Genesis X as the 1501 seed, it remains magnitudes away from a regional juggernaut like Khalid, a player who’s made the Top 50 before and outright had a major top eight run at GOML not too long ago. You could maybe argue that branted headed into their match underseeded, and yet it would be by the margins as a possible eight seed within the pool. As it stands though, this was the one possibility that nobody could have ever anticipated: the sixteen seed of a supermajor pool taking down the one seed for the same group. Simply put, the tournament did not prepare for this to happen, and as a result of it happening, the two had the misfortune of playing against each other once again to make it to round two pools in the losers bracket. Khalid would prevail in the rematch, sending branted out of the bracket at 257th place.
Whether they admit it or not, every Melee player dreams of being remembered; of being somebody or leaving a lasting mark on the community. By defeating Khalid, branted may have just left his own mark: the most shocking David to ever take down a Goliath and the winner of the biggest upset of 2025.
