We have some pretty exciting news! 𤩠Since 2022-02-22, weāve been using a new and improved ranking as the default sorting for our front page at Recommend.Games.
⦠What do you mean, you havenāt noticed thereās a R.G ranking? You know, that thing thatās referenced in the statistics? ⦠You havenāt ever opened that view?!? š±
OK, letās back up for a second. R.Gās primary purpose is a recommendation engine, that is, finding personalised game recommendations based on a userās preferences (in this case as expressed through their BoardGameGeek ratings). But we want to show some games to the users immediately when they load the start page, before entering their user name. Think of these games as recommendations for⦠anyone. What games would you recommend to a person if you didnāt know anything about their taste? This is the implicit purpose of any āTop X entitiesā list. Since this is a recommendation site, weād like to make this claim explicit, so the R.G ranking has always been those ārecommendations for everyoneā. Whatās changed is the way those recommendations are calculated.
Recommendations are based on a technique known as collaborative filtering. Basically, the algorithm tries to learn the usersā preferences based on their ratings, find users with similar tastes, and then recommend new games that user might like. R.G uses Appleās implementation Turi Create for its recommendations, which does a lot of magic šŖ under the hood. One of those magic tricks is that it offers recommendations for users it doesnāt know anything about. The algorithm treats those users as new and offers some default recommendations that should be a good starting point for anybody, without any particular context. Itās exactly those recommendations that R.G has been using for years as our ranking and default sorting.
So, why change this and create a new ranking? Thereās a number of problems with the old ranking. For one, itās really swingy.1 Seriously, just take a look at the history:2
Maybe more importantly, the exact algorithm to determine those recommendations for new users is extremely obscure. Thereās been a long-standing ticket to find out whatās going on. The answer isnāt documented anywhere, but you can find it somewhere in these lines of code. Let me know if you can make sense of them, Iāve simply given up at some point.
Instead, I wanted to create a new ranking which I can at least explain. So here goes:
The basic idea is to calculate the recommended games for all users, and then average those rankings. Those averages would become the Recommend.Games rankings.
That sounds simple and intuitive, but, as the saying goes, the devil is in the details. For starters, there are over 100,000 games in the BoardGameGeek database, and over 400,000 users with at least one rated game. Calculating all recommendations for all users would therefore mean over 40 billion userāgame pairs. Thatās a lot. š But really, we donāt care if a game is the 1,000th, 10,000th or 100,000th highest rated game. Instead, we only recommend the top 100 games for each user. The highest game on that list receives 100 points, the next 99, and so on, until the 100th game receives a single point from that user. All other games will be awarded 0 points. The we can simply average those points across all users, and voilĆ , those scores become the R.G rankings. š¤©
⦠Except thatās still not the whole story. I wasnāt happy about the idea of a user who fifteen years ago left a single rating being equally important as someone who played and rated hundreds of board games over two decades of BGG history. Thatās why I tried to model the ātrustā we should put in different usersā ratings. The idea here would be that we should trust a userās rating more if two things are true:
- They are a regular contributor to BGG, i.e., rate, log plays etc at least once a month over a long period of time.
- They should rate games with a reasonable distribution, i.e., on a nice bell curve.
For the first point we count each calendar month that the user was active on BGG (e.g., rated a game, logged a play, updated their collection). Then we take the logarithm (base 2) of that number ā this means the score will rise quite rapidly in the first year of BGG activity, but then flatten out quite quickly. The goal is not to treat newcomers too harshly. Note that \(\log_2 1 = 0\), so new users with only one month of activity will start with zero trust and consequently not be considered in the rankings calculations.
The second point is a little trickier. Mathematically speaking, we want to assess how closely a userās ratings follow a normal distribution. There are a couple of neat statistical tests that do that, the one thatās considered best is the ShapiroāWilk test. What we care about is a number between 0 and 1 that somehow measures how much a userās rating distribution resembles a bell. Take, for instance, Tom Vaselās ratings. He clearly users a nice spread for his ratings:

If on the other hand a user only ever rates games with a 10, never any other score, their factor would be 0, and again, they wouldnāt take part in the R.G rankings calculations.
So, long story short, we have those two factors that are supposed to describe how much we can trust a userās ratings. We can now multiply them with each other, and the higher the score, the higher will be our trust in their ratings, and consequently, the more weight their āvoteā will have when calculating the R.G ranking.
But before we go there, what users do we trust the most? Many of the highest scores actually belong to pretty random users, so Iām not comfortable exposing them here, but itās interesting to compare some of the ācelebritiesā in the hobby (and yours truly):
| User | Rank | Trust |
|---|---|---|
| W Eric Martin (BGG news) | 21 | 7.376 |
| Engelstein (Ludology) | 77 | 7.227 |
| Tomvasel (Dice Tower) | 312 | 7.009 |
| Aldie (BGG founder) | 1889 | 6.544 |
| Jameystegmaier (Stonemaier) | 3213 | 6.343 |
| Jonpurkis (Actualol) | 3628 | 6.296 |
| Bohnanzar (Uwe Rosenberg) | 8801 | 5.848 |
| Markus Shepherd š¤ | 16207 | 5.453 |
| Quinns (SU&SD) | 16958 | 5.421 |
| Phelddagrif (Richard Garfield) | 67960 | 3.981 |
| Cephalofair (Isaac Childres) | 75010 | 3.833 |
| Elizharg (Elizabeth Hargrave) | 108248 | 3.156 |
My opinions on board games having more weight than Quintin Smithās sure feels good. š§
In case youāre curious: The reason why the recommendations are so swingy is because they arenāt precisely calculated, but merely approximated by an algorithm called stochastic gradient descent, which is inherently non-deterministic. ā©ļø
And this is even a smoothed version of the rankings: It uses the average score of one week to determine the ranking in that plot. ā©ļø
