1. A method of programmatically diagnosing vehicle problems, the method comprising: under control of a hardware processor: identifying a diagnostic trouble code output by a vehicle; accessing community prognostics data associated with the diagnostic trouble code, the community prognostics data being generated responsive to input associated with a plurality of vehicles; identifying a predicted diagnosis associated with the diagnostic trouble code from the community prognostics data; and outputting the predicted diagnosis for presentation to a user.