Skip to content

Beneficiary Group

The Beneficiary Group model controls the dynamic labeling used across the frontend UI. Each Program is linked to a BeneficiaryGroup, and the group's fields determine what labels users see on various pages.

Model Fields → Labels

Model Field Example value Responsible for
name "Household" Shown in the Program form dropdown when selecting a beneficiary group.
group_label "Household" Singular group name — detail page titles, lookup dialogs, filter labels.
group_label_plural "Households" Plural group name — list page headers, tab labels, count labels.
member_label "Individual" Singular member name — detail page titles, lookup dialogs, filter labels.
member_label_plural "Individuals" Plural member name — list page headers, table headers, count labels.
master_detail True / False If True → group-member hierarchy (e.g. Household → Individuals). If False → only members are shown (e.g. Social Workers). Controls which sections/columns are visible.

Admin Configuration

Beneficiary Groups are managed in Django Admin under Programme › Beneficiary Groups. Changing a label value will immediately affect the frontend for all programs using that group.

⚠️ Warning: Renaming labels on an existing beneficiary group changes the UI for all programs linked to it.

Example: How Labels Are Used in the UI

Below are some concrete examples of where each field appears:

  • Population list page headergroup_label_plural (e.g. "Households")
  • Population detail page titlegroup_label + entity ID (e.g. "Household: HH-001")
  • Members table headermember_label_plural (e.g. "Individuals")
  • Grievance / Feedback lookup dialoggroup_label / member_label (e.g. "Household/Individual Look up")
  • RDI details tabgroup_label_plural (e.g. tab labeled "Households")
  • Program Cycle totalsgroup_label_plural (e.g. "Total Households Count")
  • Search page filter labelsgroup_label (e.g. "Household (ID)")

Example Usage: Household vs Education Workers Beneficiary Groups

Admin definition

Household Education Workers
Household admin Education Workers admin

group_label as the menu item, expanding into group_label_plural and member_label_plural sub-items:

Household Education Workers
Household sidebar Education Workers sidebar

Group list

Page title uses group_label_plural; table headers use group_label:

Household Education Workers
Household group list Education Workers group list

Group detail

Title uses group_label + ID:

Household Education Workers
Household group detail Education Workers group detail

Member list

Page title uses member_label_plural; table headers use member_label and group_label:

Household Education Workers
Household member list Education Workers member list

Member detail

Title uses member_label + ID:

Household Education Workers
Household member detail Education Workers member detail

Grievance ticket creation

Categories use group_label and member_label (e.g. "Household Data Update" vs "School Data Update"):

Household Education Workers
Household grievance Education Workers grievance

The same pattern applies throughout the application — wherever groups or members are referenced (e.g. targeting, RDI, program cycles, feedback, country search), the labels are driven by the same Beneficiary Group fields.