Detailed Description
Illustrative embodiments of the system of the present application are described below. In the interest of clarity, not all features of an actual implementation are described in this specification. It will of course be appreciated that in the development of any such actual embodiment, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which will vary from one implementation to another. Moreover, it will be appreciated that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking for those of ordinary skill in the art having the benefit of this disclosure.
The present invention uses principle data science techniques to identify time-based patterns in transactional data. These time-based patterns may include recurring transactions and non-recurring transactions. Spectral decomposition of transaction data is one possible detection technique. Actions based on these time-based patterns are generated and executed. As will be described in greater detail below, the present invention may include various analysis modules or features. For example, the analysis module or feature may include an expense analysis, a revenue analysis, a merchant analysis, or any combination thereof.
Referring now to FIG. 1, shown is a block diagram of asystem 100 in accordance with one embodiment of the present invention. Thesystem 100 for detecting and responding to transaction patterns includes one ormore servers 102 having one or more processors, one ormore databases 104 communicatively coupled to the one ormore servers 102, and one or moreremote devices 106 communicatively coupled to the one ormore servers 102 via one ormore networks 108 or communication interfaces. The one or more processors cause the one or more servers to: (a) identifying one or more time-based patterns in a set of transaction data corresponding to data pairs over a period of time using a spectral decomposition of the set of transaction data stored in one or more databases, (b) classifying the identified time-based pattern(s) into at least two pattern classes, the at least two pattern classes including recurring transactions and non-recurring transactions, (c) generating one or more actions for each pattern class, and (d) responding to the identified time-based pattern(s) by causing one or more remote devices to perform the one or more actions. Thesystem 100 may also include communications with other devices andsystems 110, such as financial institutions, merchants, services, employers, third parties, and the like.
All devices within thesystem 100 may communicate with each other overvarious networks 108, such as a public network, a private network, a local area network, a wide area network, a wired connection, a wireless connection, or any other form of known or unknown communication mechanism using known or unknown protocols. As one of ordinary skill in the art will appreciate, thesystem 100 may include other devices, components, modules, etc. and is not limited to the specific embodiments described herein in connection with the figures. Further, server(s) 102 may be any type of processing or computing device using any combination of hardware and software suitable for performing the processes described herein. As will be appreciated by one of ordinary skill in the art, the server(s) 102 may be multiple computers, multiple processors, and may include many other components, devices, and/or peripherals. Further, the server(s) 102 and processes described herein may be implemented in a distributed architecture located in multiple geographic locations. Likewise, processing may be shared or distributed between server(s) 102 and remote device(s) 106.
The remote device(s) 106 can include a server, a computer, a laptop, a handheld computing device, a mobile communication device, an electronic token, an electronic wearable device (e.g., watch, bracelet, glasses, etc.), a transaction processing device (e.g., point-of-sale device, kiosk, cash register, credit/debit card machine, etc.), or a payment processing system. Note that other devices may be used. The transaction may be a purchase, sale, lease, debit, order, payment, deposit, credit, refund, income, transfer, receipt, or barter transaction. Note that other types of transactions may be used. Additionally, the transaction may be a pending or proposed transaction awaiting approval or authorization. The one or more actions may include displaying a recommended course of action on the remote device(s) 106, displaying an alarm or alert on the remote device(s) 106, displaying a prompt on the remote device(s) 106 to cancel or allow a pending transaction, a recurring transaction, or a non-recurring transaction, or to block a pending transaction, a recurring transaction, or a non-recurring transaction until an override message is received from the remote device(s) 106. Additionally, the one or more actions may include: a countdown to a date of the future revenue transaction; blocking pending transactions, recurring transactions, or non-recurring transactions whenever a threshold amount of merchant name, brand name, or category is exceeded; or provide rewards, accelerators, or prizes based on one or more criteria associated with a merchant name, brand name, or category. Note that other types of actions may be used. Further, the one or more actions may execute other application(s) or software program(s) resident on the remote device(s) 106, or cause the remote device(s) 106 to communicate or interact with other devices with or without user interaction.
The one or more processors may cause the one or more servers to further perform one or more of:
selecting a data pair from at least one user identifier and at least one recipient identifier or sender identifier in a data structure stored in one or more databases; or
Selecting a data pair from at least one user identifier and at least one transaction category in a data structure stored in one or more databases; or
Receiving transaction data, the transaction data including at least a user identifier, a recipient identifier or a sender identifier, a date, and an amount, and storing the transaction data in a data structure in one or more databases; or
Requesting transaction data from one or more third party devices; or
Assigning a transaction category to the transaction data; or
Creating an array of transaction data corresponding to the data pair over the time period, wherein the set of transaction data includes an array of transaction data, and storing the array of transaction data in a first array data structure in one or more databases; or
Storing the spectral decomposition of the set of transaction data in a second array data structure of one or more databases; or
Generating one or more actions by selecting one or more actions in accordance with a mapping of each pattern category to a set of actions in a pattern to actions table stored in one or more databases; or
Storing one or more actions in a user action table of one or more databases; or
Responding to the identified time-based pattern(s) by further querying a user action table for one or more actions; or
Receiving new transaction data corresponding to a new completed transaction, a new pending transaction, or a new predicted transaction, and storing the new transaction data in a data structure; or
Adding new transaction data to the set of transaction data and repeating the analyzing, classifying, generating and responding steps; or
Generating one or more new actions whenever the new transaction data matches one or more pattern categories or invokes the stored one or more actions, and causing one or more remote devices communicatively coupled to the one or more processors to perform the one or more new actions via the communication interface; or
Determining whether the recommended action procedure is performed, transmitting a congratulatory message to the one or more remote devices whenever the recommended action procedure is performed, and transmitting an alarm message to the one or more remote devices whenever the recommended action procedure is not performed; or
Receiving a cancellation message from one or more remote devices in response to the prompt, the cancellation message may include an authorization code, and sending a cancellation request to a third party device for a pending transaction, a recurring transaction, or a non-recurring transaction; or
Receiving an allow message from one or more remote devices in response to the prompt and sending an authorization message to the third party device for the pending transaction; or
Executing one or more applications on one or more remote devices in response to the one or more actions; or
Determining a geographic location of the user and predicting a destination location based on the geographic location of the user and one of a recurring transaction or one of a non-recurring transaction associated with the user, wherein the one or more actions are based on the destination location; or
Modifying or deleting all or part of the transaction data based on input from the user; or
Determining whether the transaction data includes a payment transaction or a revenue transaction, wherein the revenue transaction includes a transfer, a refund, a credit, a salary, a subsidy, a loan, or other revenue; or
Estimating monthly revenue based on the one or more revenue transactions; or
Estimating daily revenue based on one or more revenue transactions; or
Predicting a date of future revenue transactions based on the revenue transaction(s); or
Determining whether a future revenue transaction has been received, and the one or more actions include a notification that the future revenue transaction has been received at or before the date or has not been received by the date; or
Ranking all or a portion of the set of transaction data, determining a string match score for each ranked transaction data, and grouping the stored transaction data based on the string match scores; or
Mapping the transaction data to one or more of a merchant name, brand name, and category using a merchant database, and updating the merchant database based on the transaction data; or
Using the user data in mapping the transaction data; or
Adding or changing a merchant name, brand name, or category based on input from a user; or
The method includes mapping transaction data to a merchant name using a merchant database, determining a brand name for the merchant name, determining the brand name or category of the merchant name, and updating the merchant database based on the transaction data.
The user identifier may correspond to an individual, a group of individuals, a class of individuals, an entity, a group of entities, a class of entities, a unit within the entity, a group of units within the entity, or a class of units within the entity. Note that other user identifiers may be used. The recipient identifier or the sender identifier may correspond to a vendor, a merchant, a financial institution, a government entity, an employer, another person, another group of persons, another type of person, another entity, another group of entities, another type of entity, another element within the entity, another group of elements within the entity, or another type of element within the entity. Note that other recipient identifiers may be used.
The spectral decomposition of the set of transaction data may include projecting the set of transaction data into a frequency domain using a fourier transform and identifying any dominant frequencies within the frequency domain. The fourier transform can be calculated using the following mathematical formula:
where n is a total number of data pairs in a set of transactions, α is a transaction amount, and t is a transaction date one or more processors may classify the identified time-based pattern(s) into at least two pattern categories by classifying any data pairs, if any, corresponding to the identified dominant frequency as recurring transactions and classifying any data pairs not corresponding to the identified dominant frequency as non-recurring transactions.
Referring now to FIG. 2, shown is a flow diagram of acomputerized method 200 in accordance with one embodiment of the invention. Thecomputerized method 200 for detecting and responding to transaction patterns includes providing one or more processors communicatively coupled to a communication interface and one or more databases inblock 202. Inblock 204, one or more time-based patterns in a set of transaction data corresponding to data pairs over a period of time stored in one or more databases are identified by one or more processors using a spectral decomposition of the set of transaction data. Inblock 206, the identified time-based pattern(s) are classified, using one or more processors, into at least two pattern categories, the at least two pattern categories including recurring transactions and non-recurring transactions. Inblock 208, one or more actions are generated for each pattern class using one or more processors. Inblock 210, the identified time-based pattern(s) is responded to by causing one or more remote devices communicatively coupled to the one or more processors to perform one or more actions via the communication interface. One of ordinary skill in the art will appreciate that steps described herein may be omitted or combined, and additional steps (not shown) may be added. In some cases, the steps may be performed simultaneously or in other sequences and/or repeatedly.
The remote device(s) may include a server, a computer, a laptop, a handheld computing device, a mobile communication device, an electronic token, an electronic wearable device (e.g., watch, bracelet, glasses, etc.), a transaction processing device (e.g., point-of-sale device, kiosk, cash register, credit/debit card machine, etc.), or a payment processing system. Note that other devices may be used. The transaction may be a purchase, sale, lease, debit, order, payment, deposit, credit, refund, income, transfer, receipt, or barter transaction. Note that other types of transactions may be used. Additionally, the transaction may be a pending or proposed transaction awaiting approval or authorization. The one or more actions may include displaying a recommended course of action on the one or more remote devices, displaying an alarm or alert on the one or more remote devices, displaying a prompt on the one or more remote devices to cancel or allow a pending transaction, reoccur a transaction, or non-reoccur a transaction, or to block a pending transaction, reoccur a transaction, or non-reoccur a transaction until an override message is received from the one or more remote devices. Additionally, the one or more actions may include: a countdown to a date of the future revenue transaction; blocking pending transactions, recurring transactions, or non-recurring transactions whenever a threshold amount of merchant name, brand name, or category is exceeded; or provide rewards, accelerators, or prizes based on one or more criteria associated with a merchant name, brand name, or category. Note that other types of actions may be used. Further, the one or more actions may execute other application(s) or software program(s) resident on the remote device(s), or cause the remote device(s) to communicate or interact with other devices, with or without user interaction.
Themethod 200 may further include one or more of the following steps:
selecting a data pair from at least one user identifier and at least one recipient identifier or sender identifier in a data structure stored in one or more databases; or
Selecting a data pair from at least one user identifier and at least one transaction category in a data structure stored in one or more databases; or
Receiving transaction data, the transaction data including at least a user identifier, a recipient identifier or a sender identifier, a date, and an amount, and storing the transaction data in a data structure in one or more databases; or
Requesting transaction data from one or more third party devices; or
Assigning a transaction category to the transaction data; or
Creating an array of transaction data corresponding to the data pair over the time period, wherein the set of transaction data includes an array of transaction data, and storing the array of transaction data in a first array data structure in one or more databases; or
Storing the spectral decomposition of the set of transaction data in a second array data structure of one or more databases; or
Generating one or more actions by selecting one or more actions in accordance with a mapping of each pattern category to a set of actions in a pattern to actions table stored in one or more databases; or
Storing one or more actions in a user action table of one or more databases; or
Responding to the identified time-based pattern(s) by further querying a user action table for one or more actions; or
Receiving new transaction data corresponding to a new completed transaction, a new pending transaction, or a new predicted transaction, and storing the new transaction data in a data structure; or
Adding new transaction data to the set of transaction data and repeating the analyzing, classifying, generating and responding steps; or
Generating one or more new actions whenever the new transaction data matches one or more pattern categories or invokes the stored one or more actions, and causing one or more remote devices communicatively coupled to the one or more processors to perform the one or more new actions via the communication interface; or
Determining whether the recommended action procedure is performed, transmitting a congratulatory message to the one or more remote devices whenever the recommended action procedure is performed, and transmitting an alarm message to the one or more remote devices whenever the recommended action procedure is not performed; or
Receiving a cancellation message from one or more remote devices in response to the prompt, the cancellation message may include an authorization code, and sending a cancellation request to a third party device for a pending transaction, a recurring transaction, or a non-recurring transaction; or
Receiving an allow message from one or more remote devices in response to the prompt and sending an authorization message to the third party device for the pending transaction; or
Executing one or more applications on one or more remote devices in response to the one or more actions; or
Determining a geographic location of the user and predicting a destination location based on the geographic location of the user and one of a recurring transaction or one of a non-recurring transaction associated with the user, wherein the one or more actions are based on the destination location; or
Modifying or deleting all or part of the transaction data based on input from the user; or
Determining whether the transaction data includes a payment transaction or a revenue transaction, wherein the revenue transaction includes a transfer, a refund, a credit, a salary, a subsidy, a loan, or other revenue; or
Estimating monthly revenue based on the one or more revenue transactions; or
Estimating daily revenue based on one or more revenue transactions; or
Predicting a date of future revenue transactions based on the revenue transactions; or
Determining whether a future revenue transaction has been received, and the one or more actions include a notification that the future revenue transaction has been received at or before the date or has not been received by the date; or
Sorting all or a portion of the set of transaction data, determining a string match score for each classified transaction data, and grouping the stored transaction data based on the string match scores; or
Mapping the transaction data to one or more of a merchant name, brand name, and category using a merchant database, and updating the merchant database based on the transaction data; or
Using the user data in mapping the transaction data; or
Adding or changing a merchant name, brand name, or category based on input from a user; or
The method includes mapping transaction data to a merchant name using a merchant database, determining a brand name for the merchant name, determining the brand name or category of the merchant name, and updating the merchant database based on the transaction data.
The user identifier may correspond to an individual, a group of individuals, a class of individuals, an entity, a group of entities, a class of entities, a unit within the entity, a group of units within the entity, or a class of units within the entity. Note that other user identifiers may be used. The recipient identifier or the sender identifier may correspond to a vendor, a merchant, a financial institution, a government entity, an employer, another person, another group of persons, another type of person, another entity, another group of entities, another type of entity, another element within the entity, another group of elements within the entity, or another type of element within the entity. Note that other recipient identifiers may be used.
The spectral decomposition of the set of transaction data may include projecting the set of transaction data into a frequency domain using a fourier transform and identifying any dominant frequencies within the frequency domain. The fourier transform can be calculated using the following mathematical formula:
where n is a total number of data pairs in a set of transactions, α is a transaction amount, and t is a transaction date one or more processors may classify the identified time-based pattern(s) into at least two pattern categories by classifying any data pairs, if any, corresponding to the identified dominant frequency as recurring transactions and classifying any data pairs not corresponding to the identified dominant frequency as non-recurring transactions.
Additionally, the invention may be embodied as a non-transitory computer readable medium containing program instructions that cause one or more processors to perform a method for detecting and responding to transaction patterns as described above with reference to computerized methods.
Referring now to fig. 3-10, a non-limiting example of the invention will be described in which patterns of financial entity or person's spending activity are discovered for the purpose of providing financial recommendations based on their spending patterns. Note that any of the features described or illustrated with reference to fig. 3-10 may be implemented in thesystem 100 of fig. 1 or themethod 200 of fig. 2.
FIG. 3 shows a flow diagram of amethod 300 in which transaction data of a user is received and stored as a data structure to be analyzed for identifying patterns inblock 302. Inblock 304, a spectral decomposition of the transaction data is computed using a fourier transform to identify dominant frequencies (presentation modes) in the data. These patterns are then classified into recurring expenses and sporadic non-recurring expenses categories inblock 306. Inblock 308, recommendations are assigned to each expense category and stored in the user insight table. This is done using a mapping from different types of patterns to suggested actions. Inblock 310, the insight from the user insight table is used to send recommendation(s) to the application to show to the user.
Various examples of spectral decomposition of the expense model will now be described. As shown in the following table, customer transaction data may be represented as a structured database, with each row representing a transaction having merchant information, a transaction amount, and a transaction release date.
| Number of days | User' s | Business company | Date | Amount ofmoney |
| 1 | 1 | Starbucks | 1 month and 1 day of 2017 | $5.65 |
| 1 | 1 | Uber | 1 month and 1 day of 2017 | $15.00 |
| 3 | 1 | Starbucks | 1 month and 3 days 2017 | $6.50 |
| 5 | 1 | Amazon | 1 month and 5 days 2017 | $65.00 |
| 7 | 1 | Starbucks | 1 month and 7 days 2017 | $4.50 |
| … | … | … | … | … |
Table 1: data array representation of transactions between merchants and users over time
As shown in FIG. 4, the transaction data for each customer is processed in the form of an array of transactions between each merchant (e.g., Starbucks and user), where each variable represents the value of the merchant's transaction: $5.65 for 1 month and 1 day in 2017; $6.50 on 3days 1 month in 2017; and $4.50 on day 7,month 1, 2017. The trading array is projected into the fourier domain by computing the following mathematical transform on the array:
where n is the total number of data pairs in a set of transactions, α is the transaction amount, and t is the transaction date.
For the examples shown in table 1 and fig. 4, the mathematical transformation is:
F(ω)=5.65e-jω1+6.05e-jω3+4.50e-jω7+.. decomposition provides different intensities for different overhead frequencies (ω), as shown in the Starbucks example of fig. 5: 60 days; 30 days; 10 days; 5 days; and 1 day. Note that other transformation techniques may be used.
Thereafter, actions and recommendations are determined based on the patterns as shown in FIGS. 6A-6B and 7A-7B. In this example, the spectrum results are then divided into two classes, where the first class includes cases where the spectrum is identified as recurring at a certain frequency and the second class includes cases where the spectrum is flat and does not show a dominant frequency (recurring).
The first scenario shown in fig. 6A indicates that customers tend to trade at a particular frequency (e.g., weekly or monthly), while the second scenario shown in fig. 6B models a scenario in which customers do not have a particular frequency and show sporadic expenses at different frequencies. For example, fig. 6A shows the dominant frequency at 30 days, which is significantly higher than the values at 60 days, 10 days, 5 days, and 1 day. In contrast, fig. 6B shows that the values at the respective frequencies of 60 days, 30 days, 10 days, 5 days, and 1 day are relatively similar to each other. The process then separates into two distinct responses. First, if there is a dominant frequency (e.g., 30 days), the process will flag thefrequency 702 and provide the customer with a recurring recommendation to reduce the specific expense, as shown in FIG. 7A. Second, the process will give recommendations based on high frequency filters, such as 752 per day as shown in FIG. 7B.
The process may also provide recommendations or suggestions to reduce expenses on non-recurring transactions or to cancel bills that occur repeatedly at the identified frequency. For the case of non-recurring transactions where the user occasionally spends, the process will provide recommendations on how to reduce the spending. 8A-8B illustrate examples of suggestions and recommendations for a particular transaction: the suggestion of a particular sporadic but non-recurring transaction is reduced (fig. 8A), and a request is made to cancel a particular recurring charge (fig. 8B). As shown in fig. 8A, anexemplary expense advice 800 may display a name of a merchant or vendor, an approximate amount to spend per time period, and a recommendation to reduce expenses with expected savings over a time period:
Starbucks 802a
$ 20/week 804a
"buying one thing less per week will help you save $ 50/month" 806a
Uber 802b
$ 70/month 804b
"taking less than once a week will help you save average $ 40/month" 806b
Soulcycle 802c
$ 300/month 804c
806c "two lessons less per month will help you save an average of $ 400/year
As shown in fig. 8B, anexemplary suggestion 850 for cancellation of recurring charges may display the name of the merchant or vendor, the approximate amount spent per time period, the payment mechanism used, and a "button" for selecting/clicking to cancel recurring charges:
Netflix 852a
$ 143.88/year 854a
"Bill Payment-1010 CA 2016year 12month 30 days" 856
"Cancel" 858a
Spotify 852b
120.00/year 854b
"Cancel" 858b
Audible 852c
$ 275.40/year 854c
"Cancel" 858c
Other information, data, and actions may be displayed.
In this non-limiting example, the system is built on a separate server using customer transaction data, as shown in the flow chart of FIG. 9. The system andmethod 900 integrates with aclient server 902 to provide suggestions and important parameters to anapplication 904.
As shown in FIG. 4, thetransaction data 906 is processed into a time point array that is stored in an array data structure in memory for optimizing processing time. The frequency domain transform as shown in fig. 5 is stored as an array data structure in memory and its pattern is further analyzed usingpattern discovery server 908. Thepattern discovery server 908 matches the identified patterns to recommendations using a pattern to insight mapping table 910 stored in a user insight table 912 having the format shown in the following table.
| Mode(s) | Business company | Recommending |
| Sporadic mode | Starbucks | You go past starbucks yesterday, consider not going today. |
| Repeated appearance pattern | Netflix | The subscription is cancelled. |
| … | … | … |
Table 2: data structure for schema to insight mapping
The user insight table 912 is queried by theclient server 902 and the results are sent to theuser application 904.
Referring now to FIG. 10, a non-limiting example of a flow chart of a mode determination method 1000 is shown. Inblock 1002, thetransaction data 906 is converted into an array data structure. Thereafter, inblock 1004, the array is projected into the fourier domain, and inblock 1006, mode detection is performed. The identified patterns are matched to recommendations using the pattern-to-insight mapping table 910 and the recommendations are stored in the user insight table 912.
The system and method may also provide other features, such as geographic location, to predict where transactions for non-recurring expenses will be conducted and provide real-time alerts and savings recommendations. In this case, the process will intervene actively, not just provide recommendations. Further, the process may be integrated with a payment processing system to send an alert when the user violates a recommended insight, which may be accomplished by prompting the user to override a block of the transaction.
Referring now to FIG. 11, shown is a flow diagram of amethod 1100 in accordance with one embodiment of the present invention. Thecomputerized method 1100 for detecting and responding to transaction patterns includes providing one or more processors communicatively coupled to a communication interface and one or more databases inblock 1102. Inblock 1104, a set of transaction data is received, wherein each transaction data includes at least a user identifier, a recipient identifier, a date, and an amount. Inblock 1106, an array of transaction data corresponding to the data pairs over a period of time is created from the set of transaction data. Inblock 1108, the transaction data array is stored in a first array data structure in one or more databases. Inblock 1110, one or more time-based patterns in the set of transaction data corresponding to the data pairs over the time period stored in one or more databases are identified using one or more processors by projecting the set of transaction data into the frequency domain using a fourier transform and identifying any dominant frequencies in the frequency domain. Inblock 1112, the identified time-based pattern(s) is classified, using the one or more processors, into at least two pattern classes, the at least two pattern classes including recurring transactions and non-recurring transactions, wherein any data pairs (if any) corresponding to the identified dominant frequency are classified as recurring transactions and any data pairs not corresponding to the identified dominant frequency are classified as non-recurring transactions. Inblock 1114, one or more actions are generated for each pattern category using the one or more processors. Inblock 1116, the identified time-based pattern(s) is responded to by causing one or more remote devices communicatively coupled to the one or more processors to perform one or more actions via the communication interface. Note that thecomputerized method 1100 may also include one or more of the additional steps described above with reference to fig. 2. As one of ordinary skill in the art will appreciate, steps described herein may be omitted or combined, and additional steps (not shown) may be added. In some cases, the steps may be performed simultaneously or in other sequences and/or repeatedly.
The present invention may be implemented as thesystem 100 described with reference to FIG. 1 that performs the computerized method described above with reference to FIG. 11.
Additionally, the present invention may be implemented as a non-transitory computer-readable medium containing program instructions that cause one or more processors to perform the computerized method described above with reference to fig. 11.
Referring now to fig. 12-14, a non-limiting example of the invention will be described in which transactional data is used to discover and estimate patterns in user revenue. Revenue estimation is challenging because users can be paid for with different payment rhythms, and they can have regular or irregular revenue. The estimation of monthly income can be affected by non-periodicity, resulting in poor results. Using the techniques described herein, revenue is estimated and classified into two types, periodic revenue (i.e., recurring transactions) and non-periodic revenue (i.e., non-recurring transactions). Note that any of the features described or illustrated with reference to fig. 12-14 may be implemented in thesystem 100 of fig. 1 or themethod 200 of fig. 2.
Referring now to fig. 12, a non-limiting example of a flow chart of amethod 1200 for user revenue estimation from bank or credit card provider transaction data is shown. Inblock 1202, transaction data for a user is received and stored as a data structure to be analyzed for the entity.Regular revenue dictionary 1204 andpattern NLP engine 1206 are models for mapping transactions to regular and non-regular revenue at block 1208. Inblock 1210, monthly revenue is estimated by identifying revenue that matches the month. In block 1212, a pattern of revenue payments is identified. This data is used to updatepattern NLP engine 1206 andperiodic revenue dictionary 1204. Inblock 1214, the next payroll time and amount are identified, and inblock 1216 the results are provided to the user.
Any inflowing funds for a non-credit account are revenue or internal account transfers. If the internal account transfer has the same amount (with a negative number), the same transaction date, and a different account ID, the internal account transfer will be detected. The revenue transaction is a periodic revenue or a non-periodic revenue. If periodic revenue is in the periodicrevenue category dictionary 1204, periodic revenue is detected.
The salary period of the user is predicted and the number of days to reach salary is shown in reciprocal fashion. Ensures that pending transactions are captured and binds notifications that are sent to the user immediately after salaries are typed into the account. This allows the user to clearly plan his upcoming large bill and manage his debt. In conjunction with revenue estimation, the present invention provides an overall picture of user revenue.
String similarity is used and the transaction name is tokenized using a natural language processing library to identify fixed salaries and non-fixed salaries. Regular salaries tend to have patterns and after clearing their names, they are very similar. Even in the case of work shifts, we can get regular salaries after the second or third salaries.
The customer transaction data is represented as a structured database with each row representing a transaction having merchant information, a transaction amount, and a transaction release date.
| Number of days | User' s | Receiver/sender | Date | Amount ofmoney | Categories | |
| 1 | 1 | Paycheck | 1 month and 1 day of 2017 | -$1000.00 | Periodic revenue |
| 1 | 1 | Check Deposit | 1 month and 1 day of 2017 | -$255.00 | Non-periodic revenue |
| 3 | 1 | Credit forReturn | 1 month and 3 days 2017 | -$6.50 | Refund&Return to |
| 5 | 1 | Amazon | 1 month and 5 days 2017 | $65.00 | Shopping |
| 7 | 1 | Starbucks | 1 month and 7 days 2017 | $4.50 | Food product |
| … | … | … | … | … | |
Table 3: transaction data for user and receiver/sender
Periodic revenue is detected using an engine described below and is marked in a database as periodic revenue (i.e., recurring transactions) and non-periodic revenue (i.e., non-recurring transactions).
Actions and recommendations based on this knowledge may include financial insights into expenses and budgets, days until next salaries, and/or targeting systems. The classification is used to predict revenue to be used for security expenses as well as other applications (such as push notifications sent to users as to whether their expenses exceed their revenue). The detection of the next revenue date is used in a feature for presenting to the user when the next salary will be driven into the user's account. The value of revenue is used by the targeting and personalization system. For example, credit cards target a specific debt to income ratio. Revenue estimation is a key to such targeting.
Such methods and systems may be integrated into a complete user experience that focuses on ensuring that the user has accurate knowledge of their financial condition by entering the correct monthly revenue value. The user may also receive notifications and insights when expenses exceed certain parameters defined by their earned revenue.
Referring now to FIG. 13, a non-limiting example of a block diagram of a system architecture orengine 1300 for revenue analysis is shown. Theengine 1300 performs the following different steps. The first step depends on the exact classification. By accurate classification, revenue transactions may be detected. From these candidate transactions, pattern recognition/spectral analysis is performed to filter out transactions with recurring patterns. The transactions are sorted alphabetically and then grouped by their string match scores. This provides the number of employers and their salary transactions. If there is only one employer, then prediction of the next salary is performed taking into account factors such as business holidays, weekends, and the like. The application then displays a countdown to the next salary date. If salary (pending transaction) arrives earlier than the forecast date, the countdown is automatically skipped to let the user know they have been paid. The algorithm is updated periodically to accommodate various payment periods, such as every half month, every two weeks, every week, every month, etc. The transaction names are first sorted alphabetically, which gives the appropriate importance to the leading characters. Similarly named transactions are then clustered together using string similarity. In each bucket, a mode and a next salary date are predicted.
Transaction data 1302 undergoesrevenue detection process 1304 and revenuetype detection process 1306.Revenue detection process 1304 identifiestransaction data 1302 asrevenue transactions 1308 ornon-revenue transactions 1310. Revenuetype detection process 1306 identifiesrevenue transaction 1308 asnon-periodic revenue 1312 orperiodic revenue 1314.Revenue aggregator 1316 usesaperiodic revenue 1312 to estimate revenue.Revenue predictor 1318 usesperiodic revenue 1314 to detect cadence and predict next salary. Theengine 1300 provides auser revenue list 1320, theuser revenue list 1320 may be authenticated by theuser 1322 and used by theML engine 1324 to provide a userperiodic revenue list 1326 that may also be authenticated by theuser 1322.
An estimation technique (revenue aggregator) 1316 for revenue estimation will now be described. As shown in fig. 14, revenue predictions are made for a duration of time after the last revenue transaction (marked red region. By using the periodic revenue, the daily revenue can be estimated because of the higher confidence that it will recur. The estimation is done by the matching principle. For example, revenues P _1, P _2, and P _3 match durations d _1, d _2, d _3, and d _4, so the daily revenue is estimated as:
daily income (P _1+ P _2+ P _3)/(d _1+ d _2+ d _3+ d _4)
The method matches the time interval for which revenue is captured to the transactions that have been detected using a matching principle in accounting.
Estimation techniques for cadence detection and next salary prediction (revenue predictor) 1318 will now be described. An algorithmic approach is used that uses the difference in days between different salaries to identify salary rhythms. This portion is done after using the NLP engine on transaction details (including name and type) to identify the regularity of salaries. This technique is novel in the following respects:
1. ranking is used to build payroll trading clusters prior to string matching. There are two main observations. The first is that the leading characters in financial transactions are of higher importance. Sorting is easier than performing string matching. Therefore, sorting in advance helps avoid performing an nxn string matching operation.
2. On the transactions that have been ordered, a string matching operation is performed for each transaction and its neighbors. Clusters are formed with high accuracy to ensure that the clusters belong to a single employer when the string match score falls.
3. If a cluster has a continuous and detectable pattern in its occurrence, its next occurrence can be predicted. This will apply to various rhythms, e.g. weekly, biweekly, monthly, semi-monthly, yearly.
Other various features may include: an algorithm for identifying periodic and non-periodic revenues; methods for a user to manually add or edit revenue; a method for estimating monthly revenue from transaction data; establishing an information system for storing initial data, a query database for estimating and inferring information, and retrieval of estimates; modeling based on learning data as a no-hypothesis matching method; allowing third parties to access or benefit from a revenue information database; pull revenue information from a third party; receiving only revenue information from the user without estimating it; relying entirely on the user to update the information or infer the information from the transaction, but not combining the two approaches; and/or not employ machine learning informed by ongoing revenue offerings and user transactions.
15-17, a non-limiting example of the invention will be described in which merchant knowledge discovery is performed using transaction data. Identifying merchants for the transaction is a known problem, and users will identify merchants from transaction-level data using a search engine such as Google. This embodiment of the invention identifies the merchant name, called entity, for all user transactions and provides the merchant name through the application. This will build a digital and online learning framework using the identified entities and categories based on individual users and crowd-sourced labels. Pattern recognition algorithms and modeling techniques are used to infer entities from transaction-level and user-level data, and continually update merchant databases and algorithms based on new transactions. This approach takes advantage of both user-level and transaction-level data, as well as actions taken by the user to actively reclassify merchants in a digital interface or application. The same approach is used to identify brands and categories of entities. Note that any of the features described or illustrated with reference to fig. 15-17 may be implemented in thesystem 100 of fig. 1 or themethod 200 of fig. 2.
Referring now to FIG. 15, a non-limiting example of a flow chart of amethod 1500 for discovering merchants from transaction summaries in bank or credit card provider data is shown. Inblock 1502, transaction data for a user is received and stored as a data structure to be analyzed for the entity. Inblock 1504, the transaction data is mapped to a known merchant using the model. Inblock 1506, the merchant's brand is detected, and inblock 1508, the merchant's transaction is marked. Categories of expense types may also be detected. The learning engine is updated inblock 1510 using new data from the transaction, and the mapping model for merchant inferences is retrained inblock 1512. Thus, a byproduct of the method would be a constantly updated merchant database, whereby the merchant category is continuously validated from transaction-level data.
The customer transaction data is represented as a structured database with each row representing a transaction having merchant information, a transaction amount, and a transaction release date, as previously shown and described in table 1. Merchant knowledge is a set of inferred information about the merchant for the transaction. It has a merchant entity, a merchant brand, and a merchant category.
Various actions and recommendations based on merchant knowledge may be provided. For example, information query systems use a summarization engine that detects brands, entities, and specific transactions through specific methods. These methods include running algorithms for historical expenses and utilizing input from a user in the application. The targeting system may operate on three levels: entity/merchant, brand, and category. Thus, the method allows for the identification and refinement of these three levels of data over time. Merchants allow us to create a rich user-merchant many-to-many mapping. The mapping is in turn used to identify the user's financial lifecycle, explore the user's similarities to the user and products to products, and generate personalized financial advice. Reclassification of merchants and transactions by user actions in the application is used to inform the merchants, brands, and categories of initial identification, and update them over time. By limiting the transaction space to the user's merchant domain, transactions can be effectively classified. The method and system may be integrated into a complete user experience that focuses on ensuring that the user has accurate and comprehensive knowledge of financial conditions; this knowledge will include reports by merchant type and expense category. The user may also receive notification and insight when the expense exceeds certain parameters of the merchant or category.
Referring now to FIG. 16, a non-limiting example of a block diagram of asystem 1600 for merchant discovery based on transaction data is shown. Thesystem 1600 is built on a separate server using customer transaction data. Thesystem 1600 is integrated with aclient server 902 that provides recommendations and important parameters to anapplication 904. Thetransaction data 906 is processed into a time point array as shown in FIG. 4, which is stored in an array data structure in memory for optimizing processing time. The frequency domain transform as shown in fig. 5 is stored as an array data structure in memory and the pattern of the frequency domain transform is further analyzed usingentity detection system 1602. Theentity detection system 1602 matches the identified patterns to recommendations using pattern-to-crowd-sourcedentities 1604 stored in the user insight table 912.
Referring now to fig. 17, a non-limiting example of a flow diagram of a pattern determination method 1700 for entity discovery is shown. Inblock 1702, thetransaction data 906 is matched against existing entities. Inblock 1704, modeling detection is performed on the entity, and inblock 1706 brand and cluster mapping is performed using brand andcluster engine 1708. The recommendations are stored in a user insight table 912.
Embodiments of the invention provide: an algorithm for identifying merchant, brand, and category data based on transaction and user-level data; a method for a user to manually add or edit merchant, brand and category data in a digital interface; a method for combining inferred merchant brand and category data with content manually entered by a user via a digital interface; establishing an information system for storing initial data, a query database for serializing (string) updated information, and retargeting logic for prompting a user to add, edit, or reclassify merchant, brand, and category information; automatically blocking specific expenses by merchant, brand, or category once the user reaches a specific threshold; rewarding the user for crowdsourcing; providing an accelerator or bonus to the user to achieve a percentage of the per merchant, brand, or category spending goal; and/or to allow third parties to access or benefit from merchant databases. Other features may include: pull merchant, brand and category information from a third party; only merchants, brands, or categories are of interest, not all three; relying entirely on the user to update the information or infer the information from the transaction, but not combining the two approaches; machine learning that is not informed by ongoing merchant and user transactions; and/or crowd sourcing without using actions taken by the user to classify merchants.
It should be understood that the particular embodiments described herein are illustrative and not restrictive of the invention. The principal features of this invention can be employed in various embodiments without departing from the scope of the invention. Those skilled in the art will recognize, or be able to ascertain using no more than routine experimentation, many equivalents to the specific methods described herein. Such equivalents are considered to be within the scope of this invention and are covered by the claims.
All publications and patent applications mentioned in the specification are indicative of the level of skill of those skilled in the art to which this invention pertains. All publications and patent applications are herein incorporated by reference to the same extent as if each individual publication or patent application was specifically and individually indicated to be incorporated by reference.
In the claims and/or specification, the words "a" or "an" when used in conjunction with the term "comprising" may mean "one" but also correspond to the meaning of "one or more", "at least one", and "one or more". The term "or" as used in the claims is intended to mean "and/or" unless explicitly indicated to refer only to alternatives or alternatives are mutually exclusive, although the disclosure supports definitions that refer only to alternatives and "and/or". Throughout this application, the term "about" is used to indicate that the value includes the inherent error variation of the device and the method is used to determine the difference that exists between the values or subjects.
As used in this specification and claims, the word "comprising" (and any form of inclusion, such as "comprises" and "comprises)", "having" (and any form of having, such as "has" and "has)", "including" (and any form of inclusion, such as "includes" and "includes)", or "containing" (and any form of inclusion, such as "contains" and "contains" is inclusive or open-ended and does not exclude other unrecited elements or method steps. In any of the composition and method embodiments provided herein, "comprising" may alternatively "consist essentially of … … or" consist of … …. As used herein, the phrase "consisting essentially of … …" requires the named integer(s) or step(s) as well as those that do not materially affect the characteristics or functionality of the claimed invention. As used herein, the term "consisting of … …" is used to indicate the presence of a recited integer (e.g., feature, element, property, attribute, method/process step or limitation) or group of integers (e.g., feature(s), element(s), property(s), attribute(s), method/process step(s), or limitation (s)).
As used herein, the term "or combinations thereof" refers to all permutations and combinations of the listed items preceding the term. For example, "A, B, C or a combination thereof" is intended to include at least one of: A. b, C, AB, AC, BC, or ABC, and if the order is important in a particular context, BA, CA, CB, CBA, BCA, ACB, BAC, or CAB. Continuing with this example, expressly included are combinations that contain repetitions of one or more items or terms, such as BB, AAA, AB, BBC, aaabccccc, CBBAAA, CABABB, and the like. Those of skill in the art will understand that there is generally no limitation on the number of items or terms in any combination, unless apparent from the context.
As used herein, approximating words such as, but not limited to, "about," "substantially," or "substantially" refer to the conditions as follows: when so modified, it is understood to not necessarily be absolute or perfect, but will be deemed sufficiently close to one of ordinary skill in the art to warrant designating a condition as present. The extent to which the description may vary will depend on how much variation can be made and one of ordinary skill in the art will still recognize that the modified features still have the characteristics and capabilities required of the unmodified features. In general, but subject to the preceding discussion, numerical values modified herein by approximating words such as "about" may differ from the stated values by at least ± 1, 2, 3, 4, 5, 6, 7, 10, 12, or 15%.
All of the devices and/or methods disclosed and claimed herein can be made and executed without undue experimentation in light of the present disclosure. While the apparatus and/or methods of this invention have been described in terms of particular embodiments, it will be apparent to those of skill in the art that variations may be applied to the compositions and/or methods and in the steps or in the sequence of steps of the methods described herein without departing from the concept, spirit and scope of the invention. All such similar substitutes and modifications apparent to those skilled in the art are deemed to be within the spirit, scope and concept of the invention as defined by the appended claims.
Furthermore, no limitations are intended to the details of construction or design herein shown, other than as described in the claims below. It is therefore evident that the particular embodiments disclosed above may be altered or modified and all such variations are considered within the scope and spirit of the disclosure. Accordingly, the protection sought herein is as set forth in the claims below.
Modifications, additions, or omissions may be made to the systems and devices described herein without departing from the scope of the invention. The components of the system and apparatus may be integrated or separated. In addition, the operations of the systems and apparatus may be performed by more, fewer, or other components. The method may include more, fewer, or other steps. Additionally, the steps may be performed in any suitable order.
To assist the patent office and any reader of any patent issued in accordance with this application in interpreting its appended claims, applicants desire to note that they do not intend to use any appended claims to refer to 35u.s.c § 112, clause 6, as it existed at the time of filing this application, unless the word "means for … …" or "step for … …" is explicitly used in a particular claim.