Hello,
I am using the eikon API with python in a jupyter notebook. Within this, I am having reproducibility issues with the screener function when I screen for US companies with a 250M USD minimum total revenue. I want to compare revenue values as a function of timepoint (to help me better understand the timepoint specification parameters + any impact of companies' staggered financial periods on filtered outputs), so I output a bunch of revenue values for the screened entities. My confusion/the apparent inconsistencies rest in the companies determined to meet the following two criteria:
- Total Revenue from Business Activities >= 250 million USD,
- Country of Headquarters = USA.
I believe the following code represents the application of this screener to the pubco universe as intended:
fields_fiverevs = ["TR.RIC", "TR.CompanyName", "TR.HeadquartersCountry", "TR.F.TotRevenue(SDate=0CY,Period=FY0,Scale=6)", \"TR.F.TotRevenue(SDate=-1CY,Period=FY0,Scale=6)", "TR.F.TotRevenue(SDate=-2CY,Period=FY0,Scale=6)", \"TR.F.TotRevenue(SDate=0CY,Period=FY-1,Scale=6)", "TR.F.TotRevenue(SDate=-1CY,Period=FY-1,Scale=6)", \]
filter_24AS_250M_US0CY = 'SCREEN(U(IN(Equity(active,public,primary))/*UNV:Public*/), \ IN(TR.HQCountryCode,"US"), \ TR.F.TotRevenue(SDate=0CY,Period=FY0,Scale=6)>=250, CURN=USD)'
df0221_250M_US0CY,e = ek.get_data(filter_24AS_250M_US0CY, fields_fiverevs)
However, when I run this code on different days in February, the dimensions of the output dataframes are quite different:
- run on 21 Feb outputs 1039 companies
- run on 28 Feb outputs 1480 companies.
(I don't think this is because ~300 companies not only have closed a new financial period in that 8-day window and also have markedly lower revenue in the now "newest" financial period.) So, why are these output samples so different in size?
Also related, when I assign a timepoint "as of" date of -1CY instead of 0CY, I also see inconsistent behavior with respect to both:
- the 0CY corollary - the number of companies differs by ~100%, which doesn't seem right
- run on 21 Feb outputs 2302 companies
- run on 28 Feb outputs 2325 companies
- again, different output sizes on different days (see above^)
This issue originally came to my attention because running a near identical script in the fall of 2024 omitted some expected big name entities (eg Amazon, PepsiCo). When I pull revenue data from suspicious "missing" companies in other ways (e.g. exports from their profile pages), the "revenue from business activities - total" values do confirm that the 250M minimum threshold should have been met in screener.
Thank you!