1. A method of collecting user trip purpose data, the method comprising: obtaining the user's end location using a GPS enabled device; transmitting the user's end location to a server, the server storing a plurality of previously identified base locations in a location-table, each of the plurality of previously identified base locations associated with the user and the server storing a trip purpose associated with each of the plurality of previously identified base locations in the location table; determining if one or more of the plurality of previously identified base locations stored in the location-table are within a predetermined distance from the user's end location by performing a proximity test by comparing the user's end location to each of the plurality of previously identified base locations stored in the location-table at the server; if one or more of the plurality of previously identified base locations are determined to be within a predetermined distance from the user's end location, the server performing the following: identifying a nearest previously identified base location as the previously identified base location of the one or more of the plurality of previously identified base locations determined to be within the predetermined distance from the user's end location that is nearest to the user's end location; and the server retrieving the trip purpose associated with the nearest previously identified base location from the location-table; and if none of the plurality of previously identified base locations are determined to be within a predetermined distance from the user's end location, the server performing the following: spatially querying a geographic database with the user's end location; resolving a use-code for the user's end location, wherein the use-code is associated with a code-id, and wherein a trip purpose is associated with the code-id; and cross-referencing the use-code to the trip purpose using the code-id, whereby the trip purpose of the user is derived.