def METHOD_NAME(self, major_object_class_name) -> List[dict]:
    filters = [
        Q(financialaccountsbyprogramactivityobjectclass__submission_id__in=self.submission_ids),
        Q(
            financialaccountsbyprogramactivityobjectclass__object_class__major_object_class_name=major_object_class_name
        ),
        Q(
            financialaccountsbyprogramactivityobjectclass__treasury_account__tas_rendering_label=self.tas_rendering_label
        ),
        Q(
            Q(financialaccountsbyprogramactivityobjectclass__obligations_incurred_by_program_object_class_cpe__gt=0)
            | Q(
                financialaccountsbyprogramactivityobjectclass__obligations_incurred_by_program_object_class_cpe__lt=0
            )
            | Q(
                financialaccountsbyprogramactivityobjectclass__gross_outlay_amount_by_program_object_class_cpe__gt=0
            )
            | Q(
                financialaccountsbyprogramactivityobjectclass__gross_outlay_amount_by_program_object_class_cpe__lt=0
            )
        ),
    ]
    queryset_results = (
        RefProgramActivity.objects.filter(*filters)
        .values("program_activity_name")
        .annotate(
            name=F("program_activity_name"),
            obligated_amount=Sum(
                "financialaccountsbyprogramactivityobjectclass__obligations_incurred_by_program_object_class_cpe"
            ),
            gross_outlay_amount=Sum(
                "financialaccountsbyprogramactivityobjectclass__gross_outlay_amount_by_program_object_class_cpe"
            ),
        )
        .order_by(f"{'-' if self.pagination.sort_order == 'desc' else ''}{self.pagination.sort_key}")
        .values("name", "obligated_amount", "gross_outlay_amount")
    )
    return queryset_results