Edit: In NPSP 3.0 and beyond, there is yet another option that they consider the default - the Household model. They suggest this as the best option.
To start, Person Accounts are a native option for B2C users, but they must be enabled by Salesforce; this is a permanent change. The two Nonprofit Starter Pack (NPSP) options are packages available on AppExchange and maintained by the Salesforce Foundation.
Person Accounts
What are Person Accounts?
Person Accounts (PAs) provide one method for organizations needing to track “Business to Consumer” (B2C) relationships in Salesforce.com. Person Accounts allow you to utilize the existing Account object to model the relationship side-by-side with the standard “Business to Business” (B2B) Salesforce model. Person Accounts introduce a new ‘Account Record Type’ to your Salesforce.com instance. This record type (called ‘Person Account’) provides new fields on the Account object that wouldn’t otherwise be accessible to your organization. Person Accounts are not enabled by default, and instead need to be provisioned by Salesforce.com Support by logging a case. When a new Person Account is created, a ‘matching’ Contact is created, but is not accessible to the user or Person Account.
Pros
- Simple data import with Contact fields
- Supports Contracts
- Information shows on Account and Contact reports
- Contact fields directly accessible via Apex through single Account instance
- Person Accounts support Opportunities
Cons
- Not always supported by 3rd party applications
- Must leave Company field blank during Lead conversion or a regular Account will be created
Formula fields at Account level cannot reference Contact fields (you can work around this by using a trigger to populate a custom lookup field from Account to Contact whenever a Person Account is created (Note: This was delivered in Summer '13)
- Only show in searches for Accounts and not Contacts
- Can only be merged with another Person Account
- DML operations do not activate Contact triggers or workflows
- Requires two objects for storage (one Account and Contact per Person Account)
- Cannot be disabled; can only be hidden
- Outlook Sync needs additional configuration
- Campaign Member functionality is restricted; Add to Campaign will not appear for Custom Report Types that relate a custom object to a Person Account
- More difficult to package components that reference Person Accounts in a package from a developer org
NPSP 1-to-1
What is the 1-to-1 model? The NPSP 1-to-1 model is a package available on the AppExchange, maintained by the Salesforce Foundation. It represents an individual by maintaining a link between an Account and Contact for that person. Since it is a package, unlike Person Accounts, this can be removed at any time.
Pros
- Can be removed
- Roll-up summary fields to Contact from Opportunity using Cross-Object formulas
- Preferred contact information (email, phone, address fields)
- Has Affiliations that connect individuals to companies
- Uses standard SFDC objects
Cons
- Requires two objects for storage (one Account and Contact per individual)
- Validation rules and required fields can restrict Account creation
NPSP Bucket Model
What is the Bucket Model? Similar to the 1-to-1 model, this is a package maintained by the Salesforce Foundation that represents individuals by linking Contacts to Accounts. Where they differ is that the bucket model links many Contacts to a single Account whereas the 1-to-1 model maintains one Account per Contact. This does conserve space, but impacts reporting capabilities.
Pros
- Maintains standard SFDC schema
- Uses less storage than either Person Accounts or the NPSP 1-to-1 model
Cons
- Opportunity reports need to be created differently for B2C vs. B2B Accounts
- At large data volumes multiple buckets need to be created to support reporting (reporting breaks down after 10,000 entries are added to one bucket)