An Odd and An End

Ageless Sentinels: An Elo Ratings Approach to Magic: The Gathering's Creature Type Order

April 27, 2025
28 minutes
Ageless Sentinels {3}{W} Creature — Wall (Walls can't attack.) Flying When Ageless Sentinels blocks, its creature type becomes Giant Bird. (It's no longer a Wall. This effect doesn't end at end of turn.) 4/4
Ageless Sentinels {3}{W}
Creature — Wall
Defender (This creature can't attack.)
Flying
When this creature blocks, it becomes a Bird Giant, and it loses defender. (It's no longer a Wall. This effect lasts indefinitely.)
4/4

Ageless Sentinels is one of those cards whose oracle text has completely transformed from its original printing in Scourge in 2003, particularly due to its creature types. Its from the era when Wall creatures inherently couldn’t attack, so when Defender was introduced in Champions of Kamigawa, not only did Ageless Sentinels gain a new keyword, but its ability had to change too, as it wasn’t inherent in the creature type transformation. Somewhere along the way, though, those creature types also changed: instead of “Giant Bird” (no indefinite article necessary), Ageless Sentinels transforms into “a Bird Giant”.

Mechanically in the rules of Magic: The Gathering, that has no effect. A creature has the creature types of all that are listed, and order doesn’t matter (though I could see that being the basis of a playtest or Un- card). If that’s the case though, why did it end up changing? The only other card that mentions that combination of creature types is the errata’ed version of the silver-bordered Giant Chicken. More broadly, what (if anything) dictates the order of creature types?

Chicken Egg {1}{R}
Creature — Egg
At the beginning of your upkeep, roll a six-sided die. If you roll a 6, sacrifice this creature and create a 4/4 red Giant Bird creature token.
0/1
Now, this makes a Giant Bird. (Alternatively: now, this makes a Giant Bird.)

Previous Linguistic Explorations

When I started thinking about what dictated creature type order, my immediate thought was about English adjective order[1]. For those unfamiliar, it turns out when there are multiple adjectives preceding a noun, there tends to be a particular order for them, and changing that order sounds weird. For example, a pringled foil card makes sense, but a foil pringled card may sound a bit off.

The usual sequence is: opinion, size, physical quality, shape, age, colour, origin, material, type, purpose. Since “pringled” is a physical quality and “foil” is a material/type depending on how you think about that property, that lines up with that sequence. Then, perhaps creature types have a similar underlying sequence.

This thought was echoed directly in a Reddit post[2] about creature type order from 2019 by Cyprinodont[3]. It features several different guidelines for creature type order, but the most agreed-upon one was race then class, very akin to Magic: The Gathering’s D&D roots. So it is always “Bird Wizard“, never “Wizard Bird.“ That loosely lines up with the English adjective order, where origin comes before purpose (which, odd way to think of a class but the most fitting on the list). nine_of_swords had a more specific order[4]:

I think it’s a bit more than just Race/Class. It just doesn’t matter most of the time as most creatures have only one or two creature types that act look like Race/Class.

From what I’ve seen, it’s closer to Bio-Marker/Race/Culture/Class/Trait-Marker. Bio-Markers being things like Zombie or Plant; Culture markers Nomad or Barbarian; Trait-markers Mutant, Wall, Horror or Minion. Granted, this five way divide does have some exceptions, but it works as a rule of thumb.

This lines up with the race/class model, which is a philosophy that, in alignment with other fantasy games, “each Magic card depicting a sapient being should have a creature class as well as a race subtype”[5] Before then, all creatures had only one printed creature type.

There were other comments[6][7] about how other linguistic phenomena might cause creature types to be ordered in certain ways or why things might break order, specifically in reference to ablaut reduplication. Ablaut reduplication[8] is the pattern that for phrases with similar sounds but different vowels, the vowel sounds tend to follow a specific order. In English, for those fluent in the International Phonetic Alphabet, the order of clipped vowel sounds is /ɪ/ > /ɛ/ > /æ/ > /ʌ/ > /ɒ/ > /ʊ/; for those who aren’t, ipachart.com is an interactive chart where you can hear them, but to my best translation that’s loosely the short vowel version of i > e > a > o > u. So that can illustrate why English speakers will say tick-tock rather than tock-tick, and big bad wolf is that way around even though adjective order would dictate opinion before size, and why Ravenous Chupacabra is a “Beast Horror” while Hydroid Krasis is a “Jellyfish Hydra Beast”[7:1], as sparked the original question in the Reddit post[2:1].

Ravenous Chupacabra {2}{B}{B} Creature — Beast Horror When this creature enters, destroy target creature an opponent controls. 2/2
Primarily a beast, also a horror beyond comprehension.
Hydroid Krasis {X}{G}{U} Creature — Jellyfish Hydra Beast When you cast this spell, you gain half X life and draw half X cards. Round down each time. Flying, trample This creature enters with X +1/+1 counters on it. 0/0
Primarily a jellyfish hydra, which perhaps makes it a beast.

But all agree that these patterns are rough guidelines that come with exceptions, without a more concrete way to determine order, especially within rough categories. I wanted to see if these identified patterns did hold, if there were any other patterns I could tease out, and any notable exceptions I could find. But there are over 16,000 creature cards in Magic, and I have free time, but not the motivation to parse them individually. Instead, I wanted some way to get some ordering of all creature types as a basis, and I thought Elo ratings would be a cool option.

The What and Why of Elo Ratings

Elo ratings originated as a chess rating system, and has been expanded to all sorts of different sports and games (it was even used in Magic: the Gathering for a time before being replaced by Planeswalker Points[9]).

The general concept is that each unit (generally a player or a team) has a rating, with the base rating usually being 1500. When comparing units going head to head, the difference in their Elo rating represents a predictor of the match outcome, with the player with the higher rating being expected to come out ahead. Elo ratings are zero-sum: after each match, the winning unit takes points from the losing unit. The amount of points transferred is also based on the difference in Elo rating. If a higher-rated unit wins as expected, few points are transferred, but an upset win by a lower-rated unit leads to a lot of points being transferred. Thus overrated or underrated players should quickly gain or lose points proportionally to their true ranking, and the system should self-correct over time.

This may feel a little weird, then, to apply this to creature types. And like, I’m not denying that it is. But it is an approach that gives me several benefits for what I’m looking for. The fact that an Elo rating is a number rather than strict ranked ordering gives a lot of flexibility for exceptions, and helps with ranking creature types that haven’t shown up a lot (big shout to Pincher, which is only on a token made by only Summoning Station). It is especially good at dealing with creature types that haven’t appeared on cards together, like Human and Plant.

Summoning Station {7} Artifact {T}: Create a 2/2 colorless Pincher creature token. Whenever an artifact is put into a graveyard from the battlefield, you may untap this artifact.
What is a Pincher? Excellent question. Next question.

It also helps me with what I want: rather than an actual order, I’m more interested in patterns and exceptions. I can look at groups of creature types with similar Elo ratings to try and determine patterns, and find cards with “upset wins“ where a type with a lower rating ended up before a type with a higher one to help identify exceptions.

Plus, the most important reason: I haven’t had a good use case for trying to create Elo ratings and I wanted to. I dabble in various corners of sports analytics, and Elo ratings is something I have seen pop up over and over done by friends like Ben Howell’s women’s hockey faceoff skater ratings from the PHF, John Edwards’s NCAA women’s basketball team ratings, and Geoffrey Grosenbach’s Unrivaled Basketball team ratings[10] and it felt like something I wanted to try, and this seemed just silly enough to be worth it.

Actually Constructing the Elo Ratings

The Data

Huge shoutout to Scryfall, first just forever and always for being my go-to site for referencing Magic cards, but also for their API and bulk data offerings. I grabbed their file of “Oracle Cards” on April 27, 2025 and started to figure out how to clean it up to get the data I needed.

“What data I needed” was, as data cleaning tends to end up, partially guessed at beforehand and partially understood when actually looking at the data:

  • No cards after Tarkir: Dragonstorm. Some Final Fantasy and other spoilers are out and appropriately listed on Scryfall, but since they don’t represent the full set of the cards I don’t really want them in the data.
  • Double-faced cards are treated as two separate cards. This lets cards like Kianne, Dean of Iteration // Ibraham, Dean of Theory be treated separately. This technically also applies to split cards, those Saviors of Kamigawa flip cards, and cards with Omen and Adventure, but since those are never two creatures, it doesn’t matter quite as much.
Kianne, Dean of Substance {2}{G}
Legendary Creature — Elf Druid
{T}: Exile the top card of your library. If it's a land card, put it into your hand. Otherwise, put a study counter on it.
{4}{G}: Create a 0/0 green and blue Fractal creature token. Put a +1/+1 counter on it for each different mana value among nonland cards you own in exile with study counters on them.
2/2Imbraham, Dean of Theory {2}{U}{U}
Legendary Creature — Bird Wizard
Flying
{X}{U}{U}, {T}: Exile the top X cards of your library and put a study counter on each of them. Then you may put a card you own in exile with a study counter on it into your hand.
3/3
Poor Strixhaven deans: they don’t even get their own card; they have to share with the co-dean of their college.
  • Only one copy of cards with same name and same creature type line. This is the token caveat, but for token creatures themselves, but also applies to creatures that have token creature versions of themselves due to mechanics like Offspring and Eternalize - only one version will count as a “unique” card.
  • Only cards where all of their creature types are in the comprehensive rules (plus Hero). In rule 205.3m there is a list of 301 creature types as of April 4, 2025. This restrictions allowing for some silver-bordered and playtest cards to contribute, while meaning I don’t have to wade through the many offbeat types that silver-bordered and playtest cards can bring. So for example, Johnny, Combo Player will count despite being silver-border because Human and Gamer have both appeared on non-silver-border/acorn cards (the latter featuring on The Most Dangerous Gamer from Unfinity), but Alexander Clamilton will not because Clamfolk hasn’t been on a non-silver-border card. This does leave out playtest/silver-border cards whose types were consolidated (e.g. Learned Learner is still a Cephalid Wizard despite Cephalid being consolidated into Octopus with the release of Modern Horizons 3), but I’m counting that as an acceptable loss in the data. On the other hand, Hero is called out as an acceptable creature type despite not making it into the comprehensive rules, because it appears on the Marvel cards like Black Panther, Wakandan King, which are Legacy and Vintage legal. Final Fantasy spoilers suggest it will be brought back as an official creature subtype by then, so I’m carving out an exception for it.
Alexander Clamilton {2}{U}
Legendary Creature — Clamfolk Advisor Rebel
Whenever you cast a wordy spell, scry 2. (A spell is wordy if it has four or more lines of rules text.)
{1}{R}, {T}: Choose target creature you don't control. Reveal the top card of your library. Alexander Clamilton gets +X/+0 until end of turn, where X is the number of lines of rules text of the revealed card. Alexander Clamilton fights that creature.
0/4
Sorry, Alexander Clamilton; this a series of duels you won’t be participating in (which, honestly, may be preferred for you).
  • Cards with more than two creature types will be broken into head-to-heads. So for example, Unruly Krasis with its creature typeline “Shark Octopus Lizard” would be broken down into effectively 3 “matches”: Shark > Octopus, Octopus > Lizard, and Shark > Lizard. We’re assuming the transitive property is at work here because that matches up with how our basis guideline of adjective order works. If it doesn’t, these matches may stand out in terms of Elo rating later.
Unruly Krasis {1}{G}{U}
Creature — Shark Octopus Lizard
Trample
Whenever this creature attacks, you may have the base power and toughness of another target creature you control become X/X until end of turn, where X is this creature's power.
{3}{G}{U}: Adapt 3. (If this creature has no +1/+1 counters on it, put three +1/+1 counters on it.)
4/4
This triple creature types are particularly prevalent among Simic cards (specifically, cards tied to the Simic Conclave, not just Simic colors). Can’t imagine why.

When all was said and done, I had a total of 17,513 unique creature cards, 10,321 of which had more than one creature type, and 11,636 “matchups” of creature types.

The Elo Model

Now that we have our data, time to put it to work. But there are still a few things to iron out here. See, something I haven’t mentioned yet is not only do Elo ratings represent who is expected to win by whose rating is higher, but we can mathematically calculate it. Say we are using Elo ratings in the more typical sense to compare players A and B with an Elo rating of 1450 and 1550 respectively (remembering that the base score is 1500). Then we would expect the probability that the player A beats player B to be:[11]

P(A)=11+10(RBRA)/400=11+10(15501450)/400=0.36P(A) = \dfrac{1}{1+10^{(R_{B}-R_{A})/400}} = \dfrac{1}{1+10^{(1550-1450)/400}} = 0.36

We can use the same fancy formula in the opposite way, but rest assured the probabilities total up to 1 so that player B has a probability of 0.64 to win. Then, based on the result, the results are just linearly adjusted. Say that player A pulled off the upset, so their outcome probability to win was 1. Then their rating would be adjusted to be:

RA=RA+K(outcome(A)P(A))=1450+32(10.36)=1470R_{A}' = R_{A} + K(outcome(A)-P(A)) = 1450 + 32(1-0.36) = 1470

All of those variables are accounted for, except for KK. That K-factor is essentially how much individual matches matter to the ratings: large K-factors mean one match could swing ratings quite a bit, whereas smaller K-factors temper how much a single upset affects then. So we need to pick a K-factor, and what we choose will matter quite a bit.

Picking a K-factor

My first instinct was to pick a huge K-factor: unlike in sports, we don’t expect much if any noise in the outcome of our “matchups” that would make us want to limit how much a single matchup can impact things: a single upset loss isn’t the be-all end-all to how good a team is, but it matters quite a bit in this context. A large K-factor could also give a lot of differentation between various creature types to help tease out different groups. For chess, K-factors are in the range of 16-32; I was thinking somewhere in the hundreds. But some quick attempts quickly highlighted an aspect of this approach I hadn’t thought of: temporality.

Generally for Elo ratings, matches are played sequentially, and the Elo rating adjusts based on each match. Since how the rating adjusts is directly based on the two ratings going into the match, we can end up at two different Elo ratings just by changing the order in which we do matchups.

For this, there shouldn’t really be a temporal aspect; I don’t think something like the order in which the cards were printed really impacts what order the creature types are listed. But for high values of K, since any one match can swing ratings drastically, the order really matters, and the last few games could have an outsized impact on the final ratings. While the lowest and highest-ranked creature types stayed pretty consistent, even across just three shuffles of the matchup order the 2-10 ranks changed pretty dramatically. That could be okay, but I wasn’t sure how much I should be okay with.

I contemplated doing something like taking the average Elo rankings across a number of shuffles, but that felt a little odd to me. I felt like that sort of variance should be able to be accounted for with the right K-factor, assuming I could pick the right one. Then, I was inspired by what my friend John Edwards did in Building and tuning an Elo model for WNCAA Games[12]: why try to pluck the right K-factor from the sky when I could use my data to tune the model to the right value for me?

The plan is pretty akin to tuning any sort of statistics model. First, we’ll split the data into five sections for some 5-fold cross validation. We’ll use one as a validation and combine the remaining four sections as our training set for an 80:20 split. We’ll arbitrarily pick a K-factor, and then run the model with that K-factor on our training set to get a set of Elo ratings. We’ll then use that set of ratings to predict the outcomes in our validation set, and based on whether those predictions were right or wrong and how strong the probabilities were one way or the other (we’ll use log loss to capture all that) get a measure of how accurate that model ended up. Then we can then repeat that process, picking a different one of our five sections to be our validation set and smushing the rest into our training set, and combine the measure from each iteration into an overall “score” for that K-factor. Then, we can repeat the entire process with a different K-factor,

And of course, when I say “we”, I of course mean “the lovely set of packages and functions that are set up to do all of that for me”. And liberal cribbing from John’s code.

When all was said and done, I got a K-factor of 171.040! Definitely on the higher end; it’s nice that my initial thoughts about what any appropriate K-factor would be seemed to hold some water. It seems relevant to note that the log losses I got seemed Extremely low: the high end was 0.08 (ignoring the K-factor of 0), while this one rang in at 0.03; K-factors differing by 20+ differed in log loss by thousandths.

Putting the Elo Model to Use

From there, it was really easy: just get the rankings using the same method I had use to determine an appropriate K-factor, but plugging in 171.040, and run all the matches. When all was said and done I also went back to the matches, and compared the final Elo ratings for each, to find any big upsets based on the difference between the first and the second creature type.

Code

My code is available here.

The Elo Ratings

The full set of Elo ratings are in the table following, but some observations:

  • There are 44 creature types that never appear with another creature type, and thus remain at the base Elo rating of 1500. Mostly on one-off tokens, their rank include Serf, Orb, and the aforementioned Pincher.
Phantasmal Sphere {1}{U}
Creature — Illusion
Flying
At the beginning of your upkeep, put a +1/+1 counter on this creature, then sacrifice this creature unless you pay {1} for each +1/+1 counter on it.
When this creature leaves the battlefield, target opponent creates an X/X blue Orb creature token with flying, where X is the number of +1/+1 counters on this creature.
0/1
O R B
- All will be one, indeed: Phyrexian secured top slot by a relatively wide margin at an Elo rating of 2917.31, almost 400 Elo above second place. - Nice creature types finish last, as Ally placed dead last at 129.64, trailing the second to last by over 300 Elo.
Creature TypeElo Rating
1Phyrexian2917.31
2Plant2542.81
3Eldrazi2361.43
4Fungus2360.56
5Elder2302.46
6Alien2302.22
7Human2194.33
8Elemental2170.76
9Zombie2142.52
10Vampire2132.75
11Nightmare2119.16
12Goblin2112.98
13Tyranid2058.34
14Vedalken2035.96
15Elephant2017.73
16Aetherborn1995
17Merfolk1990.65
18Rat1975.75
19Shark1968.21
20Ogre1947
21Orc1942.71
22Kor1916.79
23Frog1904.61
24Halfling1903.68
25Faerie1891.78
26Bird1878.87
27Time Lord1843.88
28Clown1838.02
29Octopus1837.31
30Centaur1835.3
31Zubera1828.24
32Tiefling1821.45
33Kithkin1811.03
34Ape1807.76
35Dinosaur1805.45
36Rabbit1804.34
37Kirin1804.16
38Elf1803.5
39Troll1794.2
40Fox1794.02
41Dauthi1787.62
42Scorpion1779.58
43Minotaur1777.35
44Crocodile1774.86
45Nymph1769.21
46Snake1767.2
47Angel1753.85
48Spider1752.59
49Djinn1751.61
50Cyclops1746.71
51Cat1741.31
52Lizard1733.24
53Moonfolk1732.91
54Gorgon1731.13
55Boar1723.57
56Wolf1715.73
57Fish1700.54
58Hippogriff1693.55
59Dwarf1691.35
60Bat1690.96
61Astartes1687.3
62Devil1684.35
63Badger1679.03
64Goat1677.24
65Metathran1676.24
66Insect1674.63
67Wolverine1671.98
68Treefolk1664.14
69Soltari1661.76
70Raccoon1659.21
71Nightstalker1658.47
72Mouse1646.78
73Antelope1646.09
74Satyr1644.41
75Beholder1644.18
76Squid1643.38
77Sloth1635.33
78Hellion1635.13
79Slug1624.46
80Crab1622.3
81Thalakos1621.5
82Sliver1620.66
83Serpent1619.37
84Gnome1618.61
85Rhino1610.92
86Salamander1606.08
87Gargoyle1605.56
88Dog1603.81
89Efreet1602.59
90Mole1602.43
91Shapeshifter1602.38
92Azra1594.98
93Siren1593.63
94Ooze1593.25
95Elk1593.05
96Sheep1592.37
97Splinter1590.53
98Eye1589.81
99Griffin1585.52
100Leviathan1582.63
101Squirrel1581.61
102Gith1581.19
103Porcupine1580.82
104Hag1579.17
105Homarid1577.26
106Jellyfish1577.2
107Homunculus1573.61
108Horse1573.52
109Myr1571.73
110Giant1571.54
111Weird1568.07
112Lhurgoyf1566.92
113Specter1566.49
114Wraith1559.73
115Weasel1558.21
116Robot1557.39
117Golem1556.51
118Leech1552.81
119Harpy1551.46
120Nomad1551.02
121Chimera1550.13
122Hyena1547.91
123Camel1546.38
124Spike1546.19
125Necron1545.94
126Noggle1545.63
127Pangolin1542.75
128Dragon1542.1
129Bear1539.52
130Otter1535.68
131Possum1530.21
132Kobold1528.74
133Sand1528.46
134Nautilus1526.47
135Hamster1524.87
136Synth1523.85
137Skunk1521.89
138Whale1519.8
139Thrull1519.59
140Yeti1518.03
141Ouphe1517.65
142Seal1516.27
143Scarecrow1514.82
144Custodes1514.64
145Archon1511.81
146Gremlin1507.64
147Starfish1505.63
148Beaver1504.6
149Basilisk1503.17
150Kavu1500.76
151Armadillo1500
152Assembly-Worker1500
153Atog1500
154Aurochs1500
155Balloon1500
156Beeble1500
157Blinkmoth1500
158C’tan1500
159Camarid1500
160Capybara1500
161Caribou1500
162Cockatrice1500
163Cyberman1500
164Dalek1500
165Demigod1500
166Deserter1500
167Ferret1500
168Gnoll1500
169Graveborn1500
170Inkling1500
171Lammasu1500
172Licid1500
173Llama1500
174Nephilim1500
175Orb1500
176Oyster1500
177Pentavite1500
178Pest1500
179Phelddagrif1500
180Phoenix1500
181Pincher1500
182Prism1500
183Sable1500
184Sculpture1500
185Serf1500
186Servo1500
187Sponge1500
188Surrakar1500
189Tentacle1500
190Tetravite1500
191Triskelavite1500
192Varmint1500
193Volver1500
194Walrus1500
195Pegasus1499.96
196Slith1499.96
197Saproling1499.95
198Bringer1499.94
199Germ1499.94
200Juggernaut1499.85
201Mite1499.81
202Carrier1499.69
203Masticore1499.51
204Reflection1498.59
205Shade1498.28
206Scion1498.03
207Fractal1497.69
208Inquisitor1497.24
209Dryad1497.19
210Manticore1497.01
211Flagbearer1494.83
212Mongoose1492.59
213Snail1492.47
214Orgg1489.45
215Ox1489.29
216Jackal1489.23
217Spawn1489.13
218Demon1488.44
219Coyote1485.78
220Monkey1477.11
221Unicorn1474.24
222Processor1472.2
223Sphinx1465.18
224Lamia1462.18
225Wombat1457.84
226Spirit1456.2
227Coward1448.63
228Imp1448.56
229Brushwagg1446.44
230Trilobite1437.21
231Worm1437.15
232Hippo1435.71
233Kraken1426.71
234Child1421.4
235Thopter1409.99
236Skeleton1405.76
237Army1398.29
238Dreadnought1385.31
239Rebel1375.53
240Wurm1374.62
241Drake1367.84
242Illusion1364.15
243Primarch1348
244Avatar1342.68
245Monger1337.39
246Barbarian1335.88
247Turtle1333.11
248Praetor1310.65
249Toy1294.49
250Egg1289.97
251Hydra1273.09
252God1263.14
253Mystic1247.36
254Incarnation1239.71
255Survivor1222.84
256Gamer1221.33
257Doctor1213.09
258Drone1203.4
259Samurai1201.94
260Monk1174.5
261Ninja1140.45
262Glimmer1133.41
263Beast1094.87
264Spellshaper1078.72
265Rogue1071.31
266Peasant1068.28
267Rigger1066.81
268Citizen1053.67
269Pilot1049.4
270Scientist1038.69
271Construct1030.68
272Wall1029.9
273Cleric976.29
274Soldier970.97
275Mutant968.45
276Druid959.44
277Performer943.94
278Assassin929.34
279Noble923.77
280Employee903.16
281Berserker893
282Pirate889.2
283Horror873.67
284Bard844.33
285Mount819.76
286Scout810.18
287Warlock788.34
288Warrior786.49
289Detective785.96
290Guest777.71
291Advisor777.54
292Knight766.86
293Minion761.49
294Artificer742.86
295Wizard732.77
296Hero713.64
297Mercenary689.14
298Shaman654.84
299Archer609.79
300Werewolf543.27
301Ranger449.94
302Ally129.64

What About the Linguistic Explorations?

The race/class model definitely seems to hold up: from the top rank the way to rank 119, or from Elo rating 29171.31 to 1551.46, I would be amenable to classifying as a “race/origin” in the D&D fantasy sense. The only exception is Elder at rank 5, which in Magic is not used as a race or class by rather as a descriptor for creatures essentially around since the dawn of time that shaped the plane they are from.

Nezahal, Primal Tide {5}{U}{U}
Legendary Creature — Elder Dinosaur
This spell can't be countered.
You have no maximum hand size.
Whenever an opponent casts a noncreature spell, draw a card.
Discard three cards: Exile Nezahal. Return it to the battlefield tapped under its owner's control at the beginning of the next end step.
7/7
An elder terror since time immemorial.
Humbling Elder {U}
Creature — Human Monk
Flash
When this creature enters, target creature an opponent controls gets -2/-0 until end of turn.
1/2
Not since the dawn of time, but definitely longer than You.

On the flip side, the class mostly holds from rank 302 to 273, or from Elo rating 129.64 to 976.29. The only questionable one is Werewolf (#300), which I could definitely see arguments both ways in broader fantasy for but their humanity (specifically, being a Human) is always first and foremost on Magic cards. You can make an argument past that, but I would be hard-pressed to call Wall at rating 1029.9 (#272) or Construct (#271) a class, and soon after Beast (#263) definitely feels more akin to a race than a class and Glimmer (#262) are defined as beings originating as people’s hopes on Duskmourn.

Meanwhile, the 5-way divide of Bio-Marker/Race/Culture/Class/Trait-Marker suggested by nine_of_swords[4:1] of is a mixed bag. I could definitely see the top 6 (again, excepting Elder) being bio-markers, and does a long way to explaining the ratings of Plant (#2) and Fungus (#4). And while the placement of Culture definitely explains the Nomad (#120, where I drew the line at the race/class model - rating 1551.02), I’m hard-pressed to distinguish any other creature types that fit the bill - the other suggestion of Barbarian is odd as being so quintessentially D&D class, with a rank to match of #246 and a rating of 1335.88. And I like the class/trait-marker distinction, as it definitely explains some outliers I noted running through the bottom rank for classes, but I think of it more as one whole group than a clear ordering between them, to encompass trait-markers further up the ranks like Spawn (#217) and Coward (#227). I would probably revise it as a three-way divide: Bio-Marker/Race/Trait-Marker, with Class being a particularly large subset of Trait-Marker.

Outlier Creature Type Orderings

The top 2 outliers in terms of creature type orderings are the same creature type pair, and are from cards both from the same set, and even the same mythic cycle of cards: Illuna, Apex of Wishes and Brokkos, Apex of Forever. I supposed on Ikoria, a plane envisioned as a “monster world,” it would be one of the few places where being a beast takes precedence over being an elemental being of the world. It fits with the lore too: they each have their own cards in the “Mythos” cycle, stylized as cave paintings depicting them as creatures rather than gods or spirits, and their appellation is about them being the “apex” predator in their region. Illuna even racks up another slot in the top 10 (at number 10 exactly) for being more Beast than Dinosaur.

Illuna, Apex of Wishes {2}{G}{U}{R}
Legendary Creature — Beast Elemental Dinosaur
Mutate {3}{R/G}{U}{U} (If you cast this spell for its mutate cost, put it over or under target non-Human creature you own. They mutate into the creature on top plus all abilities from under it.)
Flying, trample
Whenever this creature mutates, exile cards from the top of your library until you exile a nonland permanent card. Put that card onto the battlefield or into your hand.
6/6Brokkos, Apex of Forever {2}{B}{G}{U}
Legendary Creature — Nightmare Beast Elemental
Mutate {2}{U/B}{G}{G} (If you cast this spell for its mutate cost, put it over or under target non-Human creature you own. They mutate into the creature on top plus all abilities from under it.)
Trample
You may cast this card from your graveyard using its mutate ability.
6/6
I do look at these and think "Beast" before anything else. Maybe a bit more colloquially, though.

Also notable are several “team-up” cards appearing on the list from March of the Machine (or in the style of March of the Machine), which feature legendary characters from the same plane teaming up to fight the Phyrexians on the same card. The creature types then, do not represent one creature, but two, with the creature type order following not necessarily our noticed patterns but just matching the order of billing in the card name. This applies to Autumn Willow and Baron Sengir (an Avatar alongside a Vampire), Saint Traft and Rem Karolus (a Spirit with a Human), and Elenda and Azor (a {Vampire} Knight next to a Sphinx).

Two of the other cards, Dragon Elemental and Noble Ox are straightforward to explain: their creature types are a certain way around so their type line matches their name, a fan-favorite (and a me-favorite) thing for cards. They are also both not traditional cards: one is a token, the other is a playtest card.

The rest of the list is interesting: only Shivan Zombie ({Phyrexian} Barbarian Zombie), Phyrexian Cytoshaper ({Phyrexian} Mutant Snake), Golgari Death Swarm (Bat Fungus) I would view as in defiance of the Race/Class model or the three-fold structure; it is also notable too that the last two are playtest cards rather than official cards. The rest of the type pairings I would classify as belonging in the same category (i.e. Horror Spirit as both classes).

Card NameCreature Type 1Type 1 EloCreature Type 2Type 2 EloElo Rating Difference
Illuna, Apex of WishesBeast1094.87Elemental2170.761075.89
Brokkos, Apex of ForeverBeast1094.87Elemental2170.761075.89
Shivan ZombieBarbarian1335.88Zombie2142.52806.64
Phyrexian CytoshaperMutant968.45Snake1767.2798.75
Autumn Willow and Baron SengirAvatar1342.68Vampire2132.75790.07
Slivdrazi MonstrositySliver1620.66Eldrazi2361.43740.77
Saint Traft and Rem KarolusSpirit1456.2Human2194.33738.13
Yargle and MultaniSpirit1456.2Elemental2170.76714.56
Illuna, Apex of WishesBeast1094.87Dinosaur1805.45710.58
Elenda and AzorKnight766.86Sphinx1465.18698.32
Rebel InformerMercenary689.14Rebel1375.53686.39
Golgari Death SwarmBat1690.96Fungus2360.56669.6
Jace's ProjectionWizard732.77Illusion1364.15631.38
Dragon ElementalDragon1542.1Elemental2170.76628.66
Nameless OneWizard732.77Avatar1342.68609.91
Chupacabra EchoHorror873.67Spirit1456.2582.53
Krovikan HorrorHorror873.67Spirit1456.2582.53
The Crab QueenCrab1622.3Human2194.33572.03
Noble OxNoble923.77Ox1489.29565.52
That Which Was CompleatedEldrazi2361.43Phyrexian2917.31555.88

The reason behind the within-category outliers could vary: it may be a sign of distinction between two types not properly represented in the Elo ratings due to not enough matchups for one of the type to properly establish their rating, but I find it is often lore-based, as seemed to be the case for our apex predators.

I’ve found a way to help distinguish and also tease out the reasons might be to look at other pairings of the same two types. If there’s other cards with the reverse pairing, I’m more inclined to think its something specific about that creature and the plane and story it came from. For example, Rebel Informer’s Mercenary Rebel type line may seem potentially like statistical variance until you see the other card with the same types: Mercenary Informer, which is a card that is clearly its parallel: from the same set with parallel but with slightly shifted mana costs, ability text, even flavor text, and of course, type line.

Rebel Informer {2}{B}
Creature — Human Mercenary Rebel
This creature can't be the target of white spells or abilities from white sources.
{3}: Put target nontoken Rebel on the bottom of its owner's library.
1/2Mercenary Informer {2}{W}
Creature — Human Rebel Mercenary
This creature can't be the target of black spells or abilities from black sources.
{2}{W}: Put target nontoken Mercenary on the bottom of its owner's library.
2/1
Two traitors in a pod.

Limitations

There are definitely limitations to this whole endeavour, not least of using this statistical method in a way it wasn’t entirely meant for. A known problem with Elo ratings is that if you don’t want your rating to sway, you can simply stop playing games, so in our case creature types that appear on very few cards won’t have their ratings as differentiated. It’s definitely not a coincidence that the top creature types in the Elo rankings are some of the most common creature types in Magic, and the lowest-ranked, Ally, has appeared on 96 cards, a relatively small amount, but 83 of those have three or more creature types, multiplying the number of matches they were involved in (and always as the loser).

Plus as aforementioned, the K-factor and the order of matchups matters a huge deal for this because there is no underlying variance. Experiments along the way had definite shuffles in the rankings starting all the way from second place (I saw one or two versions with Human ranked 2nd, rather than the 7th they are in these rankings). However, the broad strokes always remained the same (the top 15 or so remained relatively consistent; it was just their order within that would vary).

Conclusion

For a card depicting a single creature, I would generally expect its creature types to follow the rough structure of Bio-Marker/Race/Trait-Marker (where class/occuption is a trait marker), but exceptions are definitely plentiful and are often indicative of story and lore underpinning the creature and/or their plane of origin.

Alternatively: if/when you see a colossal chicken, it is more likely to be an avian-shaped behemoth than an extremely large bird (Bird = 1878.87, Giant = 1571.54), but its pretty much never going to be first and foremost your friend (Ally = 1878.87).


Footnotes & Citations


  1. https://dictionary.cambridge.org/grammar/british-grammar/adjectives-order ↩︎

  2. https://www.reddit.com/r/magicTCG/comments/al6gsl/ ↩︎ ↩︎

  3. https://www.reddit.com/r/magicTCG/comments/al6gsl/comment/efb8q7z ↩︎

  4. https://www.reddit.com/r/magicTCG/comments/al6gsl/comment/efch9pv ↩︎ ↩︎

  5. https://mtg.wiki/page/Creature_type ↩︎

  6. https://www.reddit.com/r/magicTCG/comments/al6gsl/comment/efbiugq ↩︎

  7. https://www.reddit.com/r/magicTCG/comments/al6gsl/comment/efbgivy ↩︎ ↩︎

  8. https://en.wikipedia.org/wiki/Apophony#Ablaut-motivated_compounding ↩︎

  9. https://en.wikipedia.org/wiki/Elo_rating_system#Use_outside_of_chess ↩︎

  10. All my friends did women’s sports work because they are the coolest. “They” in this case referring to both women’s sports and also my friends. ↩︎

  11. The 400 is arbitrary, like the 1500 base score. It was just to roughly line up with how chess ratings scaled before Elo ratings came into play. ↩︎

  12. I’m following Real Close to what my friend John Edwards did in Building and tuning an Elo model for WNCAA Games, so shoutout to him because he actually Knows what he’s doing data science wise. He’s extremely cool, writes a good amount, and streams very occasionally, so check him out. ↩︎