Patent ID: 7778861

Claim:
A method comprising: receiving incomplete transaction data at an interface to a processing circuit; determining by the processing circuit a gap in the incomplete transaction data; and using an algorithm implemented by the processing circuit to generate data to fill in the gap and to generate complete transaction data, wherein the algorithm is selected by the processing circuit from a group including at least a first algorithm and a second algorithm, wherein the first algorithm is automatically to: determine a dominant pattern in the transaction data; identify a region within the dominant pattern that corresponds to the gap in the transaction data; and adopt data associated with the corresponding region in the gap to minimize impact on the dominant pattern; wherein the second algorithm includes a Moore-Penrose pseudo-inverse algorithm to choose at least a portion of the transaction data to fill in the gap based on a set of substitute data from among a group of substitute data sets and to adopt the set of substitute data into the gap; and where the first algorithm includes (i, j) referring to a j th day of an i th week, for n weeks with m days in each week, wherein x ij includes valid numerical data, and if the data is not valid on (i,j), x ij =null, wherein v ij includes v ij =x ij , unless x ij =0, in which case, v ij =null, wherein w ij includes w ij =ln(v ij ) whenever v ij is not null, and w ij =null whenever v ij =null, wherein a matrix of column differences, c ij , includes c ij =w ij+1 −w ij whenever both w ij+1 and w ij are not null, and c ij =null, otherwise, wherein a matrix of row differences, r ij , includes r ij =w i+1j −w ij whenever both w i+1j and w ij are not null, and r ij =null, otherwise, wherein a j th column of c ij includes at least one non-null entry, and c *j includes an average of each non-null entry in the j th column of c ij , otherwise,c *j =0, wherein an i th row of r ij includes at least one non-null entry, and r i* includes an average of each non-null entry in the i th row of r ij , otherwise, r i* =0, wherein C j+1 =C j +c *j ,where C 1 =0, wherein R i+1 , =R i +r i* , where R 1 =0, wherein u ij +R I +C j , wherein K includes an average of w ij −u ij over each (i, j) entry where w ij is not null, wherein y ij =w ij whenever w ij is not null and otherwise, y ij =K+u ij , wherein output z ij =Round(exp(y ij )), wherein the output z ij corresponds to filling in the gap.