If you've tried to purchase hats or unusuals from us recently, you've probably seen something like this:
This system has been around for a while, and it's based on something known as a "dutch auction". This is basically the reverse of a normal auction; instead of the price starting low and getting higher, the price starts at a higher point and progressively gets lower until someone buys it. For example, we may start out a new hat at +15% price for the first hour that we own it, and then decrease the price down towards base price every 15 minutes or so. I got the idea from this blog post on Rust's alpha key sale system from 2013.
Let's get down to brass tacks. For the first hour that we own an item, its price is increased slightly -- usually around 15%, although it can vary. Every 15 minutes, its price drops until it's at +0%, or just normal price. After a week or two of remaining unsold at base price, we then decrease its price every few days in increments of 5%, down to a specific maximum discount. These numbers are not all the same between different banking types (stranges are different from unusuals, for instance).
Dutch auctions can sound pretty greedy: on the surface, it may only seem to benefit us by grubbing up as much money as possible. In practice, it doesn't actually generate much profit at all; we use this system for a number of reasons besides pure profit.
First, pricing items in an automated manner is difficult. We use a variety of pricing sources, such as Backpack.tf and the Steam Community Market™©®, but these aren't as responsive and flexible as we'd like them. Prices are frequently out of date (especially for unusuals), and even when they are up-to-date, they're not a complete representation of the market. What our dutch auction system allows us to do is fetch the most realistic price for an item by initially requesting a marked-up price, and quickly lowering it until, at some point, it's accurately priced.
Second, it helps combat bots. Trying to prevent bots on ScrapTF may seem a tad ironic, considering what we are, but they serve to frustrate our users. It's very annoying to see that all of the great deals have been immediately snatched up by bots, and even more annoying to have an item reserved by a bot right before you enter the queue. The dutch auction system helps combat bots by essentially creating a soft "safe period" on an item where, for the first hour or so, an item is visible but bots don't want to take the risk of automatically purchasing an item that's marked up. A human, however, can make their own judgements about whether the item is still worth the price when it is marked up, or they can decide to wait for it to decrease in price. Essentially it allows us to display an item as "coming soon" so users can see the item and either purchase it right away if the price is still right for them, or be ready and waiting for when the price decreases.
Finally, it serves as a good way to display new items for sale on ScrapTF. Items in the dutch auction process are displayed at the top above all items, which gives each new item that we receive its time in the spotlight.
This system doesn't only serve to temporarily increase an item's price: it is also used to make items cheaper if we've had them for too long. After an item has made it past the first hour of being available on ScrapTF, it lowers to its base price. However, if it is still not purchased for some time (in terms of days) at base price, we slowly lower its price, sometimes down to as low as 20% off. This system takes effect on a slower timescale than the dutch auctions do, and that's necessary to prevent abuse of the system. In many cases we are actually taking a loss on an item if we discount it, so we have to give users plenty of time to purchase it before we begin the discount process.
Implementing this system was a bit more complicated than you may think. Due to quirks in the Steam API, determining exactly when we acquired an item is difficult. However, we have a tool that can help us. For the past few years, we've been storing the progression of Item IDs in the TF economy. Every 5 minutes, we store the latest item ID in the bots. Simply put, what this allows us to do is take an item's ID and we can determine, within 5 minutes, when that item was traded or created. This is very useful for us as it allows us to easily figure out when we received an item on ScrapTF, using solely its ID. It also allows us to determine when you received your items, but we're not currently using that information for anything.
In the future, we hope to use something like this system to assist with our buying prices as well. For example, we can increase the price we pay for an item if we see that nobody has sold that item to us in quite some time, which indicates that the price we pay is wrong. Or perhaps we can decrease the price we pay if users are suddenly flooding our bots with a particular item, which would indicate that its price has suddenly changed for some reason, and we're paying far too much for it. This is quite a complicated system, but I think it's worth heavily looking into.
I hope this post has given you a bit more insight into how we price items on ScrapTF. We're constantly evolving our systems to provide the best service to our users, and this is a part of that. See you next time!
2016 has been a big year for ScrapTF. We've done a lot -- we added unusual banking, auctions, hit our 1,000,000th user, contributed to Tip of the Hats, and so much more. But this post isn't about 2016; This post is about 2017!
The following is but a small taste of what's to come in 2017:
We're going to be adding support for CSGO item banking in 2017. This includes keys, knives, skins, etc. We'll be releasing more information on what we'll support, and how exactly it will work, at a later date.
ScrapTF's trading aspects are incredibly important to us. First and foremost, we are committed to being the quickest, easiet, and most convenient way to trade your items. We're constantly improving our services, and 2017 will be no exception. Over the next few weeks, we will be focusing on improving the reliability and speed of our already industry-leading bots.
Auctions and Raffles are very important to us, and we want to ensure that they're the absolute best they can be. Look forward to improvements to these in the coming year. CSGO Item bids, anyone?
Our events (such as the Love vs Hate event) have been very successful and we're going to make them even better. Look forward to multiple new events in 2017, with new features and prizes.
Very soon, we'll be opening the Marketplace.tf Seller Beta to everyone. No more waiting list or applications; anyone will soon be able to sell their items on Marketplace.tf.
What could it be? Who knows? We do, come to think of it. You'll like this one.
We like to surprise our users, so we can't share everything we're working on. We hope this post has given you a small taste of our goals for 2017. Please keep in mind that these are not concrete or set in stone; this is not a complete list of everything that is coming in 2017, but rather, our current focal points.
See you in 2017!
If you're reading this, congratulations! You found our new blog. We'll be using this space to share announcements, development logs, new features, and more.
Since ScrapTF began, we've been using our Steam group and our announcement system (which you can see at the top of the page) as our primary forms of communication. However, these really aren't very adequate tools for communicating with our users. If we reveal a new feature, we may send out a Steam notification and post an announcement.
However, if you're not online to see the Steam group notification, or don't visit ScrapTF while an announcement is posted, you'll likely never see that piece of news. It's also very difficult to go back in time and find an old announcement if you want to find some information you may have missed.
Finally, our announcement system doesn't allow for longer explanations of new features. The longer we make an announcement, the more space it takes up on the top of the page. Many of our users aren't aware of (or do not want to use) the ability to hide an announcement, so a long announcement really just serves to annoy, as opposed to inform. We also can't post videos, images, or any other rich content in an announcement.
All of these problems are solved by having a dedicated blog: an area where we can share news, that sticks around permanently, with rich content and detailed explanations.
We'll use this blog to post the following kinds of content:
The announcement system will continue to be used, but its purpose will change to providing information that's only relevant for a temporary period of time. For instance, information regarding a temporary Steam or ScrapTF outage, impending maintenance, etc. In general, if we're announcing something that may be relevant for some time (or permanently), we'll be using the blog.
That's pretty much it! We hope this new blog improves the user experience on ScrapTF. You'll be able to stay up-to-date with new information and releases in a way you simply couldn't before, and we're very excited for that.