Giving history mis-classified or counted twice
Why it happensOpportunity record types mean different things in each org
The fix MClassify every record type deliberately (MD-2); settle the gift grain (AD-3); reconcile amounts by type and year against a closed period
The target org is decided late
Why it happensThe target-org question is left open while environments get provisioned — and Person Accounts are irreversible once enabled
The fix SApprove the target-org strategy (AD-1) in discovery, before any environment exists
Field mappings unapproved when the loads are built
Why it happensHundreds of fields have no direct target, and nobody owns the long tail
The fix XLApprove every in-scope mapping before the data-migration stage; document source, destination and transformation in a mapping workbook[1] (MD-5)
Recurring gifts stop or double after cut-over
Why it happensProcessor schedules move without vendor support, or legacy vs Enhanced Recurring Donations was never settled
The fix LRecord the collection method for every active recurring donation (MD-3) and the legacy path (AD-2); at cut-over, check each active commitment’s next date and amount, with exactly one pending installment
Single-member households balloon the record count
Why it happensNPSP creates a household account for every contact
The fix SConsider keeping households only where people share one (MD-1) — and count one-member households before deciding
Duplicate constituents merge wrongly
Why it happensShared e-mail addresses — spouses, family accounts — look like duplicates to a matching rule
The fix MResolve each shared-e-mail group before the load: same person, or different people. Keep duplicate rules off for the migration user, on afterwards (AD-7)
Orphaned and incomplete records fail to load
Why it happensMissing parents and required values that NPSP tolerated and the target does not
The fix MWork the fix lists before migration: repair orphans, complete required values, or record the decision to exclude
Automation silently stops
Why it happensTriggers, TDTM handlers, Flows and rollups[3] bound to NPSP objects have nothing to fire on
The fix XLInventory the automation that touches NPSP, rebuild it on the target objects, and regression-test before the trial loads
Reports and dashboards break
Why it happensReport types built on NPSP objects and NPSP-calculated totals
The fix LRe-point report types and fields, rebuild dashboards, and prove the numbers against a closed period (MD-6)
Integrations write to objects that no longer exist
Why it happensVendors were never asked to confirm Agentforce Nonprofit compatibility
The fix LConfirm, replace or retire each package and connected app (MD-4), and smoke-test the kept ones against the target
Totals don’t match the board pack
Why it happensRollups are recalculated in the target, never copied
The fix MReconcile a closed period and get finance sign-off before go-live (MD-6)
“Ready” without proof
Why it happensReadiness judged from metadata alone, or from optimism
The fix SOpt in to counts-only profiling so data-dependent checks can run; validate each migration step on your own sandbox before claiming readiness