Logo

Composite Enrichment

Derivatives on Structured Products

Data Adapter clients can use the BYOD service to submit positions in derivatives on structured products. This is available for both FundApps CSV file and FundApps XML file, with some differences explained below.

💡 Note that the service does not call your data provider for additional Instruments as the examples use OTC instruments

Example structure

FundApps CSV file (CSV flow)

You can implement this using the below steps:

  1. Supply Data Adapter with details of your derivative holding on the structured products, specifying an extra column ULAssetClass (Underlying Asset Class) to be StructuredProduct.

    PortfolioId AssetId AssetName Quantity SFTType Price InstrumentCurrency AssetClass DataProviderId ULAssetClass
    GMF OTC_SP Option on StructuredProduct 1000 Normal 100 GBP Option StructuredProduct
    GMF MSFT_EQ Microsoft Equity 1000 Normal 100 USD Equity MSFT US Equity
    GMF AAPL_EQ Apple Equity 1000 Normal 100 USD Equity AAPL US Equity
  2. Supply the Bring Your Own Data service (see: Bring your own data (BYOD) guide for details) with mappings for the constituents of the structured product.

    ⚠️ Make sure that CompositeId equals AssetId + ULAssetClass

    In this example we have CompositeId = OTC_SP_StructuredProduct, because AssetId = OTC_SP and ULAssetClass = StructuredProduct.

    CompositeId CompositeIdType ComponentId ComponentIdType Weighting WeightingQuantity
    OTC_SP_StructuredProduct InstrumentId MSFT US Equity DataProviderId 0.2 5000
    OTC_SP_StructuredProduct InstrumentId AAPL US Equity DataProviderId 0.3
    OTC_SP_StructuredProduct InstrumentId AMZN US Equity DataProviderId 0.5
  3. Once sent through, the Data Adapter service will generate the option on the structured product, while the BYOD service will then map any of the components you hold outright.

    In this example, we would get…

    <Equity InstrumentId="MSFT US Equity" InstrumentName="Microsoft Equity" ..../">
    <Equity InstrumentId="AAPL US Equity" InstrumentName="Apple Equity" ..../">
    
    <Option InstrumentId="OTC_SP" InstrumentName="Option on StructuredProduct" InstrumentCurrency="GBP" Price="100" InstrumentCurrency="GBP">
          <Component InstrumentId="OTC_SP_StructuredProduct"/>
    </Option>
    <StructuredProduct InstrumentId="OTC_SP_StructuredProduct" InstrumentName="Dummy StructuredProduct">
         <Component InstrumentId="MSFT US Equity" Weighting="0.2"/>
       <Component InstrumentId="AAPL US Equity" Weighting="0.3"/>
    </StructuredProduct>

FundApps XML file (EXPOST flow)

You can implement this using the below steps:

  1. Supply the Data Adapter with details of your derivative holding and its components. You also need to provide information about the components held by the derivative itself, as shown in the example with MSFT US Equity.

    <Snapshot Date="2023-12-21">
      <Instruments>
        <Swap AssetClassCustomer="Swap" InstrumentCurrency="KRW" InstrumentId="swap_prop_kospi100" InstrumentName="Kospi Swap" IsCashSettled="true" Market="XXXX" MarketsListedIn="XXXX">
          <Component InstrumentId="OTC_SP_StructuredProduct" />
        </Swap>
        <Index AssetClassCustomer="Equity Index" InstrumentId="OTC_SP_StructuredProduct" InstrumentName="KOREA KOSPI 100 INDEX" InstrumentCurrency="KRW" IssuerId="1412562" LocalTicker="KOSPI100 Index" Price="2950.650000" />
        <Equity AssetClassCustomer="Equity" InstrumentCurrency="USD" InstrumentId="MSFT US Equity" InstrumentName="MSFT US" CUSIP="037833100" Market="XNYM" MarketsListedIn="XNYM" Price="123" />
      </Instruments>
      <Portfolios>
        <Portfolio PortfolioId="11">
          <Asset AssetId="swap_prop_kospi100" AssetName="Kospi Swap" InstrumentId="swap_prop_kospi100" MarketValue="100000" Quantity="100000" />
        </Portfolio>
      </Portfolios>
    </Snapshot>
  2. Supply the Bring Your Own Data service (see: Bring your own data (BYOD) guide for details) with mappings for the constituents of the structured product.

    ⚠️ Ensure that the CompositeId matches the InstrumentId in the EXPOST file. The component in the example is also an OTC and only has an InstrumentId, so ComponentIdType must be set to InstrumentId.
    CompositeId CompositeIdType ComponentId ComponentIdType Weighting WeightingQuantity
    OTC_SP_StructuredProduct InstrumentId MSFT US Equity InstrumentId 0.2 5000
    OTC_SP_StructuredProduct InstrumentId AAPL US Equity InstrumentId 0.3
    OTC_SP_StructuredProduct InstrumentId AMZN US Equity InstrumentId 0.5
  3. Once sent through, BYOD service will then map any components that are held outright.

    In this example, we would get…

    <Snapshot Date="2023-12-21">
      <Instruments>
        <Swap AssetClassCustomer="Swap" InstrumentCurrency="KRW" InstrumentId="swap_prop_kospi100" InstrumentName="Kospi Swap" IsCashSettled="true" Market="XXXX" MarketsListedIn="XXXX">
          <Component InstrumentId="OTC_SP_StructuredProduct"/>
        </Swap>
        <Index AssetClassCustomer="Equity Index" InstrumentCurrency="KRW" InstrumentId="OTC_SP_StructuredProduct" InstrumentName="KOREA KOSPI 100 INDEX" Price="2950.650000" IssuerId="1412562" LocalTicker="KOSPI100 Index">
          <Component InstrumentId="MSFT US Equity" Weighting="0.2"/>
        </Index>
        <Equity AssetClassCustomer="Equity" InstrumentCurrency="USD" InstrumentId="MSFT US Equity" InstrumentName="MSFT US" Price="123" CUSIP="037833100" Market="XNYM" MarketsListedIn="XNYM"/>
      </Instruments>
      <Portfolios>
        <Portfolio PortfolioId="11">
          <Asset AssetId="swap_prop_kospi100" AssetName="Kospi Swap" InstrumentId="swap_prop_kospi100" MarketValue="100000" Quantity="100000"/>
        </Portfolio>
      </Portfolios>
    </Snapshot>