Patent ID: 12243099

DETAILED DESCRIPTION

As has been mentioned, the present description is about computer systems, storage media that may store programs, and methods. Embodiments are now described in more detail.

FIG.1is diagram showing sample aspects of embodiments. A thick line115separatesFIG.1, although not completely or rigorously, into a top portion116and a bottom portion117. The top portion116emphasizes mostly entities, components, their relationships, and their interactions, while the bottom portion117emphasizes mostly processing of data that takes place often within one or more of the components in the top portion116.

In the top portion116, a sample computer system195according to embodiments is shown. The computer system195has one or more processors194and a memory130. The memory130stores programs131and data138. Additional implementation details for the computer system195are given later in this document. The computer system195may optionally be implemented as part of an online software platform (OSP)198. The OSP can be configured to perform one or more predefined services. Such services can be searches, determinations, computations, verifications, notifications, the transmission of specialized information, including data that effectuates payments, the generation and transmission of documents, the online accessing other systems to effect registrations, and so on, including what is described in this document.

A user192may be standalone. The user192may use a computer system190that has a screen191. Additional sample implementation details for the computer system190are given later in this document. In embodiments, the user192and the computer system190are considered part of a primary entity193, which can be referred to also merely as entity. In such instances, the user192can be an agent of the entity193, and even within a physical site of the entity193, although that is not necessary. The entity193can be a client the OSP198.

The computer system190may access the computer system195via a communications network188, such as the internet. Such accessing can be performed, for instance, by the computer system190and the computer system195exchanging requests and responses with each other. Additionally, downloading may be permitted from one of these two computer systems to the other, and so on. In such embodiments, the computer system190can be considered to be a remote client device, at least from the perspective of the computer system195.

In embodiments, the computer system195receives one or more datasets. A sample received first dataset161is shown below the line115. The dataset161may be received by the computer system195in a number of ways. In some embodiments, one or more requests may be received by the computer system195via a network. In this example, a request184is received by the computer system195via the network188. The request184has been transmitted by the remote computer system190, which is a remote client device. The received one or more requests can carry payloads. In this example, the request184carries a payload134. In such embodiments, the one or more payloads may be parsed by the computer system to extract the dataset. In this example, the payload134can be parsed by the computer system195to extract the dataset161. In this example the single payload134encodes the entire dataset161, but that is not required. In fact a dataset can be received from the payloads of multiple requests. In such cases, a single payload may encode only a portion of the dataset. And, of course, the payload of a single request may encode multiple datasets. Additional computers may be involved with the network188, some beyond the control of the user192or OSP198, and some within such control.

The first dataset161has first values, which can be numerical, alphanumeric, Boolean, and so on, as needed for what the values characterize. One or more of these first values of the dataset161may characterize an attribute of the entity193, as indicated by an arrow199. (It should be noted that the arrow199describes a correspondence, but not the journey of data in becoming the received dataset161.)

The first values of the dataset161include a first polarity value POS, which stands for “positive”. The polarity value is one of two opposite possible values and, accordingly, the opposite polarity value could be NEG for “negative”. Beyond being opposite, it does not matter how the polarity values are designated, for example one could be “true” the other “false”, one “zero” and the other “one”, and so on. These first values also include a certificate code value PR, which identifies a certain certificate among a plurality of possible certificates. These first values further include a first size number S1that identifies a number of units of the certain certificate indicated by the certificate code value PR. These first values additionally include at least one first range value R1, although such ranges may be defined more easily with two or more values, such as a beginning and an end, or a single number and an indication that the number is a maximum or a minimum. In any event, the first range value R1, alone or together with another first value, may define a first numerical acceptable range for matching the first dataset161.

There can be more first values that are not shown, as indicated by the horizontal dot-dot-dot in the dataset161. For example, one value could be for an identity of the first dataset161, so as to differentiate it from other such datasets. Another value may be an entity value for the user192of the first remote client device190. In such instances, locus information of the user192can be determined from the entity value. For example, the locus information can be encoded in the entity value. Or, the entity value can encode an identity of the user, such as by a client serial number, a client record number and so on. In such a case, a stored record of the identity of the user may contain the locus information, as part of data138. In such a case, the computer system195may identify the stored record from the entity value, and thus look up the locus information from the identified record. The locus information may reveal applicable portions of the location of the user192.

In embodiments, it can be established, by the computer system195, that matching has been achieved between the first dataset161and a second dataset162. For the matching to have taken place, the second dataset162must be compatible with the first dataset161. Compatibility may be determined by whether or not compatibility criteria are met between the first values of the first dataset161and the second values of the second dataset162. In the example ofFIG.1, the matching is shown by a wide vertical arrow, and has produced a matched values set165. In particular, the second dataset162can have second values, which can be analogous to the first values. In particular, the second values may including a second polarity value NEG, which stands for “negative”, and is opposite to the first polarity value POS of the first dataset161. In addition, the second dataset162may have a certificate code value PR that identifies the certain certificate code that is identified by the certificate code value PR of the first dataset161. Plus the second dataset162may have a second size number S2that identifies a number of units of the certain certificate. And, the second dataset162may have at least one second range value R2that defines a second numerical acceptable range for matching the second dataset162. As with the first dataset161, the second range value R2may do this alone or together with another second value.

The matching of datasets, and the creation of the set165of matched values, according to embodiments are now described in more detail.FIG.2is a flowchart212for a matching method, for determining whether the second dataset162is compatible with the first dataset161. Many of the operations of flowchart212are shown decorated with the first values and the second values of the first dataset161and the second dataset162respectively.

According to an operation271, these two datasets are tentatively matched based on their opposite polarity values. Indeed, first value241is POS, while second value251is the opposite NEG.

According to another operation272, these two datasets are tentatively further matched based on their certificate code values being the same. Indeed, first value242is PR, and second value252is also PR. As such, for the example ofFIG.2, the matched value set would include PR.

One more operation274looks for a strike number that is within both the first numerical acceptable range and the second numerical acceptable range. For this, first value244R1and second value254R2are consulted. Looking for such a strike number is shown graphically with a brief reference toFIG.1, where a horizontal axis108is used. The first range RG1and the second range RG2are plotted with reference to the axis108. They do overlap, and a strike number SX is found within the overlapping range, and added to the set165of matched values, along with the common certificate code value PR. In this example, the strike number SX is chosen to be at the middle of the overlapping range, although that is not necessary.

Returning toFIG.2, according to one more operation275of the flowchart212, it is determined whether or not a compatible strike number was found. If the answer is no, then according to a next operation276, a different dataset pairing is tried, without success in matching the first dataset161and the second dataset162.

If at the operation275the answer is yes (as it was inFIG.1) then, according to a further operation273, a matched size number MS can be determined. For this, first value243S1and second value253S2are consulted. Seen briefly inFIG.1, the matched size number MS has been added to the set165of matched values.

Returning toFIG.2, in embodiments, the matched size number MS is chosen to be the smaller of the two numbers S1, S2. For instance, the first size number S1can be larger than the second size number S2, and the matched size number MS could equal the second size number S2, or vice versa.

Then, according to one more operation277of the flowchart212, the first dataset261and the second dataset262become matched, which can be designated as is suitable. Then, according to another operation278, a first resource may be determined, as described later in this document.

Returning toFIG.1, it will be observed that the matching has been performed at a strike number SX that is within both the first acceptable range and the second acceptable range. Further, the matching has been performed for a matched size number MS of units that is not larger than the first size number S1and the second size number S2.

In embodiments, one or more resources179may be involved, after being determined. For instance, a first resource for the first dataset161may be input responsive to establishing the matching. Another possible resource is an estimated first resource for the first dataset161. The estimated first resource can be determined or computed responsive to receiving the first dataset, even before establishing the matching. In some embodiments, the estimated first resource serves as an earlier-provided estimate of the first resource, as it is determined before the matching. Of course, it may turn out that the inputted first resource is the same as the estimated first resource, for example in instances where the matched size number equals the first size number.

The first resource and the estimated second resource can have a numerical non-zero value, or even a zero value if there is an override by a precedence rule, as described below. Similarly, and as will be seen below, there can also be a second resource and an estimated second resource for the second dataset162.

In some embodiments, these resources are determined or computed by the computer system195, natively. As described later in more detail, in other embodiments these resources are determined or computed by a specialist facility. The specialist facility can be part of the OSP198, or part of a remote Online Assisting Platform (OAP) that offers the determination or computation as a service to the OSP198.

Whether provided natively or from a specialist facility, the one or more resources can be determined or computed from digital rules170, and also from one or more of the first values of the first dataset161, the second values of the second dataset162, or from the matched values of the set165.

In embodiments, one of the resources179may be determined for the first or the second dataset, by the computer system applying a certain digital main rule. In the example ofFIG.1, one of the resources179is determined for the dataset161, by the computer system195applying the certain M_RULE6176, as indicated by the arrow178.

The following description is for native determination or computation of resources179. The same description applies also to a specialist facility that provides these as a service, whether part of the OSP198, or part of an OAP.

In embodiments, stored digital main rules may be accessed by the computer system195. These digital main rules can be also simply called main rules, or just rules, depending on context. These digital main rules are digital in that they are implemented for use by software. For example these rules may be implemented within programs131and data138. The data portion may be alternately implemented in memories in other places, which can be accessed via the network188.

In this example, three sample digital main rules are shown explicitly, namely M_RULE5175, M_RULE6176, and M_RULE7177. These are part of digital rules170, which also include two sample digital precedence rules P_RULE2172and P_RULE3173. The digital rules170may include additional rules, as suggested by the vertical dot-dot-dots.

In embodiments, a certain one of the digital main rules may be identified from among the accessed stored rules by the computer system195. In particular, values of the dataset161can be tested, according to arrows171, against logical conditions of the digital main rules, as described later in this document. In this example, the certain M_RULE6176is thus identified, which is indicated also by the beginning of an arrow178that is described in more detail later in this document. Identifying may be performed in a number of ways, and depending on how the digital main rules are implemented. An example is now described.

Referring now also toFIG.3, some of the digital main rules of digital rules170are repeated fromFIG.1in more detail. In addition, according to an arrow370, these digital main rules are shown juxtaposed with a flowchart portion300. In embodiments, some of the digital main rules can be expressed in the form of a logical “if-then” statement, such as: “if P then Q”. In such statements, the “if” part, represented by the “P”, is called the condition, and the “then” part, represented by the “Q”, is called the consequent. Therefore, at least some of the digital main rules include respective conditions and respective consequents associated with the respective conditions. And, for a certain digital main rule, if its certain condition P is met, its certain consequent Q is what happens or becomes applied. In this example, the digital main rules M_RULE5175, M_RULE6176, and M_RULE7177ofFIG.1, include respective conditions CN5, CN6, CN7, and respective consequents CT5, CT6, CT7that are associated with the respective conditions CN5, CN6, CN7.

In embodiments, therefore, identifying is performed by recognizing, by the computer system195, that a certain condition of a certain one of the accessed digital main rules is met by the least one of the first values or the second values. An example is shown by flowchart portion300ofFIG.3. According to successive decision diamonds385,386,387, it is inquired whether or not conditions CN5, CN6, CN7are met, respectively. If the answer is NO, also shown by a cross-out mark, then execution may proceed to the next diamond. If the answer is YES, also shown by a check mark, then, according to operations395,396,397, it is further determined that the respective consequents CT5, CT6, CT7are to be applied, and then execution may proceed to the next diamond in the flowchart portion. A consequent that is to be applied could be, for example, flagged as TRUE.

From what was mentioned in connection withFIG.1, the certain M_RULE6176was thus identified. With reference toFIG.3, the identification may have happened at operation386of the flowchart portion300, at which time it was recognized that condition CN6was met by a value of the dataset161. This made: the condition CN6be the certain condition, the digital main rule176be the certain digital main rule, and the consequent CT6be the certain consequent of the certain digital main rule. Therefore, according to operation396, consequent CT6is what happens or becomes applied, as described elsewhere in this document. In embodiments, therefore one of the resources179is determined for the dataset161, by the computer system195applying the certain M_RULE6176, and in particular its certain consequent CT6. In fact, sometimes applying the consequent is more simply stated as “applying the rule”.

A number of examples are possible. For instance, the certain condition could define a boundary of a region within a space. The region could be geometric, and be within a larger space. The region could be geographic, within the space of a city, a state, a country, a continent or the earth. The boundary could be defined in terms of numbers according to a coordinate system within the space. In the example of geography, the boundary could be defined in terms of groups of longitude and latitude coordinates. In such embodiments, the certain condition could be met responsive to the locus, determined from the entity value, being within the region instead of outside the region. For instance, the locus information could be one or more numbers or an address, or longitude and latitude. The condition can be met depending on how the one or more numbers compare with the boundary. For example, the comparison may reveal that the location is within the region instead of outside the region. The comparison can be made by rendering the locus information in units comparable to those of the boundary. For example, the locus information could be an address that is rendered into longitude and latitude coordinates, and so on.

The above embodiments are only examples, and not limiting. For instance, the example ofFIG.3suggests that there is a 1:1 correspondence of the conditions with the associated consequents, but that is not necessary. In fact, a single consequent may be associated with two or more conditions, and two or more consequents may be associated with a single condition. Of course, all such can be shown as additional rules, with groups of them having the same condition or consequent.

For another instance, once it is determined that a consequent is to be applied, execution may even exit the flowchart portion300. Or, it may be determined that more than one of the digital main rules are to be applied.

Where more than one of the digital main rules are found that could be applied, there are additional possibilities. For instance, the computer system195ofFIG.1may further access at least one stored digital precedence rule, such as P_RULE2172or P_RULE3173. Accordingly, the certain digital main rule may be thus identified also from the digital precedence rule. In particular, the digital precedence rule may arbitrate which one or more of the digital main rules is to be applied. To continue the previous example, if a value of the dataset161that characterizes a location, and the location is within multiple overlapping regions according to multiple rules, the digital precedence rule may decide that all of them are to be applied, or less than all of them are to be applied. Equivalent embodiments are also possible, where digital precedence rules are applied first to limit the iterative search of the flowchart portion300, so as to test the applicability of fewer than all the rules according to arrows171.

Accordingly, any one of the resource(s)179may be determined in a number of ways. For example, the certain consequent can be thus applied to one of the first values of the first dataset161, the second values of the second dataset162, or the matched values of the set165. For instance, the certain consequent may indicate a percentage, directly, or the percentage can be stored in a place indicated by the certain rule, and so on. In addition, one of the resources179can be determined by multiplying the percentage with the first size number, the second size number, the matched size number, the strike price, a combination of them such as a product of them, and so on. As such, one of these resources179can have a non-integer value.

In embodiments, data of digital main rules are stored in the form of at least one look-up table. As such, one or more look-up tables may implement digital rules. Sample such tables are now shown, for various embodiments.

FIG.4Ashows a look-up table401that provides classifications of certificate codes. A column411shows various sample certificate codes, and column412shows their sample classifications as certificate types.

FIG.4Bshows a look-up table470that implements digital main rules according to embodiments, using the table401. A column414shows various certificate types, which may have been derived from the table401in response to a certificate code. A column415shows polarities of various datasets. Taken together, columns414and415show conditions, while a column419shows corresponding consequents. These consequents are percentages that are to be applied to a product of the matched size number times MS the strike number SX ofFIG.1.

For embodiments, the certificate code value of a dataset, looked up from column411may be first categorized according to column412. Then one or more resources can be determined from the look-up table470.

In embodiments, the location of user192can make a difference. For example, the percentages may be different depending on locus information of the user192. An example is now described.

FIG.5shows a look-up table570that implements digital main rules according to embodiments. A column514shows possible locus information for user192. A column515shows polarities of various datasets. Taken together, columns514and515show conditions, while a column519shows corresponding consequents. These consequents are percentages that are to be applied to a product of the matched size number times the strike number. In this case, the recognizing of which rule and which consequent to apply is performed responsive to the certain condition of the rule, i.e. the exact row, being met by the locus information of the user192.

In embodiments, one or more notifications can be caused to be transmitted by the computer system. In the example ofFIG.1, such a notification136can be caused to be transmitted by the computer system195. The transmission can be responsive to inputting the first resource, or other events. For example, the transmission can be responsive to computing the estimated first resource, in which case the notification can be called a preliminary notification.

One such notification136can be about an aspect of the resource(s)179. In particular, the notification136may inform about the aspect of the resource179, namely that it has been determined, where it can be found, what it is or a statistic derived from it, and so on. In some embodiments, the notification includes the certificate code value. In some embodiments, the notification includes a sum of the resource plus a product of the strike number times the matched size number. The shape of the resource(s)179is shown as not entirely within the shape of the notification136because, in some instances, only an aspect of the resource(s)179is communicated by the notification136.

One or more such notifications can be transmitted to an output device or another device. The output device may be the screen of a local user or a remote user. The notification136may thus cause a desired image to appear on the screen, such as within a Graphical User Interface (GUI) and so on.

The other device can be the remote client device, from which the dataset161was received, as in the example ofFIG.1. In particular, the computer system195causes the notification136to be communicated by being encoded as a payload137, which is carried by a response187. The response187may be transmitted via the network188responsive to the received request184. The response187may be transmitted to the computer system190, and so on. As such, the other device can be the computer system190, or the screen191of the user192, and so on. In this example the single payload137encodes the entire notification136, but that is not required, similarly with what is written above about encoding datasets in payloads.

In some instances, the other device is a designated device that is not controlled by the user192of the first remote client device, or by a user of the computer system195. In other words, that designated device may belong to an Other Entity159that is entirely unrelated to the entity193and to the OSP198. For instance, a formal notification about an aspect of the first resource can be caused to be transmitted to that designated device, the formal notification distinct from the preliminary notification and other notifications. Or, the computer system195can further create a document that includes an aspect of one of the resources, and cause the document to be transmitted via the network to that designated device.

FIG.6shows a flowchart600for describing methods according to embodiments. According to a first operation610, a first dataset may be received by a computer system of an online software platform (OSP) via a network from a first remote client device. Such a first dataset may be, for example, the above-described dataset161, received from a remote client device190.

According to another, optional operation620, an estimated first resource may be computed, by the computer system, for the first dataset. Operation620may be performed responsive to receiving the first dataset of operation610. Such an estimated first resource is described elsewhere in this document, also with reference to resource(s)179.

According to another, optional operation630, a preliminary notification can be caused to be transmitted, by the computer system, to the first remote client device. Sample such notifications136are described elsewhere in this document.

According to another, optional operation640, a confirmation of the first dataset may be received by the computer system from the first remote client device. In embodiments, the user192will enter the confirmation in screen191upon receiving the preliminary notification, and assenting to it.

According to another operation650, the first dataset may be processed by the computer system, and responsive to the receiving the confirmation of operation640. The processing may be so as to match the first dataset with another dataset that is compatible with the first dataset. As will be seen, processing may be to determine whether the matching will be performed internally within the computer system, or externally by exporting the first dataset to another entity for getting it matched.

According to another operation660, it may be established, by the computer system and responsive to the processing of operation650, that matching has been achieved between the first dataset and a second dataset. Such a second dataset can be dataset162, which is compatible with the first dataset161, per the above. Different ways of establishing per the operation660are described later in this document.

According to another operation670, a first resource may be input, by the computer system, for the first dataset. The first resource may be input responsive to establishing the matching of operation660. Such a first resource is described elsewhere in this document, also with reference to resource(s)179. As seen elsewhere in this document, the first resource may be input after it is determined natively within the computer system, or imported. If determined natively the first resource may be inputted, for example in internal memory registers, responsive to the first resource being determined by the computer system.

According to another operation680, a first notification can be caused to be transmitted by the computer system to the first remote client device via the network. The first notification can be caused to be transmitted responsive to the inputting of operation670. Sample such notifications136are described elsewhere in this document.

According to another, optional operation690, a formal notification can be caused to be transmitted by the computer system via the network to a designated device of an unrelated entity, as described above. Sample such notifications136are described elsewhere in this document. The formal notification can be an email, a text message, and so on. It can even be a document that is created, and which includes an aspect of the first resource, and is caused to be transmitted to the designated device.

In some embodiments, operation690takes place only if the user192has enabled it from settings. Examples are now described.

FIG.7shows a flowchart700for describing methods according to embodiments. According to a first operation710, a user interface can be caused to present an option to a user of a first remote client device to input a preference setting.

Referring briefly toFIG.8, a user interface (UI)822is shown, which can be caused by the computer system195to be presented on the screen191. The UI822enables the user192to input two preference settings, by presenting options as boxes that can be checked. As can be seen, boxes871,872have been checked, for shown preferences. The last line also presents a link with an option for follow-up, potentially presenting more information to the user and giving them further options to designate or confirm the other entity. In embodiments, the user of the first remote client device may designate the designated device, and so on. In other embodiments, the computer system195may designate the designated device, for example by designating the entity whose device is the designated device, and so on.

Returning toFIG.7, according to another, optional operation720, a preference setting may be received from the first remote client device, the preference setting inputted from the presented option.

According to another, optional operation730, the inputted preference setting is stored. Storing can be in memory138.

According to another, optional operation740, it may be determined whether or not the inputted preference setting has been stored. If yes, then the previously mentioned operation690is indeed performed. If no, the process ends at operation750without performing the operation690. In other words, in such embodiments the formal notification or the document is caused to be transmitted to the designated device per the operation690only if the inputted preference setting has been stored.

As already mentioned, resources may be determined or computed for either a single unmatched dataset161or162, or for a matched values set after matching. In some embodiments, the determination of one or more of the resource(s)179is outsourced. Examples are now described.

FIG.9is a diagram of a sample arrangement900, in which an OSP998imports a determination of a resource from an Online Assisting Platform (OAP)940that is a specialist facility. The OAP940has at least one or more server computers941that implement a service engine942. The OAP940also has a memory970, which may be implemented as a database, and stores digital resource rules. The service engine942may query the memory970for determining a resource. Querying can be to fetch digital rules and rates, and the memory970can respond by supplying these rules and rates. In addition, the OAP940may have additional memory (not shown), for storing data of transactions and resources computed or determined, in the event that reporting of resources is to happen long after the fact, e.g. periodically only.

The OSP998has a computer system995, similarly with the computer system195of OSP198. In this example, the OSP998also has a memory915, which can be implemented as a database. The memory915may store entity data, which can be data of its clients such as entity193and user192, e.g. by storing entity values.

The computer system995has a dataset processing module912, which may perform operation650ofFIG.6. In this example, the dataset processing module912is shown receiving a first dataset961for this purpose. The dataset processing module912includes a dataset matching module901, and a dataset routing module902, whose operation is described later in this document.

The computer system995also has a resource(s) determination module914. In general, the module914determines or computes one or more resources979, either internally or by outsourcing the task. The resource(s)979, which can be as the resource(s)179, are thus available to the remainder of the computer system995. The OSP998optionally also has a memory971, which may be implemented as a database, and stores digital resource rules at least in their approximate form. As such, module914may query memory971when only an approximate estimate is needed, such as an estimated first resource.

In this example, module914outsources the determination to OAP940via an OSP application (“app”)919, for which examples are given later in this document. Briefly, the OSP application919transmits a request971via a network988, which can be as network188. The request971includes request data972, which can be a payload and is also known as the request object. In some embodiments, the request971includes at least one of the first values of the first dataset961, or at least one of the second values of a second dataset, if matching has been performed. The request971requests the determination of a resource. The request971is received by the service engine942, which in turn determines the requested resource responsive to the request. Then the server computer(s)941send a response974responsive to the received request971. The response974includes response data975, which are the requested resource, or an aspect of it, and so on. For example, the aspect can be one of the percentage values of column519, or the resource itself can be that percentage value multiplied by another number.

FIG.10shows a flowchart1000for describing methods according to embodiments for the arrangement900. According to an operation1040, a request971may be transmitted to an online assisting platform940by a computer system995via a network188. According to another operation1050, a response974may be received by the computer system995responsive to the request971from the online assisting platform940. An aspect of the requested first resource may being inputted from the received response974.

Returning toFIG.9, the OSP application919maybe implemented in a number of ways. Two examples are now described.

FIG.11is a diagram of a sample configuration according to embodiments for enabling a request and a response shown inFIG.9. The OSP application919is implemented by an OSP application1119that queries a service engine1142for the determination of a resource. The service engine1142can be as service engine942, consult digital resource rules970, and so on.

InFIG.11, a service engine connector1147is a plugin that sits on top of the OSP application1119. The connector1147is able to fetch (1172) and push (1174), in real time, datasets or portions of them, as needed for transmission. For every request, the connector1147fetches (1172) the required details, forms the request object and sends or pushes (1174) it to the service engine1142via a service call. The service engine1142determines the requested resource, and responds (1176) to the connector1147. The connector1147reads the response forwards (1178) the aspect of the resource to the OSP app1119.

FIG.12is a diagram of another sample configuration according to embodiments for enabling a request and a response shown inFIG.9. The OSP application919is implemented by an OSP application1219that queries a service engine1242for the determination of a resource. The service engine1242can be as service engine942, consult digital resource rules970, and so on.

FIG.12provides an alternative flow if the OSP998does not want to use a Connector, but prefers to directly consume a REST API from their OSP app1219. REST or RESTful (Representational State Transfer) API (Application Programming Interface) design is designed to take advantage of existing protocols. While REST can be used over nearly any protocol, it usually takes advantage of HTTP (Hyper Text Transfer Protocol) when used for Web APIs.

Accordingly, inFIG.12, a service engine REST API1248is provided. The OSP application1219fetches internally the required data, forms the request object, and sends (1273) it to the REST API1248. In turn, the REST API1248talks (1274) in background to the service engine1242. The service engine1242determines the requested resource, and sends (1276) it back to the REST API1248. In turn, the REST API1248sends (1277) the response to OSP's application to the OSP app1219.

Returning toFIG.9, the dataset processing module912may process the first dataset in different ways, regardless of whether or not it outsources the determination of the resources. Embodiments are now described.

In some embodiments multiple datasets are received, and there is an attempt to match them with each other first. In particular, beyond the first dataset, additional datasets may be received, by the computer system195,995via the network188,988. In such embodiments, the processing of operation650includes selecting the second dataset162from the additional datasets, responsive to the second dataset meeting one or more compatibility criteria. A sample determination of that was shown inFIG.2of this document. Moreover, in such embodiments, the establishing of operation660is performed responsive to selecting the second dataset from the additional datasets. In such embodiments, what is done in the context of the first dataset may also happen for the second dataset. An example is now described.

FIG.13is a diagram of a sample arrangement1300, where an OSP1398matches datasets internally. The OSP1398can be as the OSP198, and has a computer system1395as the computer system195. The OSP1398may also have a memory1315, which can be implemented as the memory915, storing similar types of data.

The computer system1395may have a resource(s) determination module1314similar to the resource(s) determination module914. Optionally the computer system1395also has an OSP application (“app”)1319, which can be as described for the OSP app919, for requesting remote determinations of resources. Optionally the computer system1395further has a memory1370, similar to memory970or971for storing digital rules locally.

The computer system1395may also have a dataset processing module1312, similar to what was described for the dataset processing module912. The dataset processing module1312has a dataset matching module1301and a dataset routing module1302.

The OSP1398has an Entity A′1320as a client. Entity A′ may have a user (not shown). A client computer A′1321is associated with the Entity A′1320and/or its user. The OSP1398also has an Entity B′1330as a client. Entity B′ may have a user (not shown). A client computer B′1331is associated with the Entity B′1330and/or its user.

In the example ofFIG.13, a first dataset1361is received from the first remote client computer A′1321. Upon receipt, an estimated first resource1374may be determined for Entity A′1320and/or its user per operation620, and a first preliminary notification1324may be sent to client computer A′1321, e.g. per operation630.

In addition, a second dataset1362is received from second remote client computer B′1331. Upon receipt, an estimated second resource1364may be determined for Entity B′1330and/or its user per operation620, and a second preliminary notification1334may be sent to client computer B′1331, e.g. per operation630.

The two received datasets1361,1362are processed by module1312for matching, e.g. per operation650. In the example ofFIG.13, the two received datasets1361,1362are thus sent to the dataset matching module1301, where they are found compatible and are successfully matched, for example per method212.

Once it has been established that the two received datasets1361,1362have been matched, e.g. per operation660, a first resource1378is input for the first dataset1361, and a first notification1328is caused to be transmitted to the client computer A′1321.

And, in some embodiments, an Other Entity1359-1may be involved, which has and controls a designated device1381. As such, the designated device1381is not controlled by a user of the first remote client device, namely anyone in the Entity A′1320that controls the client computer A′1321. In addition, the designated device1381is not controlled by a user of the computer system1395, namely anyone of the OSP1398that controls the computer system1395. The designated device1381may be a computer system as any of the computer systems described in this document. The computer system1395may cause a formal notification1329to be transmitted via the network to the designated device1381, the formal notification1329being about an aspect1379of the first resource1378.

And, again, what is done in the context of the first dataset1361may also happen for the second dataset1362. For example, a second resource1368may be input by the computer system1395for the second dataset1362, the second resource1368having a numerical value that is determined also from the strike price. In addition, the computer system1395may cause a second notification1338to be transmitted about an aspect of the second resource1368to the second remote client device, namely client computer B′1331. Furthermore, the computer system1395may cause a formal notification1339to be transmitted about an aspect1369of the second resource1368to a designated device1382that is controlled by an Other Entity1359-2, and not by anyone of the OSP1398that controls the computer system1395, or by a user of the second remote client device, namely anyone in Entity B′1330that controls the client computer B′1331. The Other Entity1359-2can be the same or different than the Other Entity1359-1.

The second resource may be determined in the same ways as the first resource, for example by the computer system itself natively, or by requesting the resource determination from another system. The second resource may equal the first resource, and so on.

Sometimes the computer system195,995,1395matches the first dataset161,961,1361by outsourcing it. This may be performed automatically, or only upon failing to match the first dataset with another, compatible dataset for a certain time. In that case, the computer system995,1395uses its dataset routing module902,1302. An example is now described.

FIG.14is a diagram of a sample arrangement1400, where the OSP1398ofFIG.13matches a received dataset by outsourcing it. In fact, inFIG.14the OSP1398has the same Entity A′1320as a client, but not the Entity B′1330.

In the example ofFIG.14, a first dataset1461is received from the first remote client computer A′1321. Upon receipt, an estimated first resource1474may be determined for the Entity A′1420and/or its user. Accordingly, a first preliminary notification1424may be sent to client computer A′1321.

The received dataset1461is processed by module1312for matching, e.g. per operation650. In the example ofFIG.14, the received dataset1461is thus sent to the dataset routing module1302.

In some embodiments, the processing of operation650includes forwarding, by the computer system195,995,1395via the network188, an aspect of the first dataset1461to an online dataset matching module (ODMM)1460. The forwarding, in the example ofFIG.14, is performed by the dataset routing module1302. In this example, the forwarded aspect1466may contain enough of the values of the received dataset1461for purposes of enabling the ODMM to match, but not necessarily other values, and so on.

In such embodiments, the matching is performed by the ODMM1460. In particular, the ODMM1460may receive a forwarded aspect of a second dataset (not shown) from another computer system (not shown), and then match them. Then, in response to the forwarding, the ODMM1460may transmit, and the computer system1395may receive, an aspect1463of the second dataset as part of a match notification1468. In such embodiments, the establishing of operation660may be performed by the computer system195,995,1395responsive to receiving the aspect1463of second dataset.

Once it has been established that the received dataset1361has been matched, then a first resource1478is input for the first dataset1461, and a first notification1428is caused to be transmitted to the client computer A′1321.

It will be further recognized that, while the methods of flowchart600may be performed by the computer systems195,995and1395, they may also be performed by a computer system1495of ODMM1460. This applies, as the forwarded aspect1466of the first dataset1461can be considered to be, for purposes of the computer system1495, a first dataset received remotely, the computer system1395can be considered to be a remote client device from the point of view of the computer system1495, and so on. As such, the ODMM1460may determine or compute resources, return them, etc.

And, in some embodiments, the same Other Entity1359-1may be involved. The computer system1395may cause a formal notification1429to be transmitted via the network to the designated device1381, the formal notification1429being about an aspect1479of the first resource1478.

In some embodiments, additional unrelated entities are involved. Formal notifications may be sent to each of them. An example is now described.

FIG.15is a diagram of a sample arrangement1500, where an OSP1598receives datasets for matching. For this diagram, it does not matter how the datasets are matched. The OSP1598can be as the OSP198, and has a computer system1595as the computer system195. The computer system1595may have a resource(s) determination module1514similar to the resource(s) determination modules914,1314. Optionally the computer system1595also has an OSP application (“app”)1519, which can be as described for the OSP app919, for requesting remote determinations of resources. The computer system1595may also have a dataset processing module1512, similar to what was described for the dataset processing module912.

The OSP1598has an Client Entity1520as a client. The Client Entity1520may have a user (not shown). A client computer1521is associated with the Client Entity1520and/or its user.

In addition, an Other Entity A′1551has and controls a designated device A′1581. As such, the designated device1581is not controlled by a user of the first remote client device, namely anyone in the Client Entity1520that controls the client computer1521. In addition, the designated device A′1581is not controlled by a user of the computer system1595, namely anyone of the OSP1598that controls the computer system1595. The designated device A′1581may be as the designated device1381.

Moreover, an Other Entity B′1552has and controls a designated device B′1582. As such, the designated device1582is not controlled by a user of the first remote client device, namely anyone in the Client Entity1520that controls the client computer1521. In addition, the designated device B′1582is not controlled by a user of the computer system1595, namely anyone of the OSP1598that controls the computer system1595. In addition, the designated device B′1582is not controlled by a user of the first designated device A′1581, namely anyone of the Other Entity A′1551that controls a designated device A′1581. The designated device B′1582may be as the designated device1381.

In the example ofFIG.15, a first dataset1561is received from client computer1521, remotely through a network.

As also mentioned previously, a first resource1541may be input for the first dataset1561. For example, the resource(s) determination module1514may determine or compute the first resource1541, or outsource it. This is why a first instance of the first resource1541appears within the computer system1595. Then a first formal notification1521is caused, by the computer system1595, to be transmitted via the network. The first formal notification1521encodes the first resource1541, is why a second instance of the first resource1541appears within the first formal notification1521. The first formal notification1521is thus caused to be transmitted to the first designated device A′1581.

In addition, a supplemental resource1542may be input for the first dataset1561. The supplemental resource1542may be computed or computed from the digital main rules, either directly or by outsourcing, as controlled by the resource(s) determination module1514. This is why a first instance of the supplemental resource1542appears within the computer system1595. Then a second formal notification1522is caused, by the computer system1595, to be transmitted via the network. The second formal notification1522encodes the supplemental resource1542, which is why a second instance of the supplemental resource1542appears within the second formal notification1522. The second formal notification1522is thus caused to be transmitted to the second designated device B′1582.

As also mentioned previously, a first, but not formal, notification1528can be caused, by the computer system1595, to be transmitted via the network to the Client Computer1521. In some of these embodiments, the first notification1528encodes the first resource1541and the supplemental resource1542. This is why a third instance of the first resource1541and a third instance of the supplemental resource1542appear within the computer system1595. In some of these embodiments, the supplemental resource1522has a numerical non-zero value, and the first notification1528encodes a sum of the first resource1541and the supplemental resource1542.

FIG.16shows details for a sample computer system1695and for a sample computer system1690. The computer system1695may be a server, while the computer system1690may be a personal device, such as a personal computer, a desktop computer, a personal computing device such as a laptop computer, a tablet computer, a mobile phone, and so on. Either type may be used for the computer systems195and190ofFIG.1.

The computer system1695and the computer system1690have similarities, whichFIG.16exploits for purposes of economy in this document. It will be understood, however, that a component in the computer system1695may be implemented differently than the same component in the computer system1690. For instance, a memory in a server may be larger than a memory in a personal computer, and so on. Similarly, custom application programs1674that implement embodiments may be different, and so on.

The computer system1695includes one or more processors1694. The processor(s)1694are one or more physical circuits that manipulate physical quantities representing data values. The manipulation can be according to control signals, which can be known as commands, op codes, machine code, etc. The manipulation can produce corresponding output signals that are applied to operate a machine. As such, one or more processors1694may, for example, include a Central Processing Unit (CPU), a Reduced Instruction Set Computing (RISC) processor, a Complex Instruction Set Computing (CISC) processor, a Graphics Processing Unit (GPU), a Digital Signal Processor (DSP), a Field-Programmable Gate Array (FPGA), an Application Specific Integrated Circuit (ASIC), any combination of these, and so on. A processor may further be a multi-core processor having two or more independent processors that execute instructions. Such independent processors are sometimes called “cores”.

A hardware component such as a processor may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations. For example, a hardware component may include software executed by a general-purpose processor or another type programmable processor. Once configured by such software, hardware components become specific machines, or specific components of a machine, uniquely tailored to perform the configured functions and are no longer general-purpose processors. It will be appreciated that the decision to implement a hardware component mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.

As used herein, a “component” may refer to a device, physical entity or logic having boundaries defined by function or subroutine calls, branch points, Application Programming Interfaces (APIs), or other technologies that provide for the partitioning or modularization of particular processing or control functions. Components may be combined via their interfaces with other components to carry out a machine process. A component may be a packaged functional hardware unit designed for use with other components and a part of a program that usually performs a particular function of related functions. Components may constitute either software components (e.g., code embodied on a machine-readable medium) or hardware components. The hardware components depicted in the computer system1695, or the computer system1690, are not intended to be exhaustive. Rather, they are representative, for highlighting essential components that can be used with embodiments.

The computer system1695also includes a system bus1612that is coupled to the processor(s)1694. The system bus1612can be used by the processor(s)1694to control and/or communicate with other components of the computer system1695.

The computer system1695additionally includes a network interface1619that is coupled to system bus1612. Network interface1619can be used to access a communications network, such as the network188. Network interface1619can be implemented by a hardware network interface, such as a Network Interface Card (NIC), wireless communication components, cellular communication components, Near Field Communication (NFC) components, Bluetooth® components such as Bluetooth® Low Energy, Wi-Fi® components, etc. Of course, such a hardware network interface may have its own software, and so on.

The computer system1695also includes various memory components. These memory components include memory components shown separately in the computer system1695, plus cache memory within the processor(s)1694. Accordingly, these memory components are examples of non-transitory machine-readable media. The memory components shown separately in the computer system1695are variously coupled, directly or indirectly, with the processor(s)1694. The coupling in this example is via the system bus1612.

Instructions for performing any of the methods or functions described in this document may be stored, completely or partially, within the memory components of the computer system1695, etc. Therefore, one or more of these non-transitory computer-readable media can be configured to store instructions which, when executed by one or more processors1694of a host computer system such as the computer system1695or the computer system1690, can cause the host computer system to perform operations according to embodiments. The instructions may be implemented by computer program code for carrying out operations for aspects of this document. The computer program code may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java, Smalltalk or the like, and/or conventional procedural programming languages, such as the “C” programming language or similar programming languages such as C++, C Sharp, etc.

The memory components of the computer system1695include a non-volatile hard drive1633. The computer system1695further includes a hard drive interface1632that is coupled to the hard drive1633and to the system bus1612.

The memory components of the computer system1695include a system memory1638. The system memory1638includes volatile memory including, but not limited to, cache memory, registers and buffers. In embodiments, data from the hard drive1633populates registers of the volatile memory of the system memory1638.

In some embodiments, the system memory1638has a software architecture that uses a stack of layers, with each layer providing a particular functionality. In this example the layers include, starting from the bottom, an Operating System (OS)1650, libraries1660, frameworks/middleware1668and application programs1670, which are also known as applications1670. Other software architectures may include less, more or different layers. For example, a presentation layer may also be included. For another example, some mobile or special purpose operating systems may not provide a frameworks/middleware1668.

The OS1650may manage hardware resources and provide common services. The libraries1660provide a common infrastructure that is used by the applications1670and/or other components and/or layers. The libraries1660provide functionality that allows other software components to perform tasks more easily than if they interfaced directly with the specific underlying functionality of the OS1650. The libraries1660may include system libraries1661, such as a C standard library. The system libraries1661may provide functions such as memory allocation functions, string manipulation functions, mathematical functions, and the like.

In addition, the libraries1660may include API libraries1662and other libraries1663. The API libraries1662may include media libraries, such as libraries to support presentation and manipulation of various media formats such as MPREG4, H.264, MP3, AAC, AMR, JPG, and PNG. The API libraries1662may also include graphics libraries, for instance an OpenGL framework that may be used to render2D and3D in a graphic content on the screen1691. The API libraries1662may further include database libraries, for instance SQLite, which may support various relational database functions. The API libraries1662may additionally include web libraries, for instance WebKit, which may support web browsing functionality, and also libraries for applications1670.

The frameworks/middleware1668may provide a higher-level common infrastructure that may be used by the applications1670and/or other software components/modules. For example, the frameworks/middleware1668may provide various Graphic User Interface (GUI) functions, high-level resource management, high-level location services, and so forth. The frameworks/middleware1668may provide a broad spectrum of other APIs that may be used by the applications1670and/or other software components/modules, some of which may be specific to the OS1650or to a platform.

The application programs1670are also known more simply as applications and apps. One such app is a browser1671, which is a software that can permit the user192to access other devices in the internet, for example while using a Graphic User Interface (GUI). The browser1671includes program modules and instructions that enable the computer system1695to exchange network messages with a network, for example using Hypertext Transfer Protocol (HTTP) messaging.

The application programs1670may include one or more custom applications1674, made according to embodiments. These can be made so as to cause their host computer to perform operations according to embodiments. Of course, when implemented by software, operations according to embodiments may be implemented much faster than may be implemented by a human mind; for example tens or hundreds of such operations may be performed per second according to embodiments, which is much faster than a human mind can do.

Other such applications1670may include a contacts application, a book reader application, a location application, a media application, a messaging application, and so on. Applications1670may be developed using the ANDROID™ or IOS™ Software Development Kit (SDK) by an entity other than the vendor of the particular platform, and may be mobile software running on a mobile operating system such as IOS™, ANDROID™, WINDOWS® Phone, or other mobile operating systems. The applications1670may use built-in functions of the OS1650, of the libraries1660, and of the frameworks/middleware1668to create user interfaces for the user192to interact with.

The computer system1695moreover includes a bus bridge1620coupled to the system bus1612. The computer system1695furthermore includes an input/output (I/O) bus1621coupled to the bus bridge1620. The computer system1695also includes an I/O interface1622coupled to the I/O bus1621.

For being accessed, the computer system1695also includes one or more Universal Serial Bus (USB) ports1629. These can be coupled to the I/O interface1622. The computer system1695further includes a media tray1626, which may include storage devices such as CD-ROM drives, multi-media interfaces, and so on.

The computer system1690may include many components similar to those of the computer system1695, as seen inFIG.16. In addition, a number of the application programs may be more suitable for the computer system1690than for the computer system1695.

The computer system1690further includes peripheral input/output (I/O) devices for being accessed by a user more routinely. As such, the computer system1690includes a screen1691and a video adapter1628to drive and/or support the screen1691. The video adapter1628is coupled to the system bus1612.

The computer system1690also includes a keyboard1623, a mouse1624, and a printer1625. In this example, the keyboard1623, the mouse1624, and the printer1625are directly coupled to the I/O interface1622. Sometimes this coupling is via the USB ports1629.

In this context, “machine-readable medium” refers to a component, device or other tangible media able to store instructions and data temporarily or permanently and may include, but is not be limited to, a portable computer diskette, a thumb drive, a hard disk, random-access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical media, magnetic media, cache memory, an Erasable Programmable Read-Only Memory (EPROM), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. The machine that would read such a medium includes one or more processors1694.

The term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to store instructions that a machine such as a processor can store, erase, or read. The term “machine-readable medium” shall also be taken to include any medium, or combination of multiple media, that is capable of storing instructions (e.g., code) for execution by a machine, such that the instructions, when executed by one or more processors of the machine, cause the machine to perform any one or more of the methods described herein. Accordingly, instructions transform a general, non-programmed machine into a particular machine programmed to carry out the described and illustrated functions in the manner described.

A computer readable signal traveling from, to, and via these components may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.

Operational Examples—Use Cases

The above-mentioned embodiments have one or more uses. Operational examples and sample use cases are now described.

Embodiments can be helpful for online stock brokers (OSBs), online market makers, online Electronic Communications Networks (ECNs) and others to serve their clients' needs in conducting transactions of buying and selling securities, such as stocks, bonds, options, etc., while at the same time helping with preparing the payment of taxes for these transactions. In particular, such entities receive buy and sell orders online from their clients, whether the clients are individuals or intermediaries, and try to match them internally for completing a transaction. If not, they may outsource the matching to others.

For applying the embodiments to such use cases, what was written above for users, applies to traders; for datasets, applies to orders for trading securities; for certificate codes, applies to securities' names or trading symbols; for resources, applies to taxes; for Other Entities, applies to tax authorities that impose the taxes; and for formal notifications, applies to tax returns intended for filing with the tax authorities.

FIG.17is a diagram for how online stock brokers may use embodiments. Much ofFIG.17is also applicable, by extension, to market makers and ECNs. It will be recognized that aspects ofFIG.17have similarities with aspects ofFIG.1. Portions of such aspects may be implemented as described for analogous aspects ofFIG.1. In particular, a thick line1715separatesFIG.17, although not completely or rigorously, into a top portion1716and a bottom portion1717. The top portion1716emphasizes mostly entities, components, their relationships, and their interactions, while the bottom portion1717emphasizes mostly processing of data that takes place often within one or more of the components in the top portion1716.

In the top portion1716, a platform for an online stock broker is shown as OSB1798. The OSB has a client1793, who has registered with the OSB1798, established credentials, and so on. The human aspect of the client1793is a trader1792, who may use a computer system1790that has a screen1791. The trader1792thus goes online, via the OSB1798, to trade stocks, bonds and options.

Within the OSB1798there is a computer system1795, which is used to help customers, such as a trader1792, with their trades, and also with tax compliance arising from their trades. Further in this example, the computer system1795of the OSB1798is implemented as a Software as a Service (Saas), for being accessed by the trader1792online.

The computer system1795has an order processing module1712, which can be as described above for the dataset processing module912. The computer system1795may have a tax(es) determination module1714, which can be as described above for the resource(s) determination module914. Optionally the computer system1795also has an OSB application (“app”)1719, which can be as described for the OSP app919, for requesting remote determinations of taxes if desired.

The computer system1795may have additional functionalities, for example a database for storing the client data, a memory for storing digital tax rules if a determination of taxes is to take place natively, and so on.

Taxes on transactions of stock trades may be imposed by jurisdictions, and administered by a tax authority1759of the jurisdiction. In addition, such a tax authority may require reporting of taxes, e.g. by filing returns, and paying, i.e. remittances, of the tax amounts due.

Digital tax rules1770may be generated according to embodiments so as to accommodate what rules various tax authorities administer within the boundaries of their tax jurisdictions. InFIG.17five sample digital tax rules are shown, namely T_RULE21772, T_RULE31773, T_RULE51775, T_RULE61776and T_RULE71777. Additional digital tax rules1770are suggested by the vertical dot-dot-dots. Similarly withFIG.1, some of these digital tax rules may be digital main rules that can be used to determine tax obligation(s)1779, while others can be digital precedence rules that can be used to determine which of the digital main rules are to be applied in the event of conflict among rules. In some use cases, the digital main rules may be about the transaction tax due, for example at a certain percentage of the purchase or sale price of securities. The digital precedence rules may be rules that can manage exceptions such as temporary tax holidays, exemptions, and so on. For example, those who transact in government bonds may be exempt from paying taxes for such transactions.

Similarly withFIG.1, these digital tax rules1770can be implemented or organized in different ways. In some use cases they can be organized with conditions and consequents, such as was described earlier in this document. Such conditions may relate to geographical boundaries, effective dates, and so on, for determining where and when a digital tax rule is to be applied. These conditions may be expressed as logical conditions with ranges, dates, other data, and so on.

Examples of tax authorities are now given in more detail.FIG.18shows a Federal jurisdiction1821, which can be the jurisdiction of the U.S.A. For instance, the icon1821could represent boundaries on a geographic map, or other boundaries within a space to delineate where the jurisdiction extends to. A Federal tax authority1859-1administers taxes imposed by the Federal jurisdiction1821. A look-up table1831implements digital tax rules for the Federal jurisdiction1821.

FIG.18also shows a State jurisdiction1822, which can be the jurisdiction of a State such as California. A State tax authority1859-2administers taxes imposed by the State jurisdiction1822. A look-up table1832implements digital tax rules for the Federal jurisdiction1821.

It will be recognized that the early columns of the look-up tables1831and1832list conditions, while the right-most column lists consequents. A memory1870, which can be implemented as a database, may store the digital tax rules of implemented by look-up table1831and the look-up table1832.

A trader1892may be subject to both the Federal jurisdiction1821and the State jurisdiction1822, based on their location, their address, etc. As such, the trader1892may pay taxes for their transaction to both the Federal tax authority1859-1and the State tax authority1859-2.

Returning toFIG.17, the OSB1798may learn the location, address, etc. of trader1792, at the time that the trader1792on-boards with the computer system1795, uploads their data, and so on. At that time, the computer system1795my offer or demand that the trader1792establish their settings for their tax obligations. An example is now described.

FIG.19is a diagram of a sample settings User Interface (UI)1922, which may appear on screen1791ofFIG.17. Similarly withFIG.8, the UI1922ofFIG.19enables the trader1792to adjust their personal preferences for service. In the example ofFIG.19, the trader1792has checked the YES boxes in three instances, namely1971,1972, and1973.

Returning toFIG.17, just below line1715a first order1761is shown. The first order1761has been received by the computer system1795as an order for a trade. In this example, the computer system1790transmits a request1784that includes a payload1734, and the order1761is received by the computer system1795parsing the received payload1734. In this example the single payload1734encodes the entire order1761.

The first order1761is a dataset similar to what was described for the first dataset161ofFIG.1. It has first values, which can be numerical, alphanumeric, Boolean, and so on, as needed for characterizing the order. One or more one of these first values of the order1761may characterize an attribute of the client1793, as indicated by an arrow1799. (It should be noted that the arrow1799describes a correspondence, but not the journey of data in becoming the received order1761.)

The first values of the order1761include a first polarity value that is BUY. The opposite would be SELL. These first values also include a trading symbol SC that identifies a certain security, such as a stock, a bond, an option, of a plurality of possible securities. These first values further include a first size number S1that identifies a number of units of the certain security indicated by the trading symbol SC. These first values additionally include at least one first range value R1, although such ranges may be defined more easily with two or more values, such as a beginning and an end, or a single number and an indication that the number is a maximum or a minimum. In any event, the first range value R1, alone or together with another first value, may define a first numerical acceptable range of price for matching the first dataset161. The price may be a maximum, a minimum, a tolerance for a “market” value, and so on.

There can be more first values that are not shown, as indicated by the horizontal dot-dot-dot in the order1761. For example, one value could be for an identity of the first order1761, so as to differentiate it from other such orders. Another value may be an entity value for the trader1792of the computer system1790, which serves as the first remote client device1790. In such instances, locus information of the trader1792can be determined from the entity value. For example, the locus information can be encoded in the entity value. Or, the entity value can encode an identity of the trader1792, such as by a client serial number, a client record number and so on. In such a case, a stored record of the identity of the trader1792may contain the locus information. In such a case, the computer system1795may identify the stored record from the entity value, and thus look up the locus information from the identified record.

In embodiments, it can be established, by the computer system1795, that matching has been achieved between the first order1761and a second order1762. For the matching to have taken place, the second order1762must be compatible with the first order1761. Compatibility may be determined by whether or not compatibility criteria are met between the first values of the first order1761and the second values of the second order1762. In the example ofFIG.17, the matching is shown by a wide vertical arrow, and has produced a matched values set1765. In particular, the second order1762can have second values, which can be analogous to the first values. In particular, the second values may include a second polarity value SELL. In addition, the second order1762may have a trading symbol SC that identifies the certain security that is identified by the trading symbol SC of the first order1761. Plus the second order1762may have a second size number S2that identifies a number of units of the certain security. And, the second order1762may have at least one second range value R2that defines a second numerical acceptable range of price for matching the second order1762. As with the first order1761, the second range value R2may do this alone or together with another second value.

The matched values set1765shows a matched size number MS, which can be the minimum of S1and S2. It also shows a strike price SP, whose determination is shown graphically, where a horizontal axis1708is used. The first range RN1and the second range RN2are plotted with reference to the axis1708. They do overlap, and the strike price SP is found within the overlapping range. In this example, the strike price SP is chosen to be at the middle of the overlapping range, although that is not necessary.

Once it is established that the orders have been matched, one or more tax obligations1779are determined from the digital tax rules1770. In so doing, values of the first order1761can be tested against these logical conditions according to arrows1771, similarly with what was shown inFIG.3. In such cases, the consequents may indicate one or more tax obligations, such as to indicate different types of taxes that are due, rules, rates, exemption requirements, reporting requirements, remittance requirements, etc.

In this example, a certain digital tax rule T_RULE61776is shown as identified, which is indicated also by the beginning of an arrow1778. Identifying may be performed responsive to the values of the order1761, which are shown as considered for digital tax rules1770by arrows1771. These values may also include the applicable location of the trader1792, with reference to tax jurisdictions, and so on.

As such, the computer system1795may make a determination of tax obligation(s)1779, which is akin to determining the resource179ofFIG.1. The tax obligation1779can be determined by the OSB1798applying the certain digital tax rule T_RULE61776, as indicated by the arrow1778. In this example, the consequent of the identified certain digital tax rule T_RULE61776may specify that a transaction tax is due, and the amount is to be determined by a multiplication, by a specific rate, of the amount spent in executing a BUY order or the amount received in executing a SELL order.

The computer system1795may then cause a notification1736to be transmitted. The notification1736can be about an aspect of the tax obligation1779, similarly with the notification136ofFIG.1. In the example ofFIG.17, the notification1736is caused to be transmitted by the computer system1795as an answer to the received order1761. The notification1736can be about an aspect of the tax obligation1779. In particular, the notification1736may inform about the aspect of the tax obligation1779, namely that it has been determined, where it can be found, what it is or a statistic derived from it, and so on.

The notification1736can be transmitted to one of an output device and another device that can be the remote device, from which the order1761was received. The output device maybe the screen of a local user or a remote user. The notification1736may thus cause a desired image to appear on the screen, such as within a Graphical User Interface (GUI) and so on. The other device may be a remote device, as in this example. In particular, the computer system1795causes the notification1736to be communicated by being encoded as a payload1737, which is carried by a response1787. The response1787may be transmitted via the network188responsive to the received request1784. The response1787may be transmitted to the computer system1790, and so on. As such, the other device can be the computer system1790, or the screen1791of the trader1792, and so on. In this example the single payload1737encodes the entire notification1736, but that is not required, similarly with what is written above about encoding datasets in payloads. Of course, along with the aspect of the tax obligation1779, it is advantageous to embed in the payload1737an ID value and/or one or more values of the order1761. This will help the recipient correlate the response1787to the request1784, and therefore match the received aspect of the tax obligation1779as the answer to the received order1761.

Various use cases are now described. It will be recognized that some may draw more explanation from analogous elements described earlier in this document.

FIG.20is a diagram of a sample arrangement2000, where an OSB2098is operating in a mode of matching orders internally. The OSB2098can be as the OSP198, and has a computer system2095as the computer system195. The OSB2098may also have a memory2015, which can be implemented as the memory915, storing similar types of data for trader customers.

The computer system2095may have an order processing module2012, similar to what was described for the order processing module912, with an order matching module and an order routing module (neither of the latter shown).

The computer system2095may also have a tax(es) determination module2014similar to the resource(s) determination module914. Taxes may be determined natively, or by outsourcing. Optionally the computer system2095further has a memory2070, similar to memory970or971for storing digital rules locally.

The OSB2098has a Buyer2020as a client, who is a trader. The Buyer2020has a buyer's client computer2021, which has a UI2022. The OSB2098also has a Seller2030as a client, who is a trader. The Seller2030has a seller's client computer2031, which has a UI2032.

In the example ofFIG.20, a first open buy order2061is received from computer2021. Upon receipt, an estimated first tax may be determined for Buyer2020, and an Estimated Tax Notification to Buyer (ETNB)2024may be sent to computer2021. The estimated first tax may appear on UI2022.

In addition, a second open sell order2062is received from computer2031. Upon receipt, an estimated second tax may be determined for Seller2030, and an Estimated Tax Notification to Seller (ETNS)2034may be sent to2031. The estimated second tax may appear on UI2032.

The two received open orders2061,2062are processed by module2012for matching. In the example ofFIG.20, the two received orders2061,2062are found compatible and are successfully matched. After that, the open orders become closed, being updated with the matched values set1765. A first tax is determined for the first closed order that is due by the buyer, and a trade confirmation2028is sent to computer2021, reporting the entire trade and also the first tax. Also, a second tax is determined for the second closed order that is due by the seller, and a trade confirmation2038is sent to computer2031, reporting the entire trade and also the second tax.

And, in some embodiments, a Tax Authority A′2059-1may be involved. The Tax Authority A′ may have and control a designated device, which is not shown so as not to clutter the drawing. That designated device can be as the designated device1381, and be accessible through a network2088that is as network188.

Depending on the settings ofFIG.18, a tax return module2016may create a first return2051for the Buyer2020, and even file it with the first Tax Authority A′2059-1on behalf of the Buyer2020. Similarly, the tax return module2016may create a second return2052for the Seller2030, and even file it with a second Tax Authority B′2059-2on behalf of the Seller2030. Filing can be by transmitting the tax returns, similarly to what was described with formal notifications.

Moreover, and again depending on the settings ofFIG.18, a tax payment module2054may remit a payment2085, for the tax owed, to the first Tax Authority A′2059-1, or their indicated financial institution. Payment maybe made by ACH, wire, and so on. A credit notification can be caused to be transmitted to a financial institution of a governmental entity. These funds may come by adjusting accordingly the trader credit balances2083, or withdrawn from a bank2084of the Buyer2020with prior authorization.

In other instances, the OSB2098does not match open orders internally, but instead operates in a mode of forwarding them to an Other Trading Entity (OTE), such as a Market Maker (MM) or an Electronic Communications Network (ECN). Some of the most popular ECNs have become actual exchanges, such as Archipelago NYSE (ARCA), BATS, EDGE, and INET/ISLD. An example is now described.

FIG.21is a diagram of a sample arrangement2100, where the OSP2098ofFIG.20matches a received order by outsourcing it. The OSB2098has a Buyer2120as a client, who is a trader. The Buyer2120has a buyer's client computer2121, which has a UI2122.

In the example ofFIG.21, a first open buy order2161is received from computer2121. Upon receipt, an estimated first tax may be determined for Buyer2120, and an Estimated Tax Notification to Buyer (ETNB)2124may be sent to computer2121. The estimated first tax may appear on UI2122.

The received order2161is processed by module2012for matching. In the example ofFIG.21, an aspect of the first order2161is forwarded to an OTE2160. In this example, the forwarded aspect is a forwarded open buy order1466. The OTE2160received the forwarded open buy order1466order, matches it, and then sends to the OSP2098an aspect2163of the matched second order as part of a match notification2168. The match notification may also be called trade confirmation.

Then the tax(es) determination module2014may determine any taxes due, and sends a notification2128to the client computer2121. Sometimes the notification2128is part of the entire trade confirmation. In other use cases, all or a portion only (e.g. only the rate) of the tax determination has been made by the OTE2160, and the OSB2098passes it to the client.

In the example ofFIG.21, the buyer2120is due to file returns and remit taxes to two tax authorities, namely Tax Authority C′2159-1and Tax Authority D′2159-2. These could be, for example, federal and state tax authorities. Accordingly, and depending on the preferences settings, the tax return module2016prepares a first return2151and sends it to a designated computer or server of Tax Authority C′2159-1, and prepares a second return2152and sends it to a designated computer or server of Tax Authority D′2159-2.

The determination of tax obligation(s)1779ofFIG.17may range from simple to complex. Beyond the federal government, a number of tax jurisdictions may assert a transaction tax for the purchase and/or sale of securities, such as various states, counties, cities, municipalities, special taxing jurisdictions, and so on. In addition, such taxes could be used to fund different programs of social usefulness for a country, such as, in the US, Social Security and Medicare. The more tax jurisdictions assert such a transaction tax, the more complex the determination of tax obligation(s)1779will become. Plus, each jurisdiction may require different schedules for returns and remittances, from annual to quarterly, to monthly, to weekly, to daily, or even per transaction. And the schedule requirements for returns might not be coordinated with the schedule requirements for remittances. Plus, it will be tough to keep up with changes in the tax obligations, and so on.

The above described embodiments provide for online stock brokers to import a determination of a tax due from a transaction from a specialist online facility. An example is now described.

FIG.22is a diagram of a sample arrangement2200, in which an OSB2298imports a determination of a tax amount from a Tax-Assisting Service Platform (TASP)2240that is a specialist facility.

The TASP2240has at least one or more server computers2241that implement a service engine2242. The TASP2240also has a memory2270, which may be implemented as a database, and stores digital tax rules. The digital tax rules2270may be updated as they are being created, also for exceptions and exemptions imposed by law. Such exceptions and exemptions can be, for example, based on certain transaction size, securities traded (for instance, government bonds may be exempt), certain trading institutions or individuals, tax holidays, and so on. The service engine2242may query the memory2270for determining one or more tax obligations. Querying can be to fetch digital rules and rates, and the memory2270can respond by supplying these rules and rates. The service engine2242may be able to recognize elements needed for recognizing which tax jurisdiction could have authority to tax the transaction. These may include trader data, such as citizenship and the locus data, plus possibly other data, such as the incorporation state of the security being traded which, for example, could be correlated with the jurisdiction boundaries ofFIG.18, etc.

The OSB2298has a computer system2295, similarly with the computer system2095of the OSB2098. In this example, the OSB2298also has a memory2215, which can be implemented as a database. The memory2215may store trader data, including data that needs to be looked up for determining transaction tax. Such data may include the official residence of the trader, their IP address, and so on.

The computer system2295has an order processing module2212, similarly with the order processing module2012inFIG.20. The computer system2295also has a tax(es) determination module2214. In this example, module2214outsources the determination to TASP2240via an OSB application (“app”)2219, which can be as was described for OSP app919ofFIG.9. Briefly, the OSB application2219transmits a request2271via a network2288, which can be as network188. The request2271includes request data2272, which can be a payload and is also known as the request object. The request data2272includes data for determining the tax obligations due from a securities transaction. The request2271requests the determination of a tax. The request2271is received by the service engine2242, which in turn determines the requested tax obligation(s) responsive to the request. Then the server computer(s)2241sends a response2274responsive to the received request2271. The response2274includes response data2275, which are the requested tax obligation, or an aspect of it, and so on.

The OSB2298could have other features for determining the tax natively. This could be for all the transactions, or at least for estimates. The OSB application (“app”)2219could be thus invoked only some times.

FIG.23is a diagram of a sample User Interface (UI)2322, as it may appear for UI2022inFIG.20. In this example, a trading order has been input, which has: a polarity value2341of BUY, a trading symbol2342of MSFT which is the trading sign of common shares of Microsoft, Inc., a size number2343of 100 meaning 100 shares, and a range value2344of MARKET, which speaks to the numerical acceptable range of price for this order, and does not limit it.

An ETNB has been returned, similar to the ETNB2024, which supplies further values to the UI2322. These further values include an estimated base amount to be spent for the trade itself (2371), a commission (2372), an estimated Federal tax (2373), an estimated State tax (2374), an estimated other tax (2375), and an estimated total amount (2376) that adds all the taxes2373,2374,2375to the estimated base amount to be spent for the trade itself (2371). At the bottom right, a link labeled Place Order enables the trader to place the order as presented.

FIG.24is a diagram of a sample User Interface (UI)2432, as it may appear for UI2032inFIG.20. In this example, a trading order has been input, which has: a polarity value2451of SELL, a trading symbol2452of MSFT, a size number2453of 100, and a range value2454of MARKET, which speaks to the numerical acceptable range of price.

An ETNS has been returned, similar to the ETNS2034, which supplies further values to the UI2432. These further values include an estimated base amount to be received from the trade itself (2471), a commission (2472), an estimated Federal tax (2473), an estimated State tax (2474), an estimated other tax (2475), and an estimated total amount (2476) that subtracts all the taxes2473,2474,2475from the estimated base amount to be received from the trade itself (2471). At the bottom right, a link labeled Place Order enables the trader to place the order as presented.

It will be observed that this example was created where the buy order ofFIG.23is compatible with the sell the order ofFIG.24. So, they could be matched, or each could be matched against the broker's own supply (internalization), and so on.

These orders may be executed for different strike prices. An example is now described.

FIG.25is a diagram of a sample User Interface (UI)2528, as it may appear for UI2022inFIG.20, upon receiving trade confirmation2028. The UI2528confirms that 100 shares of MSFT have been purchased, and at what price. The UI2528also informs of: the actual base amount spent for the trade itself (2571), the actual Federal tax (2573) that will be reported to the Federal Government and paid on behalf of the buyer, the actual State tax (2574) that will be reported to the buyer's State Government and paid on behalf of the buyer, the actual other tax (2575), and the actual total amount (2576) that added all the taxes2573,2574,2575to the actual base amount (2571).

In the methods described above, each operation can be performed as an affirmative act or operation of doing, or causing to happen, what is written that can take place. Such doing or causing to happen can be by the whole system or device, or just one or more components of it. It will be recognized that the methods and the operations may be implemented in a number of ways, including using systems, devices and implementations described above. In addition, the order of operations is not constrained to what is shown, and different orders may be possible according to different embodiments. Examples of such alternate orderings may include overlapping, interleaved, interrupted, reordered, incremental, preparatory, supplemental, simultaneous, reverse, or other variant orderings, unless context dictates otherwise. Moreover, in certain embodiments, new operations may be added, or individual operations may be modified or deleted. The added operations can be, for example, from what is mentioned while primarily describing a different system, apparatus, device or method.

A person skilled in the art will be able to practice the present invention in view of this description, which is to be taken as a whole. Details have been included to provide a thorough understanding. In other instances, well-known aspects have not been described, in order to not obscure unnecessarily this description.

Some technologies or techniques described in this document may be known. Even then, however, it does not necessarily follow that it is known to apply such technologies or techniques as described in this document, or for the purposes described in this document.

This description includes one or more examples, but this fact does not limit how the invention may be practiced. Indeed, examples, instances, versions or embodiments of the invention may be practiced according to what is described, or yet differently, and also in conjunction with other present or future technologies. Other such embodiments include combinations and sub-combinations of features described herein, including for example, embodiments that are equivalent to the following: providing or applying a feature in a different order than in a described embodiment; extracting an individual feature from one embodiment and inserting such feature into another embodiment; removing one or more features from an embodiment; or both removing a feature from an embodiment and adding a feature extracted from another embodiment, while providing the features incorporated in such combinations and sub-combinations.

A number of embodiments are possible, each including various combinations of elements. When one or more of the appended drawings-which are part of this specification—are taken together, they may present some embodiments with their elements in a manner so compact that these embodiments can be surveyed quickly. This is true even if these elements are described individually extensively in this text, and these elements are only optional in other embodiments.

In general, the present disclosure reflects preferred embodiments of the invention. The attentive reader will note, however, that some aspects of the disclosed embodiments extend beyond the scope of the claims. To the respect that the disclosed embodiments indeed extend beyond the scope of the claims, the disclosed embodiments are to be considered supplementary background information and do not constitute definitions of the claimed invention.

In this document, the phrases “constructed to”, “adapted to” and/or “configured to” denote one or more actual states of construction, adaptation and/or configuration that is fundamentally tied to physical characteristics of the element or feature preceding these phrases and, as such, reach well beyond merely describing an intended use. Any such elements or features can be implemented in a number of ways, as will be apparent to a person skilled in the art after reviewing the present disclosure, beyond any examples shown in this document.

Parent patent applications: Any and all parent, grandparent, great-grandparent, etc. patent applications, whether mentioned in this document or in an Application Data Sheet (“ADS”) of this patent application, are hereby incorporated by reference herein as originally disclosed, including any priority claims made in those applications and any material incorporated by reference, to the extent such subject matter is not inconsistent herewith.

Reference numerals: In this description a single reference numeral may be used consistently to denote a single item, aspect, component, or process. Moreover, a further effort may have been made in the preparation of this description to use similar though not identical reference numerals to denote other versions or embodiments of an item, aspect, component or process that are identical or at least similar or related. Where made, such a further effort was not required, but was nevertheless made gratuitously so as to accelerate comprehension by the reader. Even where made in this document, such a further effort might not have been made completely consistently for all of the versions or embodiments that are made possible by this description. Accordingly, the description controls in defining an item, aspect, component or process, rather than its reference numeral. Any similarity in reference numerals may be used to infer a similarity in the text, but not to confuse aspects where the text or other context indicates otherwise.

The claims of this document define certain combinations and sub-combinations of elements, features and acts or operations, which are regarded as novel and non-obvious. The claims also include elements, features and acts or operations that are equivalent to what is explicitly mentioned. Additional claims for other such combinations and sub-combinations may be presented in this or a related document. These claims are intended to encompass within their scope all changes and modifications that are within the true spirit and scope of the subject matter described herein. The terms used herein, including in the claims, are generally intended as “open” terms. For example, the term “including” should be interpreted as “including but not limited to,” the term “having” should be interpreted as “having at least,” etc. If a specific number is ascribed to a claim recitation, this number is a minimum but not a maximum unless stated otherwise. For example, where a claim recites “a” component or “an” item, it means that the claim can have one or more of this component or this item.

In construing the claims of this document, 35 U.S.C. § 112 (f) is invoked by the inventor(s) only when the words “means for” or “steps for” are expressly used in the claims. Accordingly, if these words are not used in a claim, then that claim is not intended to be construed by the inventor(s) in accordance with 35 U.S.C. § 112 (f).