Skip to main content

Mapping for interest rate swaps

Interest rate swaps are imported as two separate securities/transactions, ones for the fixed leg and ones for the floating leg. The handling of IRSs in FA is detailed in the User guide article: Interest rate swaps (IRS)

Securities

Mapping scripts mapping.bbgTradeFeed.irsFixSec and mapping.bbgTradeFeed.irsFltSec:

Source field in Online trade feed

Target field in FA

Notes

/TradeFeed/Common/SecurityIdentifier/text()

s.securityCode

Fixed leg: [SecurityIdentifier] with last character adjusted by +1 alphabetically (e.g. XXXA would become XXXB).

Floating leg: [SecurityIdentifier] with last character adjusted by +2 alphabetically (e.g. XXXA would become XXXC).

/TradeFeed/Common/SecurityCurrencyISOCode/text()

s.currency

/TradeFeed/Common/TransactionNumber/text()

/TradeFeed/Common/MaturityDateExpirationDate/text()

/TradeFeed/Common/SecurityCurrencyISOCode/text()

/TradeFeed/Common/CouponStrikePrice/text()

/TradeFeed/SwapFields/PaySideFrequency/text()

/TradeFeed/SwapFields/ReceiveSideFrequency/text()

s.name

Assuming [Frequency] is [PaySideFrequency] or [ReceiveSideFrequency], depending on the leg and which leg is Pay and which Receive:

Fixed leg: IRS #[TransactionNumber] [MaturityDateExpirationDate] [SecurityCurrencyISOCode] [Frequency] [CouponStrikePrice]% Fixed

Floating leg: IRS #[TransactionNumber] [MaturityDateExpirationDate] [SecurityCurrencyISOCode] [Frequency] [CouponStrikePrice]% Float

s.type

S

s.subType

SR

/TradeFeed/SwapFields/EffectiveDate/text()

s.issueDate

/TradeFeed/SwapFields/EffectiveDate/text()

s.firstCouponDate

s.issuePrice

100

/TradeFeed/Common/MaturityDateExpirationDate/text()

s.maturityDate

s.maturityPrice

100

/TradeFeed/SwapFields/PaySideFrequency/text()

/TradeFeed/SwapFields/ReceiveSideFrequency/text()

s.couponFrequency

[PaySideFrequency] or [ReceiveSideFrequency], depending on the leg and which leg is Pay and which Receive

/TradeFeed/SwapFields/PaySideDayCount/text()

/TradeFeed/SwapFields/ReceiveSideDayCount/text()

s.accrualCalendar

[PaySideDayCount] or [ReceiveSideDayCount], depending on the leg and which leg is Pay and which Receive

/TradeFeed/Common/CouponStrikePrice/text()

s.coupon

Not imported for floating leg.

/TradeFeed/SwapFields/PayStubReset/text()

s.coupons

Not imported for fixed leg.

Floating leg: [s.firstCouponDate]=[PayStubReset]

/TradeFeed/SwapFields/PaySideBusinessDayAdjustment/text()

/TradeFeed/SwapFields/ReceiveSideBusinessDayAdjustment/text()

s.businessDayConvention

[PaySideBusinessDayAdjustment] or [ReceiveSideBusinessDayAdjustment], depending on the leg and which leg is Pay and which Receive

/TradeFeed/SwapFields/PayFloatingRateIndex/text()

/TradeFeed/SwapFields/ReceiveFloatingRateIndex/text()

s.baseInstrument

Not imported for fixed leg.

Floating leg: First part before space in [PayFloatingRateIndex] or [ReceiveFloatingRateIndex], depending on whether the floating leg pays or receives.

/TradeFeed/Common/SecurityIdentifier/text()

s.tradeCode

[SecurityIdentifier]-[s.securityCode]

s.status

ACTIVE

/TradeFeed/Common/SecurityCurrencyISOCode/text()

s.holidayCalendar

Mapped as follows:

NOK=NOOS

SEK=SEST

USD=USNY

EUR=EUTA

DKK=DKCO

GBP=GBLO

s.offsetDays

Not imported for fixed leg.

Floating leg: 2

s.multiplier

100

s.multiplierView

100

Transactions

Mapping scripts mapping.bbgTradeFeed.irsFixTrs and mapping.bbgTradeFeed.irsFltTrs:

Source field in Online Trade Feed

Target field in FA

Notes

/TradeFeed/Common/TraderAccountName/text()

tr.parentPortfolio

If a portfolio that has the ext ID "AIM-ID" with the given TraderAccountName is found, then the transaction is imported into that portfolio. Otherwise, the parent portfolio short name is assumed to be the TraderAccountName.

/TradeFeed/Common/TransactionNumber/text()

tr.reference

Fixed leg: [TransactionNumber]FIX

Floating leg: [TransactionNumber]FLT

tr.type

B or S, depending on the leg and which leg is Pay and which Receive

tr.status

OK

/TradeFeed/Common/SystemDate/text()

tr.trasnactionDate

/TradeFeed/Common/SettlementDate/text()

tr.settlementDate

/TradeFeed/Common/SecurityIdentifier/text()

tr.security

Fixed leg: [SecurityIdentifier] with last character adjusted by +1 alphabetically (e.g. XXXA would become XXXB).

Floating leg: [SecurityIdentifier] with last character adjusted by +2 alphabetically (e.g. XXXA would become XXXC).

tr.account

AUTO

/TradeFeed/Common/TradeAmount/text()

tr.amount

tr.unitPrice

100

tr.fxRate

AUTO

/TradeFeed/TransactionCosts/TransactionCost[1]/Cost/text()

tr.cost

/TradeFeed/TransactionCosts/TransactionCost[1]/Type/text()

tr.costType1

If Type = 2, then COMA

If Type = 3, then EXCH

/TradeFeed/TransactionCosts/TransactionCost[2]/Cost/text()

tr.cost2

/TradeFeed/TransactionCosts/TransactionCost[2]/Type/text()

tr.costType2

If Type = 2, then COMA

If Type = 3, then EXCH

/TradeFeed/Common/AccruedInterestRepoInterest/text()

tr.accruedInterest

/TradeFeed/Common/CustomerAccountCounterparty/text()

tr.counter

If a contact that has the ext ID "AIM-ID" with the given CustomerAccountCounterparty is found, then that contact is used. Otherwise, the contact ID is assumed to be the CustomerAccountCounterparty.

/TradeFeed/Common/SecurityCurrencyISOCode/text()

tr.currency

/TradeFeed/Common/SecurityIdentifier/text()

tr.intInfo

[SecurityIdentifier]-[tr.security]