Hello DHIS2 Community,
I am experiencing an issue with Program Indicators in DHIS2 version 2.41 and would appreciate your guidance.
Background
I have a Tracker program with two program stages:
- Beneficiary (Client) Registration (M4vhzvytRCl)
- Captures beneficiary demographics such as:
- Age (LdjKI3jwppE)
- Sex (bxRw9QNc9Y9)
- Captures beneficiary demographics such as:
- Services Provided (Awqf8EbrvIL)
- Captures service delivery information including:
- Returned to Care (YvwHpYkkpax) – Yes/No (1/0)
- LTFU Re-engagement (mCudE8KBYHy) – Yes/No (1/0)
- Pregnant (TUfrbmUp0fi)
- Breastfeeding (HQpsHC0CnZ0)
- Captures service delivery information including:
What works
When I use Data Visualizer directly on the data element Bloom2 - LTFU Re-engagement, I get the expected results:
- April 2026 = 27
- May 2026 = 14
- June 2026 = 1
Similarly, if I create simple Program Indicators using only:
#{Awqf8EbrvIL.YvwHpYkkpax} == 1
or
#{Awqf8EbrvIL.mCudE8KBYHy} == 1
they return data.
The problem
I am trying to build disaggregated Program Indicators for:
- SVC-05: Number of Children LTFU Brought Back on ART
- Male 0–4
- Male 5–9
- Male 10–14
- Female 0–4
- Female 5–9
- Female 10–14
- SVC-06: Number of PBFW LTFU Brought Back on ART
- 10–14 years
- 15–19 years
- 20–24 years
The indicators always return zero, despite the Event Report showing clients that should satisfy the criteria.
For example:
(
#{Awqf8EbrvIL.YvwHpYkkpax} == 1
||
#{Awqf8EbrvIL.mCudE8KBYHy} == 1
)
&&
#{M4vhzvytRCl.LdjKI3jwppE} >= 0
&&
#{M4vhzvytRCl.LdjKI3jwppE} <= 4
&&
#{M4vhzvytRCl.bxRw9QNc9Y9} == ‘Female’
and for PBFW:
(
#{Awqf8EbrvIL.YvwHpYkkpax} == 1
||
#{Awqf8EbrvIL.mCudE8KBYHy} == 1
)
&&
(
#{Awqf8EbrvIL.TUfrbmUp0fi} == 1
||
#{Awqf8EbrvIL.HQpsHC0CnZ0} == 1
)
&&
#{M4vhzvytRCl.LdjKI3jwppE} >= 20
&&
#{M4vhzvytRCl.LdjKI3jwppE} <= 24
Important clarification
Initially I used:
Returned to Care == 1 && LTFU Re-engagement == 1
However, I realised these represent different service types and are not expected to both be Yes in the same service event. I therefore changed the logic to use OR, but the indicators still return zero.
Program Indicator configuration
- DHIS2 Version: 2.41
- Analytics Type: Event
- Program Stage: Services Provided (Awqf8EbrvIL)
- Expression: 1
- Filter: contains the logic shown above.
My questions
- Is it supported in DHIS2 2.41 to reference Age and Sex from the Registration stage while evaluating events from the Services Provided stage in an Event Program Indicator?
- Are there any known limitations when combining data elements from different program stages in Event Analytics?
- Is there a recommended approach for creating age- and sex-disaggregated Program Indicators in this type of Tracker program?
- Is there anything incorrect about the expressions or Program Indicator configuration that could explain why all disaggregated indicators return zero while the underlying event data clearly exists?
Any guidance or examples of similar implementations would be greatly appreciated.
Thank you very much for your support.