question

Upvotes
Accepted
18 2 3 10

Income statement irregularities from data API

Hello - when running the following screen, through the refinitiv.data 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 refinitiv.data as rd
rd.open_session()
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 = date.today()
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',
                           'IncludeSpl':'Yes','ReportingState':'Rsdt',
                           'ReportType':'Latest'}
                          )
print(df2)
df2.to_csv("TS.csv", date_format='%Y-%m-%d', index=False)
pythonworkspace#technology#contentrefinitiv-data-platformpython 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

· Write an Answer
Upvote
Accepted
87.7k 294 53 79

@LRE42

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.

1679473015162.png

Some rows are duplicated.

1679473119398.png

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.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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