The invention relates to presentation and/or review of client-related information, including, for example, cache-based presentation and/or review of client-related information, real-time determination of client-related information, etc.
Technical issues as well as other challenges associated with client-related information presentation/review systems are known. For example, client-related information presentation/review systems generally rely on information available at one or more databases (e.g., databases internal or external to such systems) to present relevant information to a user, and users of typical presentation/review systems may suffer from delays resulting from the systems having to retrieve all information relevant to a user request from those databases if, for instance, none of the relevant information has been recently accessed by the user. Such delays are further increased when, for example, the requested information must be calculated from the retrieved relevant information. As another example, typical presentation/review systems may lack one or more features described herein.
Aspects of the invention relate to methods, apparatuses, and/or systems for facilitating presentation and/or review of client-related information. In certain embodiments, risk profile values may be determined based on account risk profile information associated with individual accounts. Responsive to the determination of the profile values, at least one subset of the risk profile values may be caused to be presented on a first view of a user interface (that is provided on the user interface prior to a second view of the user interface), and at least one other subset of the risk profile values may be caused to be stored in cache memory while the first view is provided on the user interface and prior to the second view being provided on the user interface. Responsive to an indication to provide the second view on the user interface, the other subset of the risk profile values (stored in the cache memory) may be obtained from the cache memory and caused to be presented on the second view of the user interface. In this way, prior to the indication to provide the second view on the user interface, the other subset of the risk profile values may be stored in the cache memory, for example, to significantly decrease request-to-presentation delays.
In some embodiments, a computer system may be programmed to: obtain, via a user interface, a request for client information, the client information comprising risk profile information; determine a first risk profile value based on first account risk profile information associated with first individual accounts and a second risk profile value based on second account risk profile information associated with second individual accounts; responsive to the client information request, cause the first risk profile value to be presented on a first view of the user interface; responsive to the client information request, cause the second risk profile value to be stored in cache memory while the first view is provided on the user interface and prior to a second view being provided on the user interface; and responsive to an indication to provide the second view on the user interface, obtain the second risk profile value from the cache memory and cause the second risk profile value to be presented on the second view of the user interface.
Various other aspects, features, and advantages of the invention will be apparent through the detailed description of the invention and the drawings attached hereto. It is also to be understood that both the foregoing general description and the following detailed description are exemplary and not restrictive of the scope of the invention. As used in the specification and in the claims, the singular forms of “a”, “an”, and “the” include plural referents unless the context clearly dictates otherwise. In addition, as used in the specification and the claims, the term “or” means “and/or” unless the context clearly dictates otherwise.
In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments of the invention. It will be appreciated, however, by those having skill in the art that the embodiments of the invention may be practiced without these specific details or with an equivalent arrangement. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the embodiments of the invention.
System 100 may further comprise user device 104 (or multiple user devices 104a-104n) that communicates over network 150 with server 102, e.g., to access information from a database that may include internal data source(s) 132 and/or external data source(s) 134. User device 104, implementing aspects of some embodiments disclosed herein, may include any type of mobile terminal, fixed terminal, or other device. By way of example, a user device may include a desktop computer, a laptop computer, a tablet computer, a smartphone, a mobile telephone, a personal digital assistant (PDA), a game console, a vehicle-mounted computer, a wearable device, or other user device. Users may, for instance, utilize one or more user devices to interact with one another, one or more servers, or other components of system 100. Users may, for instance, utilize one or more user devices 104 to interact with server 102 or other components of system 100. It should be noted that, while one or more operations are described herein as being performed by components of server 102, those operations may, in some embodiments, be performed by components of user device 104 or other components of system 100 (or vice versa).
Presentation and/or Review of Client-Related Information
In some embodiments, a client-related information presentation and/or review system may be provided to facilitate access or review of client-related information by financial advisors, supervisors, or other users. In some embodiments, the system may enable a user to access one or more tasks related to review of one or more client accounts and group the tasks based on review due dates or other predetermined criteria (e.g., to provide a user-friendly interface). The system may provide a user with (1) asset values (e.g., account asset values, client asset values, household asset values, etc.), (2) asset allocation by account, by client, or by household, (3) risk profiles (e.g., account risk profiles, client risk profiles, household risk profiles, etc.), (4) account, client, or household review histories, or (5) other client information. In some embodiments, one or more tasks may comprise review of items, such as infrequent trading, accounts outside risk tolerance, concentrated holdings, accounts where an initial profiling of the account risk profile deviates from the risk limits assigned based on predetermined market assumptions, or other items for attention. In some embodiments, if one or more tasks are not reviewed and/or completed by a financial advisor (or other user) by a certain time, the system may escalate those tasks to a supervisor or other user for review and/or further documentation.
In some embodiments, certain information may be stored in cache memory prior to an indication to present the information to a user, and the information may be obtained from the cache memory responsive to the indication to present the information (or an indication to provide a view that is to include the information). In some embodiments, certain information may be calculated on-the-fly responsive to a client information request. In some embodiments, the information (calculated on-the-fly) may be calculated and stored in cache memory prior to an indication to present the information to a user, and the information may be obtained from the cache memory responsive to the indication to present the information (or an indication to provide a view that is to include the information).
In some embodiments, risk profile values may be determined based on account risk profile information associated with individual accounts. Responsive to the determination of the profile values, at least one subset of the risk profile values may be caused to be presented on a first view of a user interface (that is provided on the user interface prior to a second view of the user interface), and at least one other subset of the risk profile values may be caused to be stored in cache memory while the first view is provided on the user interface and prior to the second view being provided on the user interface. Responsive to an indication to provide the second view on the user interface, the other subset of the risk profile values (stored in the cache memory) may be obtained from the cache memory and caused to be presented on the second view of the user interface. In this way, prior to the indication to provide the second view on the user interface, the other subset of the risk profile values may be stored in the cache memory, for example, to significantly decrease request-to-presentation delays.
In some embodiments, such risk profile values may be calculated on-the-fly using account risk profile information associated with individual accounts responsive to a client information request. As an example, a first subset of the risk profile values (to be presented on the first view of the user interface) and a second subset of risk profile values (to be presented on the second view of the user interface) may be calculated on-the-fly responsive to the client information request. As a further example, the first subset of the risk profile values may be caused to be presented on the first view, and the second subset of the risk profile values may be caused to be stored in cache memory prior to the indication to provide the second view on the user interface. In some embodiments, a request for the most up-to-date account risk profile information may be initiated responsive to obtaining the client information request so that, when the risk profile values are calculated on-the-fly, the resulting risk profile values reflect the most up-to-date values.
In some embodiments, other information may be determined (e.g., on-the-fly responsive to a client information request or other request), and, responsive to such determination, at least one subset of the determined information may be caused to be presented on a first view of a user interface (that is provided on the user interface prior to a second view of the user interface), and at least one other subset of the determined information may be caused to be stored in cache memory while the first view is provided on the user interface and prior to the second view being provided on the user interface. Responsive to an indication to provide the second view on the user interface, the other subset of the determined information (stored in the cache memory) may be obtained from the cache memory and caused to be presented on the second view of the user interface.
In some embodiments, with respect to
Although one or more embodiments herein are described with respect to cache memory and storage/obtainment of certain information in/from cache memory, it is contemplated that, in some embodiments, other memory may be used to store such information in the same or similar manner described herein with respect to cache memory and storage/obtainment of certain information in/from cache memory (e.g., where storage/obtainment of such information in/from the other memory significantly decreases request-to-presentation delays, compared to storage/obtainment of information from other sources). As used herein, cache memory may comprise a hardware cache, a software cache, or other cache memory. As an example, a hardware cache may comprise a CPU cache, translation lookaside buffer (TLB), or other hardware cache. A software cache may comprise a disk cache, a web cache, or other software cache.
In some embodiments, the layered architecture shown in
In some embodiments, user interface subsystem 112 may obtain a request for client information via a user interface (e.g., via a user input provided at the user interface, from a user device at which a user interface is presented, etc.). As an example, the request for client information may comprise a request for risk profile information associated with one or more clients, trading information associated with the clients, client identifying information associated with the clients, task information associated with the clients, or other client information. Risk profile information may comprise account risk values of individual accounts, risk values of individual assets or groups of assets of the individual accounts, or other risk profile information. Trading information may comprise information regarding executed trades associated with one or more clients, cancelled trades associated with the clients, trade bids or request for trade bids associated with the clients, or other trading information. Task information may comprise information regarding tasks to be completed with respect to an account, client, or household, due or overdue tasks of such tasks (to be completed), completed tasks, or other task information. In one use case, tasks assigned to users may comprise review of items, such as infrequent trading, accounts outside risk tolerance, concentrated holdings, accounts where an initial profiling of the account risk profile deviates from the risk limits assigned based on predetermined market assumptions, or other items for attention. In some use cases, other tasks may be assigned.
In some embodiments, service subsystem 114 may obtain client information to be used to determine one or more values that are to be presented on one or more views of a user interface. The client information may be obtained from one or more databases internal to system 100 (e.g., internal data sources 132), one or more databases external to system 100 (e.g., external data sources 134, third party databases, etc.), or other data sources. In some embodiments, responsive to a client information request, service subsystem 114 may obtain (i) a first set of client information to be used to determine risk profile values that is to be presented on a first view of a user interface (e.g., from which the client information request was received), (ii) a second set of client information to be used to determine risk profile values that is to be presented on a second view of the user interface, or (ii) other information. As an example, the first set of client information may comprise first account risk profile information associated with first individual accounts, and the second set of client information may comprise second account risk profile information associated with second individual accounts. As a further example, the first individual accounts may be associated with a first client or household, and the second individual accounts may be associated with a second client or household. As another example, the first individual accounts and the second individual accounts may be associated with the same client or household.
In some embodiments, service subsystem 114 may determine one or more risk profile values based on client information (e.g., account risk profile information or other client information). In some embodiments, service subsystem 114 may determine a first risk profile value based on first account risk profile information associated with first individual accounts, a second risk profile value based on the second account risk profile information associated with second individual accounts, or other values based on other information (e.g., on-the-fly calculation responsive to a client information request or other indication). As an example, a risk profile value may be calculated to be an average of individual account risk values (e.g., non-weighted averaging, a weighted average where each individual account risk value is assigned a weight corresponding to the account's cash value or worth, or other average).
In some embodiments, the first risk profile value may be a first client risk profile value, and the second risk profile value may be a second client risk profile value. Service subsystem 114 may use first account risk values of the first individual accounts associated with a first client to determine the first client risk profile value, and use second account risk values of the second individual accounts associated with a second client to determine the second client risk profile value. In some embodiments, the first risk profile value may be a first household risk profile value, and the second risk profile value may be a second household risk profile value. Service subsystem 114 may use first account risk values of the first individual accounts of individuals associated with a first household to determine the first household risk profile value, and use second account risk values of the second individual accounts of individuals associated with a second household to determine the second household risk profile value. In some embodiments, one of the first risk profile value or the second risk profile value is a client risk profile value, and the other one of the first risk profile value or the second risk profile value is a household risk profile value. As an example, if the first risk profile value is the client risk profile value, and the second risk profile value is the household risk profile value, service subsystem 114 may use first account risk values of the first individual accounts associated with a first client to determine the first client risk profile value, and use second account risk values of the second individual accounts of individuals associated with a second household to determine the second household risk profile value.
In one use case, with respect to
In some embodiments, presentation subsystem 118 may cause one or more risk profile values or other information to be presented on one or more views of a user interface. In some embodiments, responsive to a determination of a first risk profile value, presentation subsystem 118 may provide a first view on the user interface prior to providing a second view on the user interface, and cause the first risk profile value to be presented on the first view of the user interface. Storage subsystem 116 may cause a second risk profile value to be stored in cache memory prior to the second view being provided on the user interface (and before, while, or after the first view is provided on the user interface). Responsive to an indication to provide the second view on the user interface, presentation subsystem 118 may obtain the second risk profile value from the cache memory and cause the second risk profile value to be presented on the second view of the user interface. In some embodiments, the second view may replace the first view on the user interface such that the second view is viewable on the user interface in lieu of the first view. In some embodiments, the second view may supplement the first view of the user interface such that at least a portion of the first view and the second view may be provided on the user interface at a given time.
In some embodiments, the indication to provide the second view on the user interface may comprise a user input indicating a request for the second view, and the second risk profile value may be obtained from the cache memory and caused to be presented on the second view of the user interface responsive to the user input indicating the second view request. As an example, with respect to the use case described above for
In some embodiments, the indication to provide the second view on the user interface may comprise an automated script indicating a request for the second view, and the second risk profile value may be obtained from the cache memory and caused to be presented on the second view of the user interface responsive to the automated script indicating the second view request. As an example, with respect to the use case described above for
In some embodiments, service subsystem 114 may determine a trade count associated with a client based on trading information or other client information (e.g., account cash values, billing events, or other information). Presentation subsystem 118 may cause the trade count to be presented on a user interface. As an example, the trading information comprise information regarding executed trades associated with the client, cancelled trades associated with the client, trade bids or requests for trade bids associated with the client, or other trading information. In some embodiments, service subsystem 114 may determine the trade count based on the trading information such that one or more executed trades are excluded from the trade count based on one or more predetermined criteria. Presentation subsystem 118 may cause the trade count to be presented on a user interface. The predetermined criteria may comprise (1) a criterion related to whether a trade was executed within a predetermined time period associated with a predetermined event (e.g., exclude trade if executed a certain number of days before and after an initial billing event, a contribution billing event, quarterly billing event, etc., or other predetermined event), (2) a criterion related to whether a trade was executed to cover a service fee (e.g., exclude trade if sales total is equal to or greater than associated service fee by no more than 10% or other percentage or amount), (3) a criterion related to whether an account (with which an executed trade is associated) holds at least a predetermined threshold amount in cash (e.g., do not exclude if the account holds at least 5% or other percentage or amount in cash), or (4) other predetermined criteria.
In some embodiments, responsive to a client information request or other request, a trade count associated with a client may be obtained (e.g., calculated or retrieved from one or more sources), and storage subsystem 116 may be caused to be stored in cache memory prior to an indication to provide a view, of a user interface, on which the trade count is to be presented. As an example, the trade count may be stored in the cache memory while another view is provided on the user interface (e.g., where the other view includes another trade account for another client or other information). As another example, while at least one subset of determined risk profile values is presented on a first view of the user interface, at least one other subset of the determined risk profile values and the trade count for the client (and other information) may be stored in the cache memory. Responsive to an indication to provide a second view on the user interface, both the other subset of the determined risk profile values and the trade count for the client may be obtained from the cache memory and presented on the second view of the user interface.
In some embodiments, other information may be obtained (e.g., calculated or retrieved from one or more sources) and caused to be presented on a user interface responsive to one or more requests. In some embodiments, task information may be obtained, and at least some of the task information may be caused to be stored in cache memory prior to an indication to provide a view on which the stored task information is to be presented. Responsive to an indication to provide the view, presentation subsystem 118 may obtain the stored task information from the cache memory and cause the stored task information to be presented on the view of the user interface. As an example, with respect to
Example Flowcharts
In some embodiments, the methods may be implemented in one or more processing devices (e.g., a digital processor, an analog processor, a digital circuit designed to process information, an analog circuit designed to process information, a state machine, and/or other mechanisms for electronically processing information). The processing devices may include one or more devices executing some or all of the operations of the methods in response to instructions stored electronically on an electronic storage medium. The processing devices may include one or more devices configured through hardware, firmware, and/or software to be specifically designed for execution of one or more of the operations of the methods.
In an operation 602, a request for client information may be obtained (e.g., via a user input provided at a user interface, from a user device at which the user interface is presented, etc.). As an example, the request for client information may comprise a request for risk profile information or other client information. Operation 602 may be performed by a user interface subsystem that is the same as or similar to user interface subsystem 112, in accordance with one or more embodiments.
In an operation 604, a first risk value may be determined based on first account risk profile information, and a second risk value may be determined based on second account risk profile information. As an example, the first account risk profile information may be associated with first individual accounts, and the second account risk profile information may be associated with second individual accounts. The first individual accounts may be associated with a first client, and the second individual accounts may be associated with a second client. Operation 604 may be performed by a service subsystem that is the same as or similar to service subsystem 114, in accordance with one or more embodiments.
In some embodiments, with respect to operation 604, the first risk profile value may be a first client risk profile value, and the second risk profile value may be a second client risk profile value. Determination of the first risk profile value may comprise using first account risk values of the first individual accounts to determine the first client risk profile value. Determination of the second risk profile value may comprise using second account risk values of the second individual accounts to determine the second client risk profile value.
In some embodiments, with respect to operation 604, the first risk profile value may be a first household risk profile value, and the second risk profile value may be a second household risk profile value. Determination of the first risk profile value may comprise using first account risk values of the first individual accounts of individuals associated with a first household to determine the first household risk profile value. Determination of the second risk profile value may comprise using second account risk values of the second individual accounts of individuals associated with a second household to determine the second household risk profile value.
In an operation 606, the first risk profile value may be caused to be presented on a first view of a user interface responsive to the client information request. As an example, the first view may be provided on the user interface prior to a second view (e.g., on which the second risk profile value or other information may be caused to be presented). Operation 606 may be performed by a presentation subsystem that is the same as or similar to presentation subsystem 118, in accordance with one or more embodiments.
In an operation 608, the second risk profile value may be caused to be stored in cache memory responsive to the client information request. As an example, the second risk profile value may be caused to be stored while the first view is provided on the user interface and prior to the second view being provided on the user interface. Operation 608 may be performed by a storage subsystem that is the same as or similar to storage subsystem 116, in accordance with one or more embodiments.
In an operation 610, the second risk profile value may be obtained from the cache memory and caused to be presented on the second view of the user interface. As an example, the second risk profile value may be obtained and caused to be presented on the second view responsive to an indication to provide the second view on the user interface. Operation 610 may be performed by a presentation subsystem that is the same as or similar to presentation subsystem 118, in accordance with one or more embodiments.
In some embodiments, with respect to operation 610, the indication to provide the second view on the user interface may comprise a user input indicating a request for the second view, and the second risk profile value may be obtained from the cache memory and caused to be presented on the second view of the user interface responsive to the user input indicating the second view request. In some embodiments, the indication to provide the second view on the user interface may comprise an automated script indicating a request for the second view, and the second risk profile value may be obtained from the cache memory and caused to be presented on the second view of the user interface responsive to the automated script indicating the second view request.
In an operation 702, a request for client information may be obtained via a user interface from a user device at which the user interface is presented. As an example, the request for client information may comprise a request for trading information or other client information. Operation 702 may be performed by a user interface subsystem that is the same as or similar to user interface subsystem 112, in accordance with one or more embodiments.
In an operation 704, trading information regarding executed trades associated with a client may be obtained responsive to the client information request. Operation 704 may be performed by a service subsystem that is the same as or similar to service subsystem 114, in accordance with one or more embodiments.
In an operation 706, a first view of the user interface may be caused to be provided on the user interface. Operation 706 may be performed by a presentation subsystem that is the same as or similar to presentation subsystem 118, in accordance with one or more embodiments.
In an operation 708, a trade count associated with the client may be determined based on the trading information. As an example, the trade count may be determined such that one or more executed trades are excluded from the trade count based on one or more predetermined criteria. Operation 708 may be performed by a service subsystem that is the same as or similar to service subsystem 114, in accordance with one or more embodiments.
In an operation 710, the trade count may be caused to be stored in cache memory while the first view is provided on the user interface and prior to a second view being provided on the user interface. Operation 710 may be performed by a storage subsystem that is the same as or similar to storage subsystem 116, in accordance with one or more embodiments.
In an operation 712, the trade count may be obtained from the cache memory and caused to be presented on the second view of the user interface. As an example, the trade count may be obtained and caused to be presented on the second view of the user interface responsive to an indication to provide the second view on the user interface. Operation 712 may be performed by a presentation subsystem that is the same as or similar to presentation subsystem 118, in accordance with one or more embodiments.
In some embodiments, with respect to operation 712, the indication to provide the second view on the user interface may comprise a user input indicating a request for the second view, and the trade count may be obtained from the cache memory and caused to be presented on the second view of the user interface responsive to the user input indicating the second view request. In some embodiments, the indication to provide the second view on the user interface may comprise an automated script indicating a request for the second view, and the trade count may be obtained from the cache memory and caused to be presented on the second view of the user interface responsive to the automated script indicating the second view request.
In some embodiments, the various computers and subsystems illustrated in
The electronic storages may include non-transitory storage media that electronically stores information. The electronic storage media of the electronic storages may include one or both of system storage that is provided integrally (e.g., substantially non-removable) with servers or client computing platforms or removable storage that is removably connectable to the servers or client computing platforms via, for example, a port (e.g., a USB port, a firewire port, etc.) or a drive (e.g., a disk drive, etc.). The electronic storages may include one or more of optically readable storage media (e.g., optical disks, etc.), magnetically readable storage media (e.g., magnetic tape, magnetic hard drive, floppy drive, etc.), electrical charge-based storage media (e.g., EEPROM, RAM, etc.), solid-state storage media (e.g., flash drive, etc.), and/or other electronically readable storage media. The electronic storages may include one or more virtual storage resources (e.g., cloud storage, a virtual private network, and/or other virtual storage resources). The electronic storage may store software algorithms, information determined by the processors, information received from servers, information received from client computing platforms, or other information that enables the functionality as described herein.
The processors may be programmed to provide information processing capabilities in the computing devices. As such, the processors may include one or more of a digital processor, an analog processor, a digital circuit designed to process information, an analog circuit designed to process information, a state machine, and/or other mechanisms for electronically processing information. In some embodiments, the processors may include a plurality of processing units. These processing units may be physically located within the same device, or the processors may represent processing functionality of a plurality of devices operating in coordination. The processors may be programmed to execute computer program instructions to perform functions described herein of subsystems 112-118 or other subsystems. The processors may be programmed to execute computer program instructions by software; hardware; firmware; some combination of software, hardware, or firmware; and/or other mechanisms for configuring processing capabilities on the processors.
It should be appreciated that the description of the functionality provided by the different subsystems 112-118 described herein is for illustrative purposes, and is not intended to be limiting, as any of subsystems 112-118 may provide more or less functionality than is described. For example, one or more of subsystems 112-118 may be eliminated, and some or all of its functionality may be provided by other ones of subsystems 112-118. As another example, additional subsystems may be programmed to perform some or all of the functionality attributed herein to one of subsystems 112-118.
Although the present invention has been described in detail for the purpose of illustration based on what is currently considered to be the most practical and preferred embodiments, it is to be understood that such detail is solely for that purpose and that the invention is not limited to the disclosed embodiments, but, on the contrary, is intended to cover modifications and equivalent arrangements that are within the scope of the appended claims. For example, it is to be understood that the present invention contemplates that, to the extent possible, one or more features of any embodiment can be combined with one or more features of any other embodiment.