For a deeper look into our Eikon Data API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles


13 1 0 5

Income statement irregularities from data API

Hello - when running the following screen, through the Python API a few anomylies come up, and I hope you could help me understand why these are happening. You can see my code down below that's giving rise to these questions.

  1. The column for asset turnover is coming out blank. However, when I run this identical query in Excel, I can see that asset turnover is not blank for all of these companies.
  2. Many companies report two values for one year. Maybe some of them have restated accounts, so I have included 'Rsdt' in my parameters, but it doesn't seem to be working because two items are reported, one with a later "source date." Shouldn't I see only the row with the more recent source date (assuming that is the restated one)? An example would be ICAG.L on 31/12/2020.
  3. Some companies have a similar problem, where there are two items reported for the same year, but the soure date is the same as well. How do I know which data item is most reliable? For instance, for STAN.L on 31/12/2020.
  4. Some companies report three identical lines for the same date, for instance TRR.L on 31/10/2018. Why wouldn't I only get one line?

Can you see what is wrong with my query or code? thanks for your help.

import as rd
from datetime import date
from dateutil.relativedelta import relativedelta

syntax = 'SCREEN(U(IN(Equity(active,public,primary))), CURN=GBP, \
    IN(TR.ExchangeMarketIdCode,"XLON"), IN(TR.HQCountryCode,"GB"))'
TSfields = ["TR.F.PeriodEndDate","TR.F.SourceDate","TR.F.TotAssets",
            "TR.F.TotRevenue", "TR.F.OpProfBefNonRecurIncExpn","TR.F.AssetTurnover"]
enddate =
startdate = enddate-5*relativedelta(years=1,days=0)
df2 = dataTS1 = rd.get_data(syntax, TSfields,
                          {'Scale': 0,  'SDate': startdate.isoformat(),'EDate': enddate.isoformat(),
                           'Period': 'FS0','FRQ': 'FS', 'Curn': 'GBP',
df2.to_csv("TS.csv", date_format='%Y-%m-%d', index=False)
pythonworkspacerefinitiv-data-platform#technology#contentpython apiscreenerfundamentals
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

62k 173 45 65


Thanks for reaching out to us.

I ran the following formula in Eikon Excel.

=@TR("SCREEN(U(IN(Equity(active,public,primary))), CURN=GBP,IN(TR.ExchangeMarketIdCode,'XLON'), IN(TR.HQCountryCode,'GB'))","TR.F.PeriodEndDate;TR.F.SourceDate;TR.F.TotAssets;TR.F.TotRevenue;TR.F.OpProfBefNonRecurIncExpn;TR.F.AssetTurnover","SDate=2018-03-22 EDate=2023-03-22 Period=FS0 Frq=FS Curn=GBP IncludeSpl=Yes ReportingState=Rsdt ReportType=Latest CH=Fd RH=IN",B2)

The output looks similar to the output from the RD library. The Asset Turnover is null.


Some rows are duplicated.


Because the output is similar to Eikon Excel, you need to contact the Eikon support team directly via MyRefinitv to verify the output and parameters.

I hope that this information is of help.

1679473015162.png (30.6 KiB)
1679473119398.png (11.1 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.