This disclosure is generally directed to systems and methods for managing and growing a user's wealth. More specifically, this disclosure relates to systems and methods for financial planning, including systems and methods for the transfer and display of information related to financial accounts, the identification of financial trends, and the allocation and transfer of money between financial accounts.
The allocation of an individual's wealth to financial accounts designed to grow his or her long-term wealth is important. Too many people improperly or inadequately plan for their financial well-being, especially early in their financial lives. Such failure may be mitigated through the use of systems and methods designed to educate, inform, and motivate the individual to act in his or her own financial interests in order to meet his or her desired financial goals. However, many conventional systems and methods are inadequate in one or more respects.
This disclosure relates to systems and methods for financial planning
In a first embodiment, a method for receiving information via a short message service (SMS) type interface includes determining an input variable and generating an SMS-type prompt including a query for an input of a value corresponding to the input variable. The method also includes transmitting the generated SMS-type prompt to a remote device, receiving a value responsive to the requested input variable, and storing the received value in a memory.
In a second embodiment, a method for automatically allocating funds between financial systems includes receiving a weighting preference between multiple variables. The method also includes determining an allocation scheme according to the weighting preference and receiving funds. The method further includes apportioning the received funds between multiple financial transactions associated with the variables according to allocation scheme. In addition, the method includes requesting distribution of the received funds between the financial transactions in accordance with the apportioning.
In a third embodiment, a method of prompting a user includes receiving transaction information from an account associated with the user. The method also includes determining a financial situation that may motivate the user to take a financial action. The method further includes, in response to determining the financial situation, presenting to the user a prompt displaying a tangible item having an associated monetary value, where the tangible item is associated with a transaction in which the user has engaged. In addition, the method includes suggesting the user take the financial action related to the tangible item.
In a fourth embodiment, a method for prompting a user includes determining a threshold value for a defined time period. The method also includes determining if the user has received funds in excess of the threshold value within the time period. The method further includes, in response to determining that the user has received the funds in excess of the threshold value within the time period, prompting the user to deposit at least part of the funds in excess of the threshold value into an account.
Other technical features may be readily apparent to one skilled in the art from the following figures, descriptions, and claims.
For a more complete understanding of this disclosure and its features, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
Unless otherwise defined, all terms (including technical and scientific terms) used in this patent document have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. It will also be understood that terms, such as those defined in commonly-used dictionaries, should be interpreted as having meanings that are consistent with their meaning in the context of the relevant art and the present disclosure and will not be interpreted in an idealized or overly formal sense unless expressly so defined in this patent document.
Descriptions of certain illustrative aspects are described below in connection with the figures. These aspects are indicative of various non-limiting ways in which the disclosed subject matter may be utilized, all of which are intended to be within the scope of the disclosed subject matter. Other advantages, emerging properties, and features will become apparent from the following description when considered in conjunction with the associated figures that are also within the scope of the disclosure.
Although described with reference to personal computers and the Internet, one skilled in the art could apply the principles discussed here to any computing or mobile computing environment. Further, one skilled in the art could apply the principles discussed here to communication mediums beyond the Internet.
It will be appreciated that, for simplicity and clarity of illustration, reference numerals may be repeated among the figures to indicate corresponding or analogous elements where considered appropriate. In addition, numerous specific details are set forth below in order to provide a thorough understanding of the implementations described here. However, it will be understood by those of ordinary skill in the art that the implementations described here may be practiced without these specific details. In other instances, well-known methods, procedures, and components have not been described in detail so as not to obscure the implementations described here. Also, the description is not to be considered as limiting the scope of the implementations described here.
In the following description, reference is made to the accompanying drawings, which show by way of illustration specific implementations that may be practiced. These implementations are described in sufficient detail to enable those skilled in the art to practice the implementations, and it is to be understood that other implementations may be utilized and that logical, mechanical, electrical, and other changes may be made without departing from the scope of the implementations. The following description is therefore not to be taken in a limiting sense.
The computing system 1 may include a variety of computer-readable media. The computer readable media can be any available media that can be accessed by the computing system 1 and include both volatile and nonvolatile media and both removable and non-removable media. By way of example, computer readable media may include computer storage media. Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer memory may include, but is not limited to, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), Flash memory, or other memory technology; compact disc (CD), digital versatile disc (DVD), or other optical disk storage; magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices; or any other medium that can be used to store desired information and that can be accessed by the computing system 1.
The system memory 4 may include computer storage media in the form of volatile and/or nonvolatile memory, such as ROM 6 and RAM 7. A basic input/output system (BIOS) 8 containing the basic routines that help to transfer information between elements within the computing system 1, such as during start-up, is typically stored in ROM 6. RAM 7 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by the processing unit 3. By way of example and not limitation, an operating system 9, application programs 10, other program modules 11, and program data 12 are shown.
The computing system 1 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only, a hard disk drive 13 that reads from or writes to non-removable nonvolatile magnetic media, a magnetic disk drive 14 that reads from or writes to a removable nonvolatile magnetic disk 15, and an optical disk drive 16 that reads from or writes to a removable nonvolatile optical disk 17 (such as a CD-ROM or other optical media) could be employed to store information (including data or instructions implementing the systems and methods described in this patent document). Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the example operating environment include but are not limited to magnetic tape cassettes, Flash memory cards, DVDs, digital video tapes, solid-state RAM, solid-state ROM, and the like. The hard disk drive 13 is typically connected to the system bus 5 through a non-removable memory interface such as interface 18, and the magnetic disk drive 14 and the optical disk drive 16 are typically connected to the system bus 5 by a removable memory interface, such as interface 19.
The drives and their associated computer storage media, discussed above, provide storage of computer readable instructions, data structures, program modules, and other data for the computing system 1. For example, the hard disk drive 13 is illustrated as storing an operating system 34, application programs 35, other program modules 36, and program data 37. Note that these components can either be the same as or different from the operating system 9, application programs 10, other program modules 11, and program data 12. The operating system 34, application programs 35, other program modules 36, and program data 37 are given different numbers here to illustrate that, at a minimum, they are different copies.
A user may enter commands and information into the computing system 1 through input devices such as a tablet or electronic digitizer 20, a microphone 21, a keyboard 22, and a pointing device 23 (such as a mouse, trackball, or touchpad). These and other input devices are often connected to the processing unit 3 through a user input interface 24 that is coupled to the system bus 5, but they may be connected by other interfaces and bus structures, such as a parallel port, game port, or universal serial bus (USB).
A monitor 25 or other type of display device is also connected to the system bus 5 via an interface, such as a video interface 26. The monitor 25 may also be integrated with a touch-screen panel 27 or the like. Note that the monitor and/or touch screen panel can be physically coupled to a housing in which the computing system 1 is incorporated, such as in a tablet-type personal computer or smartphone. In addition, computers such as the computing system 1 may also include other peripheral output devices, such as speakers 28 and a printer 43, which may be connected through an output peripheral interface 29 or the like.
The computing system 1 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computing system 30. The remote computing system 30 may be a personal computer (including but not limited to mobile electronic devices), a server, a router, a network personal computer, a peer device, or other common network node and typically includes many or all of the elements described above relative to the computing system 1 (although only a memory storage device 31 has been illustrated). The logical connections depicted include a local area network (LAN) 32 connecting through network interface 38 and a wide area network (WAN) 33 connecting via modem 39, but they may also include other networks such as mobile telephone service networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, mobile networks, and the Internet.
In some embodiments, the computer system 1 may include a source machine from which data is being generated/transmitted, and the remote computing system 30 may include a destination machine. In other embodiments, the remote computing system 30 may include the source machine from which data is being generated/transmitted, and the computer system 1 may include the destination machine. In still other embodiments, the computing system 1 may include both a source machine from which data is being generated/transmitted and a destination machine, and the remote computing system 30 may also include both a source machine from which data is being generated/transmitted and a destination machine. Note, however, that source and destination machines need not be connected by a network or any other means, and data may be transferred via any media capable of being written by the source platform and read by the destination platform or platforms.
For the purposes of this disclosure, it will be appreciated that the remote computing system 30 may be referred to in various ways, such as but not limited to ‘device,’ ‘processor-based mobile device,’ ‘mobile device,’ ‘electronic device,’ ‘processor-based mobile electronic device,’ ‘mobile electronic device,’ ‘wireless electronic device,’ or ‘location-capable wireless device.’ In particular embodiments, the remote computing system 30 includes a smartphone or tablet computer.
The processing unit 3 in the computing system 1 or the remote computing system 30 may operate pursuant to operating system software, such as but not limited to APPLE IOS, GOOGLE ANDROID, IBM OS/2, LINUX, UNIX, MICROSOFT WINDOWS, APPLE MAC OS X, or other commercially-available operating systems that provide functionality for the services provided by the present disclosure. The operating system or systems may reside at a central location or distributed locations (i.e., mirrored or standalone).
Software programs or modules instruct the operating systems to perform tasks such as but not limited to facilitating client requests, system maintenance, security, data storage, data backup, data mining, document/report generation, and algorithm generation. The provided functionality may be embodied directly in hardware or in one or more software or firmware programs or modules executed by at least one processor. A software module (program or executable) may reside in RAM, ROM, EPROM, EEPROM, Flash memory, registers, hard disk, removable disc, CD, DVD, optical disk, or any other form of storage medium known or developed in the art. An example storage medium is coupled to the processor such that the processor can read information from and/or write information to the storage medium. The storage medium may also be integral to the processor. The processor and the storage medium may also reside in an application specific integrated circuit (ASIC) or other circuit. The bus may be an optical or conventional bus operating pursuant to various protocols that are well-known or developed in the art.
The CPU 78 and the control circuit 80 may control the operation of the electronic device 30. In conjunction, these elements may provide the processing capability required to execute an operating system, application programs (‘apps’), a graphical user interface (GUI), and any other functions provided on the electronic device 30. The control circuit 80 may include one or more data buses for transferring data and instructions between components of the device 30. The control circuit 80 may also include on board memory (such as RAM) for caching purposes.
The CPU 78 may include one or more processors. For example, the CPU 78 may include ‘general purpose’ microprocessors, a combination of general and application-specific microprocessors, instruction set processors, graphics processors, or video processors, as well as related chips sets and/or special-purpose microprocessors. The electronic device 30 may also include a standalone RAM (not shown) in communication with the CPU 78 by way of one or more memory controllers (not shown), which may be integrated within the control circuit 80.
The CPU 78 may use information that can be stored within a long-term storage device, such as the storage device 84. The storage device 84 may be utilized for storing data required for the operation of the CPU 78, data to be processed or executed by the CPU 78, and other data required by the electronic device 30 (such as application and program data). For example, the storage device 84 may be configured to store the firmware for the electronic device 30 that is used by the CPU 78. The firmware may include an operating system or systems, as well as other programs or drivers that enable various functions of the electronic device 30, GUI functions, and/or processor functions. The storage device 84 may also store components for a GUI, such as graphical elements, screens, and templates. The storage device 84 may further store data files such as media (e.g., music and video files), image data, application software, preference information (e.g., media playback preferences, general user preferences), network connection information (e.g., information that may enable the electronic device 30 to establish a wireless connection, such as a telephone or Internet connection), subscription information (e.g., information that maintains a record of television shows or other media to which a user subscribes), telephone information (e.g., telephone numbers), and any other suitable data required by the electronic device 30. The storage 84 may be non-volatile memory, such as ROM, Flash, or solid-state memory, a hard disk drive, or any other suitable optical, magnetic, solid-state, or other computer readable media, as well as a combination thereof.
The communication devices 82 provide additional connectivity channels for receiving and transmitting information. For example, the communication devices 82 may represent a network controller as well as various associated communication protocols. The communication devices 82 may provide for various long-range communication interfaces, such as a wireless local area network (WLAN) interface (e.g., an IEEE 802.11x wireless network), a LAN interface, or a WAN interface. For example, a WAN interface may permit a private and/or secure connection to a cellular data network, such as 3G, 4G, and LTE networks. The communication devices 82 may also provide a short message service (SMS) interface or other message-based interface. The communication devices 82 may further provide for short-range communication interfaces, such as a personal area network (PAN) interface. The PAN interface may provide capabilities to network with, for example, a BLUETOOTH network or an ultra-wideband (UWB) network. The communication devices 82 may include any number and combination of network interfaces. As will be acknowledged, the communication devices 82 may employ one or more protocols, such as the High-Speed Downlink Packet Access (HSDPA) protocol, for rapidly downloading data over a network. The communication devices 82 may additionally allow the electronic device 30 to receive software upgrades.
The electronic device 30 may further include a service discovery networking protocol to establish a connection with an external device through a network interface in specific embodiments. For example, both the electronic device 30 and the external device may broadcast identification information using Internet Protocol (IP) or other standards. The external device may additionally broadcast information relating to available services that the external device is capable of providing (e.g., printing services for a networked printer). The devices may then use the identification information to establish a network connection between the devices.
Properties of the above-mentioned communication devices 82 may be determined by user preference settings 88. The user preference settings 88 may be stored in the storage device 84. For instance, the user preference settings 88 may include a list of networks that the electronic device 30 may connect to and may further govern the order or priority between the communication interfaces.
The communication preferences associated with the user preference settings 88 may also be dependent upon security features 86 available for each respective communication device 82. The security features 86 may be stored in the storage device 84 and may include one or more cryptographic protocols, such as a secure sockets layer (SSL) protocol or a transport layer security (TLS) protocol, for establishing secure communications between the electronic device 30 and an external device. The security features 86 may also include one or more encryption applications for encrypting information sent from the electronic device 30. These features may be particularly useful when transmitting information of a sensitive nature, which may generally include credit card and bank account information.
To limit access to the sensitive data, such as encryption keys, passcodes and passwords, authentication keys, digital certificates, or the like, the security features 86 may also include a secure access-restricted storage area (e.g., within the storage device 84). Additionally, in some embodiments, the secure storage area, in addition to storing the above-mentioned sensitive data, may be further protected by its own respective password, personal identification number (PIN), or another personal identification method, such as ‘touch ID’ or biometric identification, in order to prevent unauthorized access to the information stored therein.
The video controller 90 may be operatively coupled to the display 58 and configured to receive image data and to send voltage signals corresponding to the pixel values of the image data to the display 58. The displayed image data may represent information received through the communication devices 82, as well as information contained in the storage device 84. As will be understood by those skilled in the art, pixel values may be numerical assignments corresponding to respective pixel intensities. Therefore, the display 58 may receive the voltage signals from the video controller 90 as an input and produce an image corresponding to the voltage signals. With reference to
A user may select various graphical elements, which can represent applications or information, that may be displayed through the GUI. The touch screen interface 94 may be positioned in front of or behind the display 58 and may provide a user with the ability to select graphical elements, such as icons displayed by the GUI. The touch screen interface 94 may be configured to receive inputs based on physical contact (e.g., touching the display 58 when engaging an icon) either by the user or an object (e.g., stylus) being controlled or manipulated by the user, and to send ‘touch event’ information to the CPU 78. The CPU 78 may then process the detected touch event information and perform a corresponding action. For example, the ‘touching’ of an icon may be processed by the CPU 78 as an instruction to execute or initiate the corresponding application. The touch screen interface 94 may employ any suitable type of touchscreen technology, such as resistive, capacitive, infrared, surface acoustic wave, electromagnetic, or near field imaging. The touch screen interface 94 may further include single-point or multipoint sensing. It will be understood that the electronic device 30 may include a touch screen controller (not shown) in communication with the touch screen interface 94.
A user may communicate with the CPU 78 through various input structures utilizing the infrastructure provided by the I/O controller 96. The input structures provided on the electronic device 30 include input complexes represented by reference numerals 51-55. The user input structures may be used in conjunction with or independently of the touch screen interface 94 to provide input information to the electronic device 30.
The electronic device 30 may be powered by the power source 92 in both non-portable and portable settings. In a portable setting, for instance, in order to facilitate transport and ease of motion, the electronic device 30 may include an integrated power source 92 for powering the electronic device 30. The power source 92 may include one or more batteries, such as one or more lithium-ion batteries, which may be user-removable or secured to the electronic device 30. In specific embodiments, a proprietary connection I/O port may be used to connect the electronic device 30 to a power source in order to recharge the battery. In other embodiments, the one or more batteries may be non-integrated and may include one or more rechargeable or replaceable batteries. Further, in a non-portable setting, the power source 92 may include alternating current (AC) power, such as is provided by an electrical outlet.
Depicted screen images may be generated by a GUI and displayed on the display 58. For instance, these screen images may be generated as a user interacts with the electronic device 30, such as via the input structures and/or the touch screen interface 94. The GUI, depending on the inputs and selections made by a user, may display various screens including icons and graphical elements. These elements may represent graphical and virtual elements or ‘buttons’ that may be selected by the user by physically touching their respective locations on the display 58 using the touch screen interface 94, for example. The functionalities set forth and described in the subsequent figures may be achieved using a wide variety of graphical elements and visual schemes. Thus, it should also be understood that the present disclosure is not intended to be limited to the precise user interface conventions depicted here. Embodiments of this disclosure may include a wide variety of GUI styles.
In the example shown in
In some embodiments, the system 916 to implement the method 900 may request inputs from a user, may display a final output in a conversational-style paragraph, and may allow inputted variable modification and outputted variable update within the paragraph itself. Furthermore, the mechanisms called to allow for user input of a bound variable into a field may be arranged so that the called mechanism (slider bar, etc.) does not occlude the conversational-style paragraph.
In some embodiments, as a financial example, the method 900 may include the output of a conversational-style flow, which may look like the following:
In the above paragraph, the underlined areas may correspond to fields that may receive input variables from the user or display output variables determined by the calculation. Each field area may be touched for modifications in real time (keyboard input, sliders, toggles, weighting tool, etc.), which when modified may cause the system to execute real time calculations that can be displayed in other fields without the need for refreshing the entire paragraph. For example, if the user wants to change the field associated with the future value from $1,000,000 to $1,500,000, he or she may tap the field having $1,000,000 in it and use a scroll/slider bar to choose the new value. Upon this single change, the newly-modified field may be bound/constrained, and the rest of the equation may be solved for any unknown variables. For example, the equation may solve for a new contribution rate, and the paragraph may be displayed with the newly-calculated contribution rate outputted in the corresponding field. Therefore, the following output may be displayed:
In some embodiments, the method 900 may include the inputting 904 of variables, the updating 914 of re-determined output variables, and combinations thereof, by structuring input and output forms in order to simplify the data input, modification, and output process for the user of the system 916. Also, in some embodiments, the providing 902 may further include providing an intuitive and interactive conversational-style written communication system so that overall user engagement may be increased, such as by gaining attention of the user or communicating input and output variables in a preselected context that may reduce perceived complexity of information presented. In some embodiments, the system 916 and the method 900 may provide the option for the user to change any inputs within the paragraph and have the outputs responsive thereto displayed in real-time.
In some embodiments, the method 900 may include the inputting 904 of variables, the updating 914 of re-determined output variables, and combinations thereof, by receiving bounded user input variables and displaying resultant output variable in a text field. Also, in some embodiment, the method 900 may further include the inputting 904 of variables, the updating 914 of re-determined output variables, and combinations thereof, by receiving bounded user input variables in an unbounded text structure and unbounded textual context, without informing the user that the bounded user input variables are so bounded. Further, in some embodiments, the method 900 may include the updating 914 of re-determined output variables in an unbounded text structure and unbounded textual context, without informing the user that the bounded user input variables are so bounded. Moreover, in some embodiments, the method 900 may further include displaying resultant output variables in a text field having an unbounded text structure and unbounded textual context, without informing the user that the bounded user input variables are so bounded. Also, in some embodiments, changes to the displayed user input variables and a resultant output variables may be performed within the paragraph structure of the text. Further, in some embodiments, the output variable may be modifiable such that, when modified by a user, the associated input variables are recalculated and displayed as new output variables. Beyond that, in some embodiments, the output variable may be modifiable such that, when modified by a user, the associated input variables are recalculated and displayed as new output variables, both in an unbounded text structure and unbounded textual context without informing the user that the bounded user input variables are so bounded. In addition, in some embodiments, the recalculation and displaying of the resultant variables may be performed in real time.
In some embodiments, the system 916 and the method 900 may include text field changing, such as to warn the user of input of an invalid variable, if one or more of the input variables fall outside of acceptable parameters. Also, in some embodiments, values of at least some of the user input variables and resultant output variables may be compared to established ranges of acceptable parameters. It will be understood that, in some instances where values of at least some of the user input variables and resultant output variables may be compared to established ranges of acceptable parameters, such user input variables may be bounded input variables and such resultant output variables may be bounded output variables. Further, in some embodiments, system 916 and method 900 may include combinations of bounded input variables and bounded output variables.
In some embodiments, the method 900 may include the user input of numeric variables, and a resultant output numeric variable may be updated and displayed at locations embedded into the text field. As the number of variables increase, so too do the permutations of calculations with which they can be solved. Therefore, at some point, it may be beneficial to determine a system/method for binding and constraining the variables according to a hierarchy. In some embodiments, the system 916 and the method 900 may include binding and constraining the variables according to a hierarchy. Such a constraining hierarchy may benefit from the ability to update responsive to interaction, thereby learning from the user's actions.
If desired, the method 1000 may include looping back or returning to the implementing 1004 for updating the hierarchy in response to a user's input selection. The most recent input field that the user has modified may be moved to the top of the hierarchy and constrained. If the user updates a subsequent input field, that field can then be placed at the top of the hierarchy and constrained. The higher the field's position within the hierarchy, the less likely that field is to be modified responsive to the input or modification of a different field. This hierarchy determination mechanism may be iterated, with the last field modified moved to the top of the hierarchy and constrained and any non-constrained fields being ordered within the hierarchy based on the default hierarchy order. Therefore, the most recently modified field may be the least likely field to be updated via recalculation, the second most recently modified field will be the second least likely field to be updated, the third most recently modified field will be the third least likely field to be updated, and so on. Any fields that have never been modified by the user may remain non-constrained and therefore subject to the default hierarchy order. This hierarchy determination mechanism may eventually overwrite the default hierarchy if enough of the variables are modified, allowing the system to progressively adapt its hierarchy responsive to user priorities. Until then, any fields that have not been bound or constrained by due to user interaction can remain with their likelihood of modification dictated by the default hierarchy.
In some embodiments, the method 1100 may include a design and implementation that may request inputs from a user with an interactive style that may mimic, in certain aspects, SMS-style text messaging but in a context card format. In some embodiments, the inputs provided by the user may drive the system model and, as a result, a customized SMS-type reply may be generated responsive thereto. In some embodiments, the contexts cards that fill the space of the SMS-type user reply may be interactive in a nature that may allow for modifiable inputs to be interacted with in order to process a change. Depending on the implementation, single finger operation, keyboard input, and/or voice-activated input may be utilized by a user.
In this example, the method 1100 may include generating 1102 a user prompt requesting an input from a user. The prompt may guide the user by requesting that he or she select from or provide an input having a finite number of possible selections (bound input). Such inputs may be selected through, but are not limited to, use of a slider bar, a ranking of multiple items, a weighting tool discussed below, a selection between items, etc. The method 1100 may also include the user providing 1104 input within the bounds. For instance, the user may select an input through any suitable user interface, such as haptic contact with a touch screen or clicking on an icon with a mouse. Once the input is provided, the system may then store 1106 the information associated with the input. The system may then determine 1108 a next prompt to provide to the user. The next prompt may or may not be based on the information received from the user responsive to prior prompts. The system may then query the user for additional information in a guided process that mimics a conversational style but which may be constrained within bounds provided or determined by the system. If additional inputs are to be collected by the system, the steps of prompting a user for an input, receiving an input from the user, and storing the associated information may be repeated. If no further information is required, the process can progress, such as per a decision tree, for providing prompts/responses that do not solicit/require user input responsive thereto. The system may then perform internal calculations based on the input. The system may use information provided by the user to perform calculations, the results of which may then be presented to the user in the same SMS-type context cards.
In some embodiments, the system 1200 may allow a user to dictate direction of a process openly. Also, in some embodiments, the system 1200 may perform a method that may guide a user through a predetermined flow, which may follow a decision tree that may be informed by the inputs provided by the user. Further, in some embodiments, the interface may give the perception that the choices may be unbound so as to best engage the user, but which may in reality be guided by the system.
In some embodiments, the system input and output methods may be based upon basic input and output forms and may require use of a keyboard. Also, in some embodiments, the system 1200 may be intuitive and interactive, thereby promoting increased user engagement. Further, in some embodiments, the sub-categories of previously entered data or topics may be easily retrieved through the SMS-style threading categories, which may be presented in an upper tier menu.
In some embodiments, a method involving the use the system 1200 or similar system may include obtaining user inputs using a computing device having a touchscreen interface. The method may also include prompting a user to engage with a touchscreen-engageable input field. In some embodiments, the method may include prompting a user to engage with a touchscreen-engageable input field to select from a bounded set of potential inputs. Also, in some embodiments, an embedded bounded input may be displayed in association with the engageable input field. Further, in some embodiments, the engageable input field may be displayed within a context card. The context card may have, for example, the appearance of an SMS-style text message. In some embodiments, the engageable input field may be displayed with a context card in a manner in which the input may be modified by touching the touchscreen-engageable input field at the displayed input presented within the context card. Also, in some embodiments, a conversational style paragraph may be provided by the context card, the conversational style paragraph having in it the embedded bounded input. In addition, in some embodiments, the engageable input field may be provided by a predefined input, such as a slider bar, button, selection wheel, weighting tool, etc.
In some embodiments, the context card may be selected in relation to input of the user from a previously established set of context cards according to the user's previous inputs. Also, in some embodiments, the context cards may be presented in an order that guides the user through a logical flow of information inputs, and may have the potential values of the engageable input fields presented to the user be bounded. Further, in some embodiments, the context cards may be presented to provide the perception that user choices of the engageable input fields are not bound or guided, or are instead guided by the user. In addition, in some embodiments, the context card may be a reply to a user input.
When a generic financial system is created, a user may be in charge of balancing his or her own accounts for the goal of reducing the user's current liabilities and growing the user's wealth (such as savings or retirement) while also saving for life experiences (such as travel or purchase of a new product). Making the hard choice of determining monetary allocation may be very difficult for the user, and transferring funds according to their weighting preferences may be complicated. A system and method 1300 as disclosed here provide users with a simple and interactive way to establish a weighting preference between variables, which may correspond to the different goals that a user may want his or her financial account management system to address.
As shown in
The system 1400 and method 1300 may receive a desired number of variables via a user input and may generate a visual field corresponding to the requested number of variables. In an example having three variables, the visual field presented may include an equilateral triangle on an x/y plane (see
In some embodiments, the system 1400 and method 1300 may allow the user to determine a weight for each of the three variables concurrently with a single point of input by the user selecting a point corresponding to x and y coordinates within the field. Also, in some embodiments, a selection point may be displayed. The selection point may be associated with the last location that the user interfaces with during touch or swipe interaction with the interface. Such user interaction with the field may be achieved through a suitable input method, such as through haptic interaction with a touchscreen interface.
In some embodiments as shown in
Referring again to
In some embodiments, the weighting system may not be binary. Thus, for example, a user may incrementally weight his or her preferences between the various variables. Also, in some embodiments, the variables may be associated with one or more financial accounts or financial goals. Examples of such financial goals may include but not limited to the following:
The disclosed weighting systems and methods may be configured for use through one or more of many potential user input devices without departing from the scope of this disclosure. The weighting systems and methods may be implemented on a touchscreen, where the user may physically press the point on the field corresponding to his or her desired weighting between the presented variables. Alternatively, the weighting system and method may be implemented on a computer-type interface, where a user may use an input device, such as a mouse, to select the point on the field corresponding to his or her desired weighting between the presented variables.
In some embodiments, the system and method may allow the user to link his or her financial accounts to the system, provide goals, and assign a weighting preference between the goals in order to optimize resource distribution between the goals. Once the associated data is provided, the system may funnel money into different allocated accounts based on the weighting preference for each goal. This system and method may help to simplify the manner in which users allocate and distribute their resources in order to achieve their varying goals.
As an example, once a weighting preference is established, the system may monitor when money is deposited into an account associated with the system and automatically allocate and distribute that money between accounts according to calculations based on the weighting preference. The method and system may be configured to not solely optimize for interest rate and cash flow but instead to take into account the personal needs of each user and his or her perceived value of each financial goal, such as reducing current liabilities, growing wealth (savings and retirement), and saving for life experiences. In some embodiments, weights inputted by the user may drive an equation in order to solve for the best method for fund dispersion in order to achieve the goals of the user as interpreted in view of the relative weighting of the variables associated with the vertices of the displayed selection polygon.
In some embodiments, the system and method may utilize calculations related to the weighting preference in the determination of the allocation and distribution of resources. In performing these calculations, the system and method may verify the APRs of all liability accounts, the estimated rates of return from wealth accumulation, and the associated cost of life experience events requested by the user to initially build an overall allocation/distribution model. The weights inputted by the user may drive the equation in order to solve for the best method for fund dispersion to reach the goals of the user. The examples previously mentioned and shown below may be based on three objectives previously mentioned. In some embodiments, the method and system may not be limited to the three objectives and may be thought of as a completely generic application of deciding between items and their associated weights in order to calculate fund allocations.
In some embodiments, the user may toggle the weighting of his or her resource allocation/distribution towards a plurality of variables/goals. As discussed, three variables/goals may include debt reduction, life experience, and wealth accumulation. In some embodiments in which the user goal of debt reduction is given a low weight, the distribution of funds may be as follows: if a typical contribution into an IRA is $300 per month, 45% may be filtered to life experience savings, 45% may be filtered to retirement accounts, and 10% may be filtered to reducing debt. In this particular example, the interest rate of each account has been ignored and not optimized for that allocation only. The system and method may make suggestions in order to help the user make smarter financial choices, but the decision may remain the user's responsibility.
A corresponding system and method 1900 may promote contributions to financial instruments designed to grow long-term wealth by either prompting a user to not make a purchase that would unnecessarily reduce his or her resources or by enabling the instantaneous transfer of money to a savings instrument at a point at which the system has identified an increased likelihood of an individual's willingness to make expenditures. Furthermore, the method 1900 frames the contribution in terms of a tangible item, such as one related to a transaction.
The method 1900 may include receiving 1902 transaction information, such as by linking financial accounts to a system. The system may be able to use the individual's account information to receive transaction information. Such transaction information may contain information related to a plurality of variables associated with the transaction, such as vendor type, transaction value amount, transaction time, etc. The system may be able to parse out these pieces of information and group, compare, and analyze them both individually and in any suitable combination.
In some embodiments, the method 1900 may allow for the visualization of potential savings from a change in a spending habit, which may include the system implementing operations that may help the user to make educated financial decisions based on his or her previous spending habits. A spending/financial habit may include, for example, a determined pattern of financial transactions for an entity, such as a user. The method 1900 may include categorizing 1904 each transaction according to vendor category. The method 1900 may also include identifying 1906 disposable income transactions. In some embodiments, the identification may track a user's day-to-day transactions to determine a user engagement that may be appropriate based on situational spending. In some embodiments, software may look at categories the user has been allocating his or her funds to recently and may prompt a statement in order to help the user make smarter financial decisions. The method 1900 may also include grouping 1908 disposable income transactions into a disposable income pool and ignoring 1910 non-disposable income transactions. The method 1900 may further include determining 1912 related vendors and applying 1914 a trend discovery engine to identify financial habits for a user.
Once the trend discovery engine has identified the user's financial habits, it may separate the habits into habitual transactions based on discretionary income, habitual transactions based on non-discretionary income, and non-habitual spending. The method 1900 may include generating 1916 a prompt relating to financial habits and vendor sub-groups. The method 1900 may also include presenting 1918 a prompt relating to a financial habit via a client device to the user. Once the system has identified a user's habitual spending habits based on discretionary income, the system may generate 1916 and send the prompt to the user, the prompt being designed to inform the user of the potential effects of the habitual discretionary transaction on his or her development of long-term wealth. The prompt may present the information positively or negatively.
In addition, the method 1900 may include indicating 1920 action or no action due to a prompt via the client device. For example, the system may notify the user that if one or more future habitual purchase amounts could be deposited (saved) in a user account instead of buying one or more future items with that money, the future value of his or her financial accounts will be positively affected by a displayed value. If the user does not choose to save during this instance (still makes the habitual discretionary purchase), the system can record this information to target the user on future repeat trips to this location or category of purchase. Note that the system may be provided with information used to determine a likelihood that transactions are related to necessary or discretionary spending.
This disclosure also provides a system and method directed to allowing a user to visualize immediate financial decisions in terms of his or her long-term repercussions and to further identify habitual discretionary spending and re-allocate the funds that would be used for such habitual discretionary spending to financial instruments designed to grow long-term wealth. The systems and methods collect transaction information from an individual's bank accounts and parse the different kinds of information related to the transactions (i.e. type of vendor, amount of transaction, location of transaction, date of transaction, time of transaction, etc.). This information may then be categorized. The system and method may, for example, group transactions with similar types of vendors together (see
Once the engine 2200 has identified recurring discretionary expenditures, it may call up a tangible item associated with the type of vendor with which the individual is making such recurring discretionary transactions. Such a tangible item may have an associated value or may have a value related to the individual's transactions associated with it (i.e. a historic average of transactions or a percentage of a transaction). The engine 2200 may then present to the individual a visual prompt (see
It may be most effective for the system and method to focus on transactions with vendors that are associated with expenditures from an individual's disposable income. However, such may not be entirely necessary. The same systems and methods disclosed here could be used in relation to non-discretionary purchases such as rent.
Rent example: Beau is 25 and has provided profile information to the system indicating that he wants to retire at the age of 67. Beau rents an apartment for $1,400 a month and has monthly transactions corresponding thereto. The system is provided with information that indicates that the average rent in the same area or a related area is approximately $1,100 a month. The system may identify the recurring transactions related to Beau's payment of rent and identify that this amount may be reasonably reduced at Beau's discretion. The system could notify Beau that if he were to spend a year (12 months of rent) renting an apartment at $1,100, the savings would be $3,600 in that year. The system could further tell Beau that if he were to spend a year paying $1,100 a month in rent and placing the remaining $300 a month in a financial instrument configured to grow wealth at 10% annual interest over the next 42 years for his retirement, he would have a much larger amount of money at the time of his retirement.
Coffee shop example: Amy is 25 and consents to allow the system to access her financial accounts. Amy goes about her regular life, making transactions as she always had. Imagine that Amy likes coffee and tends to go to a local coffee shop and purchase a large coffee for $5. She does this five days a week, totaling $25 a week on coffee. Furthermore, she does this same thing every week. After a while, the system will be able to determine that Amy has a tendency to make recurring purchases of this type. The system can then send Amy a message stating that if she is able to curb this immediate habitual financial expenditure, in the long term she can reap rewards much greater than the caffeine buzz that she gets from the coffee in the morning. A few examples of such notifications may be:
An example user prompt may be seen in
Example 1: A user visits a particular coffee shop often. The system determines the average price of the user's visit and delivers a message informing the user that if his or her visits are limited to 4 days a week instead of 5 (items 1 and 2) and he or she contributes that money to a retirement account, this would translate to X amount of future value in the retirement account Y (item 4) years from now and Z (item 3) amount per month at retirement age.
Example 2: A user currently eats out for lunch every day. The system determines the average price of the user's visit and pops up a message informing the user that if his or her visits are limited to 4 days a week instead of 5 (item 1 and 2) and he or she contributes that money to a retirement account, this would translate to X amount of future value in the retirement account Y (item 4) years from now and Z (item 3) amount per month at retirement age.
In some embodiments, the system and method may also record the user's choice to purchase or not purchase an item, as well as the date, time, location, and value of the purchase. This can help the system and method to more closely tailor the prompting to the user's activities.
In addition or in the alternative, in some embodiments, an automatic roll up may be associated with all transactions and may be linked to a tangible item associated with a discretionary purchase habit. A “roll up” may be defined as the amount of additional money needed to create a whole number in the type of currency in the transaction. For example, a purchase of $1.75 may be “rolled up” to $2.00 with the $0.25 being deposited in the account as a roll up. In some embodiments, set value contributions may exist at any given time and may be linked to a tangible item. Also, in some embodiments, the roll up nature of contributions may allow the rate of growth for the user's financial accounts to be very low. Further, in some embodiments, the disclosed method (and variations) may allow for these contributions to be initiated when certain categories of spending are triggered while creating an associated link in the user's mindset of what the additional charge may represent. In addition, in some embodiments, the contributions may be of higher value so the rate at which the user's financial accounts may grow may greatly increase.
In some embodiments, the system and method may implement prompts requesting the user to actively contribute to his or her long-term financial accounts. Such steps, which may include the system tracking the user's day-to-day activities based on credit and debit financial transactions and may make additional deductions from the user's linked accounts, may be funneled to the user's financial account (such as wealth growth, debt reduction, savings for life experience, etc.) based on the transactions category in which a payment may have been processed and upon confirmation from the user.
In this example, the method 2600 may include receiving 2602 transaction information and classifying 2604 a transaction. The method 2600 may also include determining whether the transaction is occurring in a blackout period when prompting for the classified transaction is not presented to preserve effectiveness of the prompting system by avoiding over-presenting prompts to the user. The method 2600 may further include determining 2608 whether a transaction is above a vendor type threshold. If so, a list of tangible items for a prompt is generated 2610. If not, the transaction is ignored 2612. The method 2600 also includes generating 2614 a prompt and presenting 2616 the prompt for instantaneous transfer. The method 2600 may further include selecting 2618 a tangible item for contribution and initiating 2620 a transaction.
The method 2600 therefore supports interacting with the account user at a moment when the user is determined to be performing impulse or discretionary spending for immediate gratification. In some embodiments, the communication with the account user may depend on or be responsive to specific information that is the subject of a behavioral analysis or predictive behavioral analysis. For example, if the user is using a credit or debit card at a bar, the user may be willing to allocate discretionary funds to a financial account if engaged by proposing the virtual transaction in terms of a tangible item having a specific value associated therewith, such as a certain drink. In some embodiments, the prompted transaction may be framed as a transaction involving a tangible item with associated monetary value. If the user authorizes the virtual transaction, a transaction can be executed with an amount corresponding to the monetary value associated with the selected tangible item, such as when the amount is transferred to a financial account.
In some embodiments, virtual items may be visualized to give the user a mental representation of a tangible item and its associated cost. In some embodiments, these additional funds (withdrawals) may be created in parallel to a user's financial transaction. The following are examples of this functionality.
Example 3: While at a restaurant, a credit or debit card transaction by a user triggers the system to be aware that the user has just made a purchase at a restaurant. A popup will appear that asks the user something like the following: ‘Would you like to add a dessert to your retirement account?’ (or generic financial account). The choices, such as ‘mint’ ($1), ‘cookie’ ($2), ‘cupcake’ ($4), ‘other amount’ etc. will be tied to a momentary value, and this parallel charge will be processed to the debit card or withdrawal from a financial account (which represent savings, retirement, or debt reduction).
Example 4: While at a bar, a credit or debit card transaction by a user triggers the system to be aware that the user is at a bar. A popup will appear that asks the user something like the following: ‘Would you like to add a beverage to your retirement account?’ (or generic financial account). The choices, such as ‘bottle of soda’, ‘glass of wine’, ‘glass of champagne’, ‘other amount’ etc. will be tied to a momentary value and this parallel charge will be processed to the debit card or withdrawal from a financial account (which represent savings, retirement, or debt reduction).
This system and method allow for immediate prompting of users to contribute to their long-term wealth development responsive to triggers that are likely to evidence an environment in which the users will be more willing to make such a contribution. In some embodiments, the elements causing the triggering of the prompts and associated tangible items may utilize behavioral analysis to determine when a user may be more likely to make a contribution. Also, in some embodiments, the system and method may request a user to save more money and make a targeted suggestion of a virtual tangible item that may be applicable to a user's spending habits. Further, in some embodiments, these small changes a user may make in his or her daily spending once redirected to a financial plan may make major changes for his or her future.
The systems and methods discussed above may use control loops with user feedback (such as through purchases or lack thereof or through user responses) to manage increment contribution values (see
In
In
Referring to
In some embodiments, user information may specify instructions for distribution/allocation of deposited user funds according to a first weighting preference up until the deposit threshold value per unit time has been reached. At that time, the system and method may query the user if he or she would like to change the distribution/allocation weighting preference for any further funds deposited within the unit time.
In some embodiments, a user may be requested to specify a second preference to which the system may change at a given point or responsive to user acceptance. Preferences may be established through the use of the weighting tool system and method described here.
As shown in
In some embodiments, as in
In some embodiments, the methods and systems described here may be integrated into an application from a software provider (such as a ride-sharing application since it would have contractors whose income conforms to a variable wage model). If so integrated, the systems and methods may vary depending on the amount and type of information provided to the systems and methods by the associated application. In some embodiments, it may be the associated application or the user device that may supply the system with information, including transaction information, rather than or in addition to a financial institution.
In some embodiments, the systems and methods may be fully integrated into an associated application. Therefore, the structures for operation of the systems and methods may be built into the application software and infrastructure. If this is the case, the application may not need to provide much information to the system server since the data processing may be performed locally within the application rather than remotely (effectively having the application function as the system server). Furthermore, since the systems and methods are integrated directly into the associated application, they may have access to increased information, such as income rate multipliers and work hours associated with their users. This information may be able to assist the systems and methods in refining their decisions related to the receipt and transfer of funds. In such a scenario, the system server may only be receiving transfers of funds from the associated application.
In some embodiments, the systems and methods may be partially integrated into the associated application. In this scenario, a software application may provide the systems and methods with information related to each of the user transactions within the application, while a financial institution may provide information related to the user's financial accounts, including the deposit of the aggregated total value of the user transactions within the user's pay period. In such embodiments, the systems and methods may use the user's financial accounts information to inform and modify the system's reaction to the transaction information provided by the application. For example, if the user has a low balance in his or her financial accounts but the transaction information provided by the application indicates that the user is receiving a relatively large amount of funds, the systems and methods may determine that the user may be either cash rich or may be engaging in significant amounts of discretionary spending. Responsive to this determination, the systems and methods may either prompt the user to contribute to the financial accounts prior to the aggregate value of the user's transactions exceeding the set threshold for a given timeframe or may reduce the set threshold. By prompting the user for contributions to the user's financial accounts earlier, the systems and methods may be able to help reallocate the user's wealth from cash to banked funds or to curb the user's discretionary spending.
In some embodiments, the systems and methods may be minimally integrated with the associated application. In such cases, the application may provide the system server with quantities of transactions but not value amounts associated therewith. In such cases, the system server may receive transaction information including value amounts of deposits associated with the application transactions (within the same time frame, etc.) from a financial institution. The systems and methods may then perform statistical analysis on the information gained from both the application and the financial institution to determine correlations between the application transactions and the likely value associated therewith. These correlations may take into account any of a plurality of variables that may cause the value of the transactions to change (e.g. peak hours, rate multipliers, slow periods, etc.). Once a statistical model has been created, the systems and methods may be able to predict when there is a high likelihood of the user receiving higher than normal income and may provide them with prompts, including prompts to make a deposit, responsive thereto.
In some embodiments, the systems and methods may not be provided with any information from the application. In such embodiments, the system server may query the user's device to receive information related to the un-associated application. Such information may include, for example, the application's run-time. The application information may be compared against other generally known information (e.g. time of the day, day of the week, date, etc.), as well as transaction information from the user's associated financial institution (e.g. deposit amounts and timeframes) to determine a statistical income value weighting model through the use of statistical analysis. Once a statistical model has been created, the systems and methods may be able to predict when there is a high likelihood of the user receiving higher than normal income and may provide them with prompts, including prompts to make a deposit, responsive thereto.
In some embodiments, the systems and methods may be implemented in operations specializing in employees who earn a variable income or ‘tip’ based upon services rendered. Also, in some embodiments, the operations may either track the user's day-to-day wage performance based upon expected returns or may prompt the user either during or at the end of his or her shift if his or her wages have exceeded his or her expectation. If this determination from the user is positive that the user may be exceeding his or her daily expectations, a portion of these earnings may be funneled into the user's financial accounts.
The following examples are based in finance. However, the systems and methods should not be limited thereto and should be understood to be applicable to suitable scenarios across any industry.
An integrated software example partnering with service providers: While driving a taxi, after a set number of rides from the day, the system has determined that wage performance has exceeded an average expectation. A feature will appear that prompts the user if he or she would like to apply the next ride's proceeds to his or her financial accounts. Once the next ride is complete, the associated profit from that specific ride will flagged for transfer into the user's financial accounts. This transfer can be selected within the preferences to be instant or scheduled on the same day the user gets paid for services rendered. Once the money has been transferred into the financial accounts based on user predefined preferences, these funds may be filtered towards savings, retirement, or debt reduction.
A standalone example: While providing a service (bartending, waiting tables, delivery food, etc.), after the end of a shift, a feature will appear that prompts the user if he or she received tips over what he or she expected for the shift. The software may not ask the user for a valuation of these ‘tips’. If the ‘tips’ are over the user's expected returns, the user will be prompted to apply a set value or to funnel a portion of his or her base salary (up to 100%) into his or her retirement account. This transfer can be selected within the preferences to be instant or scheduled on the same day the user gets paid for services rendered. Once the money has been transferred into the financial accounts based on user predefined preferences, these funds may be filtered towards savings, retirement, or debt reduction.
In some embodiments, the systems and methods may cater to users in the service industry in which wage performance may be variable. By helping a user ride the momentum of a higher performing shift, a portion of his or her payroll may be rerouted to the user's financial accounts. These small changes to a user's financial accounts may make major changes for his or her future.
As shown in
Methods employed by the system may be tailored to each unique user's income and financial goals in order to make educated suggestions to the user. In some embodiments, systems and methods 3700 and 3800 may support two ways of gathering financial history from a user. In a non-integrated version, a method 3700 may be used for users who have not linked their financial accounts within the application. In this situation, a user may initiate a process when a change in financial events within his or her life has occurred. In such a version, the system receives 3702 the user's transaction history, compares 3704 it with the user's profile, and automatically determines 3706 the extent of any new transactions as a result. In response, the system determines 3708 fund contributions (such as in relation to checking, savings, retirement, etc., accounts for a user) in relation to such new transactions and sends 3710 a request to the user for approval of such changes. The user may then provide 3712 his or her approval, which results in a transfer 3714 by the system of funds as approved. If the user refuses such changes, the process returns to the received transaction history step 3702 for a new process to begin.
In an integrated version, the method 3800 may allow a user to link financial accounts within the system. Once financial accounts are integrated from the user into the system (and transmitted 3802 deposit information from the financial institution to the system), the system may begin executing 3804 system processes to trend nominal deposits, regular transactions, and user cash flow (through comparisons). A deposit 3806 may then be made with the determination if such is consistent with historic models (such as an automatic deposit is made that differs from the previous trend). If the deposit meets a trend, the deposit is considered 3808 the same as in the historical deposit pool, and the next deposit is considered in step 3804. When an anomalous deposit or a deviation occurs from the nominal trend, a system process 3810 may be triggered, and the system develops 3812 an anomalous trend model, compares 3816 such a model with the historic model, and measures 3818 the deviation between the two. If the deviation is considered significant, the system prompts 3820 a suggestion for the user to change his or her deposit allocation. The user may then accept 3822 such a change, which activates a deposit allocation preference modification 3826. If the deviation is not significant or if the user elects not to accept a change from the system suggestion, the system ignores 3822 the anomalous deposit, and no change is undertaken.
In both methods 3700 and 3800, after the system has identified a change in financial events, a directed message may be generated and transmitted to the user. The directed message may contain a prompting that may enable the user to modify the distribution/allocation of future deposits responsive to the changed circumstances.
In some embodiments, the systems and methods may enable users to make educated financial choices when positive events in their life occur. These financial choices may allow the users to stay on track for their financial goals. In many instances, when a user receives an increase in monetary funds, his or her financial savings goals are typically not proportional to the amount that he or she received. Similarly, in instances when the user receives a decrease in funds, he or she may not alter or reduce his or her spending habits consistent therewith. These methods and systems may allow users to continue to be financially smart with their funds and may continue to work towards their own financial goals when changes in their receipt of funds occur.
It will be understood that the systems and methods described here may include at least one computing system in communication with a communication network, which may allow for communication with at least one remote computing device such as a server. The systems and methods described here may also include one or more wireless computing devices, such as smartphones or tablets, each having a user interface and a display. In some embodiments, the user interface and display may form a touchscreen interface.
Although example systems, devices, and methods have been described above and shown in the figures, various changes may be made to the systems, devices, and methods. For example, various components in each system or device could be combined, further subdivided, rearranged, or omitted and additional components could be added according to particular needs. Computing devices and wireless devices come in a wide variety of configurations, and the figures do not limit this disclosure to any particular computing device or wireless device. One skilled in the art, using this disclosure, could develop additional hardware, software, and/or firmware to practice the disclosed subject matter, and each is intended to be included here. Also, while various figures show sequences of process or method steps, various steps in these figures could overlap, occur in parallel, occur in a different order, or occur any number of times. In addition to the above-described embodiments, those skilled in the art will appreciate that this disclosure has application in a variety of arts and situations and that this disclosure is intended to include the same.
In some embodiments, various functions described in this patent document are implemented or supported by a computer program that is formed from computer readable program code and that is embodied in a computer readable medium. The phrase “computer readable program code” includes any type of computer code, including source code, object code, and executable code. The phrase “computer readable medium” includes any type of medium capable of being accessed by a computer, such as ROM, RAM, a hard disk drive, a CD, a DVD, or any other type of memory. A “non-transitory” computer readable medium excludes wired, wireless, optical, or other communication links that transport transitory electrical or other signals. A non-transitory computer readable medium includes media where data can be permanently stored and media where data can be stored and later overwritten, such as a rewritable optical disc or an erasable storage device.
It may be advantageous to set forth definitions of certain words and phrases used throughout this patent document. The terms “application” and “program” refer to one or more computer programs, software components, sets of instructions, procedures, functions, objects, classes, instances, related data, or a portion thereof adapted for implementation in a suitable computer code (including source code, object code, or executable code). The term “communicate,” as well as derivatives thereof, encompasses both direct and indirect communication. The terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation. The term “or” is inclusive, meaning and/or. The singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. The phrase “associated with,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, have a relationship to or with, or the like. The phrase “at least one of,” when used with a list of items, means that different combinations of one or more of the listed items may be used, and only one item in the list may be needed. For example, “at least one of: A, B, and C” includes any of the following combinations: A, B, C, A and B, A and C, B and C, and A and B and C.
The description in the present application should not be read as implying that any particular element, step, or function is an essential or critical element that must be included in the claim scope. The scope of patented subject matter is defined only by the allowed claims. Moreover, none of the claims invokes 35 U.S.C. §112(f) with respect to any of the appended claims or claim elements unless the exact words “means for” or “step for” are explicitly used in the particular claim, followed by a participle phrase identifying a function. Use of terms such as (but not limited to) “mechanism,” “module,” “device,” “unit,” “component,” “element,” “member,” “apparatus,” “machine,” “system,” “processor,” or “controller” within a claim is understood and intended to refer to structures known to those skilled in the relevant art, as further modified or enhanced by the features of the claims themselves, and is not intended to invoke 35 U.S.C. §112(f).
While this disclosure has described certain embodiments and generally associated methods, alterations and permutations of these embodiments and methods will be apparent to those skilled in the art. Accordingly, the above description of example embodiments does not define or constrain this disclosure. Other changes, substitutions, and alterations are also possible without departing from the spirit and scope of this disclosure, as defined by the following claims.
This application is a divisional of U.S. patent application Ser. No. 15/224,194 filed on Jul. 29, 2016, which claims priority under 35 U.S.C. §119(e) to U.S. Provisional Patent Application No. 62/198,561 filed on Jul. 29, 2015. Both of these applications are hereby incorporated by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
62198561 | Jul 2015 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15224194 | Jul 2016 | US |
Child | 15474646 | US |