Strategy Level Performance (Single Security Multiple Nodes)

Performance Calculation supports the committing of multiple returns for the same security within an entity.  This includes multiple returns under a single node in a dictionary, multiple returns under multiple nodes in a dictionary, and multiple returns in a single node and in multiple nodes.  The most common illustration of this is when a security is held both long and short in an account and you would like to commit the returns separately.

The Performance Calculation profile provides multiple options to choose from when committing separate security returns for long and short positions.  These separate long and short returns can be used in downstream reporting with Performance models or with dynamic performance the same as rolled up security returns.

Single Security under Multiple Nodes Security Types

Security Return Type

Description

Security Return Type

Description

Single Position (S)

This is the legacy security return. By definition, this security return type can be committed only under a single dictionary node on a given date. If there are Long and Short positions, then they can be committed only by aggregating the market values.



This is retained for the sake of backward compatibility.

Positions by Strategy (SS)

This type enables you to commit a separate return for each strategy. The strategy is tagged to the position in position_detail table.



For example, if a security has Long and Short positions, you can commit Long and Short returns separately. The return would be committed along with the strategy code. The two returns committed separately for the same security would be treated by Performance Analysis function as returns of two different securities.

Positions by Strategy and Dictionary Classification (SP)

This type enables you to commit a separate return for a security specific to a dictionary node.

The SP type is useful when a security is forced to be part of multiple nodes in the dictionary by mechanisms like inference fields.

SP supports multiple returns under multiple nodes in a dictionary.

Database Model Supporting Single Security Multiple Nodes (Strategy Performance)

The Single Security Multiple Nodes functionality is facilitated through the RULESDBO.STRATEGY and RULESDBO.STRATEGY_DETAIL tables.  These tables are pre-loaded with a default strategy.  This default strategy is based on the relation field LONG_SHORT_INDICATOR field from the HOLDING AND CASH_ACTIVITY tables as the STRATEGY_FIELD_ATTRIBUTE.

The STRATEGY table has a default strategy 1001 with STRATEGY_NAME of Position Tag Model. 

Strategy Table

The LONG_SHORT_INDICATOR field attribute is the default STRATEGY_FIELD_ATTRIBUTE field for this strategy and is identified in the STRATEGY_DETAIL_TABLE.  Each LONG_SHORT_INDICATOR value on a position or cash_activity used in by the Performance Calculation adds a new row with unique STRATEGY_DETAIL_ID.

We do not support LS as a value for the LONG_SHORT_INDICATOR.  The LONG_SHORT_INDICATOR column should not be populated with LS in the POSITION_DETAIL table or the CASH_ACTIVITY table.

In the table below you can see the unique STRATEGY_DETAIL_ID for each STRATEGY_SHORT_DESCRIPTION.   The STRATEGY_DETAIL_ID is used in the PERF_SEC_RETURNS table as a unique identifier.

unique STRATEGY_DETAIL_ID for each STRATEGY_SHORT_DESCRIPTION

Use the Performance Calculation to Commit Multiple Returns for a Single Security

To enable committing returns multiple times for a security, ensure that the Performance Calculation setting Rollup Securities at the Last Level, is off. 

Security Commit Options

Once you set the option to off, the sub-security level Commit Options display under the Security Commit Options. 

Each Security Commit Option has a specific PERF_SUMMARY_TYPE in THE PERF_SUMMARY TABLE.

  • Single Position has a PERF_SUMMARY_TYPE = S.

  • Positions by Strategy has a PERF_SUMMARY_TYPE OF SS

  • Positions by Strategy and Dictionary Classification has a PERF_SUMMARY_TYPE of SP

  • S, SP, and SS type records will all be linked to the security level records in the PERF_SEC_RETURNS table by PERF_SUM_INST.

Select the Type of Security Return

To store separate returns for a single security based on a strategy field, you will need to choose either SP or SS return types.
Both allow multiple returns to be stored for a single security.

SS Records

SS records are sub-security returns that are unique for each SECURITY_ALIAS, EFFECTIVE_DATE, ENTITY_ID like S records but also have the unique identifier STRATEGY_DETAIL_ID.  They can be used in dynamic performance analysis and with performance models.

When you choose Positions by Strategy SS a P type record and an SS type record is written to the PERF SUMMARY TABLE.  SS records have a STRATEGY_ID but do not have a dictionary_id =0 as they are not specific to a dictionary.

The PERF_SEC_RETURN SS records will have the ROLLUP_RETURNS_ID = 0.  SS records are unique by STRATEGY_DETAIL_ID and SECURITY_ALIAS and are available for Dynamic Performance Analysis reporting like S security records.

SP Records

When you choose Positions by Strategy and Dictionary Classification SP, a P type record and an SP type record is written to the PERF SUMMARY TABLE.  The P type is for the total and rollup level returns.  The SP record represents the sub-security level records in the PERF_SEC_RETURNS table.  SP records are specific to a performance model and therefore will have a DICTIONARY_ID populated.

The SP records in PERF_SEC_RETURNS are sub-security returns that are unique for each SECURITY_ALIAS, EFFECTIVE_DATE, ENTITY_ID,  STRATEGY_DETAIL_ID and importantly PERF_ROLLUP_RETURNS_ID. Each record is linked to a specific node in the dictionary by the PERF_ROLLUP_RETURNS_ID.  This allows SP records to support committing securities returns for multiple long positions in in multiple nodes without violating unique constraints.  SP style security returns can only be used with Performance Models.