Hi @Haliz.t ,
Great question! In addition to the resources described by @Gassim above, I recommend you look into the Electronic Immunization Registry metadata package, which has examples specifically on drop out rates for immunization cohorts. It will help you understand how to use enrollment type program indicators to address this requirement:
how to make sure that DTP1 and 3 belong to the same person
EIR Indicator design documentation
Demo dashboard with dropout rate indicators
Example DPT 1-3 indicator for dropout rates by cohort:
Percent indicator for DPT1-3 dropout by cohort
Numerator program indicator
Denominator program indicator
In this example, DPT 1 Given and DPT 3 Given are separate data elements in a repeated Immunization stage. Program rules hide DPT 3 unless DPT 1 and DPT 2 have been given in previous events. Because the DPT doses occur in separate events, we must therefore use enrollment type program indicators to create a cohort-based indicator.
For our indicator, all children who have received DPT 1 in the past, and have passed 6 months of age within the reporting period, should have received DPT 3. This is our denominator cohort.
To find this cohort, we use a program indicator with offset analytics period boundaries to cover all enrollment dates from six months prior to the reporting period until the end of the reporting period. Then we include in the program indicator filter:
d2:monthsBetween(A{DOB},V{analytics_period_start}) <= 6 && d2:monthsBetween(A{DOB},V{analytics_period_end}) >= 6
This ensures that all children who turned 6 months old during our reporting period are included within the cohort — regardless of when they were initially enrolled in the program. More information on enrollment type indicators and program indicator analytics period boundaries is included in the Tracker Design Guide.
The full filter of the program indicator in our denominator also includes a subexpression to filter for DPT1 dose provided in at least one event.
&& d2:countIfValue(#{programUID.DataElementUidDPT1}, 1) > 0
The program indicator used in the numerator is almost precisely the same as the denominator, except it has one additional subexpression in the filter: at least one DPT3 dose is provided
&& d2:countIfValue(#{programUID.DataElementUidDPT3}, 1) > 0
The full indicator calculates the following:
(Children who pass 6 months of age this period and have received DPT1)
/
(Children who pass 6 months of age this period and have received both DPT1 and DPT3)
Your system design may be different, so let me know if this helps to find DPT dropout rates with your Immunization Registry configuration.