| What distinguishes a Pledge from a Pay-Later Contribution or a Recurring Contribution? Pledges are distinguished from Pay-Later or Recurring Contributions by the need to report and track the amounts before they are received. (There is discussion in the Finance and Accounting section where it is also suggested that Contributions should be able to be tracked and reported upon regardless of whether they are paid yet.) When non-profits use pledges as part of their funding model, they need to know in advance how much has been pledged to a campaign before the contributions are received. Examples might include:
The code that enables recurring contributions should be shared with CiviPledge so that members can authorize recurring payment of their pledge. (or as an alternative - all money, whether a simple contribution or a contribution against a pledge are simply held in the contributions table and related to the pledge table as a partial payment of any particular pledge. ) |
Phase 2
Pledge Cases
- administrators/staff record pledge payments of any amount toward the pledge via the administrative backend.
- online constituent enters recurring pledge of a given amount online + pays 1st installment via credit/debit card
- online constituent enters recurring pledge of a given amount with payment to be sent by check (i.e. pay later)
- online constituent enters one-time pledge with payment to be sent by check (same as pay later contribution)
- online constituent reminder email contains link to online contribution page where they can make the payment via credit/debit card.
- logged in online constituent sees scheduled pledge payments on their "Contact Dashboard" and clicks "make payment" link to make payment via credit/debit card
Sponsored CiviPledge Enhancements (3.2 release cycle)
Revised Data Objects
Pledge
- Contact ID
- Contribution Type ID
- Date Created
- Date Modified
- Date Cancelled
- Frequency Unit (day, week, month etc.)
- Frequency Interval (integer - e.g. every "3" months)
- Frequency Day - The day of week, month or year that payment is scheduled.

Make Numeric Values More Dynamic Require 2 of the 3 following data and calculate the 3rd as the data is entered, filling in the empty field.
- Initial Payment Amount
- Number of Installments
- Total Pledge Amount
- Pledge Status
- Pledge Acknowledge Date (when acknowledgement of pledge was sent to constituent)
- Honor Contact ID
- Note (join to civicrm_note)

Define Reminder Defaults on Pledge Creation Set the default values for the reminder option when the pledge type is created. These defaults should also be used when the pledge option is invoked on Contribution Pages creation.
- Initial Reminder Days (send first reminder this many days prior to each payment due date, default = 5)
- Maximum Reminders (maximum number to send for a given payment, default = 1)
- Additional Reminder Days (send additional reminder this many days after last one sent, up to maximum number of reminders)
- Custom fields
These properties will be derived from the pledge's payment schedule
- First Scheduled Payment Date
- Next Scheduled Payment Amount=Make next payment dynamic}Calculate the next payment = Pledge Balance/# of payments remaining
- Next Scheduled Payment Date
- Current Past Due Amt
- Total Paid
- Balance Due on Pledge
Pledge Payment
Pledges in all stages of fulfillment are displayed here: Scheduled, In Progress, and Completed. Pledge payments are stored in the data store as a form of Contribution rather than as a completely different object. Pledges are linked via a relation to the contribution records, which contain the payment details such as payment date, transaction id, etc.
Building on the above - Ability to "Turn on" a pledge checker, so that when a new contribution is entered - the system checks to see if there is an outstanding pledge for this individual, if so, it gives the option of applying the contribution as a payment to an outstanding pledge or pledges This "pledge checker" functionality is part of v3.2 (stable release on July 28, 2010).
- Pledge ID - Foreign key to pledge record.
- Contribution ID - Foreign key to contribution record when payment is received.
- Scheduled Date
- Scheduled Amount
- Draw this from the Pledge object
- Actual Amount
- Pre-fill the field with the Scheduled Amount and then allow the user to edit?
- Last Reminder Date - Date when most recent reminder was sent
- Number of Reminders - How many were sent. The reminder timing (relative to payment due date) and frequency will be configured in the Pledge.
- Pledge Payment Status (pending, completed, overdue ... )
User Interface
Use the existing is_permission fields in the civicrm_relationship table to display pledge and contribution data for related contacts in contact dashboards and tabs, dramatically reducing the number of clicks for individuals to see and manage data, especially in the dashboard.
Reports
Pledge Report
For each pledge...
- Contact: name, address, email, phone
- Pledge: amount, date made, "To be paid in $number $interval payments, beginning on $firstPaymentDate"
- Payments received:
dd/mm/yyyy $amount
Total Paid:
Balance Due:
Report Totals
- Total number of donors
- Total Pledges: $totalAmount
-------------------------------------------- - Total Pledge Payments: $totalPaid
- Total Balance Due: $totalAmount - $totalPaid
Pledges Past Due Report
For each past due pledge...
- Contact: name, phone, email
- Pledge Date (created)
- Pledge Amount / Total Paid / Balance Due
- Bill Amount / Past Due Amount (? not sure what the difference is ? )
- Last Paid Date / Last Billed Date
(seems to be missing Past Due Date ?? )
Report Totals
- Total Amount and Number of Past Due Pledges
Phase 3
Statement Letters - Emails
Member Selects Communication Method
- Members (via dashboard) or Administrators (via backend) may select whether contact receives contribution/pledge status info via email or regular mail.
- Default mode set via Administrative dashboard
Pledge Reminder
- Create PDF from customizable template(s) w/ tokens
- Gifts and Pledges dashboard has link to "Send pledge reminders" OR go to Quick Mailings and select "Quick Pledge Reminders"
- App "finds" all "past due" pledges and creates Word doc w/ merged data (a letter for each past due pledge)
Contributions Statement
- Create PDF from customizable template(s) w/ tokens
- Gifts and Pledges dashboard has link to "Send Statements" OR go to Quick Mailings and select "Quick Contributions Statements"
- A range of dates is requested.
- Pledges, Pledge Payments, Pledge Balance and Contributions are reported within the date range, organized by fund or contribution type. An example is here.

Please discuss this roadmap on the CiviCRM Forum Comments are always welcome below, but we encourage you to discuss the roadmap on the Forum

5 Comments
Hide/Show CommentsApr 09, 2009
Eileen McNaughton
Build it and they will come.....
I think that when working on pledge functionality it would be good to build in the hooks (or whatever) to enable it to be tied in with a triggered recurring payment processor. I am referring to a payment processor that allows recurring payments to be triggered by civiCRM. These processors retain the credit card info and a unique ID for it (which is returned to civi) but not a payment schedule. Civi needs to trigger the payments - passing through std info but with the uniqueID in place of the credit card details. It seems to me that this would be an alternative to e-mailing when payments are due.
There are no payment processors using this mechanism in use with civiCRM at the moment but many people have investigated the combination. If the mechanisms for triggering the payments were already in place I believe people would want the processors developed to use them.
(when thinking this through the integration of these sorts of payments into civiMember might be worth considering - not saying it should be done at the same time but taking a moment to think about how it would be done in case it shapes any decisions about implementation).
Apr 20, 2009
George ardagh
I have to completely agree with Eileen. It would be very beneficial to have the pledge functionality tied with a triggered payment processor. It would be a very helpful and important function for any organisations who wish to use the Direct Debit system, as they can process all the payments on the same date and it would ease the administrative burden in the long run i.e. chasing payment, processing failed payments. Some other fields, I believe civipledge should capture are:
Also it would be important that reciepts would be sent out on reciept of payment.
If these processors were developed, it would bring a huge aspect and benefit to civipledge.
Lets hope thge good work continues.
Apr 21, 2009
Keith Prickett
I would love the recurring contribution behavior currently implemented in CiviCRM to work with the pledges. What I mean, is that when someone pledges, they can check a box that will allow them to set up a recurring donation so their pledged $ is ALSO a recurring donation.
I also posted some UI enhancements to the CiviCRM Forum pages that might provide useful when thinking about how to do Pledge Start Date/End Date and frequency UI:
http://forum.civicrm.org/index.php?topic=7680.new;topicseen#new
Jun 14, 2009
Sarah Gladstone
You asked: should pay-later contributions become pledges? Yes, definitely. Pledges and pay-later ( for member dues, event fees and contributions) are all a promise to pay the organization in the future. From the organization's point of view, its all considered money that is owed. If the book keeper needs to collect money owed, then they don't care if its an overdue event fee, member fee or pledge payment. On the contact dashboard ( the one that can be exposed to the contact from the front end website) I would break out money owed by what it is owed for: an event, member fee, and/or contributions, plus show total owed.
It would also be useful if someone can create a pledge( or member sign up or event sign up) one day, without making any initial payment or setting up a payment schedule. Then, at a later date come back an set up a payment schedule and/or make a first payment.
Jun 14, 2009
Sarah Gladstone
Regarding the specification for "Letters" I would substitute PDF template instead of MS Word template/document. Any merge of tokens with templates should take place within CiviCRM, and generate a PDF. This will be a supported action in CiviCRM 2.3 ( see http://issues.civicrm.org/jira/browse/CRM-4607 for details.)