This is the first post of (hopefully) many to come from my Python program that pulls Steam Community Market data for video game skins. If you want to learn how I got all this data, check out that tutorial.

TL;DR: Read the bold, look at pictures

Introduction to Rust

For those who may not play Rust, I’ll give a quick overview of the game to give you a better understanding of what “skins” are and what they mean to people who play Rust. Rust is a survival game made by FacePunch Studios where every player spawns on the beach of an island with nothing more than a rock, a torch, and a quickly depleting store of calories. Spawning into the game is the only part of the game with any structure. Everything from here on out is up to you and the few hundred other players who are also stranded on the island. Generally, people will chop down trees, collect some stone, and build a base to have somewhere secure to stay and stash their loot. However, there are no rules on how to play Rust. If, say, you don’t want to spend time chopping trees and gathering stone and opt instead to craft a bow and arrows and kill someone who is collecting these resources and take them all for yourself, you can do that. If say, your neighbor keeps chopping down all the trees in the area, you can blow up his base with rockets. If you want to make a hotel for people to stay in, you can do that. If you want to construct a gladiator arena or build a wall across the entire island, you can do these things too.

A simple shop and seating area in Rust

The game play of Rust doesn’t come from finishing a level or defeating a boss. The game play is emergent from interacting with other players on the island. However, the game makers certainly have a direction for the game in mind. Sure, there are BBQ grills and guitars, but there’s also guns. Lots and lot of guns and other ways to defend your base and destroy your enemies. And there’s nothing sweeter than conquering the island and looking cool while doing it. Looking cool is where “skins” come in.

A skin set to look like retro video game consoles. Source: Diva Dan

Item “Skins”

In Rust, players can get skins for their items to make them look different than the default, run-of-the-mill look all the other players have. The only way to get skins is to purchase (with real money) them from FacePunch Studios or to buy them (again, real money) from other players who have the skins you want. Aside from looking cool, skins don’t make your guns better or your armor stronger. Despite gaining no real advantage aside from vanity and flex, players will spends tens to even hundreds of dollars on single skins to stand out and look unique.

Boring, default crossbow skin, $0 Golden skin for a crossbow, $25

Skin Market

As outlined above, there’s two main ways to get skins. The first is to buy directly from FacePunch Studios. Every week (or so), FacePunch will pick a handful of skins submitted by artists. For one week only, players can purchase these skins for a fixed price from their Store, generally $0.99 between $1.99. A portion of every sale goes back to the artist. However, once a new week rolls around with new skins, the skins from the previous week are gone from the Store. If you want to get an older skin you need to go to the Market. The Market lets players buy and sell skins directly to one another. A seller can set any price they want and buyers can purchase these or submit limit orders to buy a skin at or below a given price when/if one become available. This is not so different from the stock market where traders buy and sell shares in companies. However, Rust skins in particular are quite unique with their Store feature. The one-week-Store means there is always a fixed supply of a given skin after that week. Afterwards, market forces on the community Market dictate the price of these limited goods. What are these market forces? Let’s find out.







Market data for all Rust skins in Spyder



Skin Market Analysis

Some data caveats

I collected all of this data at the start of March 2019, so skins and prices are til then. I have data for 1,642 items which are mostly skins but also things like cloth/wood/metal and gambling boxes.

Aside from pulling all the data from the Market as outlined in my other post, quite a bit of clean up, extra data collection, and data guessing went into this data set. The Market gives me the daily median price and total volume (number of sales) for every item. However, that is all the info it gives me. Once I collected all of this information I then painstakingly went through and added more data to each item such as, what item was the skin for? What type of item was it (eg, gun, armor, clothing)? How good (workbench tier) was the item? I automated this the best I could but there is zero consistency on item naming. Any skin artist who puts the type of item in the skin name, thank you.



I really wanted to have the original Store price of each skin to see how well or poor and skin’s price performed. However, this information is not really available. I reached out to FacePunch everywhere I could but was just left on “read”. Oof. I turned to Reddit for advice. Shout out to u/Regular_Merc who suggested the way back machine which keeps track of webpages over time, the Store being one of them. This worked okay but the records were very spotty. u/avantus1 suggested the youtuber “ThatGermanGuy” who has been reviewing all the Rust Store skins since just about the time skins were introduced. This was quite the gold mine however in the early days he wasn’t the best at saying the skin’s prices. More recent videos (the past year or so) have the price overlaid on every

skin which has helped tremendously. Thus, for skins I did not have the original price for I filled it in with the average of all known prices for that skin. This works great on average, however, without rhyme or reason Facepunch would sometimes double or triple the price of one or two skins on the store. So keep in mind, on average, my original prices are pretty good but may be low for about 5% of skins.

Finally, I’m currently in New Zealand. Despite my many attempts the Market would only give me back data in New Zealand Dollars (NZD) so everything here is in NZD. Store prices that were in US dollars I converted with a rough exchange rate that comes close to what the Store uses. If you must convert things to USD, roughly multiply by 2/3, eg $1.00 NZD is (currently) $0.66 NZD. Since the majority of my audience is in the US, I’ll do my best to convert in text whenever I remember.

Also, the Market (10%) and Facepunch (5%) take a 15% cut of all sale prices. I did not factor this into the expected returns so they are all 15% less than what you see here.

Data overview

Metric avg ± sd Store Price ($) $2.81 ± 1.25 Market Price ($) $5.11 ± 10.10 Initial Change ($) $-1.33 ± 16.47 Max price (day) 206.56 ± 209.31 Appreciation ($) $2.58 ± 22.66 Swing ($) $14.53 ± 40.53

All reported as average ± SD. Store Price - Average original price on the store. Market Price - Average skin price on the market. Initial Change - Average item price change from day 1 to day 2 on the Market. Appreciation - Average change in price from day 1 to March 9th 2019. Swing - Average difference between maximum price to minimum price. Max price - Average time on the market for a skin to hit it's maximum price.

Here’s a general overview of the metrics I collected or calculated. As you can see, the standard deviation of nearly all the metrics is large compared to the average. This means our data is very spread out. Let’s dive into this data further to get a better feel for what’s going on because just averaging across all skins isn’t going to tell us much.

Most skinned items

AK47 – 81 Sheet metal door – 81 Large wooden box – 70 Metal face mask – 63 Pants – 63 Shirts (normal and long sleeve) – 61 Metal hatchet – 58 Hoodie – 56 Furnace – 49 Semi-auto pistol – 46

Store price and Market price – Making a quick buck

Let’s start simple before diving into more complex analysis. Can you just buy skins on the Store then sell them on the Market for a profit? Yes, this strategy would work but don’t expect to get rich off it. Below you can see every skins’s price change from its original store price (Original) to its average market price (grand average; average of its median day’s price from every day it was on the market). You’ll see there are set price points for skins on the Store, hence many skins cluster up. However, data is much more spread out on the Market. The Rust red line is the median of all the original prices and all the Market prices. As you can see, generally, prices increase from the Store to the Market (Wilcoxon, P < 0.001). You’ll see some Store skins drastically shoot up in price (steep, positive slopes), so much so that I had to limit the y-axis to see anything. However, there are plenty of skins that also lose value (negative slopes).

We can zoom out and instead of plotting every skin, just look at the price distributions of the two markets. Below you can see the Store distribution (KDE) in black and the Market in red. It’s clear the Market prices are shifted rightward relative to the store, meaning their prices tend to be more than the Store. On average, you can make about $2.31 NZD or $1.53 USD. However, due to the massive long tail (skew) of the Market data, the median is a better metric than the average to use. Unfortunately, you’re looking at returns of about $0.89 NZD or $0.59 USD.

Initial Change: The curious day 1 to day 2 Market swing

You may be wondering why I have a metric for the initial price change, or how much an skin’s price changes from the first day it is on the Market to the second day it is on the Market. When I was exploring the data I found so many skins that had their maximum price on day 1 of trading then drastically dropped on day 2 and would rarely recover (64 skins dropped by more than $10, 8 skins by more than $50). The Racing Stripes Chest Plate had the most drastic initial drop of $567.67 NZD or $374.66 USD. However, for all these items, day 1 trading volume tended to be very low and usually only from a single sale.



The Racing Stripes Chest Plate has the largest initial price drop on the Market

You can see from the top table that the average skin lost $1.33 NZD from day 1 to day 2. However, the massive standard deviation of $16.47 NZD warrants further investigation. Below, you can see that most skins will lose value from day 1 to day 2 despite gaining value over their Market lifetime.

One way to do this is see when skins have their maximum Market price. Furthermore, this metric will be quite informative as to when skin’s have their maximum price which would tell Market participants when the best time to sell is (or worst time to buy). Below you can see a histogram showing the distribution of the max price days. Strikingly, there is the pile up on the first few days of trading. This is further confirmed by looking at the mode which is zero (day 1). 275 of the 1642 skins (17%) have their maximum price on trading day 1. Why so many skins lose value from day 1 to 2, I have no real theories. The volume on day 1 tends to be very low so perhaps people hold out selling them on the Market, which makes buyers desperate and they place ridiculous bids. If you have any ideas, leave a comment. Otherwise, there doesn’t seem to be a best time to sell a skin you’re holding onto. Generally it looks like skins have their max price earlier, < 200 days, rather than later.

Just while we’re looking at it, we can also see when a skin has its lowest price indicating the best time to buy/worst to sell. These data are a little less perplexing but still not obvious. A lot of skins have their minimum price on day 1 and day 2. However, there’s a much smoother distribution compared to the max price days. Generally, the minimum price is earlier, < 169 days, than the maximum.

These data give us opposing advice. Many skins have their max price early on while many others have their minimum price early on. Moral of the story? “Market timing is fool’s errand” – some smart guy.

Market Appreciation: Buy and hold

With these massive swings early on in mind I came up with a few different metrics to try to capture how a skin’s price changes over time. One is just called appreciation where I average the price of a skin on the first five days and the most recent five days and take the difference. This is similar to the Store vs Market analysis though only relies on Market trading data. Can you make money just buying early in the Market and selling later? Yes. You will tend to make a little more money if, instead of buying skins on the store (avg, $2.31), you buy them on the first few days of Market trading and sell them later on (avg $2.58 NZD or $1.70 USD). However, results may vary with the median price change being better for Store to Market flip ($0.89) compared to Market appreciation ($0.54 NZD or $0.36 USD). However, this difference was not significant (Wilcoxon, p = 0.064).

Price swings

The last overall metric I looked at was Market price swings. This is simply the difference between the lowest price a skin had on the Market and the highest price a skin had on the Market. This would translate to the maximum possible profit you could make trading skins on the Market assuming you had perfect timing (which is impossible). As you can see, for most skins you can actually make a decent bit of money with an average swing in price of $14.53 NZD or $9.59 USD and a median of $6.96 or $4.59 USD. While no crystal ball, this data can help to inform your decision of when to sell a skin. If its price has risen about $5.00 USD from its low, consider selling. Or if you’re a gambler, wait for a $10.00 USD swing before selling.

While timing the market is impossible, we can at least look at overall trends and make more informed decision of when to sell. To do this I looked at how many days elapsed from the time a skin had its maximum price to the time it had its minimum price. If this value is positive a skin had its minimum price first then its maximum price at a later date. If this value is negative a skin had its maximum price early on then fell to its minimum price later on. As you can see below we get a very weird, non-normal distribution (D’Agostino and Pearson’s, p < 0.001). At the surface we can see it’s skewed to the right (skewness, -0.69; p < 0.001) meaning skins will likely have their lowest price before their highest price. On average, a skin will reach it’s maximum price 37 days after hitting its lowest price. However, keep in mind the median is 71 days and is a more reliable metric for this distribution of data. Thus, wait 71 days after a skin has hit its all time low to sell for maximum profit. However, what if a skin you want is riding high and you don’t want to pay a ton of money? The first peak to the left of zero is at around -35 days with the second, wider peak around -250 days. If you see your favorite skin dropping in price, wait about 35 days for it to reach its low. If it’s still not low enough, check back in eight months.

The Rust Skin Index Fund

Before getting into very granular analyses I have one more idea for capturing the overall Rust skin Market as well as answering one of the more sought after Reddit questions. I posted in r/playRust asking what people wanted to know about the Rust skin market. u/Stilnox1012 and u/Vativ posited that time of year may influence skin prices. u/Vativ, rather confidently, said summer would be the worst time to buy skins as everyone is spending their money on other video games when Steam has the summer sale (where most games get a massive discount). Conversely, Christmas is the best time as people [kids] have higher disposable income [from Christmas gifts]. u/Stilnox1012 thought both summer and Christmas would elevate the price of skins. This was a very fun question to try and answer. I needed a way to capture price fluctuations over time using dates rather than just time on the Market as I did above. To do this I made a Rust skin index fund, similar to how an index fund works for stocks.

Basically, an index fund tracks the price of a group of stocks. For example, there is an index fund that tracks the biggest American companies like Apple and Google called the S&P 500. This gives investors a good idea of how a whole market is performing based on many companies rather than the more granular (and noisy) performance of a single company. Rather than company’s share prices underlying the index I used skins as companies and skin prices as stock values. Thus, my COBALT index fund tracks the performance of all Rust skins. For example, if, on average, skins are going up in price, the index will go up too. If skin prices are stable, the index will be flat.

I’ll spare your the details of what didn’t work in creating this index and tell you what I ended up using. For every day there was skins trading I got the average price of all traded skins for that day. I also go the total volume of trades on that day. For the actual index I just used the average price of all traded skins for a give day. This will average out the number of available skins on any given day (rather than a sum, like the DOW). For volume, however, I didn’t want to just use the total volume each day as more skins being added over time would likely mean more volume as result. So the volume is the total volume of the day divided by the total number of skins that had a sale on that day. There’s a lot to unpack here so lets dive in.

To orient you, the top plot is the COBALT index value while the bottom plot is the trading volume. The solid line for the COBALT is the five day rolling average while the lighter line underneath is the daily values. In addition, the vertical red lines indicate Christmases while the grey lines indicate when the summer sale occurred (roughly June 20th). The first thing you probably notice is the huge jump in volume at the end of 2016. This is when artist skins from the Workshop were first added into the game. Before that there was only some color-scheme-altered skins made by Facepunch available. For analysis sake we might as well ignore everything before 2017 though I kept it in because it’s interesting. After the first meaningful summer sale in 2017 we can see a pretty massive rise in prices peaking at the end of July and falling back by August/September. A similar but smaller series also occurred in 2018. Next we can look at Christmases. Indeed, it seems like right around Christmases in 2018 and 2019 skin prices started to rise had a sharp rise before returning back in February. Thus u/Stilnox1012 was right on! The best time to sell skins is right after Christmas or in July.

The annualized return of COBALT is 66.75% whereas the S&P 500 over the same time was only 8.29%. Invest all your money into skins.

The best day to sell your skins?

Those with keen eyes may have noticed the volume bar chart is jagged. If we zoom in we can see an oscillating signal. As I’m sure many of you can guess the peaks are likely due to days of the week, with more people spending time on video games and trading skins on weekends rather than weekdays.

To test this I looked at the volume of trades for every day of the week. I took out data pre-2017 before the skin market really started up (without this bi-modal distributions result). 0 is Monday, 1 is Tuesday, and so on until Sunday which is 6. We can see that volume does indeed tick up Saturday and Sunday compared to all other days of the week (one way Anova with Tukey’s post-hoc, p’s < 0.001). However, just because volume is going up, is price going up as well?

I did the same as above but this time with the COBALT index. However, prices of skins are immune to day of the week effect and it doesn’t matter what day of the week you buy/sell on (p = 0.89). Quick note, you can see the weird distribution bulge on Thursdays (3). This is the day of the week new skins can be traded on the Market. I imagine this is also influenced by those skins who have their maximum price on trading day 1 which almost always is a Thursday.

How do we make some real money?

All our analysis so far has been very big picture and looking at data from all skins. However, this is likely not the best strategy for making money. There are skins for guns and skins for armor but also skins for refrigerators which don’t get much use. Or there are skins for doors which are not only used constantly but give your base a unique look. Can we find out what factors influence a skin’s price by looking at more detailed information? Let’s find out!

Item tier

As you progress through Rust you need better workbenches to craft better items. For example, if you want to make a hatchet made of stone you do not need a workbench (“tier 0”). If you want to make a metal hatchet you need a “tier 1” workbench. If you want to make a chainsaw you need a tier 2 workbench. The final workbench is tier 3 for crafting things like assault rifles and rockets. Lastly, some items exist that are so good and rare that players cannot craft them. These include military grade weapons like sniper rifles. I’ll call these items “tier 4”. I wanted to know, if a skin is for a high tier item, will it cost more than compared to low tier item skins? Yes. Well sort of. One thing to note that at the time of data collection, there was only one tier 4 item that had skins (lr-300). More have been added in since, but it does mean our tier 4 category is limited to one item. However it does have a modest 21 skins. Tier has a main effect on average Market price (p = 0.004). However, this is driven by tier 3 skins going for more than tier 0, 1, and 2 skins (p’s < 0.05). No other pairwise differences were significant. Buy tier 3 skins over other tiers to maximize profit.

Armor types

I next wanted to know if certain skins in a class of items were more profitable than others. To check this I broke items into groups and tested if these group’s average prices were different from one another. I started with armor first. RSK and RSJ is road sign kilt and jacket. MFM and MCP are metal face mask and metal chest plate, respectively. Bone helmets and ponchos are the obvious outliers here. However, they have very few skins (2, 4; respectively) compared to others like road sign jackets (34) or metal chest plates (32). This likely drives up the price due to so little supply. For stats I’m going to focus only on more popular and populated items (RS, Metal, coffee). There is no difference in average price for these gear sets (p = 0.19). I also looked at price swing (p = 0.13) and Store to Market average (p = 0.23), no dice. Armor set does not matter. Unless you were a lucky one to buy an early bone helmet or poncho. On average armor skins give the best returns from Store to Market with a mark up of $3.84 NZD or $2.53 USD.

Gun types

Everyone’s favorite items in the game, guns. Can you buy skins for some guns and come out better off than others? Yes, but barely (p = 0.016). Swing (p = 0.009) and Store vs Market (p = 0.008) were more significant. Unlike with armor I included every gun in the stats. Aside from the Thompson (tomy) they all have a decent number of skins. Trying to do any sort of pairwise testing here is more than I care to do with this many groups. For the average gun expect a $2.23 NZD or $1.47 USD profit flipping from Store to Market. Generally, eokas, crossies, semi-auto rifles, SMG’s, and MP5’s, do better than other guns.

Whats armor without some clothing?

I’ll quickly go through some other item groups that are interesting to look at but have too many groups to get a hold on statistically. If there is an item you don’t see I likely took it out because it had too few skins or I hate it. Clothing item skins are all over place and generally not a very good investment in terms of the average prices they achieve on the Market and generally return $1.28 NZD or $0.85 USD. Your best bet for a profit is headwraps or a lucky jacket. Never get baseball hat skins.

For the role players

Last but not least, for all you role players who would rather have a decadent base than badass armor kit, here’s the role playing items. “g” is garage door. Your safest bet to make some cash is with refrigerator, guitar, or rug skins. However, you can get lucky with some garage doors, chairs, or festive/holiday items. Overall returns are pretty good at $2.31 NZD or $1.43 USD from Store to Market mark up.

Where’s the real winners and losers?

To finish off I want to see if we can study the best and worst performing skins to see if we can spot any patterns. To do this I took the top 50 skins by average market price and the bottom 100 “skins”. I took the bottom 100 because so many of there were items that players randomly gained in the game, like picture frames or sign posts. I filtered out these decorations as well as crafting materials (cloth, wood, metal) and loot crates to get the bottom 82 skins. Better performing skins tended to be a higher tier (avg 1.7 vs 0.84, Mann-Whitney U p < 0.001) and were comparatively newer but overall older skins (avg 752 days vs 1004 days, p < 0.001). These top 50 skins would turn you an average Store to Market profit of $35.33 NZD or $23.32 USD while the bottom skins resulting in a $2.09 NZD loss (p < 0.001).

What else can we tell about these skins qualitatively? A large proportion 61/82 (74%) of poor performing skins are for clothing items and for clothing items skinned by Facepunch and not by artists. The next largest was armor 15/82 (18%) which were mainly road sign jackets and metal face masks. The remaining six skins were various RP items. In contrast, the top performing skins tended to be high tier guns (34%; ak’s, MP5’s) or armor (24%; all being metal face masks or metal chest plates). There were a few random pieces of clothing (16%) and role player items (22%). Overall, if you want to make some money off skins, stick to higher tier guns and armor and avoid clothing.

What I didn’t get to answer

I know of a few other factors that likely have a big impact on skins prices but I wasn’t able to capture here.

Color

One is color of the skins, or really, how many colors and how flamboyant the colors are. Very colorful, stand out skins tend to do quite well. I have some ideas for this but it’ll require a lot more work and this post is already long enough. Shout out u/Dertarion who suggested rainbow/golden skin’s performing better than others.

I did look into all skins (I found 15) that had “gold” in their names. They had a high average Market price ($7.23 NZD; p = 0.002) however, they didn’t have the greatest Store-Market return with quite a wide spread averaging at $2.17 NZD (p = 0.30 compared to non-gold skins). Their swings were quite massive though at $17.71 NZD (p = 0.018) if you can time the market right.

YouTube’s popularity

There are a handful of YouTubers who make Rust videos and have big enough audiences to influence skin prices. In fact, some Rust YouTuber have their very own skins in the game that advertise their channel. If a popular YouTuber starts using a skin it may make the price spike. Without a ton of manual work I’m not sure how I could capture this.

Skin Artists

Some Rust skin creators make amazing works of art and have garnered large followings. These artists get their skins picked for Rust often due to their popularity and high quality. However, I need to come up with a method to associate skin artists with their skins in the data set. If I can figure that out I may do another post looking at the popularity of artists and their skins’ prices.

All the analysis code is here on Github. However, I’m warning you it’s a complete mess and has NO comments/documentation to it. Venture at your own risk.



This work by Blake Porter is licensed under a Creative Commons Attribution-Non Commercial-ShareAlike 4.0 International License

Like this: Like Loading...