Structure Definition Language Overview
Structure Definition Language (SDL) allows you to form a precise subject of a treaty and specify financial positions. A Structure written in SDL models the flow of quantities such as risk, loss, premium, and expenses as they pass through CDL contracts and other transformations.
What is a Structure?
A structure is a document that specifies a collection of positions. A position has a name, which is unique within the structure, and a definition, which consists of an operation and one or more operands.
Structure Operations
The operations are:
- Group: A + B + C - D
-
Adds (+) or subtracts (-) corresponding quantities in its operands. Example:
A is 100$ of Hurricane Loss
B is 200$ of Hurricane Loss and $50 of Earthquake loss
A + B is $300 of Hurricane Loss and $50 by Earthquake
-
- Scale: A * 1.2
- Multiplies each quantity in the operand by the scalar value
- Filter: A / {Country IN (‘US’, ‘CANADA’)}
- Applies criteria to the operand. Only rows that meet the criteria pass the filter.
- Contract:
The operand is the subject of the CDL contract corresponding to the position being defined. Example:
A is Contract on B means the CDL contract with the name A takes the position B as its subject.
Structure Name
A structure has a name, which is unique. Since a position’s name is unique within a structure, and a structure name is globally unique, this means that any position can be identified by a combination of (structure name, position name). SDL expresses this as structureName!positionName.
Position Definitions
A position definition, such as
Gross is Direct + Assumed
defines a new position, named Gross, as the result of grouping the positions named Direct and Assumed. The operands Direct and Assumed may be defined elsewhere in the structure, or they may be leaf positions, which must be given an initial value (for example, from a Period Loss Table) before SDL can evaluate structure.
Since SDL can uniquely specify a position in another structure using the "!" notation, an external position can appear as an operand but not as the position that is being defined.
Therefore, this is a valid definition:
Gross is Residential!Gross + Commercial!Gross
This is an invalid definition:
SomeOtherStructure!Gross is Residential!Gross + Commercial!Gross
This ability to refer to external positions allows SDL to compose hierarchies of arbitrary size from building blocks of manageable size.
A reinsurer can represent a portfolio of its inforce treaties, with retrocession programs at various organizational levels, by constructing a hierarchy of structures, where individual cedant programs are each expressed as structures. By initializing the leaf positions of these cedant programs, SDL can roll up modeled loss or other quantities through the hierarchy and report statistics on positions at any level.
SDL can do the same for a large insurer or for a company that both buys and sells reinsurance.
Given any target position, in any structure, SDL can efficiently build a graph of all the positions on which the target depends, either directly or indirectly. This graph, which is mathematically the transitive closure of the target position, is called the position graph.
Other Characteristics of SDL
The position graph is a directed acyclic graph of positions. This means that a position cannot depend, even indirectly, on itself.
SDL is a declarative language. The order in which position definitions occur in a structure is not significant.
Structure and position names are case preserving, but case insensitive. The following example defines the positions Adjusted and Modeled:
Adjusted is modeled * 1.1
Modeled is Wind + Hail
The graph for this structure contains the four position Modeled, Adjusted, Wind, Hail, and not the five positions Modeled, modeled, Adjusted, Wind, and Hail.
RDOS version 1.0 of the Structure Definition Language does not specify:
- Filter syntax
- Method of initializing leaf positions
- Method of associating a CDL contract text with a Contract position
Read next: Structure Definition Language Elements