CiviCRM Strategic Fundraising and Campaigning

2015-06-24 08:22
Written by

The campaign module already provides an easy to use interface to manage simple campaigns and link contributions, activities, etc. to them. However, analyzing the outcome or planning more complex campaigns is currently not possible in CiviCRM, but these tools are essential to a strategic fundraising approach.

I am Niko Bochan, a undergraduate student from University of Bonn, Germany. As part of my Google Summer of Code 2015 project I am working on improving CiviCampaign. My mentor is Björn Endres from SYSTOPIA, which is also – conveniently – based in Bonn.

Key Deliverables

At the end of this project I want to deliver a CiviCRM extension that includes the following features:

  • Managing and visualizing hierarchical campaign structures

  • Calculate and visualize Key Performance Indicators (KPIs) for campaigns and campaign trees

  • Integrated management of campaign expenses

Project Status

I recently finished a first version of the campaign tree view, which is zoomable/draggable and soon allows drag-and-drop modification of the campaign hierarchy:

It is also possible to only view a part of the campaign tree and navigate through it:

This view will also show key information about each campaign in the future, so you can see your campaign's progress at a glance. All nodes in the tree view are linked to the respective campaign dashboard pages:

This new page shows all available information, like campaign description and goals as well as generated information, like key performance indicators and campaign expenses. We plan to also show visualizations of selected KPIs here.


Please note that we are not focusing on usability right now, but your feedback is always appreciated. I am particularly interested in feedback on which type(s) of KPIs should be included by default. Currently there are the following default ones available:

  • Total costs
  • Total revenue
  • Total revenue goal
  • Number/amount of contributions (all but cancelled & failed contributions)
  • Number/amount of contributions (only completed contributions)
  • Number of first contributions (only completed contributions)
  • Return on Investment (ROI)
  • Average contribution amount
  • Average cost per first contribution
  • Revenue goal reached in percent

The system also allows you to add your own KPIs or take those out that don't make sense to you by implementing a CiviCRM hook.

Feel free to let us know what you think in the comments below or project thread on the CiviCRM forums. More information on this project is also available on the project wiki page.

Filed under


Have you thought about any non-contribution campaign metrics?  This would include activities and survey and petition responses relating to the campaign.


This is a great idea! Some thoughts ...

  • It would be nice to see all the entities associated with a campaign.
  • ie, Events, Surveys, Contributions, Activities, Mailings
  • I concur with Andrew's remarks about non-financial metrics. Examples of some additional metrics (financial and non) include ...
  • Donations per email sent
  • Donations per petition response
  • Donations per survey result
  • % of survey responses categorised by result
  • Participants at events