1. A method for executing on a processor for associating data records, comprising: receiving a data record; identifying a set of candidate data records based on a comparison between a set of existing data records and the received data record; scoring each of the set of candidate data records, wherein the score of each of the candidate data records corresponds to a likelihood that the first data record and the candidate data record comprise information on an entity; associating the received data record with a first candidate record of the set of candidate record if the score of the first candidate record is greater than a first threshold, wherein the first candidate record is in a first data hierarchy such that the first candidate data record has a first set of hierarchical associations with a first set of related data records and the received data record is associated with the first candidate record such that the related data record data has the first set of hierarchical associations with the first set of related data records; determining if the first candidate data record and a second candidate data record have the same score, wherein the first candidate data record is associated with a first entity identifier and the second candidate is associated with a second entity identifier, the first entity identifier having a lower number than the second identity identifier; determining if the received data record is in a second data hierarchy where that the received data record has a second set of hierarchical associations with a second set of related data records; and if the received data record is in a second data hierarchy and the score of the first candidate record is greater than a first threshold, compositing the first data hierarchy with the second data hierarchy based on the association of the received data record and the first candidate data record.