Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: New way to search for used cars (my weekend project) (olegkikin.com)
160 points by oleg_kikin on Aug 15, 2011 | hide | past | favorite | 66 comments

I like the visualization. This could be a great way to visualize if you're getting a good deal or getting ripped off.

Four things:

1. I don't see a way to change my location. Without that, the tool is essentially useless to anyone but you.

2. It's not obvious what the colors or sizes of the dots represent.

3. Have you considered superimposing Kelly Blue Book info? That could add some interesting trend lines.

4. A blog post analyzing how well different brands retain their value could be a great way to drive traffic. I imagine their might actually be some money in adwords around used cars.

Each dot on the chart is a car.

Horizontal scale = mileage.

Vertical scale = price.

The size of a dot = year (newer = larger), plus I colored 2007 .. 2011 in different colors to find "fresh" cars quicker.

This is just some sample data from the last 24 hours, relatively cheap cars under $32,000 within 500 mile radius of NYC.

Very cool, with lots of potential, but definitely not done. The biggest annoyance is not being able to pick (or even differentiate) between different models of a particular brand. For instance, there are 117 BMWs, but no way to view just the 335i models, either with an actual filter, or even visually. Mousing over 117 dots = not fun.

Also, a legend that explains dot size and color would be super easy to implement and tremendously helpful.

Nice demo - I like it.

I had the same comment - adding a key with this info would be really useful (especially if you could also use it as a filter). It would also be great if you could draw a line across the graph (optionally applying a curve) to allow the results to be filtered and the section beneath the curve zoomed in on (potentially two curves if you want to cut out anything suspiciously low priced also). You could also allow this selected section to then be displayed on different axes; i.e. these are the cars with a mileage and price I'm happy with, now plot my selection as price against age. Further user customisation would also be good - e.g. allowing users to change the meaning of the colours (colors) / dot size.

Nice work though - much better way to represent & search this data than the standard fixed range filters. I'd love to see something like this done for computers; when custom building & selecting processors for example, rather than getting a load of codes, plot serial task performance against price, filter it down, plot parallel task against price & further reduce the data set until you find the ones which meet your requirement.

Where did you find the used car data?

Downloaded 20 search results pages from cars.com. I wish I had direct access to their DB.

Craigslist has a ton of car postings, but it's not structured in any way, will be very hard to parse.

Heh. My company provides cars.com with most of its data, so I have direct access to their db. ;) However, because our business model is predicated on aggregating and then reselling automotive data, it's unlikely you could get access for free. Still, if you think you'll ever want to go commercial, you might contact us: (DMI) Digital Motorworks Inc.

Listings are valuable. I know AutoTrader.com works hard to protect its listings from mass downloading.

Have you looked at the Vast API. http://www.vast.com/info/customapi

I will take a look at it, thanks!

I wonder if Carmax has an API...

Oleg, I've been kicking around some similar ideas and would like to talk to you about this project sometime. My email is in my profile.

Most excellent! I had dreamed up a similar idea years ago, but would compare listed price against KBB or edmunds valuations.

This is fantastic. I'm working on something similar for other product categories. One rule of thumb I'm going by is to show as few results to the user as possible. Shopping sites often offer so much choice that the user is too paralysed to make a decision.

I'd change the default setting from showing all brands to 2-3 at most. Simple sliders to narrow down the price and mileage range would improve the usability a lot. Plus, if you're presenting any information as shape, colour or size, you need to show a key which explains what it means.

You've done remarkably well to put this up in a weekend. I need to pull my socks up and release my v1 asap.

Good luck!

There's a 2005 Bentley Continental GT for $29,800. Seems like a good buy. I think someone forgot a zero?


Your app made it easy enough to find an exception like this.

Another factor, related to bad data, would be price fraud. Fraudsters deliberately price a "vehicle" low (relative to mileage) in order to attract a high number of people. They know that only a small percentage will take the bait and send cash up front for a vehicle that he doesn't intend to sell, so he wants to make sure to get the highest number of people to respond to the listing. It's a classic buyer-beware scenario, so just keep that in mind as you see good deals in the "better" zone.

There's also several cars for $299, but in the description are $2990 down...

Thats cause thats how they are classified on cars.com. Can't blame the developer. He scrapped the data correctly just some smart ass marketing guy who put up the ads cheated...

Dealing with bad data sources is like product development 101. You're not supposed to "blame" the developer, but pointing it out and expecting a fix is fair.

It's a weekend project, but even weekend projects evolve with free time.

It's a deceptive listing, but in the description on cars.com you can see that these are $299 per month for 72 months

Google Refine is a great tool for finding and fixing anomalies like this in your data sets:


Maybe a price filter? Let us manually set the minimum to $1k.

I have to be honest here, whilst technically this is very good, from a customer's perspective and from a "person what works in the industry" perspective, I feel this isn't the best. It's certainly new, but that doesn't mean the user experience is any good.

I agree that the standard "pick a make and model and hope for the best" kind of search is in dire need of an update, but I don't have the UX design experience or even the creativity to invent a new way of doing it, but what I do know, is what currently works, and what doesn't.

Instant feedback on the search as you are performing it is cool, and I've recently worked on a system that feeds back to the user the amount of cars that are going to be returned by their selected criteria as they select them, and it works pretty well and looks great, degrades nicely and allows someone to make a quick judgement about how broad or narrow their search is on the fly.

I'd like to see a new way to search for used cars that merges this level of visual detail with the standard selection criteria based way of searching, and hopefully something great can grow out of that, but until then, mixing up the interface like this will just confuse people.

Apart from my qualms, I do think this is pretty excellent and daring, but not really practical at the current time.

Very nice! To make it even better, draw an imaginary arc from upper left corner to lower right corner and filter out all the "noise" ("Worst" data) from the graph, then stretch the data within the arc to fill the filtered empty space. That way, the dots won't be cluttered and thus more user friendly. You can put a foot note about the avg & "worst" data point filtered.

Interestingly, it looks a lot like a Pareto optimal curve that is being optimized for maximum value to the seller, not the buyer.

Which would make sense since the seller sets the asking price. We don't know how much each car is actually going to sell for - presumably the buyers have more influence on that curve.

What a great start! I think this has the potential to be a powerful tool for future car buyers. It will need some work first.

The user interaction will be confusing to many. Legends, instructions, and a general UI cleanup will help lots. Another thing to consider is adding more search parameters (year, model, price range, body style, location, source, etc.). I'm sure you've already got all of this in the development pipeline.

If you gave this a little polish and its own memorable domain name, I would almost certainly use this tool to research my next car. Also, car buyers are a significant demographic to car manufacturers. I could see this being a valuable resources for buyers and sellers (of new cars) alike.

One thing is that for some reason I'm expecting the good deals to be in the top right hand corner, most bang-for-the-buck charts work that way, while your graph shows it in the top left corner, it's slightly confusing that way.

Actually the 'most bang-for-the-buck' on his graph is the lower left corner not the upper left.

I agree that it is kinda strange at first but once I realized it, it wasn't that bad.

Ah, see, confused me even more. Might have something to do with the green coloring, green = better, yet it's related to the car's year.

That's actually a very good point, thanks. It looks like I will have to reverse both axes.

Desperately needs some sort of legend (at leas for the colors). I thought Fords were Purple, but then found some yellow, and some pink fords, and was thoroughly confused as to what the color was representing.

Year, I believe.

Very cool! How are you generating the graph, if you don't mind me asking? I'm using Google Charts for something similar.

EDIT: ok seems to be http://raphaeljs.com/

Pretty cool, would be nice to be able to click right on the spot to the open a new tab with the cars.com page.

Would also be useful to change location.

Also to drill down by model / year. etc.

But for a week-end project, congrats.

Indeed. search features/ drill down would be useful

Is the idea to separate the wheat from the chaff? For a good deal, my eye tends to look away from the cluster and find outliers, but these $399 or leases not the asking price.

This same thing comes up in eBay, Craigslist...

Some court should declare that a headline is a real offer, and if someone calls to accept, then it's a binding contract.

Pretty serious bug, I can't click any of the links because once I mouse off the circle the link is gone and I'm focused on a different car. (Firefox and Chrome on Linux)

Yeah, it looks like I will have to make the circles clickable.

Amazing work. I can only say I wish I had this a month ago when I was searching for a used car. (ended up with a 2005 A4 Special Edition w/ 95k miles for 9k USD)


Would be great if we can add another dimension or at least switch one of the axises to a different dataset - in particular, the year.


I now realize the colors are the year. This addresses my previous concern, but you need a legend for that.


Scratch that - Colors are not year. I don't know what's going on.. but colors as years would have been nice.

The OP said higher up that:

> The size of a dot = year (newer = larger), plus I colored 2007 .. 2011 in different colors to find "fresh" cars quicker.

Very nice! Really easy to visualize the data and find what you're looking for without combing through hundreds of search results.

Couple of thoughts:

The colors are a bit confusing. I understand the year, but a legend might help.

Would be cool to add search terms to limit models.

Would be nice to easily change location.

Other than that, really excellent idea and nice implementation!

You have an algorithm that can classify cars from best to worse depending on a lot of input. That is the money, not the visualization (although very cool). The best to display ranking is a numbered list. Although not super cool, that is very valuable.

There are cheap cars with low mileage, expensive cars with low mileage, expensive cars with high mileage, and cheap cars with high mileage, and everything in between. Unless the cheapest car also has the lowest mileage, and the most expensive car also has the highest mileage, there is no "best" or "worst" in this classification.

There is only a tradeoff between inputs, the two primary ones shown here are mileage and price, with age overlaid by color/dot size.

2D data requires visualization and human interpretation - There is no algorithm in place here. A list only works on 1 dimensional data (and can be parsed trivially with a simple sort algorithm). 3D and higher dimension data requires more complex visualization and more effort to parse.

A visualization allowing the user to make good decisions based on several inputs is a great place to find 'the money'.

It would also be nice to have the option of using age instead of mileage, or possibly miles / year.

Sometimes an old car that's hardly ever driven, with a low mileage, isn't as good a bet as a newer car with lots of miles that's been well maintained.

That's true, but age is so strongly correlated with mileage that it's an insignificant factor in sell-price once you control for mileage (Based on my own research using proprietary data).

Keeping a historical trove of prices would also be really neat-- then you could see what to expect.

It's cool, I would use it. I'd love to be able to set a range of mileage and price, filter by model names, location, etc. etc.

You should check out VAST or Oodle as data sources with an API to plot your graph.

I really dig that you did here. I would only add that "Better" isn't always the cheapest option.

Nice idea! The picture is already almost unusable while you have something like 3300 cars featured. Do you have any thought on how to deal with that problem?

Yeah, it's pretty busy with all of them together, but I assume that usually people want a specific brand (and often a specific model of that brand). I will add more filters soon - by year, location, model.

Location and any other filters (particular makes/models or years or price ranges) would help with that.

A front door of a site like this could have a screen cap, filter and then some quick-to-click pre-filters (Toyota SUVs made after 2005, or station wagons under $8k, etc).

Quick Suggestion: Could you add an option to slice by car model? People would be more interested in looking for cars by brand+model than just brand.

Yes, I will add that.

I like the visualization. Reminds me of Hans Rosling. Keep up the good work. MAybe this kind of visualization can be applied to other areas.

Really good stuff, would love to see this used on other sites as well such as one that is local to Sweden.

How do I click the "Link" for a car in the middle of the dot-cloud?

Doesn't work in OmniWeb 5.10.3

doesnt work in safari

From safari error console:

    car_data.js.gz:1 SyntaxError: Parse error
    ReferenceError: Can't find variable: car_data

I don't have access to OSX, it works on my Safari under Win7.

This is what I got when I tried in Safari 5.05 under Snow Leopard. Not sure if it helps since you can't test but here ya go. Also shows the errors I got in the error log console.


I think it didn't like the gzipped JS file with the data. Not sure why, pretty much all modern browsers should support it.

Try naming the gzip file something else, like .js.jgz. Safari automatically opens many archive types, including, I believe, gzip.

It worked fine in Safari Version 5.1 (7534.48.3)

Looks Great. Reminds me of a hipmunk for cars.

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