medic / cht-core

The CHT Core Framework makes it faster to build responsive, offline-first digital health apps that equip health workers to provide better care in their communities. It is a central resource of the Community Health Toolkit.
https://communityhealthtoolkit.org
GNU Affero General Public License v3.0
468 stars 218 forks source link

Variable static target goals. #6685

Open benkags opened 4 years ago

benkags commented 4 years ago

TL;DR

Part of #4771 which is summarized as:

The problem

Lack of flexibility in setting variable targets for CHWs based on varying factors like catchment area size, rural vs urban settings and other data available in the app.

Why is it important?

Partners would like to set different target goals for different CHWs, groups of CHWs, supervisory areas and branches that are realistic for CHWs operating in the different contexts. This is currently not possible.

For this ticket, the proposal is to focus on, varying static target goals for community health workers as informed by demographic, population differences as well as data points associated with the community health workers and their population

User Stories

  1. As a program manager, with a deployment spanning several branches, I would like to configure different target goals for the CHWs in the different branches so that they are working towards a realistic goal as informed by branch context.
  2. As a program manager, I would like to give each individual CHW a different target goal specific to them as informed by an analysis of the CHW area population data captured in the app so that they can focus care on the right interventions or population sub groups.
  3. As a community health worker, I want my target goal to be reflective of my context so that I am able to effectively deliver care to my community members.
  4. As a supervisor, I want to tell in a snapshot, how my community health workers are performing against their target goals so that I know where to offer support as needed.
  5. As a supervisor, I would like to drill down to the details of how my community health workers are performing against their set target goals so that I can offer required support where necessary.
  6. As a program manager, I would like to set different target goals for different groups of community health workers under different supervisors so that those community health workers, with the help of supervisors, are working towards realistic goals.

Mockups

variable-targets-percentages variable-targets-numbers

Acceptance Criteria

  1. Variable targets should integrate well with the targets status quo:-

    • Hardcoded static target goals should continue working for targets that are not set up as variable targets.
    • Variable targets should work with both count and percentage targets.
    • Variable targets should integrate well with monthly vs all time targets options.
    • Just like it is in with the product right now, the target goal updates when an update is explicitly made either via config or otherwise and takes effect on the user’s phone when they sync, immediately.
    • The visuals of the target for a user looking at their target does not change with this feature.
    • The supervisor's aggregate target view should indicate the various target goals for the different CHWs under them and accordingly update the completion indication displayed for each target correctly.
  2. The target goal should be available on disk for analysis. In addition, add an indication of whether a target is variable or not in the data saved.

  3. Information on when the target goal took effect(i.e when it was updated to a new value) should be available in data, including a way to tell what the value was before the update. In other words, if an update is made to the target goal, the same should reflect in the document saved on disk including the timestamps when that happened. This should work well with both monthly and all-time targets.

  4. If a target changes from a static to variable target, it should be possible to tell that from the data saved on disk.

  5. The interface for setting a variable target should be fairly easy to interact with and scalable for the different combinations of user setups that are likely. For guidance, here are some examples:

    • It should be possible to specify a variable target at an individual level. For example, an isolated CHW X gets a target goal that is different from everyone else.
    • Extending (a) above, it would be possible to specify a target goal value for a number of users.
    • Ability to group users to get a specific target goal by a hierarchy level, factoring in a configurable hierarchy. For example, users under Branch X get a target goal of YY while the rest of the users get a target goal of ZZ.
  6. Variable targets should be distinguishable as having goals and are not to be mixed up with targets without a goal such that it should not be possible to specify the same target as both having a goal for a subsection of users and not having a goal for another group of users.

User Acceptance Scenarios

Scenario 1

There are some projects that we know have implemented this by duplicating target object configurations. Re-implement those in a neat and scalable way using this feature. Expected result: One clean target config object that serves the different target goals for the different branches.

Scenario 2

A hypothetical organization has the following hierarchy set up: ‘branch -> CHW area -> household’. Supervisors are created at the branch level. For purposes for scenarios below, the supervisor and supervisor naming has a ‘branch-role-number’ pattern e.g A-supervisor-1, B-CHW-1. assessment and assessment-follow-up are among the forms configured. The following is the requirements spec for this organization that we will validate with the scenarios later.

Some specific branches and CHWs are marked for specific target goals. In some situations, the criteria are a little more generic and the program manager will provide criteria to the app builder as we will see below.

For purposes of the scenarios below, below is a set of requirements for the hypothetical organization above.

The organization tracks assessments conducted(count of assessment) for all CHWs. CHWs in Branch D for the same(count of assessments) do not get a goal. assessment follow-up rate(count of assessment-follow-up / count of assessment) has not been rolled to all branches and currently, only CHWs in Branch B is seeing this target with an exception of one CHW in Branch A. Malaria assessment is included in the assessment workflow for branches marked as malaria endemic. A branch or community health unit is marked as malaria endemic using a flag in the place. Branch C among others is marked as malaria endemic i.e {name: Branch C, malaria_endemic: true}. CHWs issue malaria nets(LLIN) for during the assessment workflow in malaria-endemic areas and the number of LLINs issued tracked using the LLINs issued percentage(count of assessment where malaria_net_issued=yes / count of assessment).

Configure the following:

  • A global target goal of 2 for assessments conducted should be configured for all CHWs in the organization.
  • A-CHW-1, A-CHW-2, and B-CHW-1 are new health workers and they all get an assessment count goal of 4 to encourage them to visit all the households in their catchment area.
  • All CHWs in Branch B should have an assessment follow up rate goal of 80%. No other branch is tracking this target. The one exception is CHW A-CHW-4 in Branch A who has a target goal of 50%.
  • Give a target goal of 60% for LLINs issued percentage to CHWs in all branches marked as ‘malaria_endemic=true including those that are added in the future’.

See a tabular representation below for more clarity.

Desired Scenarios
Target Title Calculation Criteria Goal
Assessments Conducted Count of Assessments Default (Every CHW in every branch unless explicitly configured differently) 2
  Count of Assessments 3 specific CHWs in Branch A (A-CHW-1, A-CHW-2 and B-CHW-1) 4
  Count of Assessments CHWs in Branch D No goal
Assessment Follow up rate count of assessment follow-up / count of assessment All CHWs in Branch B 80%
  count of assessment follow-up / count of assessment A specific CHW in Branch A (A-CHW-4) 50%
LLINs issued percentage count of assessment where malaria_net_issued=yes / count of assessment All CHWs in Branches where “malaria_endemic = true” (a metadata field stored on the place record) 60%
Setup
Branch malaria_endemic
A false
B  
C true
D no
Expected Targets Configuration Output
   
Branch CHW Assessments ConductedAssessment Follow-up Rate LLINs issued percentage
VisibleGoalVisibleGoalVisibleGoal
A A-CHW-1 Yes 4 No No  
A A-CHW-2 Yes 4 No   No  
A A-CHW-3 Yes 2 No   No  
A A-CHW-4 Yes 2 Yes 50 No  
B B-CHW-1 Yes 4 Yes 80 No  
B B-CHW-2 Yes 2 Yes 80 No  
B B-CHW-3 Yes 2 Yes 80 No  
C C-CHW-1 Yes 2 No   Yes 60
C C-CHW-2 Yes 2 No   Yes 60
D D-CHW-1 Yes 2 No   No
D D-CHW-2 Yes 2 No   No  

a. Log in as A-CHW-1

b. Log in as A-CHW-3

c. Log in as A-CHW-4

d. Log in as B-CHW-1

e. Log in as B-CHW-2

f. Log in as B-CHW-3

g. Log in as C-CHW-1

h. Log in as A-Supervisor-1(supervisor attached to Branch A)

i. Log in as C-Supervisor-1

Feature Update Metrics

  1. What proportion of all targets are variable?
  2. What is the frequency of updating variable targets?
  3. How different were the goals? Distribution??
  4. How do variable vs static targets compare with regards to meeting the target?
  5. How varying are the variable targets across the CHWs, branches et al?
  6. What proportion of users are using variable targets?
joyannee commented 4 years ago

@mouriceb @helizabetholsen could you provide some perspective on how this may affect the impact metrics and some things we may want to consider from an R&L perspective?

joyannee commented 3 years ago

https://docs.google.com/presentation/d/1uecOMqNB8LuI1lvnvZNbRUYQHisfdR4R403PK86IeV4/edit#slide=id.gb0b92fbdd6_0_298

This is the deck summarizing this feature. It should be ready for dev