Data is available about how many Habitica players of each level have chosen each class. There are these CSV files: http://oldgods.net/habitica/levels_for_classes_2018-02-24.csv http://oldgods.net/habitica/levels_for_classes_2015-10-07.csv http://oldgods.net/habitica/levels_for_classes_2015-02-12.csv The data in levels_for_classes_2018-02-24.csv was collected on 2018-02-24 for all players who: - logged in at any time on or after 2018-02-10; - AND created their account before 2018-02-10. The data in levels_for_classes_2015-10-07.csv was collected on 2015-10-07 for all players who: - logged in at any time on or after 2015-09-23; - AND created their account before 2015-09-23. The data in levels_for_classes_2015-02-12.csv was collected on 2015-02-12 for all players who: - logged in at any time on or after 2015-02-01; - AND created their account before 2015-02-01. I.e., Each data set excludes players who had used Habitica for less than a couple of weeks and it excludes players who had not used Habitica recently. The data annoymously collates the following information for each player: - their level - their class - whether they have opted out of the class system (yes or no) - whether they have chosen a class (i.e., players below level 10 who have never chosen a class will have "no" in the "class selected" column; everyone who has selected a class at least once will have "yes", even if they later went on to opt out of the class system). Thus the data describes how popular each class is for players at each level. Refer to https://habitica.wikia.com/wiki/Class_System#Statistics for links to graphical views of this data. There are a few very large levels (e.g., level 100000000000). These will be from players who have used Fix Character Values to inflate their levels or who have used a very large number of buffs. For those players who have opted out of the class system, almost all of them are listed as Warriors, as you would expect. There are a few players who are other classes, which would probably be due to a temporary bug that prevented their class being changed to Warrior when they opted out. The JavaScript/MongDB code used to extract the 2015 data from the database is below. The 2018 data is similar except that it also includes '$flags.classSelected'. No personal data was used or viewed during the extraction; the only information fetched from the database was exactly what is shown in the CSV file. Only a limited number of site administrators have access to extract that data. print('"' + 'number of players' + '","' + 'class' + '","' + 'level' + '","' + 'opted out of class system' + '"'); db.users.aggregate([ {$match: { 'auth.timestamps.loggedin':{$gte:new Date('2015-02-01')}, 'auth.timestamps.created': {$lt: new Date('2015-02-01')}, }}, {$group: { _id: { 'class': '$stats.class', 'level': '$stats.lvl', 'disableClasses': '$preferences.disableClasses' }, count: { $sum: 1 } }}, ]).forEach(function(item){ var optedOut = (item._id.disableClasses) ? 'yes' : 'no'; print('"' + item.count + '","' + item._id.class + '","' + item._id.level + '","' + optedOut + '"'); });