For nonprofits

You inherited an NPSP org nobody documented.

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.

If you run a nonprofit’s Salesforce, you know the shape of it.

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.

This is your NPSP schema, described.

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.

Reference of the core fields the Nonprofit Success Pack (NPSP) installs, with their type, representative population, access, and a plain-language description.
FieldTypePopulationAccessDescription
Opportunity
npsp__Primary_Contact__cLookup(Contact)
94%
All profilesThe individual credited for this gift, even when the donation is booked to a household or organization account.
npe03__Recurring_Donation__cLookup(Recurring Donation)
38%
All profilesLinks this donation to the recurring schedule that generated it. Empty on one-time gifts.
npe01__Payments_Made__cCurrency (rollup)
71%
Read-only, allTotal payments received against a pledged or installment gift. Maintained by NPSP, not edited directly.
npe01__Number_of_Payments__cNumber
64%
All profilesHow many scheduled payments NPSP creates for this gift — 1 for a single payment, more for an installment pledge.
npsp__Acknowledgment_Status__cPicklist
12%
4 of 9 profilesTracks 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__cDate
9%
4 of 9 profilesThe date the acknowledgment for this gift was sent. Populated alongside Acknowledgment Status.
npsp__Matching_Gift_Status__cPicklist
4%
All profilesWhere a matching gift stands — potential, submitted, or received — for gifts eligible for an employer match.
npsp__Honoree_Contact__cLookup(Contact)
6%
All profilesThe person a tribute or memorial gift honors. Drives in-honor-of and in-memory-of acknowledgments.
Contact
npo02__TotalOppAmount__cCurrency (rollup)
100%
Read-only, allTotal lifetime donation amount, rolled up by NPSP from the contact’s closed-won gifts. Never edit manually.
npo02__OppAmountThisYear__cCurrency (rollup)
100%
Read-only, allTotal donation amount for the current year.
npo02__OppAmountLastYear__cCurrency (rollup)
100%
Read-only, allTotal donation amount for the prior year.
npo02__LastCloseDate__cDate (rollup)
82%
Read-only, allDate of the most recent closed-won donation.
npo02__FirstCloseDate__cDate (rollup)
82%
Read-only, allDate of the first closed-won donation — the donor’s acquisition date.
npo02__NumberOfClosedOpps__cNumber (rollup)
100%
Read-only, allCount of closed-won donations.
npo02__LargestAmount__cCurrency (rollup)
82%
Read-only, allLargest single closed-won donation amount.
npe01__Preferred_Email__cPicklist
88%
All profilesWhich of the contact’s email fields NPSP treats as primary. Drives the standard Email field.
npsp__Deceased__cCheckbox
3%
All profilesExcludes the contact from household naming and communications when set. Low population is normal.
npsp__Do_Not_Contact__cCheckbox
5%
All profilesSuppresses the contact from outreach across channels. Often paired with the standard Email Opt Out.
npsp__Primary_Affiliation__cLookup(Account)
41%
All profilesThe organization this contact is primarily affiliated with — employer, school, or partner.
Account (Household)
npe01__SYSTEMIsIndividual__cCheckbox (system)
100%
Read-only, allMarks an account NPSP manages as an individual/household container. Set by NPSP — do not edit.
npo02__Formal_Greeting__cText (rollup)
96%
All profilesThe household’s formal salutation, e.g. “Mr. and Mrs. Rivera,” assembled by NPSP from its members.
npo02__Informal_Greeting__cText (rollup)
96%
All profilesThe household’s informal salutation, e.g. “Maria and Sam,” assembled by NPSP from its members.
npsp__Number_of_Household_Members__cNumber (rollup)
100%
Read-only, allHow many contacts belong to this household account. Maintained by NPSP.
npe01__One2OneContact__cLookup(Contact)
28%
Read-only, allFor one-to-one accounts, the single contact the account represents. A legacy NPSP account model.
Recurring Donationnpe03__Recurring_Donation__c
npsp__Status__cPicklist
100%
All profilesWhether the recurring commitment is active, lapsed, or closed. The field most worth auditing on this object.
npe03__Amount__cCurrency
100%
All profilesThe installment amount of a recurring donation.
npe03__Next_Payment_Date__cDate
86%
All profilesThe date the next recurring-donation installment is due.
npe03__Date_Established__cDate
100%
All profilesThe date the recurring donation was set up.
npe03__Installment_Period__cPicklist
100%
All profilesHow often an installment is generated — monthly, quarterly, yearly, or weekly.
npe03__Open_Ended_Status__cPicklist
92%
All profilesFor open-ended schedules, whether the commitment is open, closed, or none — distinct from the enhanced Status field.
Paymentnpe01__OppPayment__c
npe01__Payment_Amount__cCurrency
100%
All profilesThe amount of this individual payment against a gift.
npe01__Paid__cCheckbox
100%
All profilesWhether this payment has been received. Drives the gift’s Payments Made rollup.
npe01__Scheduled_Date__cDate
73%
All profilesWhen an unpaid payment is expected — the installment due date for a pledge.
npe01__Payment_Method__cPicklist
61%
All profilesHow the payment was made — check, credit card, ACH, cash, or in-kind.
npe01__Written_Off__cCheckbox
2%
3 of 9 profilesMarks an unpaid pledged payment as written off, so it stops counting as expected revenue.
General Accounting Unitnpsp__General_Accounting_Unit__c
npsp__Active__cCheckbox
100%
2 of 9 profilesMarks a fund as available for new allocations. Inactive GAUs are common and usually intentional.
npsp__Total_Allocations__cCurrency (rollup)
100%
Read-only, allTotal amount allocated to this fund across all gifts. Maintained by NPSP’s allocation rollups.
npsp__Number_of_Allocations__cNumber (rollup)
100%
Read-only, allHow many allocations point to this fund.
Allocationnpsp__Allocation__c
npsp__Amount__cCurrency
78%
All profilesThe portion of a gift assigned to this fund. Either Amount or Percent is set, not both.
npsp__Percent__cPercent
22%
All profilesThe share of a gift assigned to this fund as a percentage — NPSP computes the amount.
npsp__General_Accounting_Unit__cLookup(GAU)
100%
All profilesThe fund this allocation directs money to.
npsp__Opportunity__cLookup(Opportunity)
96%
All profilesThe gift being allocated. Empty on allocations attached to a recurring schedule or campaign instead.
Affiliationnpe5__Affiliation__c
npe5__Role__cPicklist
22%
All profilesThe contact’s role at the affiliated organization — board member, employee, volunteer. Frequently unused.
npe5__Status__cPicklist
94%
All profilesWhether the affiliation is current or former. Drives the contact’s primary-affiliation logic.
npe5__StartDate__cDate
31%
All profilesWhen the affiliation began.
npe5__Primary__cCheckbox
67%
All profilesMarks 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.

Built for the org you actually inherited.

Find out which fields you’re actually using.

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.

See who can read your donor and financial fields.

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.

Read NPSP’s blank fields in plain language.

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.

Catch what changes after an upgrade or a handoff.

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.

SchemaForce reads your org’s structure, never its records.

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.

What SchemaForce reads — structure
  • Object & field definitions
  • Picklist values and field types
  • Field-level security across profiles & permission sets
  • Relationships between objects
What stays in Salesforce — records
  • Donor names and contact details
  • Gift amounts and payment data
  • The values inside any record
  • Anything a donor would consider private

No nonprofit paperwork. For most nonprofits, there’s nothing to discount.

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.

Walk into messy NPSP orgs for a living?

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.

Common questions

What fields does NPSP install?

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.

Which NPSP fields can I safely delete?

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.

Does SchemaForce read our donor records?

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.

Does this work on Nonprofit Cloud?

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.

See your own org described.

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.