Credit each donation to one primary campaign source
Choose one primary campaign source for each completed donation, keep other touches as influence, and reconcile campaign revenue without double counting.
CharityStack
·4 min read
Nonprofit fundraising attribution gets messy when one donor clicks an email, attends an event, returns through search, and then gives from a campaign page. For a campaign-revenue report, credit the completed donation to one primary campaign source using a written evidence rule and one consistent time window. Keep the other verified touches as influence, but do not let each campaign claim the full gift.
Start with the question the report must answer
Attribution assigns reporting credit. It does not prove that one message caused a gift. Google Analytics defines an attribution model as a rule, set of rules, or data-driven method for assigning credit across touchpoints, and its available models produce different answers from the same path.
A lean nonprofit usually needs at least two answers:
- Which campaign receives this donation in the revenue report? This needs one primary source so campaign totals reconcile to received gifts.
- Which other recorded efforts may have helped? This needs a separate influence view that can hold several qualified touches.
Do not ask one field to answer donor acquisition, current gift source, campaign influence, and causation. If you want to know how the relationship began, keep a donor-acquisition source separately. This article covers the narrower revenue question: which campaign gets primary reporting credit for this completed gift?
Use the same primary-source hierarchy for every gift
Write the hierarchy before staff review campaign results. A practical order is:
- Use exact gift-level response evidence. If a campaign or source key survives into the completed gift record, that is the strongest primary-source evidence. The existing CharityStack guide to fundraising source keys explains how to preserve that evidence from a placement into a gift.
- Otherwise use the last qualified direct response inside your declared window. This may be a tracked appeal response, an event-specific reply path, or another interaction your team has defined as eligible. Record the rule; do not choose whichever recent campaign needs better results.
- Keep weaker or earlier touches as influence. An email open, event attendance, or campaign membership can remain useful context without becoming the primary revenue source.
- Use an exception state when evidence cannot support a choice. Mark the source as disputed or unknown instead of guessing.
This hierarchy fits a campaign-revenue question because it favors the closest verified response attached to the gift. A first-touch rule would answer an acquisition question instead. A data-driven model would answer another question again.
Current Salesforce Campaign Influence documentation illustrates the distinction: one campaign can be marked as the primary source and receive 100% of standard attribution, while other campaigns remain connected as influences. Your system may use different objects, but the reporting boundary is useful across platforms.
Keep primary revenue and campaign influence in separate views
Suppose a donor clicks a GivingTuesday email, attends a December event, and gives through a year-end appeal link. If that link survives into the completed gift, the year-end appeal receives primary revenue credit. The email and event can remain influence records. They do not each add another copy of the donation to campaign revenue.
For the primary-source view, keep:
- gift identifier, completed amount, and completion date;
- primary campaign and channel;
- evidence type and evidence timestamp;
- rule version and attribution window; and
- source state: verified, rule-assigned, disputed, or unknown.
For the influence view, keep each qualified touch with its campaign, date, evidence, and eligibility reason. Label influenced gift amounts as non-additive. Salesforce's 2026 reporting note explains that reports can include campaigns connected to an opportunity through several methods; a separate report type may be needed to see every influence relationship. Microsoft for Nonprofits also documents a campaign and channel attribution view that connects email, social, event, pipeline, and donation signals, although Microsoft marks the feature as preview.
Fix the window before reviewing the results
A campaign touch should not remain eligible forever simply because it exists in the contact history. Choose a window that matches the reporting purpose and the campaign cycle, then apply it consistently.
Google Analytics lookback-window guidance shows why the setting matters: the window determines how far back a touch can receive credit, and model changes alter source, medium, and campaign reports. Salesforce likewise lets administrators define a time frame for automatically associated campaign influence.
There is no universal window for every nonprofit. Record the chosen period, its owner, its effective date, and the campaigns it covers. Preserve older touches as history rather than stretching the window after seeing which campaign would benefit.
Reconcile the report before comparing campaigns
Before the report reaches leadership, prove four things:
- Every completed gift in scope has no more than one primary source.
- Primary-source revenue plus disputed and unknown revenue equals the completed donation total for the same scope.
- Influence rows are clearly non-additive and never included in that reconciliation sum.
- Difficult cases follow the written rule, including direct returns, offline gifts, conflicting source fields, and later installments of a recurring gift.
Put the rule beside the metric contract in your fundraising dashboard. If source evidence is being overwritten between systems, repair the ownership and direction in your CRM field map before trusting the attribution report.
The goal is a report your team can reproduce. One primary source keeps revenue totals honest; the influence view preserves the wider donor path without pretending that several campaign credits equal several gifts.