Skip to main content
  1. Writing/

The Math Of Getting To Hero Rank In Halo Infinite

·6359 words

Overview #

It finally happened - after a bit more than a year of playing Halo Infinite, I’ve finally reached the end of the line. The pinnacle of experience-based rank, if you will - Hero.

Animation showing the Hero rank acquisition in Halo Infinite

It’s, by any means, a meaningless achievement. Mostly because it’s all just a game, but it was a fun one to try and capture for the data that comes along with it. If you’re reading this, you know that I am Halo data nerd - if I’d go for Hero, I wanted to compute detailed stats on getting there.

Michael Scott asking if he is a hero (he can't say).
Michael Scott asking if he is a hero (he can’t say).

Now, before anyone asks - “What is the fastest way to get to Hero? Which game mode should I play?” The answer is - whichever you are good at.

Do not take people’s opinion on whether it’s Big Team Battle (BTB) or Gruntpocalypse to maximize your XP gain at face value. Some people play BTB and end up with six kills per game with an aggregate XP score of 1,200. The same people will play Infection and will dominate with a total of 9,000 XP and beyond. If maximizing XP gain is what you’re after then figure out what you’re good at and genuinely enjoy and play that mode. That’s it. That’s the secret.

Before we go into the data and all the graphs, I wanted to spend some time looking back at the some of the high-level observations I’ve had through the year of getting to maximum rank. You can press the big button below to just go to the insights and skip my rambling.

The good #

Halo is something near and dear to me and the journey to Hero has been awesome. There is very little to complain about and a lot to rave about.

Super Husky Raid #

My favorite social game mode. It’s Husky Raid with supercharged campaign weapons. I dreaded the regular Husky Raid, but when the Match Composer came out and I could select just Super Husky Raid to queue for, my satisfaction with the playlist improved dramatically.

Who doesn’t like blasting the enemy team with a Ravager from behind a Drop Wall? Why not have the S7 Flexfire with easy aim as you cruise through the center of the map “No Scope"-ing everyone in sight? You will see in the stats below that this is basically the game mode I climbed to Hero in.

And while we’re on the topic of Super Husky Raid, here are the weapons I liked the most:

  1. S7 Flexfire - hand it to me and I will run to the end of the map and clear out the path to the flag. Favorite tool.
  2. MK50 Sidekick - easy to handle, fast rate of fire, pierces shields like butter.
  3. Ravager Rebound - use it from behind the Drop Wall and the opposing team will have zero chance of spawning as long as you have a charge.
  4. M41 SPNKr - when the rockets don’t disappear into the aether, it’s wonderful for doing a lot of damage quickly and to grouped enemies.
  5. CQS48 Bulldog (Convergence Variant) - perfect for close fights. Unmatched performance in terms of time-to-damage ratio.
  6. Heatwave - once you learn how to land “Bank Shot” kills, it becomes so fun to use.
  7. Sentinel Beam - not a lot of ammo, but if you need to clear out the flag area quickly this is a must-have.
  8. Stalker Rifle - “What if we made the standard sniper rifle easier to use?”
  9. Disruptor - I am a big fan of its damage-over-time behavior. And mistakes it causes on the enemy team - the damaged opponent moves closer to their teammates, all of a sudden weak teammates disappear.
  10. BR-75 - a classic, and works just as well in Super Husky Raid.
  11. Unbound Plasma Pistol - since the latest game update, using this even without charging it will absolutely destroy the enemy team. Extremely useful in close quarter combat and at medium-range.
  12. VK78 Commando - once I got the hang of the aiming mechanics (recoil on this gun is pretty intense) it becomes an extremely convenient tool in your Spartan toolbox.
  13. MA40 Assault Rifle - just like the BR-75, yet another classic that just works when you need it to work.
  14. Pinpoint Needler - extremely effective against enemies that do not use the Thruster.
  15. Shock Rifle - good as a substitute for a sniper rifle if you also want to have some… shock value. Just make sure to aim for the head.

There are also a few that are not my favorites:

  1. Mangler - a-OK but requires proximity and luck that the enemy is not moving much.
  2. Gravity Hammer - both the standard and Diminisher of Hope variants are wildly inconsistent. This comes as a surprise to no one. Sometimes you can use it in close quarters to no effect, sometimes the enemy player hits you from half a mile away, launching your limp Spartan husk across the map.
  3. Hydra - just useless 99.99% of the time. Slow reload times, impact is imprecise without homing missiles, and if you’re using it not from behind a Drop Wall, good luck with doing any significant damage.
  4. Cindershot - the physical incarnation of the word “meh.” It works sometimes but the impact is imprecise and often in close quarters it’s close to the usefulness of the Hydra.
  5. Pulse carbine - can’t really say much positive about this. Melts the enemy shields? Yes. Helpful after that? Not really, especially because in my experience I usually spawned with a Plasma Pistol or a Sword as a secondary weapon.
  6. Energy Sword - couldn’t care less about it. By the time you try to use it, someone is already melting your shields.

Also, what’s up with the Drop Wall being made out of parchment paper on my team, but when the enemy team uses it - it’s impenetrable titanium?

Supportive and positive community #

The vast majority of people I played with (and against) are great. They are supportive, funny, and helpful. I tried to reciprocate as much as possible. One time, I noticed that a player was really underperforming so I called it out in chat, leading to this exchange (yes, sometimes I can mildly trash talk):

Screenshot of a message in Halo Infinite calling out a player for a low score.
Screenshot of a message in Halo Infinite calling out a player for a low score.

The same player was on my team for another match, which then led to this extremely positive exchange over Xbox messages:

Screenshot of a Xbox message encouraging a player to continue learning.
Screenshot of a Xbox message encouraging a player to continue learning.

On several occasions my team bonded over a shared Homer Simpson reference:

Screenshot of a Simpsons-powered interaction on Halo Infinite.
Screenshot of a Simpsons-powered interaction on Halo Infinite.

Sometimes, I had to nudge people to be a bit more positive, with a really good outcome:

Screenshot of a conversation in Halo Infinite encouraging a player to be nice.
Screenshot of a conversation in Halo Infinite encouraging a player to be nice.

Other times people were genuinely surprised by me just telling people that they have a nice flag capture run:

Screenshot of a conversation in Halo Infinite wondering why I am acting nice.
Screenshot of a conversation in Halo Infinite wondering why I am acting nice.

And other times, I ran into people that I previously had positive in-game interactions with:

Screenshot of a conversation in Halo Infinite where someone recognized ZeBond.
Screenshot of a conversation in Halo Infinite where someone recognized ZeBond.

You’d be surprised how nice most of the players are if you act nice in the first place. So much so that the negativity can be tuned out almost entirely. Be kind. It’s a superpower.

Supportive developers and franchise builders #

I’ve had extremely positive interactions with everyone on the Halo production team. From the folks at Halo World Championship 2023 (and 2024), the Halo eSports leads who came in clutch with event planning, Halo franchise representatives that were kind enough to help me with some of the swag, to an engineer who gave me a unique look inside the Halo museum. I have nothing but positive things to say about everyone I’ve interacted with at Halo Studios.

It’s easy to be a Halo nerd when the folks building it are wonderful. I am incredibly thankful for their willingness to engage and all the opportunities they allowed me to tap into.

Easily available statistics #

The API for Halo Infinite is excellent and gives an unparalleled view into the match statistics. I wrote about it extensively on my blog and continue to document it here on OpenSpartan. I built an entire library that encapsulates every single public API call and then on top of it - OpenSpartan Workshop (which is also open source). This tool is what I used to ultimately build out this blog post and the analysis in it.

Screenshot of the OpenSpartan Workshop companion app on Windows.
Screenshot of the OpenSpartan Workshop companion app on Windows.

Without an accessible API to provide detailed statistics (including data in film files) this wouldn’t have been possible.

Plenty of players around the clock #

At any time of the day I could find players in most of the playlists I played. Maybe it’s a West Coast privilege, but my wait time has never been unreasonable with a few exceptions (looking at you, Ranked Tactical).

If you are curious about concrete wait times you can also check out my open source project - openspartan/waittimes-datasets (you can learn more about it on this blog). I’ve been aggregating wait times from the US West Coast in ten-minute intervals.

The less good #

There were a few things that I noted that were less than ideal. By no means is this something that took away from all the positive experiences I’ve had, but I thought I’d note them anyway for posterity. I think there is always room for improvement in anything.

Toxic players #

And just like there are really awesome community members, there are also toxic players. Thankfully they are not extremely common, but when they reared their ugly head, their behavior did sour the spirits in the team.

Now, don’t get me wrong - I am no stranger to friendly trash talk, but there is a difference between jabs and straight-up offensive comments. Almost every week I would run into at least one character who would be extremely inappropriate to their team. They would berate their teammates, would spew slurs over voice chat, and would blame everyone but themselves for losing a game. I’ll provide some receipts 😎

And before you go “Well in the Halo 3 days…” - no, that doesn’t make it okay. Just because other lobbies were toxic in the past doesn’t mean we should tolerate this behavior today.

Do keep in mind that to protect… well, not the innocent, I pixelated the names of those that were posting bad messages. The last thing I personally want to do is give those folks any attention. If you see a message you sent in these screenshots, I hope you take a moment to reflect as to why you did that and how you think it made your teammates feel. Do better.

One of the things I’ve seen is people (very few, thankfully) get really sensitive about is trying to tell them what’s happening in the game or maybe where they can look to see an opposing players:

Screenshot of message encouraging me to "shut the fuck up".
Screenshot of message encouraging me to “shut the fuck up”.

Yes, sometimes the filter doesn’t properly kick in and you see the bad words pop up. Threats were fairly uncommon, but some folks took a match a little too seriously.

Screenshot of a threat suggesting that I will be "eating through a straw".
Screenshot of a threat suggesting that I will be “eating through a straw”.

The funny thing is that the folks complaining were almost universally the ones at the bottom of the board or doing poorly. I have never seen a top player rail against their team. As a matter of fact, they were usually appreciative of any suggestions that can give the team an advantage.

Apparently even if I did well and thanked others, that was not good enough 🤣

Screenshot of a bottom of the board complainer in the chat.
Screenshot of a bottom of the board complainer in the chat.

What I started doing is when I see someone behaving like an ass in chat and being overly toxic, I would just spend time enjoying the scenery. The skies around the maps are beautiful - you should check them out. Why chase the flag or the enemies when you can look over the landscape?

Screenshot of a reactions to a game being thrown.
Screenshot of a reactions to a game being thrown.

What’s funny is that after this, the truly chatty toxic players that were in a party were suddenly no longer in the party in the next few matches. Who knows, maybe this did have some kind of positive impact on my game quality. Apparently the same people that are being toxic care a lot about winning games, and when they act badly, their likelihood of winning will just drop if they’re in the game with me. Maybe this can be an indirect lesson in treating your team like people that deserve dignity during the match.

What I’ve also seen is that the toxicity spreads past the in-game chat and into the Xbox messaging. On numerous occasions those that would trash-talk me in the game would then non-stop (until I blocked them) try to add me to a party or invite me to the game so that they can then harass me over voice chat (ask me how I know that’s what they’re trying to do). Talking to a few other folks that have played Halo with me they mirrored my experience with this.

Screenshot of continuous invites on Xbox to join a party and game.
Screenshot of continuous invites on Xbox to join a party and game.

Most of the text messages through Xbox chat, though, would be downright hilarious. The vast majority of them would pop up after I had a particularly bad game (which can happen to anyone, by the way). I hypothesize that most of them are pretty tame because the Xbox enforcement is much more harsh and they’re a bit more… reserved when it comes to insults.

Xbox message telling me to get good.
Xbox message telling me to get good.
Xbox message calling me a "noob" and challenging to a 1v1.
Xbox message calling me a “noob” and challenging to a 1v1.
Xbox message that called me and my party "try hards" because we won the game.
Xbox message that called me and my party “try hards” because we won the game.
Xbox message calling out my abysmal in-game score.
Xbox message calling out my abysmal in-game score.
Xbox message asking me to stop playing Halo.
Xbox message asking me to stop playing Halo.
Xbox message telling me I am "scared trash" for hiding in Infection.
Xbox message telling me I am “scared trash” for hiding in Infection.
Xbox message calling me a "camper" for being relatively good at SWAT from one spot.
Xbox message calling me a “camper” for being relatively good at SWAT from one spot.
Xbox message asking me for cheat codes because the player thought I did damage while looking away.
Xbox message asking me for cheat codes because the player thought I did damage while looking away.

Now, I have a pretty thick skin and these messages never really bothered me much personally but if this is the behavior that I see, you can only imagine what kind of harassment others can get. It’s a game - it’s really not that important in the grand scheme of things. Treat it as such.

And some are wondering why “nobody is comming anymore” - that’s why. Because if I had a long day, do I want to jump in for some Halo and be called a slur, or would I rather just hear the game environment? I’ll choose the latter any day.

Select few maps #

Within Super Husky Raid, two maps became somewhat of a drag for me - Disciple and Scarlett’s Landing. My process for playing a match became this:

Map decision tree.
Map decision tree.

Disciple has a problem with stairs - sometimes when you go after a flag, you get stuck on stairs and can’t move forward, giving crucial moments to the enemy team to repel your incursion into their base.

Couple that with higher than usual pings most of the time and it becomes almost entirely unplayable. When I saw the map pop up, I just quit the game because I haven’t had a good play there to this day (every game on this map is somehow iffy). My feelings about the map can be best summarized by this capture:

Spartan hanging out on the side of the pit in Disciple.
Spartan hanging out on the side of the pit in Disciple.

Scarlett’s Landing has a problem with… itself. I’ve had some really great games there, with moments like this:

But almost consistently, I get large performance drops and glitches. Just watch this to see what I am talking about:

So, this became a “Are you feeling ready to deal with this today?” kind of map.

Team balancing #

Super Husky Raid is inherently a game of imperfect balance because the weapon drops can dictate the team performance, but I swear sometimes the game would be extremely skewed in my favor or against me (more often the latter), often worsened by players quitting halfway through. I became really good at predicting the outcome of the game by the first few minutes. Check these out:

Example of a heavily imbalanced team in Super Husky Raid.
Example of a heavily imbalanced team in Super Husky Raid.
Another example of a heavily imbalanced team in Super Husky Raid.
Another example of a heavily imbalanced team in Super Husky Raid.
Skewed match on Merchant's Square.
Skewed match on Merchant’s Square.
Outcome of a game with two players quitting.
Outcome of a game with two players quitting.
Outcome of a game with three players quitting.
Outcome of a game with three players quitting.

Game bugs #

These ranged from “Huh, this is kind of funny” to “Oh come on now…”. I’ve had one case (not on any of these maps) where the enemy flag was stuck in the ceiling and nobody on our team could get it back to score:

Have you ever seen the Drop Wall spin? I have!

On my PC, about a dozen times I had the entire PC black-screen and reboot because of a hard crash that apparently took down everything.

On the Xbox, in the Rumble Pit playlist, a few times the game caused the Xbox to just hang and I had to physically unplug it to get it back to a working state.

The dreaded EAC message would pop up almost every game (although it should be fixed with the latest update).

EAC message in Halo Infinite.
EAC message in Halo Infinite.

The metrics #

Now, let’s dig through the numbers! For the metrics that I will be looking at, I am exclusively focusing on matches that were played since June 20, 2023 - the day when career ranks were launched. For each of the stats, you can also look at the associated SQLite queries if you want to also get the same data for your stats collected with OpenSpartan Workshop.

The data is aggregated directly from the SQLite database inside a Jupyter notebook that automatically performs the end-to-end analysis (you can check it out on GitHub).

If you want to compute the stats for yourself, you can see all the queries and code in the Jupyter notebook on GitHub.

Summary of stats #

I had almost three thousand matches prior to the career ranks coming in place so the stats here are a little bit different from what you’d see for my account on Halo Waypoint. As I mentioned above - I am only counting the matches that happened once career XP became earnable.

Stat Value
Matches Played 4,699
Wins 2,169
Losses 2,343
Ties 53
Win Rate 46.15%
Matches Not Finished 134
Kills 69,138
Deaths 63,516
Assists 21,345
Callout Assists 15,193
Shots Fired 1,322,236
Shots Hit 490,720
Damage Dealt 17,238,914
Damage Taken 15,544,819

Players I played with the most #

These are the top 10 players that were on the same team with me during any of the matchmade games for the analysis period. I’ve excluded bots (IDs starting with bid) and my friends since those would skew the table quite a bit.

Gamertag Matches Played
modbog9590 13
Floozii 12
StRiK2fREeDom 12
WobblyLettuce97 11
DarkZero9219 11
SplitYourWig100 11
Toss5434 11
IVA the LT 10
kaughtabodi 10
psilocybe007 10

Players I played against the most #

Here are the top 10 players I played against. Just like with the previous table, I’ve excluded bots (IDs starting with bid) and my friends since those would skew the table quite a bit. You might wonder - friends on the opposing team? That’s what happens when you play Rumble Pit 🤣

Gamertag Matches Played
dabsnstuff 21
Blcksheepcuh 17
modbog9590 16
XBOXBRYAN96 16
Chrimbnasty 16
DrewStylez 16
Gabo I am 14
WutangDC10 13
Brightbuddy 13
WobblyLettuce97 13

Very little overlap over thousands of matches.

Monthly matches #

As you can see, I really made a push for Hero in August and September because I wanted to get it done before Halo World Championship 2024 in Seattle.

Monthly matches played.
Monthly matches played.

Weekly matches #

Weekly matches played.
Weekly matches played.

Matches in progress joined #

Looking at the data for the matches that I’ve joined that were already in progress, it’s almost universally clear that I was more likely to lose that match than attain any other outcome. This is probably because me joining a match in progress means that I am substitute for other players who left very likely because the match was very lopsided (e.g., they got spawn-trapped with hammers in Husky Raid). This means that me joining is not very likely to change the outcome that has already been very close to finalizing.

On multiple occasions I’ve joined a match where the third flag was already in the enemy hands and they were just waiting to score at their base while giving their teammates a chance to gain more XP. Very unlikely I would have any positive impact on the game in that situation.

Weekly matches played that were joined while they were in progress.
Weekly matches played that were joined while they were in progress.
Monthly matches played that were joined while they were in progress.
Monthly matches played that were joined while they were in progress.

Matches in progress left #

As time went on, I also started being much more upfront about leaving games I didn’t want to be a part of. Remember how I mentioned that Disciple and Scarlett’s Landing were glitchy and I was almost guaranteed a bad time? I would just quit those matches when I saw the map, so the numbers went up and to the right as I became much more shameless about my preferences. As far as I can’t tell, I wasn’t penalized for that at all so if you see maps you don’t like - just leave.

Weekly matches played that were left while they were in progress.
Weekly matches played that were left while they were in progress.
Monthly matches played that were left while they were in progress.
Monthly matches played that were left while they were in progress.

And if we break this down by map, it becomes immediately clear which ones I didn’t like the most:

Matches left grouped by map where the quitting occurred.
Matches left grouped by map where the quitting occurred.

The chart above doesn’t represent well matches that I left because the game crashed or because I got tired of being spawn-camped for five minutes, but it does tell a story - Disciple is just a non-starter for me.

I forgot to mention that Formation made that list too, albeit not because of any glitches - I just feel like the map is way too long and unwieldy for Husky Raid, but that’s more of a personal preference.

Mode breakdown #

Absolutely no surprises there about this next graph. I played a lot of Super Husky Raid, Husky Raid, Tactical Slayer, as well as Ranked Tactical Slayer.

Matches played grouped by the game variant.
Matches played grouped by the game variant.

Again, as I mentioned earlier - I played these modes because I am relatively good at them. Not bagging on any others, and if you’re optimizing for XP - figure out which ones you can shine in.

Map breakdown #

And just like with the previous graph, the maps here reflect the game types I played the most - Super Husky Raid and Husky Raid.

Corpo and Diminished were the clear winners of the map lottery. These are actually the two maps that I think are fantastic for Husky Raid-style games - linear, unobstructed, and perfect for quick team rushes.

Matches played grouped by the map.
Matches played grouped by the map.

Win/lose per week #

My consistency of playing Halo Infinite has been all over the place on the path to Hero. That’s not necessarily a bad thing - I only played when I felt like it, and at the end I was highly motivated to write this blog post, so the volume of games went up.

Matches played every week and their outcomes.
Matches played every week and their outcomes.

But the above is not enough. Let’s also compute the win ratio week-over-week. To do that, I use this simple formula:

\text{Win Ratio} = \frac{\text{Matches Won} + \text{Matches Tied}}{\text{Total Matches Played}}

This yields the following weekly snapshot:

Weekly match win ratio.
Weekly match win ratio.

It certainly felt like the game sometimes was beating me up with more losses than wins. Which, if you think about it, probably makes sense in the scope of Husky Raid matches. If we look at the distribution of weekly win ratios, we get this:

Density of weekly win ratios.
Density of weekly win ratios.

That looks about right - most times I stuck somewhere around 47% of matches won. I have zero context on how common it is depending on skill level or where I fall in the broader playerbase, but I think I am about as much of an average player as I can be.

Match outcomes are irrelevant as a standalone parameter when it comes to optimizing for XP to get to Hero. The XP you earn for performing well or winning the game accrue to the battle pass (i.e., operation) rather than career.

That being said, I also felt that sometimes I would go on a winning streak, and other times - a completely abysmal losing streak. Let’s see what the weekly longest winning streaks were.

Max number of winning matches in a row per week.
Max number of winning matches in a row per week.

I topped out at about 10 games in a row being won before the streak was broken. Not terribly bad! Not super-common either, which becomes clear if we look at the distribution:

Distribution of win streaks.
Distribution of win streaks.

Losing streaks, on the other hand, are a bit different on the surface (way higher extremes, that is):

Max number of losing matches in a row per week.
Max number of losing matches in a row per week.

But the distribution tells a story similar to win streaks:

Distribution of losing streaks.
Distribution of losing streaks.

The median is about the same as we saw for winning - 5 matches, with others falling on the extremes of the curve. Maybe the game isn’t as keen on doling out losing streaks as I thought?

Median kills #

You’ll notice that I rely more on medians than averages - that is intentional to avoid the bias of higher values skewing the result. For kills, across all matches, this is what the distribution looks like:

Distribution of kills.
Distribution of kills.

The higher values (in the hundreds) are coming from player-vs-environment (PvE) modes - Firefight (including Gruntpocalypse) and Survive The Undead matches. We might want to exclude them to get an accurate representation.

Distribution of kills without PvE modes.
Distribution of kills without PvE modes.

Much cleaner and easier to understand the distribution.

Median deaths #

Interestingly enough, the death distribution follows pretty closely the one for kills. I have a pretty aggressive play style (push to the enemy team instead of covering) so this is not surprising - in most of my matches the kill and death values are pretty close.

Distribution of deaths.
Distribution of deaths.

Median assists #

Assists-wise, I don’t seem to be doing too well - with a median of only 4 assists per match I need to spend more time helping the team even if I don’t get the final kill (or my team needs to be better at cleaning up my engagements - who can tell).

Distribution of assists.
Distribution of assists.

To make sure that I get more accurate values, the bell curve above excludes excluded data from PvE modes.

Median life duration #

I excluded PvE modes for this metric since it can skew the overall performance. I was not surprised by the average life duration distribution - room for improvement, as with any of the other metrics, but not too terrible.

Distribution of average life duration in seconds.
Distribution of average life duration in seconds.

Median accuracy #

This feels like a metric I can improve - a median accuracy of 37.16% is pretty bad. Slowing down and disabling sprint should hopefully help in future games.

Distribution of accuracy percentages.
Distribution of accuracy percentages.

Median KDA ratio #

Excluding PvE modes, I am glad to see that the median value is not negative. This is definitely better than what I had in Halo 5.

Distribution of KDA match performance.
Distribution of KDA match performance.

Median match length #

If you care about getting matches over quickly, well - surprise, the most common match is a bit over seven minutes long (at least in my experience). There’s a few that stretch beyond that, but be prepared to play around eight matches per hour.

Distribution of match durations.
Distribution of match durations.

Median damage dealt #

Distribution of damage dealt values.
Distribution of damage dealt values.

Median damage taken #

Distribution of damage taken values.
Distribution of damage taken values.

Median time to first kill #

One of the interesting things that is possible now due to being able to parse film files is extracting data on when I performed a specific event in-game. For example, I can track the time to first kill relative to the match timeline. This is what it looks like aggregated in similar fashion to previous median metrics:

Distribution of first kill timestamps.
Distribution of first kill timestamps.

The data here may be skewed because there are games that I’ve joined in progress, meaning that the first kill is tagged as way later in the game. Excluding those matches as well as any matches in PvE modes give a cleaner picture:

Distribution of first kill timestamps without games joined in progress.
Distribution of first kill timestamps without games joined in progress.

Median time to first death #

Because we already know what to exclude to get a more representative graph, I focused on just matches that were not joined in progress and were not in PvE game modes for this metric:

Distribution of first death timestamps without games joined in progress.
Distribution of first death timestamps without games joined in progress.

My aggressive play style bites once again - I die way too quickly into the match for the first time.

Median time to first medal #

When it comes to medals (which I enjoy quite a bit), I seem to be getting to them relatively quickly. They are also extremely easy to earn in any of the Husky Raid variants - getting the first award in under a minute-and-a-half since the start of the game in most matches is great.

Distribution of first medal timestamps without games joined in progress.
Distribution of first medal timestamps without games joined in progress.

Median match score #

Another interesting metric to think about is the personal score that I get after a match - this is what drives the overall career XP progression. Looking at the distribution across all the matches that took me to Hero, it’s clear that getting anything above 1,745 XP per match is a little less than common.

Distribution of personal scores.
Distribution of personal scores.

As I mentioned earlier in this blog post, I like to think that I am slightly better than average at Husky Raid, so getting higher scores there is easier for me. Would the distribution look different if we isolated the data for just Super Husky Raid?

Distribution of personal scores for Super Husky Raid.
Distribution of personal scores for Super Husky Raid.

The slope here is a bit more gradual - indeed, my scores in this mode have been much more optimistic.

I still wanted to see the match score progression over time, so I lined them up - this is what it looks like:

Personal scores for every match played.
Personal scores for every match played.

And of course, put together, this is what the weekly XP earnings looked like. I definitely pushed for the top rank at the end there.

Weekly experience earned.
Weekly experience earned.

Correlates pretty closely with weekly matches, doesn’t it?

There’s another last piece of data I want to dig through around personal scores - experience per minute. If we think about time spent in a match, every minute would be potentially earning some XP. How much? Let’s take a look by taking every single match and computing the score per minute.

Personal score earned per minute for every single match.
Personal score earned per minute for every single match.

There are some matches where I am clearly popping off, and there is a somewhat of an upwards trend - the more I play, the better I get (at least up to a certain threshold). We can now also compute a similar distribution as we’ve done above:

Distribution of personal score earned per minute.
Distribution of personal score earned per minute.

If I take the median value of 252.52XP/minute and juxtapose it against the required 9,319,350XP to get to Hero, it would take around 36,905.39 minutes to get to the top rank. That’s 615.08 hours - a whopping 25.62 days. Still less than what it takes to get to SR152 in Halo 5.

Correlation between end-state, life duration, and kills #

The longer you live and more kills you get, the more likely you are to win - I know, groundbreaking Halo knowledge!

Correlation between average life duration, kills, and game outcomes.
Correlation between average life duration, kills, and game outcomes.

Correlation between end-state, life duration, and deaths #

The corollary to the graph above is that if you die less while living longer, you are more likely to win as well. Most losses are concentrated around the axis of “short life, lots of deaths.”

Correlation between average life duration, deaths, and game outcomes.
Correlation between average life duration, deaths, and game outcomes.

Correlation between end-state, deaths, and kills #

A very clear representation of the idea that if you have more kills than deaths, wins are more likely to happen. Not that the outcome can’t be different if the ratio is reversed, but then you would be relying on your teammates carrying your match.

Correlation between kills, deaths, and game outcomes.
Correlation between kills, deaths, and game outcomes.

Correlation between end-state, callout assists, and kills #

Correlation between kills, callout assists, and game outcomes.
Correlation between kills, callout assists, and game outcomes.

Correlation between match length, kills, and end-state #

There are two interesting observations here. First, notice that all ties are concentrated at the very right edge. That’s because that’s when the match duration is hitting the overtime limits and if there is no win or lose, it’s obviously a tie. Second - quite a few matches hit the time limit before the overtime too (that’s that vertical pattern before the ties), where the match ends even if all objectives are not completed because there is another team in the lead.

It’s also interesting to see that compared to the match duration you have to maintain a certain “kill ratio” to be able to nudge the game towards a win. The moment you start lagging behind, you’re more likely to lose (i.e., match goes on and you aren’t catching up on kills).

Correlation between match length, kills, and outcomes.
Correlation between match length, kills, and outcomes.

Correlation between match length, personal score, and end-state #

Very similar observations to the above, with a pivot on personal score. The more the match goes on - the more you should keep up with trying to do things that increase your score (i.e., go after kills, score flags, etc.). The better I was able to grow my score, the more likely I was to win.

Correlation between match length, personal score, and outcomes.
Correlation between match length, personal score, and outcomes.

Medals earned #

Double Kill is by far one of the easiest medals to get. I am also that annoying player that keeps tagging enemies when I see them. It’s almost instinct at this point, so Shot Caller became my next favorite medal to earn, and the numbers reflect that.

Medals earned on the path to Hero.
Medals earned on the path to Hero.

Medals earned per match #

As my proficiency with Halo grew, so did the number of medals I earned per match. You can very clearly see that change match-over-match for the past year.

Medals earned per match for every played match.
Medals earned per match for every played match.

That also correlates with the volume of games played - the more matches I was partaking in, the more medals I earned. See my monthly medal counts:

Medals earned per month.
Medals earned per month.

Getting to nine medals per match being the median was also nice - that meant that I was actually doing some interesting things during games that warranted special awards (like earning Extermination medals).

Distribution of medals earned per match.
Distribution of medals earned per match.

Percentage of matches where I was top of the board #

Out of all the matches that I played, I also got curious - how many of them I was actually the top performer within my team, regardless of the outcome? Turns out, a few:

Number of matches I was at the top of the team leaderboard, per week.
Number of matches I was at the top of the team leaderboard, per week.

Here is what it looks like juxtaposed against the total matches played in a given week:

Number of matches I was at the top of the team leaderboard, per week, compared to overall matches played.
Number of matches I was at the top of the team leaderboard, per week, compared to overall matches played.

Or, if you like to think in percentages:

Percentage of matches ended with me being top of my team.
Percentage of matches ended with me being top of my team.

Pretty nice to see how many weeks I’ve had more than 50% of matches where I was the top performer on the team. The “Average Player” label lives on for me!

Friendly/enemy team MMR variability #

Every point on the scatter plot is one match. It’s interesting to see just how many matches have a fair distribution of MMRs. There are, of course, outliers (my team MMR being ~1,050 and the enemy team being around ~1,750 certainly stung) but they are not very common.

Comparison between player and enemy team MMRs across all played matches.
Comparison between player and enemy team MMRs across all played matches.

It’s also clear that the moment the enemy team MMR shifts upwards compared to your own, losses start accumulating. Anything below the diagonal tends to stick to good outcomes. Anything above - less so.

Comparison between player and enemy team MMRs across all played matches, including outcomes.
Comparison between player and enemy team MMRs across all played matches, including outcomes.

Volume of matches played per day/time #

I mostly play after work, late evenings, or on the weekend. This was neat to see, but not exactly taking me by surprise. And clearly I am leveraging some free weekdays (i.e., vacations, national holidays) to clock in a few Halo Infinite matches too.

Heatmap of matches played, broken down by day of the week and hour of the day.
Heatmap of matches played, broken down by day of the week and hour of the day.

Winning likelihood depending on time of day #

Somehow, Fridays seem to be the most optimal days for winning games consistently at a higher rate. Saturday afternoons, when lots of people are home, somehow are the worst. Could also be sampling and skill bias on my part.

Heatmap of win rates by day of the week and time of the day.
Heatmap of win rates by day of the week and time of the day.

Conclusion #

Well this was one heck of a write-up! Never in my life have I analyzed any video game progress in this much detail. I hope this was helpful for you as you embark on your own Hero journey. Would love to hear your thoughts and feedback!