Configure and manage NPSP Enhanced Recurring Donations (ERD): enable ERD mode, define schedule objects, configure installment behavior, set status automation thresholds, and interpret the Upcoming Installments UI. NOT for legacy recurring donations (pre-March 2021 model), one-time Opportunity creation, or custom payment gateway integrations beyond native NPSP.
This skill activates when a practitioner needs to configure, troubleshoot, or explain NPSP Enhanced Recurring Donations — covering ERD mode enablement, schedule object behavior, single-installment Opportunity generation, status automation thresholds, Effective Date change patterns, and the distinction between actual Opportunity records and the Upcoming Installments UI projection. It does NOT cover the legacy recurring donations model, one-time Opportunity entry, or custom payment processing outside native NPSP.
Gather this context before working on anything in this domain:
npe03__RecurringDonationSchedule__c records, not fields on the Recurring Donation itself. Understanding this is required to interpret why the Upcoming Installments UI shows data that does not correspond 1:1 with existing Opportunity records.NPSP shipped two distinct recurring donation models. The legacy model (pre-March 2021) created up to twelve future pledged installment Opportunity records at once, one for each period in the coming year. ERD, the replacement, generates only one future pledged installment Opportunity at a time. When that installment is closed (won or lost), the nightly batch creates the next one. This single-at-a-time approach reduces clutter, avoids premature revenue projection in reports, and simplifies schedule changes.
ERD became the default for all new NPSP installs in March 2021. Existing orgs must explicitly migrate via NPSP Settings. The migration is one-way; there is no rollback path to legacy after migration.
In ERD, the installment calendar is stored as one or more npe03__RecurringDonationSchedule__c child records on the Recurring Donation. Each schedule record defines:
When an amount or schedule change is applied to a Recurring Donation, NPSP creates a new npe03__RecurringDonationSchedule__c record with the updated values and an Effective Date, rather than modifying the existing schedule. The old schedule record is then set to Inactive. This preserves a full audit trail of all schedule history.
The Upcoming Installments related list on a Recurring Donation does NOT show a list of existing Opportunity records. It calculates and renders projected future installment dates directly from the active npe03__RecurringDonationSchedule__c record. This projection is recalculated on every page load.
Consequences of this distinction:
ERD automates Recurring Donation status transitions based on how many days have passed since the last payment:
Both thresholds are configurable in NPSP Settings > Recurring Donations. The nightly batch recalculates status transitions along with Total Paid Amount and Number of Paid Installments rollup fields.
When a donor requests a change to their recurring gift amount or frequency starting next month (not immediately), the correct mechanism is the Effective Date field on the schedule change. Practitioners set the new amount/frequency and choose a future Effective Date. NPSP creates a new schedule record effective on that date. The current installment Opportunity is not altered; the change takes effect on the next installment created after the Effective Date passes.
Using the Effective Date avoids retroactively modifying the amount on an already-created open Opportunity, which would misrepresent the donor's pledge.
When to use: A donor commits to a monthly recurring gift via web form, phone pledge, or in-person entry.
How it works:
npe03__RecurringDonationSchedule__c record with the specified amount, frequency 1, period Monthly, and a Day of Month.Why not pre-create all 12 Opportunities manually: Pre-creating all twelve inflates the pipeline, interferes with NPSP's batch recalculation of rollups, and creates Opportunities that the schedule does not own — leading to duplicate Opportunities if the batch also fires.
When to use: A donor increases their gift starting next month. The current open installment Opportunity should remain at the old amount.
How it works:
npe03__RecurringDonationSchedule__c and creates a new one with the updated amount and the specified Effective Date.Why not edit the Opportunity amount directly: A direct edit to the open Opportunity amount changes only that one record, leaves the schedule unchanged, and will be overwritten by NPSP's batch recalculation on the next run.
When to use: A recurring donation shows Lapsed status but the donor claims they paid.
How it works:
| Situation | Recommended Approach | Reason |
|---|---|---|
| New NPSP install after March 2021 | ERD is already default; verify in NPSP Settings | ERD is the default; no action needed unless legacy was manually set |
| Org migrated from legacy before March 2021 | Run ERD migration wizard in NPSP Settings | One-way migration; verify rollup recalculation after migration |
| Donor wants amount change starting next period | Use Effective Date on schedule change | Preserves current open Opportunity at old amount; schedule change takes effect on next creation |
| Practitioner wants to see all future installment dates | Use Upcoming Installments UI | It shows schedule projections — not a SOQL query of existing Opportunities |
| Need to query future installment Opportunities via SOQL | Query Opportunity WHERE npe03__Recurring_Donation__c = :rdId AND IsClosed = false | Only one future pledged Opportunity exists at any time in ERD |
| Recurring Donation shows Lapsed unexpectedly | Check Lapsed threshold in NPSP Settings and batch run history | Batch recalculates status nightly; verify batch has run and threshold is configured appropriately |
| Recurring Donation should never auto-close | Set Closed threshold to a very large number (e.g., 9999) in NPSP Settings | Prevents automatic Closed transitions for donors on payment plans |
Step-by-step instructions for an AI agent or practitioner working on this task:
npe03__RecurringDonationSchedule__c record is created with the correct amount, period, and frequency.npe03__RecurringDonationSchedule__c is created, the old one is inactive, and the current open Opportunity is unaffected.Run through these before marking work in this area complete:
Non-obvious platform behaviors that cause real production problems:
npe03__RecurringDonationSchedule__c calculations. It is not a SOQL query of Opportunity records. Edits made directly to a future Opportunity's amount or close date are invisible in this UI. Practitioners often assume the UI confirms what records exist — it does not.npe03__RecurringDonationSchedule__c and deactivates the old one. It does NOT update the existing schedule record. Queries that filter only on Active schedule records will return the current schedule; queries without a status filter may return multiple records per Recurring Donation. Always filter by Status = Active when you need the current schedule.| Artifact | Description |
|---|---|
| Configured ERD settings | NPSP Settings > Recurring Donations configured with correct installment period, frequency, and status thresholds |
| npe03__RecurringDonationSchedule__c records | Schedule objects on each Recurring Donation driving installment generation |
| Single pledged installment Opportunity | One open pledged Opportunity per active Recurring Donation, reflecting current schedule |
| Status automation | Active/Lapsed/Closed transitions driven by days-unpaid thresholds, recalculated nightly |
| Rollup field values | Total Paid Amount and Number of Paid Installments updated by nightly batch |
gift-entry-and-processing — Recurring donations that come through Gift Entry use the staging-and-promotion pipeline; ERD installment Opportunities feed into Gift Entry differently than one-time giftsnpsp-data-model — Understand the full object graph: Recurring Donation, npe03__RecurringDonationSchedule__c, and installment Opportunity relationshipsbatch-job-scheduling-and-monitoring — The nightly NPSP recurring donations batch is critical infrastructure; use this skill to monitor, schedule, and troubleshoot it