Order within Chaos(Orbs): Emerging patterns in Path of Exile’s volatile economy
You may have heard of Path of Exile. A free to play action role playing game published by Grinding Gear Games that throws you into the role of an Exile. A seemingly ill-fated castout who has been removed from civilization for various reasons depending on your character’s class. The point of the game is to simply progress through all the areas in the world known as Wraeclast and partake in the various subplots (or what we gamers like to call the ‘endgame’)
Throughout your journey in Wraeclast, you will encounter thousands of types of loot. Some items, some unique items, and a multitude of different currencies that allow you to modify your items and skill builds.
One of the allures of Path of Exile is born from this vast selection of loot, and that is trading. Some players dedicate a great sum, or even all of their time to trading. How is it possible for these traders to make money? How do they follow the market? When tens of thousands of transactions occur daily, with thousands of different items being bought and sold, how can a trader find their place among the chaos?
With data science of course! For this particular project I used GGG’s public API and did quite an extensive bit of web scraping. In total I collected close to 60 million data points for currency alone. I then took the distribution of six of my favorite currencies including the highly coveted exalted orb.
Now, looking at this distribution, the exalted orb immediately popped out to me as being close to fitting the bell curve. So I decided to explore it first. I segmented all my currencies in my dataframe with a pattern like the following
standard_league = currency_all.loc[currency_all.League == 'Standard']
abyss_league = currency_all.loc[currency_all.League == 'Abyss']
bestiary_league = currency_all.loc[currency_all.League == 'Bestiary']
delve_league = currency_all.loc[currency_all.League == 'Delve']
harbinger_league = currency_all.loc[currency_all.League == 'Harbinger']
incursion_league = currency_all.loc[currency_all.League == 'Incursion']
So now we have a dataframe for each League that contains all currency transactions per league. But I did not want all currencies, I merely wanted the exalted orb. So I once again segmented the dataframes like so.
exalted_standard = standard_league[standard_league['Buying(1)'] == 'Exalted Orb'].sort_values(by='Date').reset_index(drop=True)exalted_abyss = abyss_league[abyss_league['Buying(1)'] == 'Exalted Orb'].sort_values(by='Date').reset_index(drop=True)exalted_bestiary = bestiary_league[bestiary_league['Buying(1)'] == 'Exalted Orb'].sort_values(by='Date').reset_index(drop=True)exalted_delve = delve_league[delve_league['Buying(1)'] == 'Exalted Orb'].sort_values(by='Date').reset_index(drop=True)exalted_harbinger = harbinger_league[harbinger_league['Buying(1)'] == 'Exalted Orb'].sort_values(by='Date').reset_index(drop=True)exalted_incursion = incursion_league[incursion_league['Buying(1)'] == 'Exalted Orb'].sort_values(by='Date').reset_index(drop=True)
Now we have dataframes for every exalted orb transaction for every league. At this point I decided to graph my data, using the date as my x-axis, and the amount of chaos orbs it sold for as my y-axis.
Looking at the chart, a very clear pattern begins to emerge for each league. For the first third of the new league, the price of exalted orbs increases dramatically. For the remainder of the league it begins to normalize. This same pattern has lasted for an entire year, across six different fresh economies. It is a pattern that will continue to repeat itself until exalted orbs become irrelevant, though I do not foresee this happening.
This pattern is not exclusive to exalted orbs. It repeats for many currencies, thought not all. Here are another example of currency that you can buy/farm the first two weeks and make considerable (proportional to its starting league price) profit. It shares a very similar pattern to exalted orbs across all leagues.
So, how can you make money? Well, if you deal solely in exalted orbs, you would farm/buy exalted the first two weeks of the league and then sell them at their peak.
No matter what, if you can secure exalted orbs for less than 120 chaos orbs, you will make profit. As you can see, the standard league, which is persistent, has a strong baseline for the currency. And you can do this for any currency in the game. Although there are certainly some currencies which you will not make a profit with.
We can utilise this knowledge, this recognition of pattern to capitalize our gains and prevent the buying and selling of currency types at incorrect time periods. Thank you for reading, and I’ll see you in Wraeclast!