For the following scenario, the value fetched by Excel and Eikon API differ for the same ticker, dat

I'm fetching the value for CashFlow for the ticker VOTL.NS for the date 16 Feb 2021. Fetching it via Excel and Eikon API is giving me different values.

The formula I've used in excel is

=@TR("VOTL.NS","TR.CashFlow","Period=LTM Frq=D SDate=20210216 Transpose=Y", $B$2)

which return the value 1019185000.

For API, I've used

ek.get_data('VOTL.NS', 'TR.CashFlow(Period=LTM)',parameters={'SDate':'2021-02-16', 'EDate':'2021-02-16','FRQ': 'D'} )

and it returns 1050608000.

Please explain why this variation.

Best Answer

  • @anshulmlhtr

    I was able to reproduce the problem you experienced. For some reason for you and me the call returns the value from Q3 2020 (period end date 2020-09-30) while the value for Q4 2020 is already available, whereas @jason.ramchandani gets the value for Q4 2020 (period end date 2020-12-31) as expected. I opened case 09635764 on your behalf with Refinitiv Customer Support to investigate the issue. Refinitiv Helpdesk will reach out to you with the results of their investigation.

    In the meantime I suggest that instead of legacy Refinitiv Financials that provide fields like TR.Cashflow you use Refinitiv Company Fundamentals. Refinitiv is gradually migrating the source of company fundamentals in its products from legacy Refinitiv Financials to Refinitiv Company Fundamentals. FFor more info about Refinitiv Company Fundamentals see
    https://training.refinitiv.com/videoplayer/playlist/761?pmf=2m5f677

    To switch to Refinitiv Company Fundamentals, just use the new field names. E.g. instead of TR.CashFlow use TR.F.CF:

    ek.get_data('VOTL.NS', ['TR.F.CF.date','TR.F.CF'],
                {'SDate':'2021-02-16', 'EDate':'2021-02-16', 
                'FRQ':'D', 'Period':'LTM'})

Answers

  • @anshulmlhtr the API is returning me the following correct value which is consistent with your excel formula return:

    df, err = ek.get_data('VOTL.NS', ['TR.CashFlow(Period=LTM).date','TR.CashFlow(Period=LTM)'],parameters={'SDate':'2021-02-16', 'EDate':'2021-02-16','FRQ': 'D'})

    df

    imageCan you retry the request and see if its correct? The latest value is 1019185000 which was the value reported at 31-Dec-2020.

  • Sir, I copy pasted the command sent by you and I am getting the same answer as before. Here is a screenshot for the same. Why could this difference be.

    P.S Another difference I observed is in the date.
    image

  • @anshulmlhtr that is strange - what version of the eikon library (ek.__version__) and also what variant of Eikon are you using? Also please can you replace the instrument with VOD.L and rerun and post result to see what you get. My result is below:

    df, err = ek.get_data('VOD.L', ['TR.CashFlow(Period=LTM).date','TR.CashFlow(Period=LTM)'],parameters={'SDate':'2021-02-16', 'EDate':'2021-02-16','FRQ': 'D'} )

    df

    image

    thanks

  • @jason.ramchandani the eikon library version is 1.1.8.

    To set up Eikon, I have used the instructions given in the tutorials.

    For VOD.L, I am getting exacty the same result as you.

    Not sure why the parity for VOTL.NS

  • Thanks @Alex Putkov. for confirming the issue and raising an appropriate ticket. Looking forward to getting this resolved by the Refinitiv Customer Support .

    For the time being, I am planning to switch to Refinitiv Company Fundamentals . Since I've been working using Refinitiv Financials in Excel for all my historical data, I can transition to the new ones only if their definitions are exactly similar. Please confirm this for me.

    Also, I might need to change the formulas for few other field names, How can I find the names for those fields.

  • @anshulmlhtr There is a lot of information on this dataset available in the RCFLAND app and it does provide a whole section for mapping for Refinitiv Company Fundamentals (RCF) to the legacy Reuters Fundamentals :

    image

    Thankfully we have a tool called the Data Item Browser (type DIB into Eikon search bar) - which can provide details of the fields available and both descriptions and parameters - but if you type in an instrument it also provides values - so its easy to cross check values.

    The Refinitiv Company Fundamentals (RCF) provides full transparency to what is included through a detailed list of accounting identities used in each field. You can see this both in the DIB (see below) :

    image

    and also in any of the statement pages eg FINSUM or INC, BAL or CF and then hovering over any field and pressing the ? box and a full description with field names are available.

    Lots more info is available on the RCFLAND app. I hope this can help.

  • Yes @jason.ramchandani, it helps. Though I could not find the field TR.F.CF for VOTL.NS.
    Please find the screenshot attached.image

  • @anshulmlhtr I can see this fine which means the API should return the same information as well:

    image

    You have a case number for the query - when the support team contact you also mention that this issue is taking place and they can check your setup. If your network connection is slow this can impact the data being returned so maybe wait for a bit.

    As an aside are you able to see the field if you change the RIC to VOD.L?



  • @jason.ramchandani thanks for confirming. I'm getting the result as required. Though, for this, I have to modify my param list, which is currently {'SDate':'2021-02-16', 'EDate':'2021-02-16','FRQ':'D'}. Can we do something to the field formula so that we don't need to modify it, something like TR.F.CF(Period=LTM) as in the case of TR.CashFlow(Period=LTM).

    As you suggested, I tried on VOD.L as well. I am not able to find anything here as well.

    image

    Even on not having any particular ticker, TR.F.{} doesn't give me any result.

    image

    Further, I observed that my DIB interface is different from yours. I don't have that column containing Filters, Asset Classes, etc.

    Can you suggest why could these differences be..

  • @anshulmlhtr for TR.F.CF there is no (Period=LTM) field level parameter (which you would be able to see if your DIB was working) so no that won't work - there are such differences between the two content sets. The Period=LTM parameter is being accepted at the query level parameter - hence why @Alex Putkov. code above works but this fails:

    df, err = ek.get_data('VOTL.NS', ['TR.F.CF.date','TR.F.CF(Period=LTM)'],
                {'SDate':'2021-02-16', 'EDate':'2021-02-16', 
                 'FRQ':'D'})
    df

    image

    The DIB app is the same but you have collapsed the category filter - you can expand this by clicking on the small filter icon to the left of the field search bar:

    image

    I hope this can help.

  • @anshulmlhtr

    To view Refinitiv Company Fundamentals fields like TR.F.CF in Data Item Browser app (as well as in other apps like CodeCreator, Formula Builder wizard in Excel, Company Financials views in Eikon desktop) you need to change the source of fundamentals data in Eikon settings. From the main Eikon menu select Settings. In the Settings window click on Desktop, scroll down to the Fundamentals Source Settings section at the bottom and select Refinitiv Company Fundamentals as Fundamentals Source. I also recommend you watch the video I referenced previously.
    https://training.refinitiv.com/videoplayer/playlist/761?pmf=2m5f677

  • Thanks @Alex Putkov. and @jason.ramchandani! This helped a lot. I am able to find the options now :)

    Finally, please suggest me a way by which I can fetch the data for both Refinitiv Company Fundamentals as well as Reuter Financials in a single call without making making separate calls for them.
    Currently, I have a ticker list, a list of fields with period arguments and param_list = {'SDate':s_date, 'EDate':e_date,'FRQ': 'D'}. Finally, I call ek.get_data(ticker_list,field,parameters= param_list).
    I need to do the same for Company Fundamentals as well without changing the param_list, cause otherwise the param_list will be different for each ticker depending on ticker

  • @anshulmlhtr

    Could you please share the code that you would like to use to retrieve Refinitiv Company Fundamentals and Reuter Financials?

    We need to verify fields and parameters. Typically, you can put a list of fields when calling the get_data method.