Some time ago I saw a post about how one organization was or was considering using Civi to track not only income but to also track expenses (e.g., to track expenses against a campaign so that revenue less expenses would give true campaign net). We are interested in this, so that our board could use Civi to see revenue and expenses and not have to worry about any access to QuickBooks and reduce me having to prepare financials for them from QuickBooks. My thought would be that an expense might be a specific financial type such that a user could exclude that financial type to get revenue only, include it along with other revenue financial types to get the total picture, or include only the expense financial type to see expenses.

All that being said, I have searched high and low and can't find that post. I can't recall if it was from the CiviCRM blogs (again - looked/searched but couldn't find) or some other blog. I also searched here on Stack and couldn't find it. I did find a post about tracking scholarships disbursed (How to manage a scholarship fund?). That helps some, but curious about the entry itself (which was mentioned in the post I can't find).

Anyone recall seeing that post? Or, anyone using Civi to track expenses as well as revenue? If so, I would love to know how you are handling (i.e., how recording in CiviContribute, etc. -- presumably to get net raised as revenue less expenses the expenses must be entered as a negative amount, and whether a "generic" contact was created for payments [i.e., used as the "vendor"]). FWIW, I'm on Civi 4.6.11 and WP, but since this is not CRM specific, this is a more global question and more of a way of thinking out-of-the box on how Civi is setup and typically used.

4 Answers 4


The post can be found here: https://civicrm.org/blogs/chrischinchilla/using-civicrm-project-management-and-budgeting

The description how the budgeting/expense tracking is done is quite short and it only mentions that they are using negative contributions for expenses. They are also using CiviCampaign to assign the expenses to "projects".

The poster Chinchilla is describing an implementation on Drupal using drupal-views, if you are using wordpress I am trying to collect recommended plugins here: What is the recommended Wordpress equivalent for drupal-views


I agree that CiviCRM does not (and should not) aim to provide full accounting functionality. However, with campaigns it makes sense that the system is aware of expenses to compare them against revenue. Here is an extension that does this: https://civicrm.org/blogs/niko-bochan/civicrm-strategic-fundraising-and-campaigning-gsoc-completion-report

This extension, Campaign Manager, emerged from last year's Google Summer of Code and is not recommended for productive use as of now. But if it basically does what you need you might be interested in implementing in a pilot project (full disclosure - it was developed under mentorship of SYSTOPIA, my company).

Here is a public demo: https://campaignmanager.systopia.de/

  • What I wonder is WHY actually should Civi not be able to manage a basic accounting system? What's wrong with that? Income and expenses manager and then basic tax deduction and stuff like that? Would that not be a good idea?
    – SomeDev
    Commented Apr 6, 2022 at 13:48

We have also had a desire of linking data of cost towards data of income.

What we have tried so far is a simple extension which enables us to create a link between the data of the cost and the data of the income.

What it basically does is to give you an UI where you could search for activities in a certain time span, or contacts that have specific reasons for creation in a certain time span (custom fields). In this UI you could enter a number/text of any kind. In our case we input the invoice number of the cost.

Then we are able to link the SQL-tables of the income, with the SQL-table of the activities, with the non-CiviCRM SQL-table for the cost. Then we are able to make a report, where you could search for an activity, and report on income and cost together.

The extensions is found here:

Cost Invoice Link


CiviCRM isn't aiming to provide full accounting functionality. It does provide a schema that can record expenses (e.g. grants, also premiums as a cost of goods sold) and functionality to export them to Quickbooks (as .IIF files) and other acconting packages (as .csv files).

As Martin Peth comments, there was a Google Summer of Code project in 2015 that created a working prototype of an extension that would record expenses of CiviCampaigns to allow calculation of campaign ROI.

FWIW, JMA Consulting (full disclosure-my company) provides check printing and control functionality in our Grant Programs extension.

Most relevant in some ways, but still unstarted so far as I know: CiviHR has had support for expense tracking on its roadmap since the first blog post, and it is currently scheduled for v1.8 (https://wiki.civicrm.org/confluence/display/HR/CiviHR+-+Version+1.8).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.