GSD Implementation Guide
GSD Implementation Guide
Implementation Guide
This document is intended for Implementation Guide only. The information is being provided to assist the recipient in evaluating a possible
commercial relationship with Adenza (formerly AxiomSL) and should not be used for any other purpose. This document is proprie tary to Adenza and
constitutes confidential information under the terms of the Mutual Non-Disclosure Agreement or similar confidentiality arrangement that
Implementation Guide may have entered into, or may in the future enter into, with Adenza. While Adenza believes that the information contained
herein is accurate and current through the date hereof, neither Adenza nor any person acting on its behalf makes any representations or
warranties, expressed or implied, as to the accuracy of such information, and expressly disclaims any and all liability that may be based on such
information or errors or omissions thereof. This document does not constitute or imply any promise to license or sell any products or services. Any
transaction between Adenza and Implementation Guide is subject to the execution and delivery of a definitive agreement between the parties.
Summary 4
RefReportingEntity 7
RefReportingEntityGroups 8
RefReportingEntityHierarchy 9
RefEntityGroupLogic 11
RefEntityGroupLogicIssuer 12
RefMonitoringEntityGroups 13
RefReportEntityMapping 14
RefReportingEntityHierarchy Maintenance 14
3.2 Capacity Exemptions Configuration 15
Delta System 21
Bracket System 22
Proximity Threshold 23
Issuer Threshold 23
3.7 Monitoring and Reporting transactions 24
3.8 Relation between security id, class of share and ISIN 24
3.9 Reporting client static 24
3.10 Optional jurisdiction specific reference inputs 25
3.11 Instance keys and historical data sources 26
3.12 How to configure flags related to share in nature scope 26
3.13 Beneficiary trigger 28
Data Validations 31
5.1 Shares 31
5.2 Sovereign Debt and Uncovered CDS 33
5.3 Monitoring frequency 34
5.4 Issuer thresholds 35
5.5 Sub statuses 35
5.6 Capacity filter by group 36
5.7 Market Maker Exemptions 37
Version History
02/11/2017 AxiomSL 2.0 Added details about the Monitoring date, Florange, Japan
unregistered entities, ETF configuration and analysis objects
02/12/2017 AxiomSL 3.0 Added details about false positive scenarios, Short Selling process,
and key objects
25/01/2018 AxiomSL 4.0 Added 13F Pre-Conditions
09/11/2018 AxiomSL 5.0 Added following sections: custom buckets and control tables
instances adjustments framework
22/08/2019 AxiomSL 6.0 Extended entity Configuration, Japan configuration, capacity
exemptions. Added Threshold systems, added details about end to
end workflows, added list of available instances for cntr tables
30/09/2021 AxiomSL 7.0 Added monitoring frequency, voting rights override, dashboard final
status, beneficiary trigger, delisted, capacity filter by group
configuration details and sub-statuses logic
28/10/2021 AxiomSL 8.0 Added logic for SH collateral logic, JP change in nature, ETF and
Index Check, IN IGP Issuers and SS Market Maker Exemptions
30/11/2021 Adenza 9.0 Updated header and footer with Adenza naming
30/03/2022 Adenza 10.0 Changed GSD Implementation Guide to the latest Adenza template
The tabs are colour coded for each different type of table, as follows:
KEY DESCRIPTION
Overview
Reference tables
Dimension tables
If a change has occurred since the previous version, the relevant column will be ticked in the grid below.
The comments section, on the right-hand side of the Change Control, will specify the details of any
changes that have been made to the tables that are marked with a tick, as well as indicating any changes
to the overall layout of the calc inputs file.
The default instance column lists the As Of Date of the instance in question. Meanwhile, the ‘Default
Instance Empty’ column defines whether the default instance is populated with data or not.
Calc Data Input tables are the templates for entering transactional/operational data into the solution.
Reference tables, labelled with the prefix ‘Ref’, are used to store static data. These are used to enrich the
monitoring and reporting process - including common reference data that is jurisdiction agnostic, data for
specific disclosure types, as well as jurisdiction-specific data.
The Calc Data Input and Reference tables are comprised of the following components:
Data Type The data type that the field is expecting to be populated with.
Field Size The maximum size that the field will allow. This is only populated for VARCHAR
values.
Format This indicates further details on the acceptable values for a field. Dates and
timestamps will have the expected format of entry here. If an ISO standard is
expected this will be indicated here. If the field expects a value from a specified
list, the link to the associated Dimension Table will be indicated here.
Mandatory/ This column indicates which fields are mandatory for all calculations as well as
Conditional/ specifying which fields are required for certain regimes/jurisdictions only. The
Optional column is populated using the following key:
M – Mandatory: This field must be populated. The comments section adds extra
details for these requirements.
C – Conditional: May be required for certain disclosure types or jurisdictions.
O – Optional: This field is optional.
Comment This field contains granular details on the intended function of the field.
Any changes to the tables, since the previous version, will be indicated in the comments section of the
Change Control tab, as explained above.
If a default value is specified for a mandatory field, and the client does not have any logic to fill that field,
then the specified default value must be used to populate this field.
We will be exploring the example below throughout this section to help clarify how to configure Entity
tables within GSD Solution. Bearing in mind that all mandatory tables must be populated and
subsequently maintained by the client.
Steps to Configure:
RefReportingEntity
1. All the orgUnits used by the security positions (in the fields SecurityPosition.orgUnit,
SecurityPosition.orgUnit2, SecurityPosition.orgUnit3) need to be specified in the
RefReportingEntity reference table.
RefReportingEntity - This table is used to define reporting components as in the above Entity
diagram. This table is used to define important information such as Legal entity (Y/N) and holder
type. Even the group needs to be defined as entity in this refTable (Line 12 below screenshots).
**Note: All orgUnits should be part of the RefReportingEntity table even if they are not Legal Title.
For best practice follow the example naming convention, there should be no spaces with in the
code, e.g. Axiom_USA
RefReportingEntityGroups
4. All the groups used in the monitoring and reporting processes must be defined in the
RefReportingEntityGroups reference table.
The example below is representing a concert party that has formed with Axiom_USA &
Axiom_EMEA. In case of concert party all group entity members need to be linked to an “artificial”
parent entity, e.g. in below example the “artificial” entity is: “Axiom_US_EMEA” and this entity
must be defined in the RefReportingEntity. Group “US_EMEA” must be defined in the
RefReportingEntityGroups table. When we define the reporting entity group, we also define the
Group Type and the Leader Entity (leader entity can be any entity of the concert party excepting
“artificial” entity).
RefReportingEntityHierarchy
6. For all the orgUnits from positions and all the parent entities (used for monitoring and reporting)
there should be a SELF relation in the RefReportingEntityHierarchy.
If the same group is applicable on more than one disclosure type or across all disclosure types,
then for each allowed disclosure type separate record should be added. “N_A” is not allowed for
the column “Disclosure Type”.
If the same group is applied across all jurisdictions, in this case the ‘Jurisdiction’ can be populated
with ‘N_A’ instead of adding a record for each jurisdiction.
However, on the same group code and disclosure type combination you cannot have two records
as in the following scenario: one record with “N_A” for jurisdiction field and other record with
value different than “N_A” for jurisdiction field because this will duplicate the data.
RefEntityGroupLogicIssuer
8. In case groups are used only for specific jurisdiction and issuers then these groups must be
mentioned in the RefEntityGroupsLogicIssuer. This table is not mandatory to be populated if
groups are used across all jurisdictions and issuers for the target disclosure type.
Fields “Jurisdiction” and “IssuerId” from this table cannot be populated with “N_A”.
According to the below example if group are used only for specific jurisdiction and issuers then
we must populate RefEntityGroupLogicIssuer table further in order to specify the issuers
applicable.
RefMonitoringEntityGroups
9. Monitoring level is specified by the control table named monitoringLogic. Each disclosure type
has its own specific monitoring logic control table. Possible levels are: GROUP, DIRECT_HOLDER,
DIRECT_PARENT, ANY.
In case Monitoring levels is different than GROUP, if client wants to minimise the number of
entities to be monitored then the RefMonitoringEntityGroups reference table must be filled.
This table will specified for each group code, disclosure type and jurisdiction and the entities to
be monitored but these entities will be used in monitoring only if they accomplish the monitoring
logic level condition.The table is not mandatory to be populated if all entities that respect the
monitoring logic level must be monitored.
**Note: JURISDICTION column can be populated with “N_A” but ENTITY column does not allow
“N_A”.
RefReportEntityMapping
10. Another optional table is RefReportEntityMapping. For Japan, we are using conditional level
monitoring. We will monitor all (hierachy) entities from its group. If client wants to minimise the
number of entities that breaches to be display on their Dashboard, they can specify this in
RefReportingEntityMapping table.
RefReportingEntityHierarchy Maintenance
11. Relations between child entities, indirect parents and the ultimate parent are not generated
automatically by the system. They will have to be defined by the user in this reference table, this is
vital.
The above screenshot suggests that if positions for SH disclosure type and GB jurisdiction with particular
jurisdiction classification which belong in to this list of capacity type will be excluded from further
calculation.
1. Identify all positions that has the same capacity type and book type as target rules exemption
scenario.
2. Positions that has been identified from step 1 then needs to be aggregated on entity level specify
in the rules SH_cntr_exemptionAggregationBasis.
3. If the aggregated results are less than the threshold rules from SH_cntr_calcExemptionThreshold
then you must exempt those positions.
Not all client wants to use calculated capacity exemption functionality at all OR partially then they need
to populate RefExemptionValidity and RefExemptionOverride table. We are going to explore different
scenarios to clarify and help you with the configuration.
1 record in RefExemptionValidity SH | N
None of the fields form this table will allow “N_A” value.
If client want to apply exemption to most jurisdictions but disable exemption for a few jurisdictions.
None of the fields form this table will allow “N_A” value.
If clients want to override the number of voting rights calculated by the system – then input
CalcVotingRightsOverride from SD_SH_CalcInput will be used.
For Japan monitoring threshold and disclosure time frame rules and reporting form are kept under a
specific table – SH_JP_cntr_monitoringThreshold. This is because the criterial and logic to define the
current threshold and reporting form is different than other jurisdictions. However, you may still find
disclosure time frame for Japan under SH_cntr_DisclosureTimeFrame like other jurisdictions.
Why bimonthly is relevant to monitoring? This is because we have different threshold for bimonthly
regime, and this is Identifiable by Bimonthly indicator column from SH_JP_cntr_monitoringThreshold.
(Y=Bimonthly) (N=Daily)
(Y=Yes) (N=Not registered) (NA= same behaviour for both type of entity)
The entities can be configured as unregistered in the reference table: SH_RefUnregisteredEntity as per
below example.
Delta System
What does delta system mean?
The jurisdiction with this type of threshold system will have the Threshold ID (e.g. 0, 1) as well as the
associated lower and upper threshold trigger and most importantly the absolutely difference value,
usually this is different than 0. In order to determine a breached, the position must be higher OR lower
with the absolute different value of 1.
Australia (AU) jurisdiction utilises the delta system, for further clarity please check the scenario below
against the control table here for Australia.
It is essential to understand that you always compare the percentage holding against the previous
disclosure event not the previous day.
We don’t support intra-day reporting, this is because we don’t get the data feed in real-time.
Bracket System
For most of the jurisdictions, Bracket system threshold apply. With the bracket system field
absoluteDifference = 0 with more threshold ID (e.g. 0 to 8). The idea here is to see which bracket/band
the percentage holding belongs to. Like Delta system All important information is kept under
SH_cntr_monitoringThreshold control table.
We need to make sure that for particular jurisdiction differentiate the jurisdiction classification as this will
be the driver of which thresholds value to apply.
Great Britain (GB) jurisdiction utilises the bracket system, for further clarity please check the scenario
below against the control table here for GB.
Proximity Threshold
This is not a disclosure event. It is for the client to specify if they would like to set an alert if the percentage
holding is close to breaching the threshold. In order to defined proximity monitoring threshold client will
need to update the RefProximityMonitoringThreshold table. This information will be feed into the
Proximity Dashboard to allow client to get an alert whenever the positions are close to breaching.
Issuer Threshold
When client want to define their own threshold, they can define this information here on
RefIssuerMonitoringThreshold table. This is purely for client to input and maintain. Some jurisdiction,
(FR)France for example may want to monitor based on issuer threshold meaning that this table must be
maintained.
The issuer thresholds reference input: RefIssuerMonitoringThreshold will contain both types of
thresholds: proximity and non-proximity thresholds.
If there is defined issuer threshold then it will be followed the issuer threshold system for both: proximity
and non-proximity.
Else if there is no issuer threshold defined then for non_proximity will be taken in consideration
SH_cntr_monitoringThreshold and for proximity will be taken in consideration
RefProximityMonitoringThreshold.
Also, in ThresholdCheck there are different fields for proximity and non-proximity thresholds:
The main inputs used for transactions time frame in monitoring and reporting are:
SH_cntr_transRepTimeFrame: transactions reporting time frame; the possible options are specified in
the dimension: dim_reportingTimeFrame:
▪ SINCE_SPECIFIC_DATE
▪ SINCE_LAST_DISCLOSURE
RefMaxNumberOfTransDays: max number of transaction days: this input is used when there was no
previous disclosure or (there was previous disclosure and for the target jurisdiction is mentioned
option: SINCE_SPECIFIC_DATE in the control input: SH_cntr_transRepTimeFrame) and there are sections
at transactions level and there has to be mentioned for how many days has to be taken in consideration
the transactions prior to the target as of date. This reference input will have a default instance. In case
there is no record mentioned for the target jurisdiction - then 120 days will be the default max number of
transactions days to be used in the calculations.
For a target “as of date”, there can be different runs. In order to keep the history of all runs every time
when it will be a new run this will be performed under different version.
In GSD there is frequent need of working with historical data in order to identify the threshold reason
(Initial, Subsequent, Exit or No Change). From this reason each time when it is needed to be picked up
the historical data for the target as of date it is important to know, in case there is more than one version
on the target as of date, which version will be taken in consideration for further calculations.
Each client can have its own logic to derive the “eligible” version for historical calculations like “max”
version or latest run version.
GSD default solution to find the eligible version considers the latest run version approach but clients can
override this logic.
Example:
Project: SD_SH_PositionMonitoring:
Aggregation[ThresholdChange] can have for same as of date - different instances under different versions
Mirror external data source across all instances for threshold change: data source:
DisclosureHistory_Mirror; primary key of this table is: monitoring id + as of date. Version is not part as
primary key because for same as of date and monitoring id there will be just one eligible version.
Same logic will be applied for delisted shares (SecurityListingData.delistedShareInd) and limited voting
rights (SecurityData.limitedVotingRightsInd)
▪ SH_cntr_beneficiaryTrigger
▪ SH_cntr_beneficiaryTriggerClient
▪ For jurisdiction classifications with dual trigger and with beneficiary trigger configured using
SH_cntr_beneficiaryTrigger, it will still be mandatory to populate:
SH_cntr_jurisdictionAggregationType
▪ SH_cntr_beneficiaryTrigger is optional cntr table and its purpose is to specify trigger at a more
detailed level as: beneficial ownership type
▪ SH_cntr_beneficiaryTrigger can be populated only for jurisdiction classifications that have dual
trigger defined in SH_cntr_monitoringTrigger. Dual triggers can be either
“SHARES_OR_VOTING_RIGHTS” or “NOMINAL_OR_VOTING_RIGHTS”.
▪ Possible options selected for SH_cntr_beneficiaryTrigger.benOwnerType must be in sync with
aggregation type defined in SH_cntr_jurisdictionAggregationType for target jurisdiction
classification.
⬧ For example for NL jurisdiction classifications configured aggregation type is:
“VOTING_OR_MANAGING_POWER” so in SH_cntr_beneficiaryTrigger cannot be added
configuration for NL jurisdiction classifications and beneficial ownership type: “LEGAL_TITLE”.
3.14 Sub-statuses
In this table we have field named: additionalDisclosableEventsId that gives us additional disclosable
events and sub-events that can be monitored on top of global ones as: Initial, Subsequent, Exit.
Possible values for additional disclosable events can be found in the following
dimension: SH_dim_additionalDisclosableEvents
This logic is translated in position monitoring in field named: threshold sub status.
▪ Following options are available when disclosable event id is chosen to monitor change in holding:
⬧ ChangeInBoth: previous run exists and both numerator and denominator changed between
current and previous run
⬧ ChangeInDenominator: previous run exists, numerator did not change but denominator
changed between current and previous run
⬧ ChangeInHolding: previous run exists, denominator did not change but numerator changed
between current and previous run
⬧ NoChange: previous run exists and both numerator and denominator did not change
⬧ NoPrevRun: meaning no previous run exists on the target monitoring properties
▪ Following options is available when disclosable event id is chosen not to monitor change
in holding:
⬧ NA: Sub status not relevant
For substatus field in the cntr table mentioned above there can be two types of configurations:
Security Interest considers only voting rights holdings in the numerator for FR dual trigger and position
types defined as part of the SH_cntr_collateralLogic.
▪ SH_CalcEngine_052 Position does not have disclosable rule and share nature is out of scope and it
is exempted based on the collateral logic
▪ SH_CalcEngine_053 Position is not disclosable based on the rules and share nature is out of scope
and it is exempted based on the collateral logic
▪ SH_CalcEngine_054 Share nature is out of scope and position is exempted based on the collateral
logic
▪ SH_CalcEngine_055 Position does not have disclosable rules and capacity type is exempted and
share nature is out of scope and it is exempted based on the collateral logic
▪ SH_CalcEngine_056 Position is not disclosable based on the rules and capacity type is exempted
and share nature is out of scope and it is exempted based on the collateral logic
▪ SH_CalcEngine_057 Capacity type is exempted and share nature is out of scope and it is exempted
based on the collateral logic
▪ For each below product type, will be checked if the absolute value of the ((difference between
current numerator and previous numerator) divided by current denominator)*100) is higher or
equal to the movement percentage: 1%:
⬧ CONV_DEBT_SECURITY
⬧ EXCHANGEABLE
⬧ SUBSCRIPTION_RIGHTS
⬧ WARRANT
⬧ WARRANT_COVERED
▪ For the equity it is calculated difference of percentage holdings between day 2 and day 1 and the
absolute value of this difference must be higher or equal than zero.
▪ Signage of calculations from steps 1 and 2 must be different
5.1 Shares
Step 1: IN SCOPE HOLDINGS PER JURISDICTION
The short selling regulation requires investors with net short positions in shares to disclose if their
holdings breach specific thresholds.
In order to determine in-scope positions for each jurisdiction, tag the positions from the SecurityPosition
input table with Jurisdiction and Jurisdiction Classification, based on the conditions defined in the
shorthands.
Enrich the positions based on the rules contained in the following control tables:
- Share nature in scope: this specifies whether suspended shares, delisted shares and shares with
limited voting rights should be included in the calculation of both the numerator and the
denominator.
- Share class in scope: determine whether treasury shares and/or unissued shares are included in
the calculation.
- Monitoring trigger: define whether the numerator is calculated on the total number of shares
held, or the nominal value of the shares.
- Disclosable position rules: these rules capture the combination of product and position types that
should be included in the calculation of the holdings, per jurisdiction and jurisdiction
classification.
- Convertibles logic: determine whether convertibles are included in the calculation, and
specify which conversion period to use.
- Delta adjustment basis: positions through derivatives and other financial instruments
may need to be included on a delta-adjusted basis.
Step 4: ELIGIBLE POSITIONS PER JURISDICTION
Combine the steps above to determine eligible in-scope positions for each jurisdiction and jurisdiction
classification.
The eligible in-scope positions now need to be filtered by the appropriate monitoring level (whether on
org unit or group level). These positions will need to be rolled up through the monitoring entity hierarchy,
in order to determine the holdings for each org unit and/or group (if relevant).
Perform the market maker exemption, if applicable, based on the monitoring entity, security ID and
capacity type, as defined in RefMarketMakerExemption. This exemption is relevant in cases where the
entity has applied for the Market Making exemption on specific financial instruments (not the entire scope
of activity.) To qualify for this exemption, entities must be a member of the market on which it is
conducting market-making activities, by dealing as principal in the financial instrument for which it notifies
the exemption.
Apply the netting process, by determining the netting rules (NET_SHORT_POSITION). In order to
ascertain whether the holder has a net short position, we need to net long and short positions per issuer
by deducting short positions from long positions.
The netting ID then needs to be determined based on issuer/security level and monitoring trigger.
Net the positions by portfolio and netting identifier for group type = DISCRETIONARY_INVESTMENT. Net
the positions by entity and netting identifier for group type = CONTROLLED_UNDERTAKING.
Determine the final eligible net short positions for monitoring. If the final position is net short, determine
whether a threshold has been breached by identifying the relevant threshold ID.
1. Enrich the sovereign debt positions with details about the bond, issuer, issuer threshold,
jurisdiction and market.
2. Check if there are any ETF Unit positions, in order to create the breakdown of positions based on
the information contained in the Fund Components table.
3. Check if there are any highly correlated sovereign bonds in RefCorrelatedSovDebts, in order to
allocate the correlated positions to the issuer of the sovereign bond under consideration.
4. Check if there are any positions, other than those of the underlying sovereign bond, covered by a
sovereign CDS in RefCorrelatedSovCDSUnderlying, in order to allocate these positions under the
issuer of the sovereign CDS under consideration.
Calc Engine
5. Tag the positions with the corresponding jurisdiction and jurisdiction classification, based on the
issuer’s jurisdiction, product type and information from the correlated positions.
6. Determine which org unit from the position will be used for monitoring, based on the jurisdiction
aggregation type: in the case of short selling, this will be beneficial ownership type =
MANAGING_POWER.
9. Calculate the NVDAInEUR for Sovereign Bond positions, and/or the DeltaNominalValue for
derivatives and other financial instruments, based on the delta adjustment basis configuration
(from step 7 above).
10. Determine the eligible bond position for the eligible candidate positions.
11. For the candidate sovereign debt positions, net the positions using the bondID and baseBondID.
For correlated sovereign debt positions, consider only those with a resulting net long position.
12. Establish the denominator for the sovereign bond under consideration.
14. Perform the APD exemption based on the entity, bondID, capacityType, and originalSecurityID (if
applicable), as defined in RefMarketMakerExemption.
15. Net the positions by portfolio and issuer in order to determine the eligible net positions. Only net
short positions will be taken into consideration.
17. Enrich the eligible positions with the monitoring rules (monitoring trigger, monitoring basis, and
monitoring scenario which determines the aggregation level required for the numerator
calculation) and the denominator.
18. Calculate the numerator based on the net bond position (from step 16 above).
19. Calculate the bond position holding percentage.
20. Enrich the numerator with the issuer threshold information and check whether there is a threshold
breach.
21. Identify the threshold change (Initial, Subsequent, Exit, or No Change).
22. Identify the disclosure time frame.
23. Based on the set of eligible positions and threshold changes, identify the final list of reportable
positions which breach a threshold.
24. Enrich the list of reportable positions with additional information for the report, such as client
static details.
For SS there is possibility to monitor also daily the jurisdiction classifications with special monitoring
frequency, but daily override monitoring will not be part of alerts dashboard and reporting. Because daily
override is intended to be used for client’s information only and not for regulatory compliance
obligations.
▪ If client wants to monitor special regimes (SS_cntr_monitoringFrequency) also daily without mixing
the special regimes with daily override then will take use of the existing override frequency table
and new override frequency by date table
▪ In RefMonitoringFrequencyOverride: there will be mentioned the jurisdiction classifications that will
be monitored also daily (frequency ind must be on Y). In case clients want to turn off the
daily override defined before then either they remove the target record(s) or they set the flag
frequency ind to N
▪ In RefMonitoringFrequencyOverrideByDate: there will be mentioned the jurisdiction classifications
and target dates that will be daily monitored (frequency ind must be on Y). In case clients want to
turn off the daily override defined before then either they remove the target record(s) or they set
the flag frequency ind to N
▪ If both inputs RefMonitoringFrequencyOverrideByDate and RefMonitoringFrequencyOverride are
configured for same jurisdiction classification then will consider a daily override (monitoring) in
So, comparing with the other disclosure types here there is no option to choose not to monitor change in
holding. It will always be monitored.
▪ ChangeInBoth: previous run exists and both numerator and denominator changed between current
and previous run
▪ ChangeInDenominator: previous run exists, numerator did not change but denominator changed
between current and previous run
▪ ChangeInHolding: previous run exists, denominator did not change but numerator changed
between current and previous run
▪ NoChange: previous run exists and both numerator and denominator did not change
▪ NoPrevRun: meaning no previous run exists on the target monitoring properties
For substatus field in the cntr table mentioned above there can be two types of configurations:
▪ RefGroupTypeCapacityExemptions:
⬧ It is an optional reference input
⬧ It has default empty instance: 01-Jan-1970. By default all capacities (excepting those from
SS_cntr_capacityExemptions) are in scope for all the jurisdiction classifications and group types
⬧ It contains the list of capacities exempted by jurisdiction classifications and group type
Capacity exemption by jurisdiction classification and group type will be checked as part of calc engine
and it will be performed only for positions where it was identified a valid monitoring entity
Jurisdiction: VARCHAR(3); it does not allow NULL; primary key; applicable for both types of positions:
security positions and sovereign debt positions.
Entity: VARCHAR(50); it does not allow NULL; primary key; applicable for both types of positions:
security positions and sovereign debt positions.
SecurityId: VARCHAR(50); it does not allow NULL; primary key
▪ It is applicable only for security positions:
⬧ The only available option is securityId
⬧ It cannot be defaulted to empty string ''
▪ For the sovereign debt positions, it must be defaulted to empty string ''
▪ It is applicable only for sovereign debt positions where possible options are:
⬧ It allows N_A meaning it is applicable for all original securities id
⬧ It cannot be defaulted to empty string ''
Special monitoring frequency regimes can be identified using the table below:
All operational as of dates that will be run for jurisdiction classifications that have
special monitoring frequency must be configured in RefMonitoringDate.
1. Identify the special monitoring regimes according to the cntr input mentioned above (note: for
the 13F there is not a corresponding cntr input and in order to know the special regimes please
consult above table)
2. Next, Monitoring Date configuration is required. All the fields are mandatory. None of these
fields should have “N_A” value.
3. If the same As of Date apply for end of the month, end of the quarter and end of the year then for
each special monitoring frequency there will be different records in this table RefMonitoringDate.
In this case there will be 3 records, e.g: 13F dates:
5. You cannot have 2 records with the same properties (Disclosure Type + Jurisdiction + Monitoring
Date Type + End date) but different Starting date. This is because Start date is not relevant for
calculation.
The default assignee must be configured by jurisdiction in the following dashboard mandatory input:
RefStatusStatic
Final status is defined using following configuration data sources from SD_[DisclosureType]_Reference:
▪ [DisclosureType]_config_finalStatus
▪ [DisclosureType]_config_finalStatusClient
Explanations:
1. Solution will always provide instance for [DisclosureType]_config_finalStatus data source where
the default final statuses are: Closed and Non Reportable
2. Solution will provide empty instance for [DisclosureType]_config_finalStatusClient data source.
This instance to be imported by new clients or clients that use default solution final status logic
3. If clients wants to override the default logic then client will copy the target dashboard status
records from instance of data source: [DisclosureType]_config_finalStatus into instance of data
source: [DisclosureType]_config_finalStatusClient and set flag: finalStatusInd as: Y if the target
status is a final status and N if the target status is not a final status, for example if clients wants to
consider "in_progress" as final status then they will add this record to the instance of
[DisclosureType]_config_finalStatusClient and set flag: finalStatusInd as Y; the other statuses do
not need to be added because they will be taken from solution default logic meaning instance of
data source [DisclosureType]_config_finalStatus
4. If clients migrate to new branch and they had override logic in prev branch then they will not
import default empty instance for [DisclosureType]_config_finalStatusClient and they will copy the
override instance from previous branch
"Non reportable" event means will not trigger a report and that will not affect the subsequent days
disclosures.
"Non reportable" events can be accessed from historical dashboards and on confirmation date they
can be accessed also from Global dashboard (but after confirmation date - the only place where they
can be accessed will be the Historical dashboard).
▪ On top of existing solution control data source, there has been added a new data source with
same name as target control table + “Client”, same fields as target control tables + fields
regarding adjustment from dashboard as: “latestUpdateTime”, “latestUpdateUser”,
“latestUpdateComments”
▪ Both data sources have storage type: SEGMENTED
▪ Instances for client override control tables should be in sync with the solution control tables
▪ Every time when we release a new instance for the solution control data source then will release
also an empty instance for the target override control data source that can be overridden by
client with the target changes
▪ What we can adjust in the override data source instance? All fields excepting primary key fields
▪ There have been added two data models:
⬧ One data model that joins control and override data sources based on the primary key fields
(DM1)
⬧ Other data model that joins override and control data sources based on the primary key fields
(DM2)
⬧ Instance to be picked up for each data source will be: EQUAL
▪ To unify the solution regulation rules and client rules there have been added control
aggregations
▪ What fields will be in this aggregation: Same fields as in underlying data source + an additional
flag to mark if that record is client adjusted or not + latestUpdateTime, latestUpdateUser,
latestUpdateComments
▪ Executing aggregation, we are expecting EQUAL instances for data models
▪ The control aggregations will not be executed every time when running the daily workflows. They
will be run every time when a new release is received or there are changes in control instances
from solution and/or client perspective.
▪ All modify models that had joins with control tables data sources have been changed now to
have joins with the control aggregations. In the joins will be picked up the latest instance of
aggregation.
SD_SH_MonitoringWorkflow SH_Sample_ConsolidatedDataLoad
SD_SS_MonitoringWorkflow SS_Sample_ConsolidatedDataLoad
SD_TO_MonitoringWorkflow TO_Sample_ConsolidatedDataLoad
SD_SH_AIF_MonitoringWorkflow SH_AIF_Sample_ConsolidatedDataLoad
SD_13F_Workflow 13F_Sample_ConsolidatedDataLoad
To run the consolidated data load workflows, please perform the following steps:
1. Make sure the relevant input files are uploaded to the SD_DATA_LOAD_DIR
2. Access the variables tab in the consolidated data load workflow
3. Fill all the Variable Value fields with the relevant file name (including file extension), for the file
to be loaded
4. Run the workflow
Disclosure type: SH
Disclosure type: SS
If user wants just to validate the main inputs without running the global then following workflow can be
run:
Disclosure type: TO
If user wants just to validate the main inputs without running the global then following workflow can be
run:
If user wants just to validate the main inputs without running the global then following workflow can be
run:
The AsOfDate and CntrAsOfDate values will need to be filled accordingly before the workflows are run.