- Commitment Relationships:
- Provide and Receive relationship between Commitments and Agents
- Exchange Reciprocity and Conversion Reciprocity relationship between Increment and Decrement Commitments
- Reservation relationship between Commitments and Resources or Resource Types
- Fulfilment relationship between Commitments and Events
- Commitment Properties:
- Scheduled Date property
- Scheduled Value property
- Domain rules
Business reality: Most economic events do not occur unexpectedly. Economic events are usually scheduled or agreed upon beforehand by economic agents. E.g. a sales order line is a promise to sell goods to a customer; the total price is a customer’s promise to pay for the goods, and the seller’s promise to accept the payment.
Problem: How do we model promises of future economic events?
- Application designers would like to have a mechanism in the application model specifying details about the promises of economic events. Economic events cannot be used for this, because economic events specify actual increments and decrements of resources, while promises result only in reservations of resources.
- There might be (and usually is) a difference between plans and what actually happens. The users of a business application would like to know whether the economic events occurred as they were promised, and informed about eventual differences.
- Exchange processes:
- If an enterprise promises to give its own resources to its trading partners, users of business application would, most likely, like to know, what resources to expect in return. Conversely, if an enterprise expects to receive some resources, the users of business application would like to know what resources its trading partners expect.
- The users of a business application would like to know who should be responsible for the received or produced resources, and who should be responsible for the resources used or consumed during the production or given to other economic agents.
- For each promised exchange, the users of a business application would like to know the trading partners to whom the resources should be transferred, and from whom they should be received.
- Conversion processes:
- If an enterprise schedules the production of resources, users of a business application would like to know what resources it would require to use or consume. Conversely, if an enterprise plans to use or consume resources, the users of a business application would like to know what resources will be produced from them.
Model the promise of the economic event as a Commitment entity. A commitment in exchange processes represents obligations of economic agents to provide or receive rights to economic resources. A commitment in conversion processes represents schedules of usage, consumption, or production of economic resources.
Each commitment is related to an economic event by a fulfillment relationship, representing the fact that commitments are fulfilled in the future by one or more economic events executed by the participating economic agents (Figure 1).
Commitments usually have properties for the Scheduled Date or period of the economic event, and the Scheduled Value of the event.
The Scheduled Value does not need to be expressed as an actual number, but, for example, as a rule. For example, the price of a service can be determined according to actual costs.
Figure 1. Commitment and economic events.
Each promised exchange and conversion process consists of at least two commitments: increment commitments, which are expected to increase the value of economic resources, and are fulfilled by increment economic events, and their related decrement commitments, which are expected to decrease the value of economic resources, and are fulfilled by decrement economic events. The relationship between increment and decrement commitments identifies which resources are promised to be exchanged or converted to which others, and is called exchange reciprocity or conversion reciprocity.
Figure 2 illustrates relationships between commitments, economic events, economic agents, and economic resources in exchange processes.
Figure 3 illustrates the same relationships in conversion processes.
Figure 2. Relationships of commitments in exchange processes.
Figure 3. Relationships of commitments in conversion processes.
The Provide and Receive Relationship
Commitments are related by the provide and receive relationships to the economic agents that are scheduled to participate in economic events, and they consequently determine who should have rights to or the control over economic resources.
The provide and receive are one-to-many relationships. One economic agent can participate in zero or more commitments; an economic commitment must have exactly one committed provider and exactly one committed recipient economic agent.
The Exchange Reciprocity and Conversion Reciprocity Relationships
The exchange reciprocity relationship between the increment and decrement commitments identifies in the model which resources are promised to be exchanged for which others. Likewise, the conversion reciprocity identifies which resources are promised to be used or consumed in order to produce others.
The commitments paired by the reciprocity relationship do not need to be instantiated (created at runtime) at the same time. For example, the insurance process illustrated in the Modeling Handbook contains an example of an increment commitment (insurance payment) that is instantiated only under certain conditions specified by the insurance contract. Another example is a commitment to buy shares of a company, paired with a reciprocal commitment of dividend payments. The two commitments are instantiated at different times.
The Fulfillment Relationship
The purpose of the fulfillment relationship is to validate whether the economic events fulfill their commitments.
This can often be done automatically. For example, the RECONCILIATION PATTERN (Behavioral Patterns) can validate that quantity on the sales order line (i.e., the value of the commitment) is the same as the sum of the shipped quantities (values of the economic events).
Sometimes, a human decision is needed to determine whether the economic events fulfill their commitments. For example, if a payment commitment was fulfilled by payment in different currency, due to variable exchange rates the monetary value of the commitment can differ from the monetary value of the economic event. In such cases, a human decision might be needed to judge whether the difference is sufficiently small to consider the commitment fulfilled.
The fulfillment relationship is a many-to-many relationship between the economic commitment and the economic event. One economic commitment can be fulfilled by several economic events, just as one shipment commitment can be fulfilled by partial shipments, and one economic event can fulfill several economic commitments, just as several installments can be paid once.
The Reservation Relationship
In order to specify what resources will be needed or are expected by future economic events, each economic commitment is related to an economic resource or a resource type by a reservation relationship. For example, a sales order line is a decrement commitment to ship goods; the sales order line is related by the outflow reservation relationship to the goods or the goods type.
When sales persons accept customer orders, they want a business software application to check whether there are products available when the order is due, and to make sure that these products will be available to the customers during the economic event related to the economic commitment.
Figure 3. Reservation relationship.
The reservation relationship between the resource and commitment represents the features of the resource and rights associated with the resource that will be changed or transferred by a future economic event (Figure 3).
The commitment can be related to either a resource type or a resource. For example, a sales order for a new car contains a commitment to deliver a car of a certain model, (i.e., resource type); a sales order for a used car contains a commitment to deliver a physical car (i.e., resource). The reservation of a hotel room contains a commitment to provide a hotel room with certain characteristics, such as of a certain size and with certain number of beds (i.e., resource type); but sometimes a guest might require a specific room, in which case the commitment is related to an (actual) resource.
If economic commitment is related to resource type, at some point in the future, but always before the economic events starts, the commitment must also be related to an actual resource that conforms to the reserved resource type (Figure 4).
Figure 4. A commitment must eventually be related to an actual resource.
The time of allocation varies. For example, in the hospitality business, the reservation is related to a room specification until the day of the guest’s arrival. The morning of the day of arrival, the receptionist assigns (a human assisted, and not an automated task) a room numbers for each reservation that starts that day. In the airline business, physical seats are assigned at the time of reservation, with the possibility of replanning. In theatres and cinemas, the tickets are assigned at the time of reservation. The algorithm first reserves the best seats within a certain price group, such as those in the middle of the theatre, and later reserves the seats closest to the best places.
We call the commitment fully specified if it is related by the reservation relationship to an (actual) resource.
The following domain rules apply to any REA application model. As commitments are a mirror image of the economic events at the policy level, the domain rules are similar to the rules for the REA model at operational level, with one addition: commitments must be fulfilled by economic events. These rules can be used to ensure consistency of REA application models.
Each commitment must be related to a resource, and might (but does not have to) also be related to a resource type. Each commitment must be related by provide and receive relationships to economic agents. Each increment commitment must be related by a exchange or conversion reciprocity relationship to a decrement commitment, and vice versa. Each increment commitment must be related by a fulfillment relationship to at least one increment economic event, and each decrement commitment must be related to at least one decrement economic event. A commitment that is part of a conversion must be related to the economic event of a conversion process; likewise, a commitment that is part of an exchange must be related to an economic event of an exchange process.
The reciprocity relationship often has additional functionality that relates together the values of the increment and decrement commitments. For example, in economic exchanges, the reciprocity can calculate the total price (value of the outflow commitments) based on the line item prices (value of the inflow commitments). The reciprocity might also validate that the cost (value of the outflow commitments) is lower than the price (value of the inflow commitments). The functionality of the reciprocity relationship can vary in different implementations; but the fundamental point is that the increment and decrement commitments are related.
Previous: REA-Hruby – Policy Pattern
Next: REA-Hruby – Contract Pattern