Help needed: Different records number - enrolments vs program stage data

Hi all,

Iam using dhis 2 version 2.33.3


From registration page, I click on List and all registered TEI appear and I download enrolments as CSV. There are 4742 records.

When I go to Event Report and download data from a program stage, the report shows total records are 4746. There are 4 more records in event report than in enrolments. I’m wondering what the problem is with getting different records number.


Hi Ferdinand,

Is it possible that you have some TEI’s that have multiple events associated to them?
You would then get a higher event account than enrollments (an enrollment report will only count the latest event associated with a TEI).



Hi @Peter,

I have 5 program stages in my tracker (Stage A, B, C, D and E) associated to each TEI. Having 4742 enrollments, I expected to get 4742 records when dowloading data from Stage A from example, but I get a grater number as mentioned in the previous. Each tracked entity has to participate in all stages.

Thanks again.

Hi Ferdinand,

Are any of your stages listed as repeating stages?
If so you could have a TEI that has more than event per stage assigned to it.

e.g. TEI has 3 x events from stage A which would then be added to your event count.



Hi @Peter,

All stages are non repeatable stages.


@dhis2-tracker team, could someone explain why @ferdinandmussavene is getting different number of enrollments from the Event Report than when downloading the CSV?


TLDR; these two lists are created in different ways by the system, and fundamentally lists out different kinds of data. In order for these numbers to be perfectly correlated there is a few more factors that must be checked, and its hard to be absolutely sure that there is never a divergence - these are two different lists.

If you are clicking the “Any enrollment status” list in tracker capture(the first default list), and then download the data, you get a lower number of records than if you download events in event analytics. In tracker capture you download a list of 4742 Tracked entity instances, while in the event reports you see 4746 Events. As you are aware, the two lists are produced based on different data, but as you also point out there is many factors that should contribute to the number of records being the same in these two lists. There is however also things that can still be different in this comparison, and I till offer some other some other things to check for you.

  • One source of a difference that is what @Peter mentioned. Even if you have a non-repeatable stage, it might be that the stage was repeatable earlier in the development of your metadata. If there has been a period where repeatable events was allowed, there can be more events than tracked entity instances.
  • Another way to get more events than TEI, is repeated enrollments. Even when the program stage is not repeatable, the enrollment can potentially be repeated unless the flag for “only enroll once” is set.
  • The list in tracker capture lists TEI based on ownership org unit, and when listing data for org unit A, it is the owner org unit that is used as the basis for listing TEI. When listing data from the analytics engine(event reports), it is always the enrollment org unit and event org unit that is used to list the data - not the owner org unit. In a use case where all data entry users only have access to one org unit each, and never transfer data between org units, the Owner org unit, enrollment org unit and event org unit will always be the same. If a user has search access to several org units, it might be possible to add events from one org unit to enrollments from another - based on protection level. The same divergence might happen if the users use the “Refer” functionality(bottom button):
    Skjermbilde 2021-06-07 kl. 21.03.55

These are things I can think of, but the short answer is that listing events from the analytics engine is a bit different from listing TEI in the tracker capture app - and there are many sources of divergence. To find what is the difference here it might be necessary to compare and see the exact difference. If could be possible to compare the TEI ID from the event list to the TEI IDs exported from tracker capture, and this would allow us to see wether there are elements missing in one list, or wether there is one TEI with several events.


1 Like

Hi @Markus,

Thank you for having given an explanation of the possible reasons for divergence between the two lists.