I have an app that I wrote as a hobby project (when I was learning F#) that collects price data for flights for a given route. I now want to open this up on the web but the major stumbling block I have is displaying the data in a sensible way.
Users search for a specific route -- say, JFK to LAX. This results in 2 buckets of price data -- depart & return. But there's a year worth of prices for each (though some dates are missing when the flight isn't available) -- roughly 300 data points per bucket! People using this don't care necessarily when they fly, they just want a cheap flight. So I need to display this pair of 300 data points each in a way that:
- The user understands what they're looking at.
- The user can easily grok the date associated with each flight.
- The user can easily spot cheap flights vs expensive flights.
- The user can easily spot a decent trip -- a cheap flight departing and returning that are spread out around the time period they're looking to fly (e.g. "i was looking for a roughly 2 week holiday and if I book this cheap depart and this other cheap return i would be in spain for 12 days total -- perfect!"
- As a hobby project I can't write a custom html5/js/flash awesome UI -- I gotta be able to use something already available (though I don't mind tweaking).
As a programmer this is really not my forte. The most obvious thing (and what's used by the airlines) is just displaying calendars sometimes with color coded dates. But i couldn't figure out a way to display a years worth of dates with prices for both depart and return flights this way. The first thing I did try was a bar graph but i found that friends i had use it just couldn't figure out what they were looking at! And since there was so much data, dates scrolled off the page. By the time they scrolled further on into the year they were even more lost and couldn't really compare things!
My next thought was using Google Charting's Annotated Timeline which I figure is at least familiar to the user. but i don't think it's necessarily going to work out great and I don't want to invest the amount of time necessary to get this working without passing it by some UX experts!
I'd love any suggestions you guys have!