A computer-implemented method (200, 300, 400) of verifying an identity of an entity against one or more data sources (131, 132, 133), comprising: receiving, at a verification server from a client device, a plurality of items of subject attribute data (511, 512, 513) associated with an entity; determining a search structure based on the plurality of items of subject attribute data, the search structure comprising a plurality of alternate search queries, wherein determining the search structure comprises selecting at least some of the items of subject attribute data for each search query and modifying at least some of the items of subject attribute data to return candidate records comprising candidate attribute data which is an inexact match for the subject attribute data; searching the one or more data sources (131, 132, 133) for the search structure to return one or more candidate records from the one or more data sources, each record comprising a plurality of items of candidate attribute data (521,522, 523); determining a score indicative of a match confidence between each of the plurality items of subject attribute data (511, 512, 523) and a corresponding item of candidate attribute data (521, 522, 523) for each candidate record, wherein determining the score comprises: dividing corresponding items of subject attribute data (511, 512, 513) and candidate attribute data (521, 522, 523) into a plurality of tokens; for each of a plurality of token permutations of the subject attribute data and the candidate attribute data, determining a value (370, 400) indicative of a match between the composition of the subject and candidate attribute data and a length of the subject and candidate attribute data; determining (435, 440, 445) the score based on the value and a number of tokens of the subject and candidate attribute data having at least a predetermined degree of similarity; and selecting the highest score for one of the plurality of token permutations; determining a record value for each candidate record, wherein the record value is determined based the score of each item of candidate attribute data associated with the record, a plurality of score thresholds and precedence rules indicative of a weight of each item of candidate attribute data; selecting a candidate record having a greatest record value; and outputting the record value of the selected candidate record from the verification server to the client device. receiving, at a verification server from a client device, a plurality of items of subject attribute data (511, 512, 513) associated with an entity; determining a search structure based on the plurality of items of subject attribute data, the search structure comprising a plurality of alternate search queries, wherein determining the search structure comprises selecting at least some of the items of subject attribute data for each search query and modifying at least some of the items of subject attribute data to return candidate records comprising candidate attribute data which is an inexact match for the subject attribute data; searching the one or more data sources (131, 132, 133) for the search structure to return one or more candidate records from the one or more data sources, each record comprising a plurality of items of candidate attribute data (521,522, 523); determining a score indicative of a match confidence between each of the plurality items of subject attribute data (511, 512, 523) and a corresponding item of candidate attribute data (521, 522, 523) for each candidate record, wherein determining the score comprises: dividing corresponding items of subject attribute data (511, 512, 513) and candidate attribute data (521, 522, 523) into a plurality of tokens; for each of a plurality of token permutations of the subject attribute data and the candidate attribute data, determining a value (370, 400) indicative of a match between the composition of the subject and candidate attribute data and a length of the subject and candidate attribute data; determining (435, 440, 445) the score based on the value and a number of tokens of the subject and candidate attribute data having at least a predetermined degree of similarity; and selecting the highest score for one of the plurality of token permutations; dividing corresponding items of subject attribute data (511, 512, 513) and candidate attribute data (521, 522, 523) into a plurality of tokens; for each of a plurality of token permutations of the subject attribute data and the candidate attribute data, determining a value (370, 400) indicative of a match between the composition of the subject and candidate attribute data and a length of the subject and candidate attribute data; determining (435, 440, 445) the score based on the value and a number of tokens of the subject and candidate attribute data having at least a predetermined degree of similarity; and selecting the highest score for one of the plurality of token permutations; determining a record value for each candidate record, wherein the record value is determined based the score of each item of candidate attribute data associated with the record, a plurality of score thresholds and precedence rules indicative of a weight of each item of candidate attribute data; selecting a candidate record having a greatest record value; and outputting the record value of the selected candidate record from the verification server to the client device.