A method for generating trip information, the method comprising: obtaining telematics data from one or more telematics devices associated with a vehicle, the telematics data including GPS data associated with a trip taken by the vehicle; generating a graph representation of a road network, the graph representation including one or more edges representing one or more road segments in the road network; associating the GPS data with the graph representation of the road network at least in part by: computing geohashes from the latitude and longitude information of the GPS data, matching the computed geohashes to a list of geohashes of each edge maintained in the graph representation of the road network for creating a set of edges where a traversal is possible, removing any edge that is not connected to any other edges of the set of edges where a traversal is possible, from the connected edges in the set of edges where traversal is possible, determining closest edges to each GPS point in the trip, producing a set of candidate paths the vehicle may have taken from a straight line from one GPS point to the next including corresponding closest edges, scoring the candidate paths scored based on the length of the path and proximity of the starting or ending edges to their respective GPS point, identifying an ordered sequence of edges of the graph representation traversed by the vehicle during the trip based on the scoring, and associating the GPS data with the ordered sequence of edges; and generating trip information for the trip using the association between the GPS data and the ordered sequence of edges. obtaining telematics data from one or more telematics devices associated with a vehicle, the telematics data including GPS data associated with a trip taken by the vehicle; generating a graph representation of a road network, the graph representation including one or more edges representing one or more road segments in the road network; associating the GPS data with the graph representation of the road network at least in part by: computing geohashes from the latitude and longitude information of the GPS data, matching the computed geohashes to a list of geohashes of each edge computing geohashes from the latitude and longitude information of the GPS data, matching the computed geohashes to a list of geohashes of each edge maintained in the graph representation of the road network for creating a set of edges where a traversal is possible, removing any edge that is not connected to any other edges of the set of edges where a traversal is possible, from the connected edges in the set of edges where traversal is possible, determining closest edges to each GPS point in the trip, producing a set of candidate paths the vehicle may have taken from a straight line from one GPS point to the next including corresponding closest edges, scoring the candidate paths scored based on the length of the path and proximity of the starting or ending edges to their respective GPS point, identifying an ordered sequence of edges of the graph representation traversed by the vehicle during the trip based on the scoring, and associating the GPS data with the ordered sequence of edges; and removing any edge that is not connected to any other edges of the set of edges where a traversal is possible, from the connected edges in the set of edges where traversal is possible, determining closest edges to each GPS point in the trip, producing a set of candidate paths the vehicle may have taken from a straight line from one GPS point to the next including corresponding closest edges, scoring the candidate paths scored based on the length of the path and proximity of the starting or ending edges to their respective GPS point, identifying an ordered sequence of edges of the graph representation traversed by the vehicle during the trip based on the scoring, and associating the GPS data with the ordered sequence of edges; and generating trip information for the trip using the association between the GPS data and the ordered sequence of edges.