C# Client Library
A C# Client Library for the AnalyzeRe REST API
Loading...
Searching...
No Matches
AnalyzeRe.Layers.ValueAllocator Class Reference

Surfaces the value-allocator specialty structure (which is treated as a "layer definition" by the API). Similar to the Nested layer construct, this structure can reference other layers or layer_views and manipulate their losses in a specific way. The resulting net losses to this structure represent a proportional allocation (multiplication) of the source structures' losses, using the ratio of the "Target" (target) to "Group" (group) structures' loss for each event loss occurrence. More...

Public Types

enum  AllocationRatioBasis { PerEvent , PerTrial }
 Dictates how value allocator layer should allocate losses per event or per trial. More...
 
enum  Perspective { LossNetOfAggregateTerms , ReinstatementPremium , ReinstatementBrokerage }
 The loss perspectives that can be used when computing proportions (proportioned_perspective) and allocating resulting losses (allocation_perspectives). More...
 

Public Member Functions

virtual T ShallowCopy< T > ()
 Create a shallow copy of this object.

See also
ExtensionMethods.DeepCopy<T>

for a serializer-based copy method.

 

Static Public Attributes

static readonly string CLASS_COLLECTION_NAME = "layers"
 The collection endpoint at which resources of this type reside on the server.
 

Protected Member Functions

virtual void AfterMembersCloned (APIType originalResource)
 Invoked following construction if the current instance has been created using a member-wise clone of some other instance. Override if your derived APIType class contains some members that should not be cloned.
 

Properties

Perspective[] allocation_perspectives [get, set]
 Dictates which 'columns' of the YELT (which Perspectives) should be affected by the value allocator.
 
AllocationRatioBasisallocation_ratio_basis [get, set]
 Allows to select how allocated values should be calculated: on PerEvent (by default) or PerTrial basis.
 
static string APITypeName [get]
 Can be used to get the API type name in a static context.
 
override string collection_name [get]
 The collection endpoint at which resources of this type reside on the server.
 
DateTime? created [get, set]
 The date and time when the resource was created on the system.
 
string description [get, set]
 A user-friendly description of the resource.
 
IReference< ILayerSourcegroup [get, set]
 A structure whose event losses are used as the denominator for calculating each event loss occurrences's allocation ratio.
 
string id [get, set]
 The resource's unique identifier. It will be used in the request URL when requesting the resource from the server.
 
Dictionary< string, object > meta_data = new Dictionary<string, object>() [get, set]
 Any user-defined metadata for this layer.
 
DateTime? modified [get, set]
 The date and time when the resource was last modified on the system.
 
string Path [get]
 The relative path to this endpoint from the root URL.
 
Perspectiveproportioned_perspective [get, set]
 The Loss Perspective of the target and group YELT values used when calculating the allocation ratio.
 
IReference< ILayerSourcesource [get, set]
 A structure whose event losses are proportionally allocated using the ratio of target to group loss values on a per-event occurrence basis.
 
IReference< ILayerSourcetarget [get, set]
 A structure whose event losses are used as the numerator for calculating each event loss occurrences's allocation ratio.
 
string type [get]
 The server name for this type of resource.
 

Detailed Description

Surfaces the value-allocator specialty structure (which is treated as a "layer definition" by the API). Similar to the Nested layer construct, this structure can reference other layers or layer_views and manipulate their losses in a specific way. The resulting net losses to this structure represent a proportional allocation (multiplication) of the source structures' losses, using the ratio of the "Target" (target) to "Group" (group) structures' loss for each event loss occurrence.

The ValueAllocator (VA) essentially evaluates the following mathematical operation for each and every event using the net losses from the source (S), target (T) and group (G) net loss results:

LossVA = LossS * LossT / LossG

Unlike most layer types, this specialty operator-"layer" cannot be used as the sink of a NestedLayer. It should never need to be, since it has its own direct layer "source" input.

Definition at line 20 of file ValueAllocator.cs.

Inheritance diagram for AnalyzeRe.Layers.ValueAllocator:
AnalyzeRe.Layer AnalyzeRe.APITypes.StoredAPIResource_Polymorphic AnalyzeRe.ILayer AnalyzeRe.APITypes.StoredAPIResource AnalyzeRe.APITypes.IAPI_Polymorphic AnalyzeRe.ILayerSource AnalyzeRe.APITypes.IStoredAPIResource AnalyzeRe.APITypes.IAPI_Polymorphic AnalyzeRe.APIResource AnalyzeRe.APITypes.IStoredAPIResource AnalyzeRe.IAPIResource AnalyzeRe.APITypes.IAPI_Polymorphic AnalyzeRe.IAPIResource AnalyzeRe.APIType AnalyzeRe.IAPIResource AnalyzeRe.IAPIResource AnalyzeRe.IAPIType AnalyzeRe.APITypes.IEndpoint AnalyzeRe.IAPIType AnalyzeRe.APITypes.IEndpoint AnalyzeRe.IAPIType AnalyzeRe.IAPIType AnalyzeRe.APITypes.IEndpoint AnalyzeRe.IAPIType AnalyzeRe.APITypes.IEndpoint

Member Enumeration Documentation

◆ AllocationRatioBasis

Dictates how value allocator layer should allocate losses per event or per trial.

Enumerator
PerEvent 

The allocated values should be calculated on per event basis.

PerTrial 

The allocated values should be calculated on per trial basis.

Definition at line 124 of file ValueAllocator.cs.

◆ Perspective

The loss perspectives that can be used when computing proportions (proportioned_perspective) and allocating resulting losses (allocation_perspectives).

For a short time, these initially reused the AnalyzeRe.Perspective.Base enumeration, but the two have since diverged.

TODO: This enumeration is not forwards-compatible. If additional allocation/proportioned perspectives are to be added in the future, consider reverting to use of the AnalyzeRe.Perspective.Base class (if appropriate) or perhaps creating a "ForwardsCompatibleEnum" helper class for these purposes which can fall-back to storing and regurgitating the string value as-is. Switching entirely to a string is not recommended, because it makes it difficult for developers to know values are possible, which isn't .NET-like.

Enumerator
LossNetOfAggregateTerms 

Use Net event loss amounts (includes all RecordTypes).

ReinstatementPremium 

Use ReinstatementPremium amounts (only applicable to RecordType.Loss records).

ReinstatementBrokerage 

Use ReinstatementBrokerage amounts (only applicable to RecordType.Loss records).

Definition at line 32 of file ValueAllocator.cs.

Member Function Documentation

◆ AfterMembersCloned()

virtual void AnalyzeRe.APIType.AfterMembersCloned ( APIType  originalResource)
inlineprotectedvirtualinherited

Invoked following construction if the current instance has been created using a member-wise clone of some other instance. Override if your derived APIType class contains some members that should not be cloned.

Overriding implementations should be sure to invoke base.AfterMembersCloned().

A sane question for a code reviewer to ask might be: "Why not avoid copying those members in the first place?" The answer is that there is no framework-supported method of excluding members from a MemberwiseClone. The only officially supported solution is to not use the object.MemberwiseClone method at all and instead have each class implement it's own Copy method. In our case, most objects have no need to specialize their copy implementation (even though they could - the ShallowCopy<T> method is marked virtual). It's simpler to simply "correct" any special-case members after the fact, and requires less error-prone code than if the code were responsible for ensuring no members were missed in a copy. It's also faster than any reflection-based approach, even though such an approach could benefit from custom attributes meant to exclude certain members from copying.

Reimplemented in AnalyzeRe.APITypes.APIResource_WithDataEndpoint, AnalyzeRe.APIResourceView.BaseAPIResourceView, AnalyzeRe.Distributions.CustomDistribution, AnalyzeRe.LossSets.LossSet_WithData, AnalyzeRe.Optimization.Candidate, AnalyzeRe.Optimization.OptimizationView, and AnalyzeRe.StaticSimulation.

Definition at line 37 of file APIType.cs.

◆ ShallowCopy< T >()

virtual T AnalyzeRe.APIType.ShallowCopy< T > ( )
inlinevirtualinherited

Create a shallow copy of this object.

See also
ExtensionMethods.DeepCopy<T>

for a serializer-based copy method.

Returns
A shallow copy of this object.

If this object contains any members that reference the current object (this), the class should override this method to avoid cloning a reference to the old class.

Implements AnalyzeRe.IAPIType.

Type Constraints
T :IAPIType 

Definition at line 14 of file APIType.cs.

Member Data Documentation

◆ CLASS_COLLECTION_NAME

readonly string AnalyzeRe.Layer.CLASS_COLLECTION_NAME = "layers"
staticinherited

The collection endpoint at which resources of this type reside on the server.

Definition at line 15 of file Layer.cs.

Property Documentation

◆ allocation_perspectives

Perspective [] AnalyzeRe.Layers.ValueAllocator.allocation_perspectives
getset

Dictates which 'columns' of the YELT (which Perspectives) should be affected by the value allocator.

Changing these perspectives will impact both the 'LossS' value used, and the ValueAllocator (VA) value assigned in the equation:

LossVA = LossS * LossT / LossG

for example, setting the allocation_perspectives to Perspective.ReinstatementPremium would alter the above equation to:

ReinstPremiumVA = ReinstPremiumS * LossT / LossG

Thus affecting only the reinstatement premiums, and otherwise leaving source event losses unaltered.

Definition at line 100 of file ValueAllocator.cs.

◆ allocation_ratio_basis

AllocationRatioBasis? AnalyzeRe.Layers.ValueAllocator.allocation_ratio_basis
getset

Allows to select how allocated values should be calculated: on PerEvent (by default) or PerTrial basis.

Definition at line 106 of file ValueAllocator.cs.

◆ APITypeName

string AnalyzeRe.APITypes.StoredAPIResource_Polymorphic.APITypeName
staticgetinherited

Can be used to get the API type name in a static context.

Definition at line 17 of file StoredAPIResource_Polymorphic.cs.

◆ collection_name

override string AnalyzeRe.Layer.collection_name
getinherited

The collection endpoint at which resources of this type reside on the server.

Implements AnalyzeRe.IAPIResource.

Definition at line 18 of file Layer.cs.

◆ created

DateTime? AnalyzeRe.APITypes.StoredAPIResource.created
getsetinherited

The date and time when the resource was created on the system.

Implements AnalyzeRe.APITypes.IStoredAPIResource.

Definition at line 19 of file StoredAPIResource.cs.

◆ description

string AnalyzeRe.APITypes.StoredAPIResource.description
getsetinherited

A user-friendly description of the resource.

Implements AnalyzeRe.APITypes.IStoredAPIResource.

Definition at line 14 of file StoredAPIResource.cs.

◆ group

IReference<ILayerSource> AnalyzeRe.Layers.ValueAllocator.group
getset

A structure whose event losses are used as the denominator for calculating each event loss occurrences's allocation ratio.

Conceptually, the "group" represents the total sum of risk being sub-divided (allocated) to multiple "targets". You may wish to perform several value-allocations, all of which reference the same "source" and "group", but different "targets" - where the sum of all "target" losses equals the total "group" losses.

This reference supplies the YELT of 'LossG' values in the equation:

LossVA = LossS * LossT / LossG

Definition at line 72 of file ValueAllocator.cs.

◆ id

string AnalyzeRe.APIResource.id
getsetinherited

The resource's unique identifier. It will be used in the request URL when requesting the resource from the server.

Implements AnalyzeRe.IAPIResource.

Definition at line 16 of file APIResource.cs.

◆ meta_data

Dictionary<string, object> AnalyzeRe.APITypes.StoredAPIResource.meta_data = new Dictionary<string, object>()
getsetinherited

Any user-defined metadata for this layer.

Implements AnalyzeRe.APITypes.IStoredAPIResource.

Definition at line 30 of file StoredAPIResource.cs.

◆ modified

DateTime? AnalyzeRe.APITypes.StoredAPIResource.modified
getsetinherited

The date and time when the resource was last modified on the system.

Implements AnalyzeRe.APITypes.IStoredAPIResource.

Definition at line 24 of file StoredAPIResource.cs.

◆ Path

string AnalyzeRe.APIResource.Path
getinherited

The relative path to this endpoint from the root URL.

The relative path to this endpoint from the root URL.

Exceptions
System.ArgumentExceptionIf this resource does not have an id.

Implements AnalyzeRe.APITypes.IEndpoint.

Definition at line 27 of file APIResource.cs.

◆ proportioned_perspective

Perspective? AnalyzeRe.Layers.ValueAllocator.proportioned_perspective
getset

The Loss Perspective of the target and group YELT values used when calculating the allocation ratio.

Changing this perspective will impact both the 'LossT' and 'LossG' values in the equation:

LossVA = LossS * LossT / LossG

for example, setting the proportioned_perspective to Perspective.ReinstatementPremium would alter the above equation to:

LossVA = LossS * ReinstPremiumT / ReinstPremiumG

Definition at line 85 of file ValueAllocator.cs.

◆ source

IReference<ILayerSource> AnalyzeRe.Layers.ValueAllocator.source
getset

A structure whose event losses are proportionally allocated using the ratio of target to group loss values on a per-event occurrence basis.

This reference supplies the YELT of 'LossS' values in the equation:

LossVA = LossS * LossT / LossG

Definition at line 49 of file ValueAllocator.cs.

◆ target

IReference<ILayerSource> AnalyzeRe.Layers.ValueAllocator.target
getset

A structure whose event losses are used as the numerator for calculating each event loss occurrences's allocation ratio.

Conceptually, the "target" represents a component of risk from the greater "group" of risk. The proportion it makes up of that group reflects the amount of "source" risk that should be attributable to the current target.

This reference supplies the YELT of 'LossT' values in the equation:

LossVA = LossS * LossT / LossG

Definition at line 60 of file ValueAllocator.cs.

◆ type

string AnalyzeRe.APITypes.StoredAPIResource_Polymorphic.type
getinherited

The server name for this type of resource.

Implements AnalyzeRe.APITypes.IAPI_Polymorphic.

Definition at line 13 of file StoredAPIResource_Polymorphic.cs.


The documentation for this class was generated from the following file: