A method for evaluating performance of a navigation application that identifies optimal routes to destination locations, the method comprising: for each of a plurality of routes generated by a navigation application to a plurality of destination locations: receiving, at one or more processors, an indication of the route generated by the navigation application in response to a request by a user for navigation directions from a starting location to a destination location including a plurality of road segments (254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274); determining, by the one or more processors, a hindsight route for traveling from the starting location to the destination location in a shortest amount of time at a time in which the user requested the navigation directions based on actual amounts of time for traversing the plurality of road segments and for traversing alternative road segments, wherein the hindsight route is determined after the user arrived at the destination location; comparing, by the one or more processors, the route to the hindsight route to determine a performance metric for the route; and providing, by the one or more processors, an overall performance metric for the navigation application based on the performance metrics for each of the plurality of routes. for each of a plurality of routes generated by a navigation application to a plurality of destination locations: receiving, at one or more processors, an indication of the route generated by the navigation application in response to a request by a user for navigation directions from a starting location to a destination location including a plurality of road segments (254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274); determining, by the one or more processors, a hindsight route for traveling from the starting location to the destination location in a shortest amount of time at a time in which the user requested the navigation directions based on actual amounts of time for traversing the plurality of road segments and for traversing alternative road segments, wherein the hindsight route is determined after the user arrived at the destination location; comparing, by the one or more processors, the route to the hindsight route to determine a performance metric for the route; and receiving, at one or more processors, an indication of the route generated by the navigation application in response to a request by a user for navigation directions from a starting location to a destination location including a plurality of road segments (254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274); determining, by the one or more processors, a hindsight route for traveling from the starting location to the destination location in a shortest amount of time at a time in which the user requested the navigation directions based on actual amounts of time for traversing the plurality of road segments and for traversing alternative road segments, wherein the hindsight route is determined after the user arrived at the destination location; comparing, by the one or more processors, the route to the hindsight route to determine a performance metric for the route; and providing, by the one or more processors, an overall performance metric for the navigation application based on the performance metrics for each of the plurality of routes.