dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #46393
[Bug 1612375] [NEW] Program indicators: error in percentage calculations when using d2:condition (inconsistent results at different levels of aggregation)
Public bug reported:
Bug found in 2.22, still present in 2.24 online demo (2.24 rev.23557)
Online demo accessed using Chrome 52.0.2743.116.
There appears to be a bug in the program indicator calculations when:
a sum() custom aggregation is used twice, to enable the calculation of a percentage AND
an element of the percentage calculation includes d2:condition.
Note that either of these situations works properly on its own - ie the
numerator and denominator work perfectly when separated into two
different indicators - it is only when combined that the bug occurs.
TO REPRODUCE THIS BUG
In the online demo instance, using the Antenatal Care Visit program:
1. Create a program indicator called TestNumerator, with aggregation type 'custom' and expression:
sum(d2:condition('#{dBwrot7S420.vANAXwtLwcT}>=10',1,0))
2. Create a program indicator called TestDenominator, with aggregation type 'custom' and expression:
V{event_count}
3. Create a program indicator called TestPercentage, with aggregation type 'custom' and expression, which combines these two expressions as a percentage:
sum(d2:condition('#{dBwrot7S420.vANAXwtLwcT}>=10',1,0)) / V{event_count} * 100
4. Create a pivot table based on the Antenatal program, add all three indicators to the pivot, and run it:
Numerator and denominator calculate correctly, but percentage returns 2/3 = 0 (instead of 66.7)
5. Now change the Period from Last 12 months to Last 52 weeks, and re-run:
All indicators now calculate correctly, with percentage correctly showing 0/1 = 0 and 2/2 = 100.
Note that this is not a bug in the event_count variable, as the same bug consistently appears even when V{event_count} is replaced by sum(1) in the indicator expressions.
I have a project whose viability depends on being able to correctly
calculate these percentages at higher levels of aggregation (regions
etc), so if confirmed as a bug, I would be hugely grateful if it were
possible to fix this in the current release, rather than in 2.25.
Many thanks, Sam.
** Affects: dhis2
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of DHIS 2
developers, which is subscribed to DHIS.
https://bugs.launchpad.net/bugs/1612375
Title:
Program indicators: error in percentage calculations when using
d2:condition (inconsistent results at different levels of aggregation)
Status in DHIS:
New
Bug description:
Bug found in 2.22, still present in 2.24 online demo (2.24 rev.23557)
Online demo accessed using Chrome 52.0.2743.116.
There appears to be a bug in the program indicator calculations when:
a sum() custom aggregation is used twice, to enable the calculation of a percentage AND
an element of the percentage calculation includes d2:condition.
Note that either of these situations works properly on its own - ie
the numerator and denominator work perfectly when separated into two
different indicators - it is only when combined that the bug occurs.
TO REPRODUCE THIS BUG
In the online demo instance, using the Antenatal Care Visit program:
1. Create a program indicator called TestNumerator, with aggregation type 'custom' and expression:
sum(d2:condition('#{dBwrot7S420.vANAXwtLwcT}>=10',1,0))
2. Create a program indicator called TestDenominator, with aggregation type 'custom' and expression:
V{event_count}
3. Create a program indicator called TestPercentage, with aggregation type 'custom' and expression, which combines these two expressions as a percentage:
sum(d2:condition('#{dBwrot7S420.vANAXwtLwcT}>=10',1,0)) / V{event_count} * 100
4. Create a pivot table based on the Antenatal program, add all three indicators to the pivot, and run it:
Numerator and denominator calculate correctly, but percentage returns 2/3 = 0 (instead of 66.7)
5. Now change the Period from Last 12 months to Last 52 weeks, and re-run:
All indicators now calculate correctly, with percentage correctly showing 0/1 = 0 and 2/2 = 100.
Note that this is not a bug in the event_count variable, as the same bug consistently appears even when V{event_count} is replaced by sum(1) in the indicator expressions.
I have a project whose viability depends on being able to correctly
calculate these percentages at higher levels of aggregation (regions
etc), so if confirmed as a bug, I would be hugely grateful if it were
possible to fix this in the current release, rather than in 2.25.
Many thanks, Sam.
To manage notifications about this bug go to:
https://bugs.launchpad.net/dhis2/+bug/1612375/+subscriptions
Follow ups