OmniValue Help Pages

  Transactions and Types  

3.1 Introduction

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.


3.2 Transaction Model

The transaction model in OmniValue comprises of two steps:

  1. Record: select which unit count, and which unit value to use in the transaction
  2. Payment: update the number of units, the investment, and the return of the asset

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.

Overview of the transaction model in OmniValue.  The programmable operators are marked in green.

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.


3.3 Count Select

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


3.4 Value Select

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.


3.5 Count Update

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


3.6 Value Update

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)


3.7 Transaction Type Dialog

In order to view the definitions for transaction types open the transaction type dialog by selecting Program->Transactions... in the main view.

The definitions for the Buy transaction

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.


3.8 Creating new Transaction Types

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:

Define a name for the transaction type and a description

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:

The definitions for the Premium transaction

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