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.
- 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.
- 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.
- 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.
- 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)