Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: I made a site that calculates the market price of items on ebay (getmarketprice.com)
87 points by locksley on Feb 26, 2013 | hide | past | favorite | 61 comments

This was my weekend project. I made it after being frustrated at not knowing what a fair price for an iphone 5 would be on eBay. I posted this a month ago but wasn't ready for HN traffic. Learnt about load testing the hard way and have optimized it since. So, here it is again.

Feel free delve into any questions.

Neat site, thanks for sharing. Here's some constructive feedback for you.

* Filter results by eBay category.

* Outlier elimination such as excluding "broken" items (e.g. listings containing commonly used words such as "spares or repair", "cracked screen", "damaged").

* Country specific currency (e.g. for UK searches show the results in GBP, £).

* Predict a fair market value for a given search. Useful when trying to sell items second hand as an "arm's-length transaction".

Good list. I would also suggested eliminating outlying items based on prices. It seems like when there are dozens of items named XXX, there will be several with "hard drive for XXX" or something.

I must believe there's any easy way to eliminate some "outliers" using mathematics, but I can't recall the function(s) to do so.

> I must believe there's any easy way to eliminate some "outliers" using mathematics, but I can't recall the function(s) to do so.

The median is one good way, as you already have. You can also use the interquartile mean: http://en.wikipedia.org/wiki/Interquartile_mean

At the moment I'm filtering out items 2 standard deviations out of the median. It catches the ridiculous cases, i.e. when some fool tries to get away with selling an iphone for $6000 (yes I've seen this before).

Perhaps I need to filter it within 1 or 1.5 stdevs. Will experiment with this.

However, sometimes you can easily see there are two clusters of results. Not sure how to mathematically determine this. Any ideas?

Thanks for the feedback! Really appreciate it

Are you familiar with TerraPeak? It is a company that provides access to all completed ebay sales. It is a SaaS product and sells for like $20-$50/month. I gather their annual revenues are around $15M/year.

Just pointing out that there is a decent sized market for this type of data.

Wow, had no idea they could be making so much. I've come across their "Research API" before but didn't think too much about it. Will have a look into it now. Thanks man

Why not try priceonomics they're pretty good for that. With that said nice app!

They are using different sources. This site is using eBay information. Priceonomics is using classified ads, I guess mostly from Craigslist. Actually, the user can benefit from both by comparing the results on two different market-places.

Locksley, keep up the good work. You need to clean up the results. Removing the unrelated items is desirable. This has a good monetizing potential.


Yeah, I've come across Pricenomics but found their data inconsistent and the sample size too small with ebay results. They're doing good work nonetheless and their front end rapes mine haha. I ain't much of a designer.

What did you learn about load testing and optimisation? Any tips, cribnotes?

The most useful tip I could give you (if you're building on rails and deploying to heroku) is to use a Unicorn Webserver. It allows your to handle far more concurrent requests.

This article explains it better than I ever will.


I'm running 8 unicorn workers per dyno at the moment and that's still within the 512mb memory limit because I'm not using ActiveRecord.

The search term "win&win riser" breaks it. Looks like you're not url-escaping the search term?

EDIT - also it looks like you're submitting it to ebay badly, the results for "win&win" are same as for "win".

Ahh, thanks for the heads up. I'm using a URI Escape function on the search terms and that might be breaking something. Looking into it now.

This is a really nice little app. I mean I have only used ebay only a couple of times but this is really nice, and its something I kinda wish I had at the back of my mind when using ebay.

Can you give a little details on how it works? Is it scraped data? etc.

I know this is targeted at a person who wants to sell items on ebay, but I am a buyer and I find this still quite useful. Not sure how up to date the data is but the graphs are an amazing feature! Makes so much sense.

Thanks for the comments!

I actually originally intended this for the buyer! I wanted an iphone for myself, so I scraped the 'completed listings' page on ebay, and converted it to csv to build a histogram in excel.

The data is up to the minute. But I cache the queries in order the save computational resources. Each cache expires within 15 minutes.

Initially the data was scraped, but then I moved to the API which improved performance by 200 - 300%.

Bug report: choosing US, UK or AUS from the country select dropdown causes the form to submit as if you'd typed in the country code as your search term.

This is a really killer piece of kit though. I'm very impressed. It's something I think many of us have idly imagined when struggling to determine a good starting price for a new eBay auction.

Ah Crap, thanks for letting me know. I'll patch it up tomorrow, it's 12:30am here in Melbourne!

Very neat site. I think overtime, you should try to find more visually pleasing ways of presenting the data, but for now it's not a deal breaker.

I have a suggestion: Perhaps you could build some kind of e-mail alert system that lets me know when there's an e-bay "Buy Now" item available within a user specified price range. You could also let me know if there an item I want is still within a certain price range hours before the bid closes.

EDIT: Typos.

You don't like the charts?

I'm guess a stats nerd so I like to see that stuff haha.

I like your feature suggestion, just put it in my product backlog.

Do not remove the charts. I love the charts.

They are simple and obvious, the only feedback I would give is that I would think (not being a huge ebay person) the current charts might actually be changed up a bit. I would be more interested in seeing the clustering of prices, or something like how long the listing has ran without a bid (indicating more likely desperate takers and the like). If the current charts do influence the price in some way that can be used that is advantageous to the buyer, then I would rescind my comment.

Sent this site to a few friends who don't read HN, they are highly appreciative.

Suggestion: You should be able to exclude certain data items from the calculation, then recalculate (check box for exclude next to the raw data item or something). I just did a search for "fender aerodyne bass guitar" and the lowest price that came up was $249.99, though that turned out to be only the neck of a bass "2007 Fender Aerodyne JAZZ BASS NECK Tuners Bass Guitar Black Headstock".

That's a good idea. I'm planning to build a pricing filter slider on the results page because it seems most people have a rough idea how much an item is worth.

Your problem was the reason why I filtered out results below $100. There's just too much junk below that range like "Fender Bass HELLO KITTY STRAP". Eventually I'll have to think of a way to algorithmically exclude those results.

Thanks for the suggestion.

Looks awesome! Some outlier elimination would be great (on a search for a graphics card there was skew due to unrelated items)

Hey thanks! I'm just using a filter of 2 standard deviations within the median at the moment. Any ideas on how to do it more effectively?

Dude, put a contact link on your site so people can give feedback. Also, once someone does a search, you should pass the search query into the search box so they can make modifications without retyping the whole thing.

Yeah, that's on the product backlog! But I'm a full time law student doing this as a side project in order to learn how to code.


And you're on lifehacker : http://lifehacker.com/5986983/market-price-calculates-what-y...


This was crazy, thanks for letting me know!

My servers surprisingly seemed to handle it ok with one minor crash.

Is there any way to search for a certain condition only? When I search for the iPhone for example, it returns a huge range of prices that include ones that were used and refurbished.

Otherwise, it looks like a great site!

Ebay's API might have a 'condition' property, I shall check.

In the meantime it's probably just as effective to put the condition as a query, i.e "iPhone 5 used"

Nice site, but I would like a third graph which shows (e.g.) the average price (for the day) in the y-axis and days in x-axis, so you can estimate how the price has developed over the last few weeks.

Yeah this would be interesting and I can certainly do it for popular searches.

To do it for all items would require collection of lots of data in my own database though. Will have a think about this.

Great job, in addition to the comments already made I think it would be more useful if it said what you would make from a sale after ebay and paypal take their cut from the sale.

Agreed, that's a great suggestion. It's always surprising just how much of a cut the eBay & PayPal fees take away from the final sale price.

That's a good point. Ebay takes around 9% and Paypal around 3%. After postage, it'll cost you around 15% of sale.

Nice site! Could you please add more countries? Spain (ebay.es)?

Possible bug report: I searched for "thunderbolt LCD" and [recently ended graph] doesn't seem to match up with prices in [recently ended table].

Hey you sure about that? Seems to be fine for me. But there are two obvious clusters. Perhaps two different LCD models?


Clever idea, it's always time consuming to explain to my father in law that he'd be better off buying something new in the shop or online.

Thanks! Similarly, I've convinced my grandma to use this.

Looks great and could be a very handy tool but I would of expected prices to show up in £ rather than $ when selecting UK.

Thanks for the pick up.

Small bug, searching for "2012/13 Panini Elite Basketball Hobby Box" confuses your URL pattern, only searching for "2012"

Ah balls. I'm on it.

seems to break when i put in a specific season, ex:

- "dexter season 6" returns only listings where season 1-6 are sold setting an average price at ~$140 - "simpsons season 9" returns listings where multiple seasons including season 9 are sold setting the an average price at ~$150

In each case the 'raw data' had more than one season in it

Hmmm, this is difficult to fix because it relies on Ebay's search engine. The only solution I could think of is to add a 'price filter slider' on the results page. This way, you could set the limits to how much you think Dexter Season 6 should cost.

Ah, that comes very handy! Thanks.

Would it be possible to show the full link when hovering over a truncated link ("lin...")?

I guess this would be simple enough. From what I know, it'd just be adding a title attribute with the full text in the anchor tag.

This is great, very impressive. When searching for an item in the UK the price still shows in dollars.

I tried to search for a speedmaster 3510.50 and it cut off everything after the period. Regex issue?

Just curious: this is not in line w/ebay's T&C, or is it? Quite impressive, anyways.

When I looked at doing the same thing a few years ago, I found it was explicitly ruled out in the conditions attached to the eBay API. There may be a way to get by under the radar, but I considered it a sufficiently sketchy business model I abandoned the idea.

if you're not using ebay's api, then how are you gathering this data? or am i reading this incorrectly and you are indeed using ebays api?

That is not the creator of this tool. The maker is quoted earlier in the thread talking about the API usage increasing the speed of the process by 200-300%, so he is definitely using the API.

Hey, I like it so. If want to design-up that site, let me know. Fkrivda.com

Nicely done and Good luck!

What's your stack?

Rails (without ActiveRecord/Database) Heroku Unicorn Server

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact