Indicator Help - Complex indicators from event tracker

Hi all,

I have a need to create some Indicators and I am not too sure how to go about it.

One indicator is to indicate if an OU has passed or failed a Disease Specific Assessment survey.

We record these surveys in the event tracker at the district level. A district might have 3-5 separate surveys, so 3-5 events. Each event has data elements that record the number of people tested, and out of those tests, the number of people that tested positive. An OU is considered “failed” if a single survey comes back with a positive test result of over 2% (#positives / #tested >= 0.02). So ideally this indicator would count the number of OUs that have one or more failures. If we sliced this so that we had an OU on each row, the indicator would simply be a 1 or a 0, to indicate if there were any failures in that OU for the specified range of dates.

Another Indicator I would like to create is one that counts the number of unique OUs that have been reached by the DSA. But!!! We run DSAs year on year, so an OU might get tested one year and the event will have a data element that identifies all of these events as being the 2021 DSA for LF. The next year we might test that same OU again, but the event will have the identifier of 2022 DSA for LF. If the indicator was only looking for unique OUs, and I ran a query that covered both 2021 and 2022 the indicator would only count 1 OU. Is it possible for the indicator to take the identifier into account and see these as 2 OUs?

Any help would be greatly appreciated, I find anything but the most simple indicators quite hard to grasp.

If there is an indicator master class which explains more advanced indicators I would love to see it.


I have managed to solve the first indicator. As is often the case it seems pretty obvious in retrospect.

I created a program indicator for the DSA event program that determines if the event itself has failed.

if ( #{number of people tested positive} / #{number of people tested} > 0.0.2, 1, 0 )

with a filter of

#{number of people tested} != 0

I then created a normal indicator that simply aggregates this program indicator using the Max aggregation. So now if I look at an OU that has 3 successful events and 1 failed event, the indicator will show 1, indicating the whole OU has failed.

What would be nice is if there is a way for it to only aggregate this at the lowest OU level, so that if you looked at a State or a country it would actually count the total number of OUs that have failed.

For now this works for my needs though.

Just got to solve the other indicator now.