Skip to main content

Bloomberg bond security mapping

This mapping is used for Security Type Debt instrument (BOND).

This mapping is used when you choose: ToolsCreate securityBloombergBond.

Configuration

Base instruments for Floating Rate Bonds

The mappings exist in FA prior to creating Bonds. The base instrument Interest Rate needs to have Security Code equal to FA Standard <CCY><TENOR> (note for EUR <CCY>LI/IB<TENOR> LI=Libor, IB=Euribor).

Mapping

Mapping name: mapping.bloomberg.bond 

Updated fields

  • Security code

  • ISIN codeName

  • Trade Code

  • CountryCurrency

  • Exchange

  • TypeSub-type

  • Status

  • Holiday calendar

  • Enable settlement date offset

  • Settlement date offset

  • Outstanding shares

  • Key figure Bloomberg Identifier (for SEB custody report)

  • Accrual Calendar

  • Base Instrument

  • Business Day Convention

  • Coupon (Fixed rate bonds)

  • Coupon Frequency

  • Fixings (Floating rate bonds)

  • Ex Coupon Period

  • First Coupon Period Start Date

  • Holiday Calendar

  • Issue Date

  • Issue Price

  • Maturity Date

  • Maturity Price

  • Multiplier

  • Multiplier 2

  • Offset days

  • Spread

  • Stub Convention

  • Update code # (enabled field)

  • Tag Reference data-Bloomberg bond

  • Solvency II profile data: Asset listed in, CIC code

Mapping table

Source field

Value mapping

FA field

Script

CFI_CODE

CFI

BLOOMBERG_CFI_CODE

CFI

s.type

output = "[CFI]".substring(0,1)

s.subType

output = "[CFI]".substring(0,2)

ID_ISIN

s.isinCode

CRNCY

s.currency

s.securityCode

output="[ID_ISIN]"+"_"+"[CRNCY]"
;

ID_BB_GLOBAL

s.updateCode

ID_MIC1

USEMIC

if("[ID_MIC1]"=='YYYY')
{
output='XFRA'
}
else
{
if((!"[ID_MIC1]"?.trim())||("[ID_MIC1]"=='')||("[ID_MIC1]"=='null')||("[ID_MIC1]"=='N.A.'))
{
output='-'
}
else
{
output="[ID_MIC1]"
}
}
;

ID_MIC_PRIM_EXCH

USEMIC

HOLEX

switch("[USEMIC]")
{
case "XSWX":
output = "CHZU"
break
case "XVTX":
output = "CHZU"
break
case "XMAD":
output = "ESMA"
break
case "XNGS":
output ="USNY"
break
case "XNYS":
output ="USNY"
break
case "XNAS":
output ="USNY"
break
case "GLBX":
output ="USNY"
break
case "XCME":
output ="USNY"
break
case "XSES":
output = "SGSI"
break
case "XSTO":
output = "SEST"
break
case "XCSE":
output = "DKCO"
break
case "XETR":
output = "DEFR"
break
case "XEUR":
output = "DEFR"
break
case "FRAB":
output = "DEFR"
break
case "MUNA":
output = "DEFR"
break
case "XBER":
output = "DEFR"
break
case "XHEL":
output = "FIHE"
break
case "FNFI":
output = "FIHE"
break
case "NOTC":
output = "NOOS"
break
case "XOSL":
output = "NOOS"
break
case "XOAM":
output = "NOOS"
break
case "XLDN":
output = "GBLO"
break
case "SETS":
output = "GBLO"
break
case "XPAR":
output = "FRPA"
break
case "XTKS":
output = "JPTO"
break
case "XJPX":
output = "JPTO"
break
case "XTSX":
output = "CATO"
break
case "XTSE":
output = "CATO"
break
case "XASX":
output = "AUSY"
break
case "XNZE":
output = "NZWE"
break
default:
output="-"
break
}
;

CDR_EXCH_CODE

CAL

CALENDAR_CODE

CAL

CNTRY_OF_DOMICILE

s.country

if("[CNTRY_OF_DOMICILE]"!="EU")
{
if("[CNTRY_OF_DOMICILE]".length()==2)
{
output="[CNTRY_OF_DOMICILE]"
}
else
{
output=''
}
}
else
{
output=''
}
;

CALCODE

switch("[CAL]")
{
case "A7":
output="AUSY"
break
case "AU":
output="AUSY"
break
case "AX":
output="AUSY"
break
case "BZ":
output="BRBD"
break
case "RI":
output="BRBD"
break
case "ML":
output="CAMO"
break
case "CA":
output="CATO"
break
case "T4":
output="CATO"
break
case "WG":
output="CATO"
break
case "#V":
output="CHZU"
break
case "BS":
output="CHZU"
break
case "CH":
output="CHZU"
break
case "S5":
output="CHZU"
break
case "SZ":
output="CHZU"
break
case "V1":
output="CHZU"
break
case "ZU":
output="CHZU"
break
case "CZ":
output="CZPR"
break
case "P1":
output="CZPR"
break
case "FA":
output="DEFR"
break
case "GE":
output="DEFR"
break
case "CP":
output="DKCO"
break
case "CP":
output="DKCO"
break
case "DE":
output="DKCO"
break
case "TE":
output="EUTA"
break
case "FI":
output="FIHE"
break
case "HE":
output="FIHE"
break
case "FR":
output="FRPA"
break
case "M9":
output="FRPA"
break
case "MT":
output="FRPA"
break
case "PA":
output="FRPA"
break
case "AP":
output="GBLO"
break
case "EN":
output="GBLO"
break
case "GB":
output="GBLO"
break
case "LM":
output="GBLO"
break
case "LS":
output="GBLO"
break
case "B8":
output="HUBU"
break
case "HU":
output="HUBU"
break
case "FX":
output="JPTO"
break
case "JN":
output="JPTO"
break
case "OK":
output="JPTO"
break
case "T2":
output="JPTO"
break
case "T3":
output="JPTO"
break
case "TK":
output="JPTO"
break
case "ME":
output="MXMC"
break
case "MX":
output="MXMC"
break
case "NO":
output="NOOS"
break
case "OS":
output="NOOS"
break
case "FD":
output="NYFD"
break
case "NY":
output="NYSE"
break
case "KD":
output="NZAU"
break
case "ND":
output="NZAU"
break
case "NZ":
output="NZAU"
break
case "WL":
output="NZWE"
break
case "PD":
output="PLWA"
break
case "PL":
output="PLWA"
break
case "O2":
output="SEST"
break
case "ST":
output="SEST"
break
case "SW":
output="SEST"
break
case "CE":
output="USNY"
break
case "M4":
output="USNY"
break
case "US":
output="USNY"
break
case "#A":
output="USNY"
break
case "JH":
output="ZAJO"
break
case "SA":
output="ZAJO"
break
case "X1":
output="ZAJO"
break
case "ZA":
output="ZAJO"
break
default:
output='Sat/Sun'
break
}
;

s.exchange

if("[USEMIC]"=='-')
{
output=''
}
else
{
output="[USEMIC]"
}
;

s.holidayCalendar

if("[HOLEX]"!='-')
{
output="[HOLEX]"
}
else
{
output="[CALCODE]"
}
;

DAYS_TO_SETTLE

s.settlementDateOffset

s.enableSettlementDateOffset

if("[DAYS_TO_SETTLE]" != null && !"[DAYS_TO_SETTLE]".isEmpty() && !"[DAYS_TO_SETTLE]".trim().isEmpty())
{
output='1'
}
else
{
output="0"
}
;

AMT_OUTSTANDING

s.share

s.status

output="ACTIVE";

s.tradeCode

output="[ID_BB_GLOBAL]"
;

SECURITY_DES

s.name 

ISSUE_PX

s.issuePrice

if("[ISSUE_PX]" != null && !"[ISSUE_PX]".isEmpty() && !"[ISSUE_PX]".trim().isEmpty())
{
output="[ISSUE_PX]"
}
else
{
output='100'
}
;

CALC_MATURITY

s.maturityDate

if((!"[CALC_MATURITY]"?.trim())||("[CALC_MATURITY]"=='')||("[CALC_MATURITY]"=='null')||("[CALC_MATURITY]"=='N.A.'))
{
output=''
}
else
{
if(new Date().parse('MM/dd/yyyy','[CALC_MATURITY]').format('yyyy')>'2120')
{
output = new Date().parse('MM/dd/yyyy','[CALC_MATURITY]').format('2120-MM-dd')
}
else
{
output = new Date().parse('MM/dd/yyyy','[CALC_MATURITY]').format('yyyy-MM-dd')
}
}
;

REDEMP_VAL

s.multiplier

s.multiplierView

output="[s.multiplier]"
;

CPN_FREQ

s.couponFrequency

switch("[CPN_FREQ]")
{
case '1':
output='P12M'
break
case '2':
output='P6M'
break
case '4':
output='P3M'
break
case '12':
output='P1M'
break
case '52':
output='P1W'
break
case '365':
output='P1D'
break
default:
output=''
}
;

DAY_CNT_DES

s.accrualCalendar

switch("[DAY_CNT_DES]")
{
case '30/360':
output='30U/360'
break
case 'ACT/360':
output='Act/360'
break
case 'ACT/365':
output='Act/365F'
break
case 'ACT/365-66':
output='Act/366'
break
case 'AFB ACT/ACT':
output='Act/Act AFB'
break
case 'ISDA 30E/360':
output='30E/360 ISDA'
break
case 'ISMA-30/360':
output='30E/360'
break
case 'ISMA-30/360 NONEOM':
output='30E/360'
break
case 'ISMA 30/360':
output='30E/360'
break
case 'ISDA ACT/ACT':
output='Act/Act ICMA'
break
case 'ACT/ACT':
output='Act/Act ICMA'
break
case 'MUNI30/360 NON-EOM':
output='30E/360 ISDA'
break
case 'US MUNI: 30/360':
output='30U/360'
break
case '30/360 NON-EOM':
output='30U/360'
break
case 'ACT/360 NON-EOM':
output='Act/360'
break
case 'ACT/ACT NON-EOM':
output='Act/Act ISDA'
break
default:
output=''
break
}
;

START_ACC_DT

s.firstCouponDate

output = new Date().parse('MM/dd/yyyy','[START_ACC_DT]').format('yyyy-MM-dd')
;

s.maturityPrice

output = '[REDEMP_VAL]'
;

s.coupons

output=""

FLT_CPN_HIST

s.coupons

CPN

s.coupon

if("[s.coupons]"=="") {output="[CPN]"}else{output=""}
;

s.exCouponPeriod

switch("[s.exchange]")
{
case "XSTO":
output='4'
break
case "XOSL":
output='1'
break
case "NOTC":
output='1'
break
case "XOAM":
output='1'
break
default:
output='0'
break
}
;

CPN_TYP

CPNTYP

s.offsetDays

if("[CPN_TYP]"=="FLOATING")
{output="2"}
else
{output="0"}
;

END_ACC_DT

ENDACC

output = new Date().parse('MM/dd/yyyy','[END_ACC_DT]').format('yyyy-MM-dd')

ISSUE_DT

if((!"[ISSUE_DT]"?.trim())||("[ISSUE_DT]"=='')||("[ISSUE_DT]"=='null')||("[ISSUE_DT]"=='N.A.'))
{
output=''
}
else
{
output = new Date().parse('MM/dd/yyyy','[ISSUE_DT]').format('yyyy-MM-dd')
}
;

SSTUB

if("s.firstCouponDate"<"s.issueDate")
{
  output = "Short First"
}
else if("s.firstCouponDate">"s.issueDate")
{
  output = "Long First"
}
else 
{
  output = "Normal"
}

LSTUB

if('[ENDACC]'<'[s.maturityDate]')
{
  output = "Long Last"
}
else if('[ENDACC]'>'[s.maturityDate]')
{
  output = "Short Last"
}
else 
{
  output = "Normal"
}

s.stubConvention

if("[LSTUB]"=='Normal')
{if("[SSTUB]"=="Normal")
{output="None"}
else
{if("[SSTUB]"=="Short First")
{output="ShortInitial"}
else
{if("[SSTUB]"=="Long First")
{output="LongInitial"}
else
{output=""}
}
}
}
else
{if("[LSTUB]"=='Long')
{if("[SSTUB]"=="Normal")
{output="LongFinal"}
else
{if("[SSTUB]"=="Short First")
{output="Both"}
else
{if("[SSTUB]"=="Long First")
{output="Both"}
else
{output=""}
}
}
}
else
{if("[LSTUB]"=='Short')
{if("[SSTUB]"=="Normal")
{output="ShortFinal"}
else
{if("[SSTUB]"=="Short First")
{output="Both"}
else
{if("[SSTUB]"=="Long First")
{output="Both"}
else
{output=""}
}
}
}
}
}
;

RESET_IDX

s.baseInstrument

def str = "[RESET_IDX]"
def lgt = str.length()
def ccy = "[CRNCY]"
if(str.substring(0,4)=='CDOR')
{
if(str.substring(lgt-2,lgt)=='12')
{
suffix='1Y'
}
else
{
suffix=str.substring(lgt-1,lgt)+'M'
}
}
else
{
if(str.substring(lgt-3,lgt)=='12M')
{
suffix='1Y'
}
else
{
suffix=str.substring(lgt-2,lgt)
}
}
if("[CRNCY]"=="EUR")
{
if(str.substring(0,2)=="EE")
{
prefix="EURLI"
}
else
{
prefix="EURIB"
}
}
else
{
prefix="[CRNCY]"
}
output=prefix+suffix
;

FLT_SPREAD

s.spread

if("[FLT_SPREAD]" != null && !"[FLT_SPREAD]".isEmpty() && !"[FLT_SPREAD]".trim().isEmpty())
{
double dnum = Double.parseDouble("[FLT_SPREAD]")
output=dnum/100
}
else
{
output=''
}
;

ISSUE_DT

s.issueDate

if((!"[ISSUE_DT]"?.trim())||("[ISSUE_DT]"=='')||("[ISSUE_DT]"=='null')||("[ISSUE_DT]"=='N.A.'))
{
output=''
}
else
{
output = new Date().parse('MM/dd/yyyy','[ISSUE_DT]').format('yyyy-MM-dd')
}
;

FLT_CPN_CONVENTION

s.businessDayConvention

switch("[FLT_CPN_CONVENTION]")
{
case 'Mod bus day - adj':
output='ModifiedFollowing'
break
case 'Mod Bus Day-Adj Nxt Month':
output='ModifiedFollowing'
break
case 'Mod bus day - unadj':
output='ModifiedFollowing'
break
case 'Following bus day - adj':
output='ModifiedPreceding'
break
case 'Following bus day - unadj':
output='Following'
break
case 'Preceding bus day - adj':
output='ModifiedPreceding'
break
case 'Preceding bus day - unadj':
output='Preceding'
break
default:
output='NoAdjust'
break
}
;

s.tags

output="Reference data-Bloomberg bond"
;

s.profileAttributes

if(!"[CIC]"?.trim())
{
output=""
}
else
{
output = "security.sii.listedIn=" + "[CIC]".substring(0,2) + ":string#security.sii.cic=" + "[CIC]".substring(2) + ":string#"
}
;	

TICKER

s.keyFigures

if("[TICKER]"!='') {output="***BloombergId=2000-01-01=[TICKER]"}else {output="***"}