Regulation M-C is here!

Every other teambuilder ranks partners by how often they appear together(so why doesn't k2dex?)

Why not just count?

How far can counting get you?

If you've ever used Pikalytics, Smogon's usage stats, or almost any teambuilding site, you've seen a table like the one below. Pick a Pokémon, and it shows you the teammates it appears with most often. It's computed by the simplest possible method: go through every team in the data, and for every pair of Pokémon on it, add one to their shared count. That's co-occurrence, and it's the engine behind nearly every teambuilder except this one.

  1. 1SneaslerSneasler51.4%
  2. 2SalamenceSalamence48.4%
  3. 3IncineroarIncineroar45.3%
  4. 4GholdengoGholdengo32.5%
  5. 5KingambitKingambit28.3%
  6. 6Hisuian ArcanineHisuian Arcanine25.5%
  7. 7BasculegionBasculegion21.9%
  8. 8Eternal Flower FloetteEternal Flower Floette21.7%
  9. 9RaichuRaichu20.8%
  10. 10SylveonSylveon14.0%
  11. 11FarigirafFarigiraf13.2%
  12. 12GarchompGarchomp12.8%

It's a powerful tool, but in principle it has a blind spot: co-occurrence can't tell the difference between two Pokémon that genuinely work together and two Pokémon that are simply both popular. If Garchomp is on half of all teams and Sinistcha is on another 40%, they'll land on the same team constantly, purely by chance, even if neither cares about the other, and the table reports that as "synergy" all the same.

The k2dex model is built to see past this. Instead of counting pairs, it fits a coupling between every pair of Pokémon that has to explain the team data as a whole, holding everything else constant. That's the difference between "how often do these two appear together?" and "do these two appear together more than their individual popularity would predict?" To see what that's worth, use the comparison below and let each method finish the team: counting fills the open slots with its top teammates, while k2dex runs the same sampler the completer uses and returns its single most-likely team.

Start with:
pick a Pokémon
add another
add another
add another
add another

Try a few, and you'd be justified in raising an eyebrow: both teams are usually sensible. At the level of which Pokémon, popularity and real synergy mostly point the same way, so counting is a strong baseline. k2dex's team is often a little tighter, earning a higher coherence (the total strength of the couplings holding it together) and landing closer to a team someone actually brought to a tournament, but that difference alone isn't significant enough to justify the advanced machinery of k2dex.

So, if counting works this well, why bother going further? Because co-occurrence isn't how real teams are built. The strongest teams aren't constructed by picking six synergistic Pokémon and slapping the most popular set on each. A good teambuilder, whether human or machine, needs to ensure that every Pokémon, item, ability, nature, move, and EV point is chosen holistically, each decision contributing to an overall goal.

Extended attributes aren't an afterthought

The problems with co-occurrence surface as soon as you begin considering more of a Pokémon's attributes: item, ability, nature, and moves. Usage stats don't consider how these choices interact across Pokémon, while the Boltzmann learning employed by k2dex is designed to understand exactly these effects. Looking at items specifically: item can often define a Pokémon's role, and with it, everything about who it wants as a teammate.

For example, Charizard and Garchomp pair together quite well in Regulation M-B: Garchomp can spam its Earthquakes without fear, and Charizard can comfortably take Fairy or Ice moves intended to delete Garchomp, while Garchomp is a safe switch-in for the Rock, Water, and Electric moves that threaten Charizard. However, if Charizard is holding Charizardite X that relationship collapses: suddenly, Garchomp can't click Earthquake without threatening its partner with super-effective damage, and Charizard no longer resists Fairy moves and indeed now shares Garchomp's Dragon weakness. They also compete for the same slot: a strong, fast Dragon-type physical attacker. The k2dex model learns this relationship effortlessly, and the teams it builds reflect that understanding.

Charizard×Garchomp

Charizardite X ruins the synergy

Charizardite Y+0.71
Charizardite X-0.15
Mega Charizard Y stays Fire/Flying, so it's immune to Garchomp's Earthquake and happily shares a team. Mega Charizard X becomes Fire/Dragon and loses that Ground immunity, so the same Earthquake now hits it for super-effective damage. Same two Pokémon, opposite verdict, and it hinges entirely on the held item. Co-occurrence sees only "Charizard + Garchomp" and can't tell the two apart.
Kingambit×Aerodactyl

An item whose job is already taken

Focus Sash+0.93
Black Glasses-0.09
Life Orb+0.15
Occa Berry+0.40
Kingambit's Occa Berry has one purpose: survive a Fire attack, almost always Charizard's. Aerodactyl is one of the format's premier Charizard counters. On a team that already runs Aerodactyl, the berry is dead weight. The k2dex model sees it: usually Kingambit pairs wonderfully with Aerodactyl, but the Occa Berry set turns negative, because the two are solving the same problem. Co-occurrence only counts species, so it can't tell that one Pokémon makes the other's item redundant.
Basculegion×Whimsicott

A Choice Scarf softens the need for Tailwind

Life Orb+1.00
Mystic Water+0.98
Choice Scarf+0.27
The item doesn't have to flip a pairing to matter; it can just change the strength. Basculegion is a mid-speed powerhouse, so a Life Orb or Mystic Water set leans on Whimsicott's Tailwind to outrun the field and clean up. A Choice Scarf set already outspeeds most of what it needs to, so it wants Tailwind far less. The pairing stays positive either way since a little Tailwind is rarely a bad thing and because the two have synergy beyond Tailwind, but the model knows the Scarf build needs Whimsicott far less.

This is the piece no co-occurrence teambuilder can replicate, because the information simply isn't in the counts. To know that Charizardite X quietly breaks the Garchomp pairing, you have to model the item as part of the Pokémon, which is exactly what k2dex does. Some teambuilders treat Mega Pokémon separately from their base formes which does mitigate this problem, but only for Mega stones. Understanding how other items affect a Pokémon's role, such as the difference between Life Orb and Choice Scarf Basculegions, requires advanced modelling. That fact only becomes more true as you begin to consider abilities, natures, and moves, and is the driving philosophy behind k2dex.