U.S. patent application number 14/036951 was filed with the patent office on 2014-04-03 for aggregation data source matching and merging.
This patent application is currently assigned to MONEYDESKTOP, INC.. The applicant listed for this patent is MoneyDesktop, Inc.. Invention is credited to John Ryan Caldwell.
Application Number | 20140095363 14/036951 |
Document ID | / |
Family ID | 50386135 |
Filed Date | 2014-04-03 |
United States Patent
Application |
20140095363 |
Kind Code |
A1 |
Caldwell; John Ryan |
April 3, 2014 |
AGGREGATION DATA SOURCE MATCHING AND MERGING
Abstract
The disclosure extends to methods, systems, and computer program
products for moving one or more user accounts from one institution
to another over a network of computers. The method and system may
include receiving a request from a user to move one or more
accounts between a first institution and a second institution,
retrieving old account data corresponding to the request from the
first institution, scraping field values from the old account data
and storing said field values in computer memory, populating form
fields within a plurality of new accounts with field values
retrieved from the computer memory as required by the second
institution in order to create the new accounts with the second
institution, and closing old accounts with the first
institution.
Inventors: |
Caldwell; John Ryan; (Provo,
UT) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
MoneyDesktop, Inc. |
Provo |
UT |
US |
|
|
Assignee: |
MONEYDESKTOP, INC.
Provo
UT
|
Family ID: |
50386135 |
Appl. No.: |
14/036951 |
Filed: |
September 25, 2013 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61744398 |
Sep 25, 2012 |
|
|
|
Current U.S.
Class: |
705/35 |
Current CPC
Class: |
G06Q 40/00 20130101;
G06F 40/174 20200101; G06Q 20/14 20130101; G06Q 20/102 20130101;
G06Q 20/407 20130101; H04L 43/16 20130101; H04L 43/0894 20130101;
H04L 45/245 20130101; G06F 16/2468 20190101; G06Q 20/10 20130101;
G06Q 40/02 20130101; G06F 16/9535 20190101; G06Q 40/12 20131203;
G06F 16/248 20190101 |
Class at
Publication: |
705/35 |
International
Class: |
G06Q 40/00 20120101
G06Q040/00 |
Claims
1. A method for moving at least one account from one institution to
another over a network of computers comprising: receiving into
computer memory a request from a user to move at least one account
between a first institution and a second institution; retrieving
old account data corresponding to the request from the first
institution and storing the old account data into readable memory;
scraping field values from the old account data retrieved from
computer memory and storing said field values in computer memory;
populating form fields within at least one new account with field
values retrieved from the computer memory as required by the second
institution in order to create the at least one new account with
the second institution; closing corresponding old account with the
first institution.
2. The method of claim 1, wherein the account data is retrieved
through a direct application programming interface.
3. The method of claim 1, wherein the account data is retrieved
from an aggregation provider.
4. The method of claim 1, further comprising matching a plurality
of user specified anticipated accounts to a plurality of old
accounts by comparing account data of the old accounts to
attributes of the user specified accounts.
5. The method of claim 4, further comprising comparing the
plurality of old accounts to the plurality of user specified
anticipated accounts using a predetermined matching threshold.
6. The method of claim 5, further comprising retrieving additional
old account data if the predetermined matching threshold is not
satisfied and comparing old accounts to anticipated accounts using
the predetermined matching threshold.
7. The method of claim 6, wherein the additional old account data
comprises transaction data corresponding to each of the old
accounts.
8. The method of claim 7, further comprising using a predetermined
matching threshold for comparing individual transactions within the
transaction data corresponding to each of the old accounts.
9. The method of claim 8, wherein the individual transactions
within the transaction data are matched using string matching.
10. The method of claim 8, wherein the individual transactions
within the transaction data are matched using fuzzy pattern
matching.
11. The method of claim 8, wherein the individual transactions
within the transaction data are matched using crowd sourcing.
12. The method of claim 1, further comprising outputting the
populated form fields of the new accounts to a user for
verification.
13. The method of claim 1, further comprising checking the
populated form fields for accuracy.
14. The method of claim 1, further comprising selecting an optimal
aggregation router dependent on the first institution and the old
account data and attributes.
15. A system for moving at least one account from one institution
to another over a network of computers comprising computing
hardware and software wherein the software comprises computer
readable instructions that cause the computing hardware to: receive
a request from a user to move a plurality of accounts between a
first institution and a second institution, wherein the request is
stored in the computer memory; retrieve old account data
corresponding to the request from the first institution; scrape
field values from the old account data and storing said field
values in computer memory; populate form fields within a plurality
of new accounts with field values retrieved from the computer
memory as required by the second institution in order to create the
new accounts with the second institution; close old accounts with
the first institution.
16. The system of claim 15, wherein the account data is retrieved
through a direct application programming interface.
17. The system of claim 15, wherein the account data is retrieved
from an aggregation provider.
18. The system of claim 17, further comprising matching a plurality
of user specified anticipated accounts to the old accounts by
comparing account data of the old accounts to attributes of the
user specified accounts.
19. The system of claim 18, further comprising comparing old
accounts to anticipated accounts using a predetermined matching
threshold.
20. The system of claim 19, further comprising retrieving
additional old account data if the predetermined matching threshold
is not satisfied and comparing old accounts to anticipated accounts
using the predetermined matching threshold.
21. The system of claim 20, wherein the additional old account data
comprises transaction data corresponding to each of the old
accounts.
22. The system of claim 21, further comprising using a
predetermined matching threshold for comparing individual
transactions within the transaction data corresponding to each of
the old accounts.
23. The system of claim 22, wherein the individual transactions
within the transaction data are matched using string matching.
24. The system of claim 22, wherein the individual transactions
within the transaction data are matched using fuzzy pattern
matching.
25. The system of claim 22, wherein the individual transactions
within the transaction data are matched using crowd sourcing.
26. The system of claim 15, further comprising outputting the
populated form fields of the new accounts to a user for
verification.
27. The system of claim 15, further comprising checking the
populated form fields for accuracy.
28. The system of claim 15, further comprising selecting an optimal
aggregation router dependent on the first institution and the old
account data and attributes.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional
Application No. 61/744,398, filed Sep. 25, 2012, which is hereby
incorporated by reference herein in its entirety, including but not
limited to those portions that specifically appear hereinafter, the
incorporation by reference being made with the following exception:
In the event that any portion of the above-referenced provisional
application is inconsistent with this application, this application
supersedes said above-referenced provisional application.
FIELD OF THE DISCLOSURE
[0002] The disclosure relates generally to methods, systems, and
computer program products for moving one or more user accounts from
one institution to another over a network of computers. The
disclosure relates more specifically, but not necessarily entirely,
to methods, systems and computer program products that receive a
request from a user to move one or more accounts between a first
financial institution and a second financial institution, retrieve
old account data corresponding to the request from the first
financial institution, scrape field values from the old account
data, populate form fields within a plurality of new accounts with
field values retrieved from the computer memory as required by the
second financial institution in order to create the new accounts
with the second financial institution, and close old accounts with
the first financial institution.
BACKGROUND
[0003] Many people/users are associated with multiple accounts,
such as email, frequent flyer or financial accounts, such as
checking accounts, savings accounts, retirement accounts, money
market accounts, certificate of deposit accounts, and various debt
accounts, by way of example, for homes, automobiles, boats,
educational expenses, credit cards and other personal property.
Further, many of these users may have insurance accounts, such as
life, home, health, automobile or other insurance accounts with a
financial institution. Advances in technology have allowed
institutions and businesses, such as banking and financial
institutions, to provide their customers with easy access to their
various accounts via software applications and other online access.
The result is that a single user may have a proliferation of
accounts at more than one institution or business, including
banking or financial institutions.
[0004] For example, a user may have a checking account and a
savings account at a local or regional banking institution. That
same user may have a mortgage account from a national lender for a
home, a financial loan or a debt account for an automobile, and a
financial loan or a debt account for college educational expenses.
The user may also have a life insurance account, a health insurance
account and a health savings account all at different banking or
financial institutions. Further, the user may have one or more
email account, frequent flyer account and so forth all with
passwords or personal identification numbers that must be
remembered by a user. Accordingly, it is difficult for users to
maintain all of these various accounts. In response to the problem
of proliferation of user accounts, personal financial management
(PFM) providers have provided many with a solution of bringing all
of a user's financial and other account information together in a
single location. A PFM is a computer interface for assisting users
with financial services and information.
[0005] A further problem arises when a user decides to change or
switch from one institution, such as banking institution, a
financial institution or data aggregator, to another. The process
of changing account information, from one institution to another,
whether directly or through a third party data management provider,
can be difficult and time consuming for a user or institution, such
as a banking or financial institution.
[0006] Due to the proliferation of the internet and the number of
user accounts that are available through software applications or
online access through various providers, data aggregators have
become increasingly important in order to handle the large amount
of data generated by millions of user accounts. Data aggregators
are involved in compiling information and data from detailed
databases regarding individuals and providing or selling that
information to others, such as personal financial management
providers. The potential of the internet to consolidate and
manipulate information has a new application in data aggregation,
which is also known as screen scraping. The internet and PFM
providers allow users the opportunity to consolidate their
usernames and passwords, or PINs in one location. Such
consolidation enables consumers to access a wide variety of
PIN-protected websites containing personal information by using one
master PIN on a single website, such as through a PFM provider or
otherwise. Online account providers include financial institutions,
stockbrokers, airline and frequent flyer and other reward programs,
and e-mail accounts. Data aggregators may gather account or other
information about individuals from designated websites by using
account holders' PINs, and then making the users' account
information available to them at a single website operated by the
aggregator or other third party at an account holder's request.
Aggregation services may be offered on a standalone basis or in
conjunction with other financial services, such as portfolio
tracking and bill payment provided by a specialized website, or as
an additional service to augment the online presence of an
enterprise established beyond the virtual world, such as a banking
or financial institution. Many established companies with an
internet presence recognize the value of offering an aggregation
service to enhance other web-based services and attract visitors to
their websites. Offering a data aggregation service to a website
may be attractive because of the potential that it will frequently
draw users of the service to the hosting website. However, a
problem may arise when a data aggregator's services are temporarily
halted, become too expensive for third party businesses to utilize
or otherwise become unavailable for some reason. The result is that
account information may need to be moved by a user or third party
to another institution, such as a personal financial management
provider or financial institution.
[0007] Accordingly, the disclosure relates to a method and system
for moving at least one account from one institution to another
over a network of computers. The features and advantages of the
disclosure will be set forth in the description which follows, and
in part will be apparent from the description, or may be learned by
the practice of the disclosure without undue experimentation. The
features and advantages of the disclosure may be realized and
obtained by means of the computing systems and combinations of
firmware, software and hardware, particularly pointed out in the
appended claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] Non-limiting and non-exhaustive implementations of the
disclosure are described with reference to the following figures,
wherein like reference numerals refer to like parts throughout the
various views unless otherwise specified. Advantages of the
disclosure will become better understood with regard to the
following description and accompanying drawings where:
[0009] FIG. 1 illustrates a flow chart of an implementation of a
method and system for moving at least one account from one
financial institution to another over a network of computers in
accordance with the principles and teachings of the disclosure;
[0010] FIG. 2 illustrates a flow chart of an implementation of a
method and system for moving at least one account from one
financial institution to another over a network of computers using
an aggregation provider or direct access with an application
programming interface in accordance with the principles and
teachings of the disclosure;
[0011] FIG. 3 illustrates implementations of a method and system
for moving at least one account from one financial institution to
another over a network of computers in accordance with the
principles and teachings of the disclosure;
[0012] FIG. 4 illustrates a flow chart of an implementation of a
method and system for moving at least one account from one
financial institution to another over a network of computers where
user accounts are compared to expected or anticipated account
information using transaction matching in accordance with the
principles and teachings of the disclosure;
[0013] FIG. 5 illustrates a flow chart of an implementation of a
method and system for moving at least one account from one
financial institution to another over a network of computers where
user accounts are compared to expected or anticipated account
information using fuzzy pattern matching, string matching, such as
a Levenshtein model or other string matching, or crowd sourcing in
accordance with the principles and teachings of the disclosure;
[0014] FIG. 6 illustrates a flow chart of an implementation of a
method and system for moving at least one account from one
financial institution to another over a network of computers where
user accounts are compared to expected or anticipated account
information using transaction matching and also implementing an
accuracy check by the user in accordance with the principles and
teachings of the disclosure;
[0015] FIG. 7 illustrates a flow chart of an implementation of a
method and system for moving at least one account from one
financial institution to another over a network of computers where
user accounts are compared to expected or anticipated account
information using transaction matching and also verifying the
accuracy of the comparison in accordance with the principles and
teachings of the disclosure;
[0016] FIG. 8 illustrates a flow chart of an implementation of a
method and system for moving at least one account from one
financial institution to another over a network of computers using
an optimized aggregation router to collect user account information
and data where user accounts are compared to expected or
anticipated account information using transaction matching and also
implementing an accuracy check by the user in accordance with the
principles and teachings of the disclosure;
[0017] FIG. 9 illustrates a flow chart of an implementation of a
method and system for moving at least one account from one
financial institution to another over a network of computers using
direct access with an application programming interface to collect
user account information and data where user accounts are compared
to expected or anticipated account information using transaction
matching and also implementing an accuracy check by the user in
accordance with the principles and teachings of the disclosure;
[0018] FIG. 10 illustrates various hardware components utilized in
the system for moving at least one account from one financial
institution to another over a network of computers in accordance
with the principles and teachings of the disclosure; and
[0019] FIG. 11 illustrates an implementation of an exemplary
computing network that may be used by the financial industry in
accordance with the principles and teachings of the disclosure.
DETAILED DESCRIPTION
[0020] The disclosure extends to methods, systems, and computer
based products for moving at least one account from one financial
institution to another over a network of computers. In the
following description of the disclosure, reference is made to the
accompanying drawings, which form a part hereof, and in which is
shown by way of illustration specific implementations in which the
disclosure may be practiced. It is understood that other
implementations may be utilized and structural changes may be made
without departing from the scope of the disclosure.
[0021] In describing and claiming the subject matter of the
disclosure, the following terminology will be used in accordance
with the definitions set out below.
[0022] It must be noted that, as used in this specification and the
appended claims, the singular forms "a," "an," and "the" include
plural referents unless the context clearly dictates otherwise.
[0023] As used herein, the terms "comprising," "including,"
"containing," "characterized by," and grammatical equivalents
thereof are inclusive or open-ended terms that do not exclude
additional, unrecited elements or method steps.
[0024] As used herein, the phrase "consisting of" and grammatical
equivalents thereof exclude any element or step not specified in
the claim.
[0025] As used herein, the phrase "consisting essentially of" and
grammatical equivalents thereof limit the scope of a claim to the
specified materials or steps and those that do not materially
affect the basic and novel characteristic or characteristics of the
claimed disclosure.
[0026] As used herein, the term "user" is intended to denote a
person or entity with the ability initiate the methods described
herein through a system as described herein.
[0027] As used herein, a "personal financial manager" and "PFM" is
intended to mean some application or program that provide a user
interface to a user while providing access to aggregators over a
computer network.
[0028] In response to the problem of proliferation of user
accounts, institutions (such as personal financial management
providers) have provided many with a solution of bringing all of a
user's financial and other account information together in a single
location. In response to the problem of a user moving or switching
accounts or account providers for one reason or another. The
disclosure addresses the above noted problems using a method and
system for moving at least one account from one institution to
another over a network of computers as disclosed and described more
fully herein.
[0029] The disclosure relates further to a method and system of
taking two or more sets of data, including but not limited to
financial account data, and running an analysis on categories or
areas where the data might overlap. For example, data may be
obtained for a specified date range of transactions. That data may
then be used to determine the likelihood that the sets of data are
the same original source of data. It will be appreciated that the
determination may be based on a predetermined threshold, such that
when the threshold is met there is no further confirmation, whether
by a user or otherwise, that is needed and the accounts are
determined to be the same or overlapping. However, when the
threshold is not met, then further confirmation, whether from the
user (account holder) or from some other source, must be obtained
before confirming that the accounts are same or overlapping. Other
data points, in addition to any overlapped data, may also be used.
In an example of financial account data, the other data points may
include financial institution name, account number, account type,
account description or similar data points without departing from
the scope of the disclosure.
[0030] In an implementation and by way of a hypothetical example of
the disclosure, a checking account from Acme Financial may be
aggregated from a source, such as an Open Financial Exchange (OFX),
over a period of time. However, if that institution's OFX server
becomes unavailable for any reason, and a different aggregation or
other source of information is switched, for example to another
aggregator source such as ByAllAccounts, then it may be
advantageous for the old account data (from the OFX feed, which may
go back months or years and may already include custom
categorization, tagging, memos, splits and the like) to not just be
replaced by the new data feed (which may only go back a month or
two and clearly does not have the custom data), but to be merged
with the new data. The problem is that the new data feed may not
have the same fields available or may call those fields by
different names or different identifying characteristics and
therefore may determine that the new source is not just a new
source for the same accounts at Acme Financial, but are mistaken as
new accounts.
[0031] In an implementation and by way of further example of the
disclosure, an aggregator or other financial institution, such as
OFX as used in the implementation and example above, may have
called the same checking account "Free Checking *0278" where the
feed at ByAllAccounts, which was recently switched from another
aggregator source, may call it "Acme FreeChecking *0278." In an
implementation of the disclosure, the system needs to know that the
plurality of accounts, for example two accounts, although
identified as being slightly different, or in some instances
completely different, are actually the exact same account at Acme
Financial. In an implementation and example of the disclosure, the
account holder or end-user and the plurality of accounts, for
example two accounts, should be merged together complete with the
transactions within the account.
[0032] It will be appreciated that the disclosure uses an algorithm
for determining if the plurality of accounts, for example two
accounts, are in fact the same and also determines the probability
of the accounts being the same using several factors or indicators.
The probability may then be compared against a threshold to
determine or confirm accuracy that the accounts are the same. Thus,
the algorithm processes, matches and merges a plurality of
accounts, whether financial accounts, email accounts, frequent
flyer accounts or other account types, to assist a user in
switching accounts from one institution to another.
[0033] Once the plurality of accounts, for example two accounts,
are determined as being the same account based on the algorithm,
then the overlapping transactions themselves are matched, and then
the accounts may be merged into one and the same account at a new
financial institution or otherwise. The result is to allow the new,
more reliable, or at least, up-to-date aggregation source to have
all the old data with the custom additions appended to the new
data.
[0034] Referring now to FIG. 1, a method and system for moving at
least one account from one institution to another, such as a
financial institution, over a network of computers in a computing
environment will be discussed. As illustrated, the method 100 may
comprise receiving into computer memory a request from a user to
move at least one account, or a plurality of accounts, between a
first institution and a second institution at 110. It will be
appreciated that the institution may also be a data aggregator, or
may be a financial institution itself, or other institutions that
provide user accounts without departing from the scope of the
disclosure. At 120, information and data relating to the at least
one old account, which may correspond to the request from the user,
is retrieved and stored in computer memory. The old account data
corresponding to the request may be retrieved from the first
institution and the old account data may be stored into computer
readable memory. The data retrieved may include, but is not limited
to, account numbers, transaction types, transaction categories,
transaction, classification, as well as details relating to the
transaction, such as the description of the transaction, the date
of the transaction, the amount of the transaction and so forth
depending upon the type of account.
[0035] At 130, the retrieved data and information from the accounts
may be matched to determine whether the accounts are the same.
Often the aggregated data entries will have discrepancies in form
that are not an exact match even for the same transaction. In such
a case, these systems may accept entries that differ within a
threshold amount as the same entry, rather than seeing them as
duplicate entries. In other words, if the account data and
information meet a certain threshold for accuracy, which may be a
predetermined threshold (such as, for example, 80% or greater field
match) or a threshold determined on the fly, then the accounts are
verified or confirmed as being the same account and the data and
information are merged together. It will be appreciated that field
values from the old account data retrieved from computer memory may
be scraped for data values, and the data values that are obtained
from the field values may be stored in computer readable
memory.
[0036] At 140, forms or other documentation to open or create a new
account may be filled out automatically. The field values stored at
130 may be retrieved from computer memory and the form fields may
be automatically populated. Additionally, based on the information
provided by the user or the form fields may be manually populated
in the new account with scraped field values as required by the
second institution in order to create the at least one new account
with the second institution.
[0037] At 150, account information and data is transferred from the
old account at the first institution to the new account at the
second institution. At 160, the corresponding old account at the
first institution may be closed or otherwise merged into the new
account.
[0038] Referring now to FIG. 2, it will be appreciated that the
method and system may be similar to that illustrated in FIG. 1 with
the following distinctions. In an implementation of the retrieval
process at 220, the old account data may be retrieved through a
direct application programming interface (API) at 222. In an
implementation of the retrieval process at 220, the old account
data may be retrieved from an aggregation provider at 224. In an
implementation at 220, the old account data may be retrieved from a
combination of both a direct application programming interface and
from an aggregation provider. At 230, the field values from the old
account data may be retrieved from computer memory and scraped. The
data obtained or scraped from the field values may be stored in
computer readable memory for later use in matching and merging at
240. At 250, forms may be automatically or manually filled out.
Form fields within the new account may be populated with field
values retrieved from the computer memory as required by the second
institution in order to create the at least one new account with
the second institution.
[0039] At 260, account information and data is transferred from the
old account at the first institution to the new account at the
second institution. At 270, the corresponding old account at the
first institution may be closed or otherwise merged into the new
account.
[0040] Referring now to FIG. 3, it will be appreciated that the
method and system may be similar to that illustrated in FIGS. 1-2
with the following distinctions. The process of matching and
merging account data and information at 340 may include matching
the account data by overlaying transaction data during a certain,
specified period of time to determine matches at 342. Once the
account information has been matched at 342, there may be a
verification process at 344 to determine whether the accounts are
the same. In an implementation, the verification may be a prompt
provided to a user to verify that the accounts are the same, or the
verification may be financial transaction comparisons, or the
verification may be some combination of the above, or any other
verification process. At 346, the verified accounts may be merged
into one account.
[0041] In an implementation, the system and method of determining
whether the plurality of accounts are in fact the same or not may
be determined based on a probability that the accounts are the same
account. Several factors may be used to make the determination that
the accounts are the same. It will be understood that any system
and method that includes any formula for determining whether the
accounts are the same may be implemented into and utilized by the
disclosure, and the disclosure is not limited by the examples
discussed herein.
[0042] Once the plurality of accounts, for example two accounts,
are determined as being the same, the overlapping transactions
themselves may be matched and transferred. Then the accounts may be
merged into one and the same account. The result is to allow a new
more reliable, up-to-date, or simply selected aggregation source to
have all the old data from the first institution with any and all
of the custom additions appended to the new data and new account at
the second institution. Therefore, when it is desired to switch
data aggregators or institutions or otherwise, it is typically
desirable to keep the historical data from the previous aggregator,
institution or otherwise and to merge with it or append to it the
data from the new aggregator, new institution or otherwise.
[0043] It will be appreciated that due to differences in the type
of data organization used by different aggregators, or
institutions, and differences in the descriptions or names of the
fields of data, it may not be immediately apparent whether the data
fields match or not. The disclosure analyzes and assesses sample
transactions from the data from the plurality of aggregators, or
institutions, for example two institutions, and compare fields for
a match. For example, the last 10 transactions or specified a date
range, for example 30 days, 60 days, 90 days, 120 days etc.
depending on the type of transaction and the regularity or
occurrence of the transactions, may be compared. If those
transactions match for a large percentage of the fields compared,
then the system can conclude that it is highly likely or probable
that the accounts are the same. If the accounts are viewed as being
likely being the same then the system can reformat the data if
necessary and, where appropriate and/or desired, merge the data
from the plurality of aggregators or institutions. For example, if
the system determines that fields determined by a user to be
important fields, such as transaction description, transaction
amount, transaction date, vendor, etc. match for several
transactions, then a match may be determined to have occurred and
the data may be merged.
[0044] This process can be viewed as a field-by-field match or
overlay. In an implementation, the system may conclude that there
is a match if a certain specified percentage of the fields (or
verification criteria) match or is larger than a threshold, such as
80%, or between 80% and 99%, including all percentages in between,
or some other desired match success threshold. It will be
appreciated that the threshold may be any suitable measure or
range, and may be predetermined or may be adjusted on the fly
without departing from the scope of the disclosure. In an
implementation thresholds may be adjusted to control the output of
any given process within the disclosure. For example, in a
situation where a user is able check the accuracy of the matching,
the number of transactions to check can be limited by tightening
the threshold during operation of the method.
[0045] Referring now to FIG. 4, it will be appreciated that the
method and system 400 may be similar to that illustrated in FIGS.
1-3 with the following distinctions. The process of matching a
plurality of user specified anticipated accounts to a plurality of
old accounts by comparing account data of the old accounts to
attributes of the user specified accounts is illustrated at 440. As
illustrated in the figure, if after the old account information is
retrieved at 420, initially matched at 430 and it is determined at
440 that the threshold is not met then additional account
information, such as transaction data, may be retrieved, scraped,
pulled and compared. The process of layering over data or
overlaying transaction data during a certain period of time, such
as a 30 day window or a 60 day window depending upon the number and
regularity of transactions, to determine matches at 430, 440 and
whether to merge accounts at 450 is within the scope of the
disclosure. For example, distinctive fields may be retrieved at 448
and compared from a plurality of accounts, for example two
accounts, using transaction matching at 446 such that the accounts
may be identified as being potentially the same account, but that
may not initially meet a determined threshold. The comparison may
help confirm or verify that the accounts are in fact the same and
can be merged at 450 based on additional information retrieved at
448 that may be compared and matched at 446. The distinctive fields
that may be compared may include, but are not limited to, dates of
the transactions, descriptions of the transactions, amounts of the
transactions, and other identifying information, which may be
overlaid.
[0046] It will be appreciated that the data contained in the
distinctive fields of a transaction may be displayed differently by
different aggregators or institutions. The display of the
transaction data may depend upon a number of factors, including the
type of transaction (debit card, credit card, check, deposit,
etc.), the processor of the transaction, or the aggregator that
pulled in the data because different aggregators may be pulling
descriptions of the transaction, amounts of the transaction, and
other identifying information from different sources. In any event,
the differently displayed data may be combined or overlaid with
where the account information was found, the account type, and what
other accounts are already at the aggregator or at the institution
or any combination of the above. Depending on the threshold, which
can be determined on the fly or may be predetermined based on
statistical probabilities, if the match is still below a certain
threshold then the match may need a human confirmation prompting
and asking the user whether or not to merge the accounts. Once the
transaction matching has occurred and the statistical probability
has increased above the threshold or the user has verified the
accuracy, then the accounts may be merged at 450 and accounts
transferred at 460 and/or closed at 470 as illustrated.
[0047] Thus, the plurality of old accounts may be compared to the
plurality of user specified anticipated accounts using a
predetermined matching threshold. At 448, the process may further
comprise retrieving additional old account data if the
predetermined matching threshold is not satisfied and comparing old
accounts to anticipated accounts using the predetermined matching
threshold. The additional old account data may comprise transaction
data corresponding to each of the old accounts in order to better
identify and match specific accounts. The process may further
comprise using a predetermined or dynamic matching threshold for
comparing individual transactions within the transaction data
corresponding to each of the old accounts. If the threshold is
determined as being met initially or at any time during the process
at 440, then the accounts are merged at 450.
[0048] Referring now to FIG. 5, it will be appreciated that the
method and system may be similar to that illustrated in FIGS. 1-4
with the following distinctions. In an implementation illustrated
in the figure, the process of transaction matching at 546 the
individual transactions within the transaction data may be
accomplished using string matching at 546A. In an implementation
illustrated in the figure, the individual transactions within the
transaction data may be matched using fuzzy pattern matching at
546B. In an implementation illustrated in the figure, the
individual transactions within the transaction data may be matched
using crowd sourcing at 546C. It will be appreciated that in an
implementation any of the above or any combination of the above
matching models may be utilized by the disclosure, including the
Levenshtein model or other string metrics without departing from
the scope of the disclosure.
[0049] Referring now to FIGS. 6-7, it will be appreciated that the
method and system may be similar to that illustrated in FIGS. 1-5
with the following distinctions. The method and system 600 may
output populated form fields of the new accounts to a user at 630
for accuracy verification or confirmation by a user at 650 to merge
or otherwise transfer the accounts at 660 as illustrated best in
FIG. 6. In FIG. 7, the method and system 700 may comprise checking
the populated form fields for accuracy using any statistical or
other known method.
[0050] Referring now to FIGS. 8 and 9, it will be appreciated that
the method and system may be similar to that illustrated in FIGS.
1-7 with the following distinctions. Referring now to FIG. 8, there
is illustrated a flow chart of an implementation of a method and
system for moving at least one account from one institution to
another over a network of computers using an optimized aggregation
router to collect user account information and data where user
accounts are compared to expected or anticipated account
information using transaction matching and also implementing an
accuracy check by the user in accordance with the principles and
teachings of the disclosure. The method and system may further
comprise selecting an optimal aggregation router dependent on the
first institution and the old account data and attributes.
[0051] Referring now to FIG. 9, there is illustrated a flow chart
of an implementation of a method and system for moving at least one
account from one institution to another over a network of computers
using direct access with an application programming interface to
collect user account information and data where user accounts are
compared to expected or anticipated account information using
transaction matching and also implementing an accuracy check by the
user in accordance with the principles and teachings of the
disclosure. The method and system may further comprise directly
accessing the application programming interface of an institution
dependent on the first institution and the old account data and
attributes.
[0052] Referring now to FIGS. 10-11, there are illustrated a
schematic representation of computer hardware and protocols that
enable the various implementations disclosed herein. FIG. 11
illustrates an implementation of an exemplary computing network
that may be used by the financial industry. As can be seen in the
figure, a user 1110 may be in electronic communication through a
computing network 1115 with a plurality of financial institutions
1125a, 1125b, 1125c . . . 1125n. The user 1110 may access the
network 1115 through a personal financial manager (PFM) 1111 that
may be provided by one of the financial institutions 1125 or may be
provided by a third party provider. In order to make use of the
vast amounts of financial data available from the various financial
institutions 1125, a plurality of aggregation sources 1117 may be
used by the system to aggregate financial information through an
application program interface (API) 1123. As illustrated, the
aggregation sources may utilize computing components such as
servers 1118a, 1118b, 1118c each managing databases 1119a, 1119b,
1119c. It should be noted that in some implementations, the network
may be the internet or alternatively the network may be a
proprietary network system. The network 1115 may operate according
to typical networking protocols and security programs as is known
in the industry.
[0053] Implementations of the disclosure may comprise or utilize a
special purpose or general-purpose computer, including computer
hardware, such as, for example, one or more processors and system
memory, as discussed in greater detail below. Implementations
within the scope of the disclosure may also include physical and
other computer-readable media for carrying or storing
computer-executable instructions and/or data structures. Such
computer-readable media can be any available media that can be
accessed by a general purpose or special purpose computer system.
Computer-readable media that store computer-executable instructions
are computer storage media (devices). Computer-readable media that
carry computer-executable instructions are transmission media.
Thus, by way of example, and not limitation, implementations of the
disclosure can comprise at least two distinctly different kinds of
computer-readable media: computer storage media (devices) and
transmission media.
[0054] Computer storage media (devices) includes RAM, ROM, EEPROM,
CD-ROM, solid state drives ("SSDs") (e.g., based on RAM), Flash
memory, phase-change memory ("PCM"), other types of memory, other
optical disk storage, magnetic disk storage or other magnetic
storage devices, or any other medium which can be used to store
desired program code means in the form of computer-executable
instructions or data structures and which can be accessed by a
general purpose or special purpose computer.
[0055] It will be appreciated that a "network" is defined as one or
more data links that enable the transport of electronic data
between computer systems and/or modules and/or other electronic
devices. When information is transferred or provided over a network
or another communications connection (either hardwired, wireless,
or a combination of hardwired or wireless) to a computer, the
computer properly views the connection as a transmission medium.
Transmissions media can include a network and/or data links, which
can be used to carry desired program code means in the form of
computer-executable instructions or data structures and which can
be accessed by a general purpose or special purpose computer.
Combinations of the above should also be included within the scope
of computer-readable media.
[0056] Further, upon reaching various computer system components,
program code means in the form of computer-executable instructions
or data structures that can be transferred automatically from
transmission media to computer storage media (devices) (or
vice-versa). For example, computer-executable instructions or data
structures received over a network or data link can be buffered in
RAM within a network interface module (e.g., a "NIC"), and then
eventually transferred to computer system RAM and/or to less
volatile computer storage media (devices) at a computer system. RAM
can also include solid state drives (SSDs or PCIx based real time
memory tiered storage, such as FusionIO). Thus, it should be
understood that computer storage media (devices) can be included in
computer system components that also (or even primarily) utilize
transmission media.
[0057] Computer-executable instructions comprise, for example,
instructions and data which, when executed at a processor, cause a
general purpose computer, special purpose computer, or special
purpose processing device to perform a certain function or group of
functions. The computer executable instructions may be, for
example, binaries, intermediate format instructions such as
assembly language, or even source code. Although the subject matter
has been described in language specific to structural features
and/or methodological acts, it is to be understood that the subject
matter defined in the appended claims is not necessarily limited to
the described features or acts described above. Rather, the
described features and acts are disclosed as example forms of
implementing the claims.
[0058] Those skilled in the art will appreciate that the disclosure
may be practiced in network computing environments with many types
of computer system configurations, including, personal computers,
desktop computers, laptop computers, message processors, hand-held
devices, hand pieces, multi-processor systems, microprocessor-based
or programmable consumer electronics, network PCs, minicomputers,
mainframe computers, mobile telephones, PDAs, tablets, pagers,
routers, switches, various storage devices, and the like. It should
be noted that any of the above mentioned computing devices may be
provided by or located within a brick and mortar location. The
disclosure may also be practiced in distributed system environments
where local and remote computer systems, which are linked (either
by hardwired data links, wireless data links, or by a combination
of hardwired and wireless data links) through a network, both
perform tasks. In a distributed system environment, program modules
may be located in both local and remote memory storage devices.
[0059] Further, where appropriate, functions described herein can
be performed in one or more of: hardware, software, firmware,
digital components, or analog components. For example, one or more
application specific integrated circuits (ASICs) or field
programmable gate arrays (FPGAs) can be programmed to carry out one
or more of the systems and procedures described herein. Certain
terms are used throughout the following description and Claims to
refer to particular system components. As one skilled in the art
will appreciate, components may be referred to by different names.
This document does not intend to distinguish between components
that differ in name, but not function.
[0060] Referring specifically now to FIG. 10, there is illustrated
a block diagram of an example computing device 1000. Computing
device 1000 may be used to perform various procedures, such as
those discussed herein. Computing device 1000 can function as a
server, a client, or any other computing entity. Computing device
1000 can perform various monitoring functions as discussed herein,
and can execute one or more application programs, such as the
application programs described herein. Computing device 1000 can be
any of a wide variety of computing devices, such as a desktop
computer, a notebook computer, a server computer, a handheld
computer, tablet computer and the like.
[0061] Computing device 1000 includes one or more processor(s)
1002, one or more memory device(s) 1004, one or more interface(s)
1006, one or more mass storage device(s) 1008, one or more
Input/Output (I/O) device(s) 1010, and a display device 1030 all of
which are coupled to a bus 1012. Processor(s) 1002 include one or
more processors or controllers that execute instructions stored in
memory device(s) 1004 and/or mass storage device(s) 1008.
Processor(s) 1002 may also include various types of
computer-readable media, such as cache memory.
[0062] Memory device(s) 1004 include various computer-readable
media, such as volatile memory (e.g., random access memory (RAM)
1014) and/or nonvolatile memory (e.g., read-only memory (ROM)
1016). Memory device(s) 1004 may also include rewritable ROM, such
as Flash memory.
[0063] Mass storage device(s) 1008 include various computer
readable media, such as magnetic tapes, magnetic disks, optical
disks, solid-state memory (e.g., Flash memory), and so forth. As
shown in FIG. 10, a particular mass storage device is a hard disk
drive 1024. Various drives may also be included in mass storage
device(s) 1008 to enable reading from and/or writing to the various
computer readable media. Mass storage device(s) 1008 include
removable media 1026 and/or non-removable media.
[0064] I/O device(s) 1010 include various devices that allow data
and/or other information to be input to or retrieved from computing
device 1000. Example I/O device(s) 1010 include cursor control
devices, keyboards, keypads, microphones, monitors or other display
devices, speakers, printers, network interface cards, modems, image
capture devices, and the like.
[0065] Display device 1030 includes any type of device capable of
displaying information to one or more users of computing device
1000. Examples of display device 1030 include a monitor, display
terminal, video projection device, and the like.
[0066] Interface(s) 1006 include various interfaces that allow
computing device 1000 to interact with other systems, devices, or
computing environments. Example interface(s) 1006 may include any
number of different network interfaces 1020, such as interfaces to
local area networks (LANs), wide area networks (WANs), wireless
networks, and the Internet. Other interface(s) include user
interface 1018 and peripheral device interface 1022. The
interface(s) 1006 may also include one or more user interface
elements 1018. The interface(s) 1006 may also include one or more
peripheral interfaces such as interfaces for printers, pointing
devices (mice, track pad, etc.), keyboards, and the like.
[0067] Bus 1012 allows processor(s) 1002, memory device(s) 1004,
interface(s) 1006, mass storage device(s) 1008, and I/O device(s)
1010 to communicate with one another, as well as other devices or
components coupled to bus 1012. Bus 1012 represents one or more of
several types of bus structures, such as a system bus, PCI bus,
IEEE 1394 bus, USB bus, and so forth.
[0068] For purposes of illustration, programs and other executable
program components are shown herein as discrete blocks, although it
is understood that such programs and components may reside at
various times in different storage components of computing device
1000, and are executed by processor(s) 1002. Alternatively, the
systems and procedures described herein can be implemented in
hardware, or a combination of hardware, software, and/or firmware.
For example, one or more application specific integrated circuits
(ASICs) or field programmable gate arrays (FPGAs) can be programmed
to carry out one or more of the systems and procedures described
herein.
[0069] The foregoing description has been presented for the
purposes of illustration and description. It is not intended to be
exhaustive or to limit the disclosure to the precise form
disclosed. Many modifications and variations are possible in light
of the above teaching. Further, it should be noted that any or all
of the aforementioned alternate implementations may be used in any
combination desired to form additional hybrid implementations of
the disclosure.
[0070] Further, although specific implementations of the disclosure
have been described and illustrated, the disclosure is not to be
limited to the specific forms or arrangements of parts so described
and illustrated. The scope of the disclosure is to be defined by
the claims appended hereto, any future claims submitted here and in
different applications, and their equivalents.
* * * * *