TL;DR version: I wrote a proof of concept GTFS data manager. I suck at sales or something. Small/medium transit companies don’t care about GTFS? The link to the app is at the bottom of this post.
The full version:
So before I actually started learning ExtJS (and the whole reason I started in the first place), I had this grand idea that there was a market for software that managed GTFS data for small and medium sized public transit organizations. The thought was that these transit companies didn’t use the incredibly powerful — and incredibly expensive — route scheduling apps. To go along with that, their IT departments are probably really small and underfunded.
For example, my local transit agency is using formmail.pl to submit feedback and their website has that wonderful tag that defines low tech:
<meta name=”GENERATOR” content=”Microsoft FrontPage 6.0″>
And the link to their formmail form is also 9 grades of pure awesome:
Anyway, I threw together a little ExtJS application as a proof of concept and started reading and learning how ExtJS actually works (because my code for the proof of concept was horrible). I then started reaching out to some small transit companies around the country targeting the ones that actually had halfway decent maps of their routes and stops. By the way, Amarillo, TX has the most detail online including pretty much everything you would need to create the GTFS data feed.
I figured for a relatively small monthly fee somewhere around $50 to $75 a month or so, we could give them an application that lets them manage their routes, trips, stops, and publish a GTFS feed for them with their data. Or perhaps you could charge based on the size of the transit company… like $x for y number of routes. Anyway, it’s actually not an incredibly difficult program to write. At $50 bucks a month you’d never be a millionaire, but it would be some nice extra side income if you could get a bunch of these small agencies signed up.
I figured a good way to get started would be to offer it for free to whichever company I could find to accept it first. Amarillo was an obvious first target. Summit County, Colorado had quite a bit of data as well. My local transit agency was missing GPS locations of their stops, but it wouldn’t be too hard to collect that. Probably $100 bucks in gas or so driving around collecting GPS coordinates. There were a good number that had pretty much all of the data online already, they just needed the format. That would have been perfect, because I could format the data for them semi-manually while I was writing the app at the same time. This would give me a perfect test case and they’d get free service.
After a number of email inquiries and some phone calls, I got absolutely nowhere. One must really suck at sales when you can’t even give away a product to someone. Either that, or there is simply no interest. I didn’t get a single return phone call or email from anyone, and I was offering it for FREE. Not even a nibble. Nada. Nothing. Either these companies don’t understand the benefit of pushing their GTFS data to Google or they just don’t care. (Judy Phelps @ City of Amarillo, I’m still waiting to hear from you!)
So the next question was how could you provide the service for free to transit company and somehow monetize the content. Well, these types of questions are certainly not my forte either, but we kicked around a few ideas and ultimately decided that there’s really just no good way to do it and make any halfway decent amount of money. I don’t think you could even cover the costs of the hosting. You could write your own web portal type thing to host their agency website for them, which isn’t a bad idea… but again, the cost would ultimately fall on the transit agency and that was a black hole for my attempts at contacts.
The proof of concept app works OK as a GTFS data browser (it’s buggy), but I never implemented any modification methods. I did make a shape editor to generate GTFS shapes, but you can’t actually save it. The data that you would need to generate the shape in GTFS format is stored in memory though. The data currently in there was imported from a good number of public GTFS feeds. There’s about 15 or so feeds included I think. Anyway, you can mess around with it here:
I figure I’ll probably end up finishing it (read: rewrite from scratch) at some point anyway, because it was fun to work on and it’ll help me learn ExtJS. Then I’ll just open source the code. Don’t hold your breath. Without any monetary incentive, this is low priority.
If you have any comments or questions about it, don’t hesitate to leave a comment below.