What is Security Resolution?

Security is one of the basic definitions in EagleML which represents a tradable financial asset. The corresponding EagleML object is Generic SMF.

Each security is uniquely defined by its identifier. Identifiers can be either standard, ticker, cusip, cusipPay, cusipReceive, isin, sedol, reuters, bloombergId, sicovmId, valorenId, cedel, internalId, cinsId, uniqueProductId, uniqueSwapId, either vendor-specific. Each identifier is described by two fields - its value (id) and its type. The process of unique identification of a security by its id and type is called Security Resolution.

What is actually resolved by Security Resolution?

Security Resolution process defines the unique number of the security called security alias. A database cannot contain two securities with matching security aliases, these aliases are unique.

When is Security Resolution used?

  1. When you load a security. The system resolves the alias by its id and type and if there is no such alias in DB, an INSERT is performed. If there is already a security in DB with matching alias, UPDATE is performed.

  2. When you load security-related objects, such as Warehouse, Accounting or some of the Reference. If the system cannot resolve a security with incoming identifiers, load is impossible and it will return an error.

Which DB tables are used in Security Resolution?

The main table to store information about a security is SECURITYDBO.SECURITY_MASTER 

Identifiers for each security are stored in SECURITYDBO.XREFERENCE (identifiers are also called xreference or cross-reference identifiers or xrefs).

SECURITYDBO.SECURITY_MASTER and SECURITYDBO.XREFERENCE tables are linked with the SECURITY_ALIAS field. This is a one-to-many relationship, one record in SECURITY_MASTER can have several corresponding records in SECURITYDBO.XREFERENCE table.

Which identifiers take part in Security Resolution?

  • Primary Asset Id, Primary Asset Type – Eagle identifier, which uniquely defines a security record. Stored in SECURITYDBO.SECURITY_MASTER.PRIMARY_ASSET_ID, SECURITYDBO.SECURITY_MASTER.PRIMARY_ASSET_TYPE fields. As it is an xreference identifier at the same time, it is also stored in SECURITYDBO.XREFERENCE table.

  • Standard widely used identifiers – ticker, cusip, cusipPay, cusipReceive, isin, sedol, reuters, bloombergId, sicovmId, valorenId, cedel, internalId, cinsId, uniqueProductId, uniqueSwapId

  • Vendor-specific identifiers  –  <xId>AAAA</xId><XIdType>BBBB</xIdType>

<EagleML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="LoadReference" eaglemlVersion="2-0" actualBuild="1" xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0"> <referenceTransaction xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0"> <header> <objectType>GenericSMF</objectType> </header> <genericSMF> <sourceName>EAGLE PACE</sourceName> <updateSource>MCADMIN</updateSource> <effectiveDate>2014-09-30</effectiveDate> <primaryAssetId>CUSIP_ID2</primaryAssetId> <primaryAssetType>CUSIP</primaryAssetType> <altAssetIdAndType> <instrumentId>CINS_ID2</instrumentId> <instrumentIdType>CINS</instrumentIdType> </altAssetIdAndType> <issueName>TST 2010 1</issueName> <ticker>TICKER_ID2</ticker> <cusip>CUSIP_ID2</cusip> <cusipPay>CUSIP_PAY_ID2</cusipPay> <cusipReceive>CUSIP_RECEIVE_ID2</cusipReceive> <isin>ISIN_ID2</isin> <sedol>SEDOL_ID2</sedol> <reuters>REUTERS_ID2</reuters> <bloombergId>BBID_ID2</bloombergId> <sicovmId>SICOVM_ID2</sicovmId> <valorenId>VALOREN_ID2</valorenId> <cedel>CEDEL_ID2</cedel> <internalId>INTERNAL_ID2</internalId> <cinsId>CINS_ID2</cinsId> <uniqueProductId>UPI_ID2</uniqueProductId> <uniqueSwapId>USI_ID2</uniqueSwapId> <xrefIdentifiers> <xId1> <xId>TSTXREFID2_1</xId> <xIdType>TSTXID1</xIdType> </xId1> <xId2> <xId>TSTXREFID2_2</xId> <xIdType>TSTXID2</xIdType> </xId2> <xId3> <xId>TSTXREFID2_3</xId> <xIdType>TSTXID3</xIdType> </xId3> <xId4> <xId>TSTXREFID2_4</xId> <xIdType>TSTXID4</xIdType> </xId4> <xId5> <xId>TSTXREFID2_5</xId> <xIdType>TSTXID5</xIdType> </xId5> <xId6> <xId>TSTXREFID2_6</xId> <xIdType>TSTXID6</xIdType> </xId6> <xId7> <xId>TSTXREFID2_7</xId> <xIdType>TSTXID7</xIdType> </xId7> <xId8> <xId>TSTXREFID2_8</xId> <xIdType>TSTXID8</xIdType> </xId8> <xId9> <xId>TSTXREFID2_9</xId> <xIdType>TSTXID9</xIdType> </xId9> <xId10> <xId>TSTXREFID2_10</xId> <xIdType>TSTXI10</xIdType> </xId10> </xrefIdentifiers> <primaryExchangeCode>ALL</primaryExchangeCode> <assetCurrency>USD</assetCurrency> <investmentType>FI</investmentType> <processingSecurityType>DBFBFB</processingSecurityType> </genericSMF> </referenceTransaction> </EagleML>

The exact identifiers to be used for Security Resolution are set in Batting Order and Asset Resolution Options of the incoming message or in the configuration file w_config_custom.inc of the environment (if you want these settings to be applied to all records of the region). If Batting Order and Asset Resolution Options are not set, default values will be used. You can read more about these settings in the pages below.