For nonprofits
NPSP installs hundreds of fields across donations, households, and recurring giving. Most have no description. Many aren’t used. All of them landed on someone who didn’t build them.
SchemaForce shows you what’s actually in your org, which fields are populated, and who can see what — without ever reading a single donor record.
Hundreds of fields carrying the npsp__, npe01__, npe03__, and npo02__ namespaces, installed by a managed package you didn’t choose the contents of. Custom fields three different consultants added across five years, named for projects that ended before you arrived. The Recurring Donations, Households, Allocations, and General Accounting Units machinery someone told you not to touch. A handful of fields clearly built for one campaign in 2021 that may or may not still matter.
Nobody wrote any of it down. The person who set it up is gone, the documentation was a Google Doc that’s now out of date, and the only way to find out what a field means is to ask in a Slack channel and hope. (Newer orgs on Nonprofit Cloud have the same problem in a different namespace — and SchemaForce reads them the same way.)
You don’t need a consultant to re-explain your org to you. You need to see it.
Every field NPSP installs, what it’s for, and whether your org is using it — the plain-language reference SchemaForce builds for an NPSP org.
| Field | Type | Population | Access | Description |
|---|---|---|---|---|
| Opportunity | ||||
| npsp__Primary_Contact__c | Lookup(Contact) | 94% | All profiles | The individual credited for this gift, even when the donation is booked to a household or organization account. |
| npe03__Recurring_Donation__c | Lookup(Recurring Donation) | 38% | All profiles | Links this donation to the recurring schedule that generated it. Empty on one-time gifts. |
| npe01__Payments_Made__c | Currency (rollup) | 71% | Read-only, all | Total payments received against a pledged or installment gift. Maintained by NPSP, not edited directly. |
| npe01__Number_of_Payments__c | Number | 64% | All profiles | How many scheduled payments NPSP creates for this gift — 1 for a single payment, more for an installment pledge. |
| npsp__Acknowledgment_Status__c | Picklist | 12% | 4 of 9 profiles | Tracks whether a thank-you or tax receipt has been sent for this gift. Often left blank when acknowledgments are handled outside Salesforce. |
| npsp__Acknowledgment_Date__c | Date | 9% | 4 of 9 profiles | The date the acknowledgment for this gift was sent. Populated alongside Acknowledgment Status. |
| npsp__Matching_Gift_Status__c | Picklist | 4% | All profiles | Where a matching gift stands — potential, submitted, or received — for gifts eligible for an employer match. |
| npsp__Honoree_Contact__c | Lookup(Contact) | 6% | All profiles | The person a tribute or memorial gift honors. Drives in-honor-of and in-memory-of acknowledgments. |
| Contact | ||||
| npo02__TotalOppAmount__c | Currency (rollup) | 100% | Read-only, all | Total lifetime donation amount, rolled up by NPSP from the contact’s closed-won gifts. Never edit manually. |
| npo02__OppAmountThisYear__c | Currency (rollup) | 100% | Read-only, all | Total donation amount for the current year. |
| npo02__OppAmountLastYear__c | Currency (rollup) | 100% | Read-only, all | Total donation amount for the prior year. |
| npo02__LastCloseDate__c | Date (rollup) | 82% | Read-only, all | Date of the most recent closed-won donation. |
| npo02__FirstCloseDate__c | Date (rollup) | 82% | Read-only, all | Date of the first closed-won donation — the donor’s acquisition date. |
| npo02__NumberOfClosedOpps__c | Number (rollup) | 100% | Read-only, all | Count of closed-won donations. |
| npo02__LargestAmount__c | Currency (rollup) | 82% | Read-only, all | Largest single closed-won donation amount. |
| npe01__Preferred_Email__c | Picklist | 88% | All profiles | Which of the contact’s email fields NPSP treats as primary. Drives the standard Email field. |
| npsp__Deceased__c | Checkbox | 3% | All profiles | Excludes the contact from household naming and communications when set. Low population is normal. |
| npsp__Do_Not_Contact__c | Checkbox | 5% | All profiles | Suppresses the contact from outreach across channels. Often paired with the standard Email Opt Out. |
| npsp__Primary_Affiliation__c | Lookup(Account) | 41% | All profiles | The organization this contact is primarily affiliated with — employer, school, or partner. |
| Account (Household) | ||||
| npe01__SYSTEMIsIndividual__c | Checkbox (system) | 100% | Read-only, all | Marks an account NPSP manages as an individual/household container. Set by NPSP — do not edit. |
| npo02__Formal_Greeting__c | Text (rollup) | 96% | All profiles | The household’s formal salutation, e.g. “Mr. and Mrs. Rivera,” assembled by NPSP from its members. |
| npo02__Informal_Greeting__c | Text (rollup) | 96% | All profiles | The household’s informal salutation, e.g. “Maria and Sam,” assembled by NPSP from its members. |
| npsp__Number_of_Household_Members__c | Number (rollup) | 100% | Read-only, all | How many contacts belong to this household account. Maintained by NPSP. |
| npe01__One2OneContact__c | Lookup(Contact) | 28% | Read-only, all | For one-to-one accounts, the single contact the account represents. A legacy NPSP account model. |
| Recurring Donationnpe03__Recurring_Donation__c | ||||
| npsp__Status__c | Picklist | 100% | All profiles | Whether the recurring commitment is active, lapsed, or closed. The field most worth auditing on this object. |
| npe03__Amount__c | Currency | 100% | All profiles | The installment amount of a recurring donation. |
| npe03__Next_Payment_Date__c | Date | 86% | All profiles | The date the next recurring-donation installment is due. |
| npe03__Date_Established__c | Date | 100% | All profiles | The date the recurring donation was set up. |
| npe03__Installment_Period__c | Picklist | 100% | All profiles | How often an installment is generated — monthly, quarterly, yearly, or weekly. |
| npe03__Open_Ended_Status__c | Picklist | 92% | All profiles | For open-ended schedules, whether the commitment is open, closed, or none — distinct from the enhanced Status field. |
| Paymentnpe01__OppPayment__c | ||||
| npe01__Payment_Amount__c | Currency | 100% | All profiles | The amount of this individual payment against a gift. |
| npe01__Paid__c | Checkbox | 100% | All profiles | Whether this payment has been received. Drives the gift’s Payments Made rollup. |
| npe01__Scheduled_Date__c | Date | 73% | All profiles | When an unpaid payment is expected — the installment due date for a pledge. |
| npe01__Payment_Method__c | Picklist | 61% | All profiles | How the payment was made — check, credit card, ACH, cash, or in-kind. |
| npe01__Written_Off__c | Checkbox | 2% | 3 of 9 profiles | Marks an unpaid pledged payment as written off, so it stops counting as expected revenue. |
| General Accounting Unitnpsp__General_Accounting_Unit__c | ||||
| npsp__Active__c | Checkbox | 100% | 2 of 9 profiles | Marks a fund as available for new allocations. Inactive GAUs are common and usually intentional. |
| npsp__Total_Allocations__c | Currency (rollup) | 100% | Read-only, all | Total amount allocated to this fund across all gifts. Maintained by NPSP’s allocation rollups. |
| npsp__Number_of_Allocations__c | Number (rollup) | 100% | Read-only, all | How many allocations point to this fund. |
| Allocationnpsp__Allocation__c | ||||
| npsp__Amount__c | Currency | 78% | All profiles | The portion of a gift assigned to this fund. Either Amount or Percent is set, not both. |
| npsp__Percent__c | Percent | 22% | All profiles | The share of a gift assigned to this fund as a percentage — NPSP computes the amount. |
| npsp__General_Accounting_Unit__c | Lookup(GAU) | 100% | All profiles | The fund this allocation directs money to. |
| npsp__Opportunity__c | Lookup(Opportunity) | 96% | All profiles | The gift being allocated. Empty on allocations attached to a recurring schedule or campaign instead. |
| Affiliationnpe5__Affiliation__c | ||||
| npe5__Role__c | Picklist | 22% | All profiles | The contact’s role at the affiliated organization — board member, employee, volunteer. Frequently unused. |
| npe5__Status__c | Picklist | 94% | All profiles | Whether the affiliation is current or former. Drives the contact’s primary-affiliation logic. |
| npe5__StartDate__c | Date | 31% | All profiles | When the affiliation began. |
| npe5__Primary__c | Checkbox | 67% | All profiles | Marks the contact’s primary organization. NPSP keeps the contact’s Primary Affiliation in sync with it. |
Population and access shown are from a representative NPSP reference org. When you connect your own org, every number reflects your data.
A typical NPSP org carries far more fields than it uses. Turn on usage scanning and SchemaForce shows the population of every field — the share of records where it holds a value, counted in aggregate, never by reading a record — so you can tell a field doing real work from one that’s been empty since the day NPSP installed it. For an inherited org, that’s usually the first question worth answering.
Volunteers, part-time staff, and consultants accumulate access over the years, and nobody goes back to check. SchemaForce maps field-level security across every profile, permission set, and permission-set group — so you can see which roles can read gift amounts, contact details, and recurring-donation data, where explicit grants exist, with org defaults noted otherwise. No clicking through field-level security one field at a time.
NPSP ships most of its fields with no description, and so do most of the consultants who came after. SchemaForce gives every field a plain-language purpose inside the app — the canonical NPSP fields come pre-described on day one from a curated library, and your own custom fields get an AI-generated description you can review and, when you choose, push back to Salesforce. Managed NPSP fields are read-only in Salesforce, so those descriptions live in SchemaForce, where your team actually looks them up.
Managed-package upgrades and consultant engagements quietly change your schema, and you find out later. SchemaForce diffs your org over time — or sandbox against production — and shows exactly what was added, modified, or removed. NPSP’s own package upgrades are separated from your team’s edits, so the changes you need to review stay clear of the ones you didn’t make.
It reads metadata — the definitions of your objects, fields, and permissions — through a fixed allowlist of endpoints that return schema, not data. Connecting SchemaForce is not pointing a tool at your donors.
To be precise about it: SchemaForce never reads or displays the values inside individual records — not a contact’s details, not a gift amount. Metadata can, on occasion, contain personal data — a field’s help text or a picklist value might mention a name — so we don’t claim to be entirely free of it. But the contents of your database stay in your database.
Most nonprofits run a single production Salesforce org, and a single org fits inside the free tier — the full dictionary, impact analysis, permissions, and the assistant. So the page that just taught you what’s in your org is also free for the org you have: no application, no 501(c)(3) paperwork, no waiting.
If you need Pro — to push descriptions back to Salesforce, document every custom field, or add continuous monitoring — it’s $99/month with a 14-day trial, and verified nonprofits get 50% off. Sandboxes are always free.
If you document, clean up, or migrate nonprofit Salesforce orgs, SchemaForce is the reference you build for each client in minutes instead of days: a described field map, real population data, and a permission audit for every NPSP org you inherit — plus a diff engine that compares sandbox to production, or this quarter’s snapshot to last quarter’s, so you can show a client exactly what changed on your watch.
NPSP installs hundreds of fields across the npsp__, npe01__, npe03__, npo02__, and npe5__ namespaces — donation rollups on Contact and Account, recurring-donation schedules, payments, allocations to funds (GAUs), and affiliations. The reference table on this page lists the core set with a plain-language description of each.
Managed-package fields generally can’t be deleted, but you can remove unused ones from page layouts and clean up the custom fields layered on top. Start from population: a field that’s been empty since it was installed is a candidate. SchemaForce shows population and what references each field, so you can tell vestigial fields from load-bearing ones.
No. SchemaForce reads your org’s structure — object and field definitions, picklists, and permissions — through a fixed set of metadata endpoints. It never reads or displays the values inside individual records: not a donor’s details, not a gift amount.
NPSP is the focus here because it’s what most nonprofits run today. SchemaForce documents any Salesforce org the same way, including Nonprofit Cloud — the managed-schema handling that separates NPSP’s fields from your own applies to its managed packages too.
Connect SchemaForce and get the field map, population data, and permission audit for your NPSP org. Free for a single org. Nothing about your donor records ever leaves Salesforce.