now | writings | rss | github | twitter | contact

trying to game

posted to writings on mar 6th, 2009 with tags javascript and nerd, last updated on aug 12th, 2009 and commented on 12 times

i read about a while ago and my first reaction was that it was a very clever concept for the site owners, but awful from an end-user perspective. in short, you buy a pack of bids for say, $30. bidding on an auction will cost you 75 cents (from your $30) and will increase the time of the auction by 10 seconds. if you are the high bidder when the clock runs out, you win, just like a real life auction, and in contrast to ebay which has a fixed time and you have to win by "sniping" and putting in a last-second bid.

on a typical auction for a new macbook (also in contrast to ebay, all products are sold new from the site, not sold used from other members of the site) valued at $1,299, the final ending price is only $172.84. therefore, the high bidder at the end of the auction gets to buy it for $172.84. of course, by that time, 17,284 bids have been placed (each increasing the price by a penny), each costing users 75 cents. the site has earned $12,963 just in bids, plus another $172.84, totaling $13,135.84 for a $1,299 laptop. in this particular auction, the winning bidder made 1,435 of those bids and spent $1,076.25 to win, so he's not really saving much. but on another auction for the same product the next day, the winning bidder only had to spend $57 on bids to win the macbook for $9.58. quite the savings for that person.

since i realized how it worked and that it would be difficult to win anything without spending a lot of money, i turned my attention to something else.

i don't remember what brought me back to the site the other day, but while watching an auction for a laptop (the site has a realtime clock and price that updates every second), i kept noticing that people were bidding at seemingly random times when it was at no advantage to them to do so. bear in mind that these bids cost each user 75 cents, so spending 75 cents to become the top bidder when the auction has over an hour left is completely useless. there is practically no chance whatsoever that no one else will come along within that hour and outbid you.

i wrote a little javascript to be able to log auction activity for further analysis. the greasemonkey script creates an absolutely positioned div in the upper right corner. every second it reads the values of the current price, the high bidder, any new results of the bidding history (the bidder's username and whether they bid manually or with the site's "bidbutler" service) and writes these values to the div, which i could copy later and do something with. but since the page would sometimes reload on its own and lose the contents of the div, i had to make it post new entries back to my server using xmlhttprequest every second, which then gets stored in a file on my server.

after watching a few auctions for macbooks, the bidding activity usually goes like this:

  1. the counter starts for a new auction with 24 hours to go. one or two bids will start it and nothing will happen at all until about an hour left in the counter.

  2. once the counter reaches an hour or less, bids will trickle in, each costing a user 75 cents, and each increasing the auction time by 10 seconds or so.

  3. at seemingly random times between 30 minutes and 1 second left, users with bidbutler enabled will have bids placed on their behalf, each costing them 75 cents.

    an interesting thing happens when two users have bidbutler enabled, however. bidbutler will place a bid for the first user, then instantly place another bid for a second user, then again for the first user, and so on, all within 1 second. these back-and-forth bids happen so quickly that my javascript couldn't log the bids fast enough, and would only capture the last 10 that happened in 1 second. a message above the clock shows you when bids have added time to the clock and when these bidbutler matches flood in, it will display a message like "4 BidButler + $0.04 + 00:00:36".

    i have seen bidbutler bids go back and forth up to 130 times in 1 second. in that one second, the site just made $97.50 from those users, and none of them are any closer to winning the auction. in fact, since those 130 bids just added 20 minutes to the time, so there are now 20 more minutes for others to outbid them.

  4. when the clock finally dips below 5 seconds left, a lot of manual bids will be placed. some will bid at 5 seconds, others will wait until 1 or 2 seconds. each manual bid costs a user 75 cents, and adds 10 seconds to the time.

    what i believe is happening is that, since the site uses an ajax request every second to ask the server what the current price and time left are, some users are seeing the results at different times than others. while my screen may have shown the timer at 1 second left and then get bumped back up to 10 seconds, your screen may still show 1 second left and make you want to place a bid out of fear, thinking it's going to run out. immediately after bidding, you quickly see that a bunch of other users had bid a second before, or at the same time as you, so your 75 cents were spent, your bid placed, and already there are 2 other users bidding higher than you. now the timer is back up to 30 seconds.

  5. this behavior of the clock running down, a flurry of bids placed when it nears 1 second left, and then getting bumped back up to 30 seconds or more just cycles over and over.

after watching this for a while, i thought about the most optimal bidding strategy. using the site's bidbutler service was out of the question since it wasted money at every opportunity. clearly many other users were using bidbutler, which is not going to favor one user over another (each user inputs the maximum amount of bids and the ceiling price they are willing to have bidbutler bid up to).

  • one strategy was to immediately bid every time someone else bid, even if it wasted money. my bids would appear blatantly automated, so others would assume there is a bot bidding against them and that they have no chance to win. they would give up, stop bidding, and i would win. if my total amount of 75-cent bids was significantly less than the market price of the product, i would still come out ahead.

    this strategy would be expensive, but may have a higher chance of winning. if other users were actually bots, however, this strategy would have no effect and would just cost all of us more money.

  • my other strategy was to minimize the amount of 75-cent bids having to be placed by only bidding at ~1 second left. this would let all of the other users waste their money driving up the final price of the auction instead of me, and then bid only when the clock is nearly run out based on the assumption that there were no other users left that would have bid at 2 seconds.

    most human users would see the clock run to 2 seconds and bid, spending their 75 cents and bumping up the time 10 seconds, for fear that waiting until 1 or 0 seconds may not give them enough time to react and click the button.

i ended up going with the second strategy. i added some code to the greasemonkey javascript that i had written to monitor the auctions, and let it bid for me whenever the counter reached 1 second. it ran for about two days on a few different auctions for macbooks and had some interesting results. stay tuned for part two.

**update:* read part two.*

Comments? Contact me via Twitter or e-mail.


jro (not authenticated) on march 8th, 2009 at 16:39:48:

interesting find, if this is true the site must be making a killing

Tony S (authentic) on april 25th, 2009 at 04:57:04:

I have been debating doing the same thing. What my thought was to log and print out the total number of bids a single user name is making, seems like you are pretty much there, just need to render and display it. Any chance of getting your script?

TX CHL Instructor (authentic) on may 26th, 2009 at 10:18:09:

I just found swoopo today, and came to pretty much the same conclusions that you did. Running the numbers on a couple of completed auctions show that the site gets anywhere from 10 to 50 times the cost of the item sold (with some friction from merchant account or paypal fees). Even wilder -- some of the 'auctions' were for bid packages!!!

Those folks are printing money. My Lions club occasionally does something very similar for small fund-raising efforts, which we refer to as a "Chinese Auction". Of course, everyone that chips in on a "Chinese Auction" knows that the primary objective is to raise money for the club, and few care about the actual item being "auctioned".

Naturally, it occurred to me that this would be a really lucrative way to sell stuff myself, and I did a bit more research.

So, was not really a surprise to find that there are several competitors running the same game (some with slightly different wrinkles). I also found dozens of requests on various freelance programming sites for "swoopo clone". I expect that the only way you would be able to really make money with this approach would be to dominate a fairly narrow niche market.

Clever idea, but I'm not even tempted to buy bids. It's pure gambling.

Hartmut (not authenticated) on may 26th, 2009 at 10:43:27:

>> for the same product the next day, the winning bidder only had to spend $57 on bids to win the macbook for $9.58. quite the savings for that person.

A win only if this bidder did not already spent bids on other auctions for this item, but lost.

richi (not authenticated) on january 20th, 2010 at 07:43:22:

Thank you for the script:
1- i thought the script will automatically save the logs in files on the chosen var log_url = . i tried a local host as well as a website folder with 777 permissions.

2-what happens if you tried to introduce more variables such as number of bidders, how many bids placed by each bidder, and how many bids total. also a small javascript to test the website speed for the auction page and include an average of that into the bidding time ! If my java skills were good i would contribute into this.

u did a great job trying to solve this.
thank you

joshua (authentic) on january 20th, 2010 at 07:49:11:

regarding your first question, it's just javascript, it doesn't have permission to save anything anywhere. it will post the data to the url in log_url, so you'll need a script running on the server at that url to accept and store the data in a database or something.

richi (not authenticated) on january 20th, 2010 at 08:43:58:

Thank you for the quick response.
What does the first variable stands for?
ex: 1264016681

also how can i parse the data in a table with cells?

i figured if you really want to win an item, you have to purchase about 1500 worth of credits. after using data collected from your script, you have to see the serious bidders from the flakes. If not too many are consistently using bid butlers , then you can set your bidbuttler open with all the credits you have. But there is still a risk.

from interviews with some of the founders, i concluded that there are surely certain glitches in the timer that will give advantages to those using bitbutler, as bit butler will overall use up more bids thus more money.

joshua (authentic) on january 20th, 2010 at 08:58:00:

the first variable is a unix timestamp representation of the time the bid happened.

i'm not sure what you mean by "parse the data in a table with cells".

richi (authentic) on january 20th, 2010 at 09:14:06:

i was wondering about The javascript code to add to your script, which will take the data you are producing and parse it into an excel file of my choice, with comma separated ( in different cells).
This way we can produce many possible data about a given auction using excel operations.
i hope you could help!
Thanks again for your quick correspondence, 5 stars for your work.

Siv (authentic) on april 15th, 2010 at 10:20:28:

There's another site out now called oohilove.It's hoodwinking women who love designer merchandise.

Dave (not authenticated) on may 9th, 2010 at 22:54:33:

Has anyone checked out
it has different rules to the auction, but i'm sure it still a scam, they have a "autobid" function akin to the "bidbutler" function, where the system autobids for you... everytime anyone bids the clocks goes back to 59 secs, and starts the countdown and it repeats itself until nobody bids anymore.... the winner pays postage and the succesful bid amount.

i'm pretty sure its also a scam but the 59 secs countdown makes it seem pretty difficult to do what you mentioned above, unless they are outright cheating and have some other conditions to auto place bots to bid..

Just thought it be good to expose these bastards, theres a IPAD 32GB now... and lots of ppl are sucking it... :(

Lobo (authentic) on july 31st, 2011 at 08:05:56:

I tried something similar but not to collect information! It didn't take me long to realize they are not what they seem to be. I wrote a series of posts on how to build automatic bots to bid on user's behalf and have provided a link this post at the end for anyone looking for data.