You are here:
User Defined Rollups (Legacy)
Review the basics of legacy user defined rollups. Create a user defined rollup and use formula fields to include or exclude fields in your rollups calculations.
- Overview
User Defined Rollups (UDR) let users that work with custom fields on Opportunities summarize that information on Accounts or Contacts. Organizations can create a User Defined Rollup to summarize information based on an Opportunity record, and push that summary information to a field on the Account or Contact record (or Households, for those still using the One-to-One or Individual Bucket model). - Create a User Defined Rollup
Create a User Defined Rollup and display the result on the Contact, Account, or Household object. This is an example of creating a rollup for Total Remaining Payment Balance for a Contact. - Use Formula Fields with User Defined Rollups
Although there is no way to directly add filters to User Defined Rollups (UDR), you can create formula fields on the Opportunity object with logic to include or exclude records based on criteria you specify. You then use these formula fields as the source Opportunity Field in your User Defined Rollup.
Overview
User Defined Rollups (UDR) let users that work with custom fields on Opportunities summarize that information on Accounts or Contacts. Organizations can create a User Defined Rollup to summarize information based on an Opportunity record, and push that summary information to a field on the Account or Contact record (or Households, for those still using the One-to-One or Individual Bucket model).
UDRs are calculated based on Closed/Won Opportunities just like out-of-box NPSP rollups, but you define the Opportunity field to roll up, how it will roll up, and in what custom field the rollup data should appear. Most powerfully, organizations can extend UDRs using formula filters to summarize only certain subsets of Opportunities.
In May 2018 (version 3.129), we introduced Customizable Rollups . With Customizable Rollups, you can roll up Payments (in addition to Opportunities), create filters to include or exclude data, and easily roll up data from more than two years ago. And when you enable Customizable Rollups , we'll convert all out-of-box NPSP rollups and any UDRs you've created into Customizable Rollups so that you can update them as needed.
To learn more about all of the different types of rollups available in the Nonprofit Success Pack, see the Rollups Overview.
Create a User Defined Rollup
Create a User Defined Rollup and display the result on the Contact, Account, or Household object. This is an example of creating a rollup for Total Remaining Payment Balance for a Contact.
- In Setup, create the custom field that will contain your rollup information. The field must be of the same data type as the field you will be rolling up (the Opportunity Field). For our example, you'd create a field with the Type = Currency and name it Total Remaining Payment Balance.
- Go to NPSP Settings. If you don't see the NPSP Settings tab, you can find it using the App Launcher.
- Click Donations | User Defined Rollups.
- Click New User Defined Rollup.
- Fill in the required fields. To follow along with the example, enter these values:
- Opportunity Field = Remaining Balance
- Rollup Operation = SUM
- Target Object = Contact
- Target Field = Total Remaining Payment Balance (Remember, this is the custom field we asked you to create in step 1.)

- Click Create Rollup.
User Defined Rollups are calculated nightly as part of a batch. You can also manually recalculate them.
Use Formula Fields with User Defined Rollups
Although there is no way to directly add filters to User Defined Rollups (UDR), you can create formula fields on the Opportunity object with logic to include or exclude records based on criteria you specify. You then use these formula fields as the source Opportunity Field in your User Defined Rollup.
For example, you may want to prioritize sustaining donor engagement by displaying recurring donation data on Contacts. To do this, you could create UDRs that aggregate current recurring giving and lifetime recurring giving data. To filter Opportunities to only include those associated with Recurring Donations, you could create formula fields and use them in your UDRs.
To use a formula field to filter your User Defined Rollup, follow these high level steps:
- Create the formula field on the Opportunity object. This will be the Opportunity Field you select for your UDR.
- Create a custom field on either the Account, Contact, or Household object. This will be the Target Field that will contain your rollup data.
- Create the User Defined Rollup.
Below are some example User Defined Rollups that use formula fields.
Example 1: First Active Recurring Date & Last Active Recurring Date
This example creates a UDR that finds and displays the Close Date of the earliest Opportunity associated with a current, active Recurring Donation. You can use the same formula field to create a UDR that displays the Close Date of the most recent Opportunity associated with a current, active Recurring Donation.
- Create a formula field on the Opportunity object (to use as
the Opportunity Field).
- Data Type = Formula
- Field Label = Recurring Date: Active
- Formula Return Type = Date
- Formula =
IF ( ISPICKVAL ( npe03__Recurring_Donation__r.npe03__Open_Ended_Status__c, "Open" ), CloseDate , NULL)
- Create a custom field on the Contact object (to use as the
Target Field).
- Data Type = Date
- Field Label = First Active Recurring Date
- Description = A date field displaying the Close Date of the earliest Opportunity associated with a current, active Recurring Donation.
- Create a User Defined Rollup with these values:
- Opportunity Field = Recurring Date: Active
- Rollup Operation = MIN
- Target Object = Contact
- Target Field = First Active Recurring Date
To create a User Defined Rollup for the Last Active Recurring Date:
- Create a custom field on the Contact object (to use as the
Target Field).
- Data Type = Date
- Field Label = Last Active Recurring Date
- Description = A date field displaying the Close Date of the most recent Opportunity associated with a current, active Recurring Donation.
- Create a User Defined Rollup with these values:
- Opportunity Field = Recurring Date: Active
- Rollup Operation = MAX
- Target Object = Contact
- Target Field = Last Active Recurring Date
Example 2: First Ever Recurring Date & Last Ever Recurring Date
This example creates a UDR that finds and displays the Close Date of the earliest Opportunity associated with any Recurring Donation. You can use the same formula field to create a UDR that displays the most recent Opportunity associated with any Recurring Donation.
- Create a formula field on the Opportunity object (to use as
the Opportunity Field).
- Data Type = Formula field
- Field Label = Recurring Date: Ever
- Formula Return Type = Date
- Formula = IF ( NOT ( ISBLANK(npe03__Recurring_Donation__c)), CloseDate , NULL)
- Create a custom field on the Contact object (to use as the
Target Field).
- Data Type = Date
- Name = First Ever Recurring Date
- Description = A date field displaying the Close Date of the earliest Opportunity associated with any Recurring Donation.
- Create a User Defined Rollup with these values:
- Opportunity Field = Recurring Date: Ever
- Rollup Operation = MIN
- Target Object = Contact
- Target Field = First Ever Recurring Date
To create a UDR for Last Ever Recurring Date:
- Create a custom field on the Contact object (to use as the
Target Field).
- Data Type = Date
- Field Label = Last Ever Recurring Date
- Description = A date field displaying the Close Date of the most recent Opportunity associated with any Recurring Donation.
- Create a User Defined Rollup with these vales:
- Opportunity Field = Recurring Date: Ever
- Rollup Operation = MAX
- Target Object = Contact
- Target Field = Last Ever Recurring Date
Example 3: Recurring Donation Amount
This example creates a UDR that finds and displays the Recurring Donation Amount value, if the Opportunity is associated with a Recurring Donation record whose Open Ended Status is set to Open.
- Create a formula field on the Opportunity object (to use as
the Opportunity Field).
- Data Type = Formula field
- Field Label = Recurring Donation Amount
- Formula Return Type = Currency
- Decimal Places = 2
- Formula = IF ( ISPICKVAL ( npe03__Recurring_Donation__r.npe03__Open_Ended_Status__c, "Open" ), npe03__Recurring_Donation__r.npe03__Amount__c , NULL)
- Create a field on the Contact object (to use as the Target
Field).
- Data Type = Currency
- Field Label = Recurring Donation Amount
- Description = A currency field displaying the Donation Amount value of a current, active Recurring Donation.
- Create a User Defined Rollup with these values:
- Opportunity Field = Recurring Donation Amount
- Rollup Operation = MAX
- Target Object = Contact
- Target Field = Recurring Donation Amount
