PTCGO The PTCGO Algorithm

21times

Aspiring Trainer
Member
Hello fellow Beachbums,


First of all, I’m not sure this is the correct forum to post this in, so if it’s not, please forgive me for not choosing the right page.


I’ve been curious for about a month now about the algorithm that PTCGO uses to 1) identify who has the advantage and 2) how it decides to pair opponents together. I have Googled up and down the internet to try to find some explanation or information on the PTCGO algorithm, but I’ve found nothing. So about a month ago I started keeping track of who, according to the algorithm, had the advantage in each of the matches I played. Here’s what I found:


In 700 matches, I had the advantage about 40% of the time (283 out of 700 matches). In those 283 matches, I went 184 and 99, a 65% win percentage.


In 700 matches, neither of us had the advantage 23% of the time (161 out of 700 matches). In those 161 matches, I went 89 and 72, a 55% win percentage.


In 700 matches, my opponent had the advantage about 37% of the time (256 out of 700 matches). In those 256 matches, I went 101 and 155, a 40% win percentage.


So, generally speaking, we can pretty much say that the algorithm is fairly accurate in assigning advantage. But how does it know? How does it determine who the better player is?


I think it simply looks at a players’ overall win percentage. I don’t think it factors in what deck a player is using or what kind of cards or anything else. There are a couple of factors that I’ve found that lead me to this conclusion:


1) There have been multiple times when I have selected a daily challenge that is solely to get out multiple evolutions of a particular type of pokemon. Inbuilding these decks, I do not include energy. I build them completely to just get pokemon out. I have no intention – or possibility – of winning the match … and yet the algorithm still tags me with the advantage.

2) There have been several games I have played that most people would consider auto losses, and yet I’ve been identified as having the advantage. A couple of examples:

a. I was 5 and 2 against Volcanion in matches where my opponent was given the advantage when playing my Yveltal deck. I think most of us would agree the Yveltal Garbodor is a tough matchup for Volcanion, and Yveltal should have been given the advantage.

b. In Yveltal mirror matches where I had the advantage, I was 1 and 4.

c. I was 5 and 1 in Greninja mirror matches in which my opponent had the advantage.

So I don’t know for certain that the algorithm considers the individual cards in a deck, but I’m guessing that it probably just looks at players’ win percentages. I do know that it does not match players who have played a lot of matches with those that haven’t played very many, but I don’t know exactly where the cutoff is.


If anyone does have some insider knowledge as to how the algorithm assigns advantage or pairs opponents together, I’d be very interested.
 
With zero evidence to back up my claims, but some programming knowledge and awareness of the competency of the client devs, I would say the simplest solution is the most likely.



How about this though? All players are tied to a monthly ladder (you can go see your points so far this month by several subcategories over on the main website), so I expect you are paired off with players based on your position on this ladder combined with some kind of "recent form" tally. i.e., higher placed players generally play against higher placed players and low against low. Player reports seem to back this up as you wade out of a sea of terrible decks to climb into a sea of tougher, more meta decks the more you win.

So my expectation then, is that your advantage is as simple as whether you are on the rise or on the fall. You probably firstly get paired with players say, + / - 100 positions compared to yourself (but removing people you recently faced from the equation or you'd always see the same people). If it's someone significantly higher than you, they get the advantage, if it's lower, then you do.

What would be interesting would be to find someone sitting at the very upper limit, and see if they had a much lower percentage of games where the opponent had the advantage. In theory, someone at the very top of the stack could only ever face people below them.





But I doubt that's how it's done. Simple random generating is much easier (and therefore much more likely). Disappointing but far more probable. :p
 
Thanks Yog. I agree, it probably simply looks at my win pct. and my opponent's win pct. and assigns the advantage from that. I was just wondering if it maybe takes your most recent games into account (say your last 10 or 20 matches) as well as all the matches you've played overall. Or any other factors, it's just a big mystery... and I like solving mysteries!
 
(but removing people you recently faced from the equation or you'd always see the same people).

If it works how you described, then I suspect it gives some sort of preference to people whom you have not faced recently, but it will have you do "rematches" if that is all that is available, as some nights while grinding I've faced the same handful of people over and over again. Not exclusively, but if my memory serves then I have faced the same opponent upwards of four times over just as many hours.

Then again I suppose it could just stop "remembering" after an hour, or after so many matches, in which case even if a player is not supposed to face someone whom they have already played today, marathoning it would still result in repeated matches over a long enough duration.
 
Agreed, I played the same person twice last night and I only played about a dozen matches. So that makes me think that it seeks out players who are of your approximate skill level, but my stats have shown that this isn't really the case, that it assigns neither player the advantage the smallest percentage of the time. This just gets murkier and murkier.
 
Well... the TCGO staff HAS said there's some sort of matchmaking system in place, but they didn't go into any details as to how it works.

What people HAVE noticed is that there's definitely a correlation between your W/L ratio and who you're paired up with, the VS. ladder may also have a connection as well.

My only issue is that these, as far as we know, only affects VS mode. Tournament mode is largely unknown, but due to the small player pool for each tournament, I wouldn't be surprised if there isn't a pairing system for it (which, ironically enough, goes against the TCGO staff's dream of making it as life-like as possible).
 
Wow I hadn't even thought about that Binder Guy. I just looked at my record in tournament matches since the new rotation and I'm a whopping 30 and 12, a 71% percentage. Yes, clearly there's got to be more randomness with tournaments, and I do feel that the level of competition I play in some tournament matches is less than what I would face on the versus ladder.

Excellent point, thanks for finding another piece to this puzzle!
 
So after musing about this, and I think Yog is right. I think it's actually very simple how PTCGO puts players together on the versus ladder:

What we know is that when you click the Play button, you get put into a queue. The queue you're put in depends on the number of games you've played. I don't think it takes anything else into account, not your win loss percentage, not the type of deck you're playing, not how well you've done in your last ten matches. You just basically get put in line with players who have played a comparable number of matches on PTCGO as you've played.

And it's as simple as that when you get to the front of the line, you get paired with the person either in front or behind you. That's when it looks at your win loss record and compares it to your opponent. If your opponent has won a certain percentage more than you (maybe 3 or 5%?) then he gets the advantage. If you've won more than your opponent, you get the advantage. If you're both about the same, neither player is assigned an advantage.

I don't think it takes anything else into account. I think it basically just works as simple as putting two people at the front of the line together.
 
Back
Top