Option Adjusted Spread Calculation

I've been doing some quant bond work and have found numerous inconsistencies with OAS data provided by Eikon. This is true both within the platform and in comparison to Bloomberg data as well. Would it be possible to get an explanation regarding the methodology used as well as some direction regarding which of the numerous methods are most inline with industry standard :

oas-4.png

Please note: Bloomberg had 21.09 for the OAS Bid

Additionally, the quote has something entirely different...
1667854859371.png some clarity and direction would be greatly appreciated

My code for both:
fields = ['TR.OASAnalytics', 'TR.FiOptionAdjustedSpread']
oas = ek.get_data('002824BE9', fields=fields)[0]

fields_2 = ['TR.OPTIONADJUSTEDSPREADBID', 'OAS_BID']
oas_bid = ek.get_data('002824BE9=1M', fields=fields_2)[0]
oas_bid


Best Answer

  • Hello @jgarden ,

    Sorry for the belated response- I did not see your comment.

    From the examples that you have provided, when I run them on my side, the three instruments do differ:

    fields = ['TR.OASAnalytics', 'TR.FiOptionAdjustedSpread']
    ek.get_data(['002824BE9','002824BE9=1M','002824BE9='], fields=fields)

    Results in:

    (     Instrument  Option Adjusted Spread  Option Adjusted Spread
    0 002824BE9 -27.195224 24.663915
    1 002824BE9=1M -73.969221 24.663915
    2 002824BE9= -27.195224 24.663915,
    None)

    And request:

    fields_2 = ['TR.OPTIONADJUSTEDSPREADBID', 'OAS_BID']

    Results in:

    (     Instrument  Option Adjusted Spread Bid  OAS_BID
    0 002824BE9 -28.6 <NA>
    1 002824BE9=1M -42.3 -42.3
    2 002824BE9= -28.6 -29.0,
    [{'code': 251658243,
    'col': 2,
    'message': "'The record could not be found' for the instrument '002824BE9'",
    'row': 0}])

    The results for instrument 002824BE9= (currently they are OAS_BID = -29.0) requested via API and via desktop, please observe on the screenshot from my testing are the same, we can verify the field used by the template by hovering over the field value:

    oas-bid.gif

    From what I see, the three mentioned instruments are different, and in my understanding you would like to find out the methodology for the calculation of the fields and the difference between the instruments.

    This forum can be of most help with API usage, and our content experts can best help with insight into the content provided via API.

    An Eikon support content ticket #11838641 has been opened on your behalf, please expect our content experts to reach out to you shortly via email.

    Hope that this helps




Answers

  • Hello @jgarden

    I checked case 11838641. The case is closed with the following answer from the Content support team.


    The difference between the similar instruments:'002824BE9','002824BE9=1M','002824BE9='   '002824BE9','002824BE9=1M','002824BE9='. Different code may use different source/contributor

    for ex. RIC <002824BE9=1M'> is sourced from MARKETAXESS while 002824BE9= is the composite RIC which is mainly source from Eval Pricing

    002824BE9 is the CUSIP.... since client is retrieving pricing data (not T&C data), it will retrieve it from the default/preferred RIC for this instrument which is typically the composite RIC

    The methodology used in calculation of fields: 'TR.OASAnalytics', 'TR.FiOptionAdjustedSpread', 'TR.OPTIONADJUSTEDSPREADBID', 'OAS_BID' for these instruments.  OAS_BID is the real time field on Quote. this is FID 3712. refer to STR/OAS as this is on Quote, the calculation depends on the RIC used
    TR.OPTIONADJUSTEDSPREADBID - this is a time series data item which practically stores the eod snap of OAS_BID
    TR.FiOptionAdjustedSpread - this is the OAS calculated on the REPS Valuation tab - essentially uses RRPS price
    TR.OASAnalytics - based from Adfin Function - typically gets the same value as bond calculator. depended on the contributed MID price.