Transactions and Types |
The transaction system in Omnivalue builds on a model of an asset as being composed of a number of identical units of value. A transaction can be viewed as a transform operator which operates on the set of units in the assets. The transaction is completely separate from the asset such that the same transaction can be applied to different assets. For example, a transaction defined in one asset can be copied and used in a different asset. A transaction can even be copied across value types, a buy transaction in a stock asset may be copied and used in a mutual fund asset.
Transactions can also be exported in the OmniValue file format, and distributed to other users. For example, a public transaction such as a dividend or a split may be defined by a company accountant and distributed to all shareholders of the company as an OmniValue file. The shareholder can import the transaction into his document by selecting Value->Import...
The transaction model in OmniValue is open, i.e. new transaction types can be defined and used in Omnivalue documents. In the next sections it will be shown how the model works and how new transaction types can be created.
The transaction model in OmniValue comprises of two steps:
The specification of which unit numbers to use, and of which type of update to do, is specified using four switches or operators. The set of operators fully defines the behavior of a transaction. The set of operators constitutes a programmable interface to the transaction model, which can be used to define new types of transactions. An overview of the transaction model and the associated operators (marked in green) is shown in the figure below.
The four operators defining the behavior of a transaction are:
The data of a transaction is:
These values are defined by the user through input fields in the transaction dialog. Other dialog input fields are date and comment. Data stored in a transaction is called "external", since it is defined outside of the asset.
The current state of the asset is also a part of the transaction model. The state is defined by:
Data stored in an asset is called "internal" since it is defined within the scope of the asset.
The Count Select operator determines which unit count to use in the transaction.
Setting | Basecount |
Internal | AC |
External | TC |
Product | AC * TC |
Product Differential | AC * TC - AC |
The Value Select operator determines which unit value to use in the transaction.
Setting | Basevalue |
Internal | AV |
External | TV |
Total | TV / basecount |
Zero* | 0 |
(*) Selecting a basevalue of Zero implies that the transaction has no value.
The Count Update operator determines how to update the number of units in the asset.
Setting | Updated AC |
None | AC |
Add | AC + basecount |
Subtract | AC - basecount |
Equal | basecount |
The Value Update operator determines how to update the investment in and return of the asset.
Setting | Updated investment and return values |
None | no update |
Investment | investment is increased with (basecount * basevalue) |
Return | return is increased with (basecount * basevalue) |
In order to view the definitions for transaction types open the transaction type dialog by selecting Program->Transactions... in the main view.
The transaction type dialog contains a list of all transactions defined in the program. If a transaction is selected in the list, the four operators defining the behavior of the transaction is indicated in the lower four boxes of the dialog. Each box corresponds to one operator, and the setting of the operator is indicated by the option buttons inside the group box.
In this chapter it will be demonstrated how a new transaction type can be defined. As an example, a transaction called "Premium" will be defined. A Premium is here defined as a transaction which requires an owner of stocks in a company to pay a charge per stock to the company. This may correspond to a situation where the company really is charging a fee for each stock, or it may describe a case where the company is asking its share holders to supply new venture capital, with a contribution depending on the number of stocks in the owners possession.
In order to define a new transaction type, select the menu option Type->New... in the transaction type dialog (not in the main view). The following dialog is shown:
Name the transaction type to "Premium" and provide a brief description.
In the transaction type dialog, select the Premium transaction, and then set the operators:
The dialog should display the following settings for the Premium transaction after all selections have been made:
As can be seen in the list of transaction types, the icon for the Premium transaction is not showing the correct action of the transaction, but is instead showing the application icon for OmniValue. This will be the case when there is no predefined icon that matches the definitions for a new transaction type.
When closing the dialog, click the "OK" button in order to save the new Premium transaction to the main program. Before the Premium transaction can be used in a OmniValue document, it has to be included in a value type. This is further described in the section for including transaction types.
© Milliplex