Improving CiviCRM’s soft credit functionality

2012-05-11 15:03
Written by

At the April sprint, several of us discussed improvements to CiviCRM’s soft credit functionality. For those of us who use CiviCRM for fundraising, soft credits are vital component of managing donor relationships, and there are several ways CiviCRM could be improved to make soft credits more robust and easier to use.

Thanks to Kellie Brownell and Jane Hanley for their contributions to this blog post.

Some background:

What’s a soft credit? Soft credits allow you to indicate that a second contact has a relationship to another contact’s contribution. Soft credits show up on the soft-credited donor’s Contribution tab in a table below the “hard credit” contributions.

When are soft credits used? We came up with a number of different use cases for soft credits (and there are probably others):

Facilitator credits. When someone helps facilitate a contribution, they get soft credited. Examples include:

  1. Solicitor credit. The nonprofit’s Board member asks their friends to make gifts; when a friend does so, the Board member gets soft credited with the friend’s contribution.
  2. Personal campaign page fundraising credit. Similar to solicitor credit but worth mentioning separately, since it happens automatically: when someone gives through a personal campaign page, CiviCRM automatically soft credits the page owner.
  3. In honor of credit. Jim asks his friends to make a contribution to the nonprofit for his birthday. When his friends give in his honor, the friend is hard credited and Jim is soft credited.
  4. Employer matching gift credit. An employee makes a contribution, and asks his/her employer to match the gift. When the employer sends the matching contribution, the employer is hard credited with the contribution and the employee is soft credited.

On behalf of credits. Someone makes a contribution on behalf of himself and someone else. Such as:

  1. Spouse credit. For CiviCRM users that don’t use household contacts, but count a contribution from one spouse as a shared gift from the household, soft credits are crucial. We assume that while Bob may have signed the check, it’s really a contribution from Bob and his wife Joan (unless we receive some indication that they do their giving separately). Soft crediting Joan with Bob’s contribution ensures that we treat Joan as a recent donor, by giving her any benefits that come with being a recent donor and not sending her lapsed donor solicitations.
  2. On behalf of credit. Auntie Sally makes a contribution on behalf of herself and her nephew Tim, so that Tim can also attend the recent-donor-only event (for instance). He gets soft credited with Sally’s contribution and receives any benefits that come with being a recent donor and does not receive solicitations.

Third party payments. These are more complex use cases, when a third party contact makes a payment for a donor’s gift—essentially it’s a contribution of the donor’s money, but the check is cut by another entity. Examples include:

  1. Donor foundation or donor advised fund. Some donors use a foundation or donor advised fund to manage their charitable giving, so the check is cut from XYZ Foundation, but the funds come from the donor’s account.
  2. Portal organizations that collect donations and distribute them to nonprofits. In the States, the most common example of this is Network for Good, which accepts donations on behalf of a wide range of nonprofits, then bundles the nonprofit’s gifts and cuts a check to each nonprofit.

From a donor relationship standpoint, third party payments are much closer to a hard credit than a soft credit. But many fundraisers use CiviCRM’s soft credit functionality to track third party payments because it provides an easy way to establish a relationship between a contribution and another contact.

There are two different ways to use soft credits to track third party payments:

  1. Hard credit the third party payer and soft credit the donor. From a financial recordkeeping perspective, this is the most accurate way to record the contribution. But for donor relationship purposes, the donor “deserves” to have the contribution show up as a hard credit on his record. And, we’re now using soft credits to represent two very different kinds of gifts from this donor: one, the gift of his own money from his donor advised fund, and two, the gift he’s soft credited for because his grandma gave in honor of his birthday last year.
  2. Hard credit the donor and soft credit the third party payer. This better represents that the donor is the true source of the contribution. But financially speaking, it’s the opposite of how we track soft credits. This option is also less viable if you’re using CiviCRM for tax and/or audit reporting … the government and your auditor do not care about donor relationships and just want to know which entity provided the contribution.

The complications.

Where soft credits and third party payments get (more) complicated:

  1. You get a check from a family foundation, and the board of the fund consists of three sisters and a brother. All four contacts need to be soft credited with the contribution from the fund.
  2. You get a $5,000 check from a family foundation, and it turns out that each board member gets to choose how much they want to give, and they all chose different amounts. The three sisters need credit for $1,000 each, and the brother needs credit for $2,000.
  3. Similarly, third party payments from portal organizations can be a bundled set of donations, so a $120 check is made up of three unrelated contributions: two $50 contributions and one $20 contribution. Each of the three donors needs to be credited for the appropriate amount.
  4. Portal organizations charge fees. That $120 in donations you received? The check is actually $116.40 because Network for Good took 3% in fees and sent you the remainder. But each donor needs to be credited with the full amount of his/her donation.

Then, all of this meticulous record keeping is used when searching for and reporting on contributions, and when generating acknowledgement letters to donors, both hard credited and soft credited.

Needed improvements.

What improvements do we need in soft credit functionality?

  1. Soft crediting one contribution to multiple contacts. The database schema allows this, but the user interface does not.
  2. Soft crediting one contribution to multiple contacts, and be able to specify the soft credit amount for each contact. If fees have been removed, be able to select soft credit amounts that total to a different amount than that of the hard contribution.
  3. Soft credit types. Currently, all the different soft credit uses described above are lumped together into one functionality, making it hard to distinguish if a soft credit is a solicitor credit, an in-honor-of credit, a third-party-payment credit, etc.
  4. A more advanced possibility is to separate third party payment functionality from soft credit functionality (rather than making third party payments a type of soft credit). For both financial and donor relationship tracking, they are very different from each other, so it would really be best to, for instance, see third party payments in a table separate from soft credits on the Contribution tab, and be able to search and report on third party payments separate from soft credits.

What improvements do we need in searching, reporting, and tokens?

  1. In Contribution searches and reports, offer a checkbox option for “Include soft credits?” With this checked, the results of the search include both the hard-credited contribution/contact and the soft-credited contribution/contact. This means the soft credited contribution shows up twice in the list—once as a hard credit and once as a soft credit—so it will not reflect an accurate total of the contributions. But you will see a complete list of everyone who deserves credit for a contribution. In other software systems, soft credits are not counted in reporting totals, even if they are shown in the report. This is made possible by including them in a column separate from the hard credit gifts in the report. Alternatively, the soft-credit recipient is listed in a separate soft-credit column in a report. For example:





    Soft Credit

    Smith Family Foundation



    Year End Major Donor

    Juan Smit

  2. If we can create or insert existing tokens based on information stored in the soft credit table, then CiviCRM can help fundraisers tailor message templates for email receipts or PDF letters automatically. For example, I could create a conditional statement in Smarty that looks for the existence of a soft-credit attached to a contribution and the type of soft credit to determine whether the receipt should have additional information, such as the spouse's name or personal campaign page that someone used to donate.

So that's our attempt to provide a comprehensive overview of the issue! I'm very interested to hear from the community about how you're using this functionality and what you think needs to be improved.


Click thumbs up if you thought this blog post was useful (login to vote or to comment)


I see the need for three general scenarios to be supported:

a) Treating a couple/family unit as one financial entity. 

This covers when a person donates money, treat both her and her spouse/partner as a single donor:  This should cover donor thank you notes, year-end tax letters, self-service areas showing donations made to date,  making self-service payments on a spouse/partner's open balance and reporting about donor patterns.    In short, the way most married/partnered couples expect to be treated.    This feels very different than a soft credit, where I may get a lot of soft credits because I set up a personal fundraising page that are unrelated to donations from my spouse.

I am currently doing this using the "permissioned relationship" feature. If 2 or more people have a permissioned relationship, I treat them as one financial unit.  This works well as it can cover any relationship type in the system.


b) The usual use of soft credits: Someone facilitated someone else's contribution. I think the current soft credit works well for typical cases. Although there is no way to give 2 or more people a soft credit for a single contribution.


c) Third-party payments.  The situation I see the most is where a family is joining as a member, and therefore owes $2400.  But most/all of the payments are made by the grandparents. Or a person enrolls their children in a school program, but the grandparents are paying most/all of the tuition, not the parents. 

This should be handled as follows: On the year-end tax letter, the grandparents should get recognized for their payments. If sending a statement to the parents( ie the members) it should list the money still owed, plus list any payments made so far with an indication of who made the payment.( ie them or the grandparents).    This situation is tricky as if the grandparents stop making payments against an open balance,  the member is ultimately responsible for paying off the balance.





This sounds cool. I wrote up this wiki page a couple years ago outlining some specs for improving soft credits. Perhaps this will be helpful.