Table of Contents

Membership Lifecycle Reports

The Membership Reports extension provides reports for membership lifecycle events, as defined below. This extension provides most of its functionality through its "Membership Lifecycle Event (Detail)" Report Template.

Unless otherwise noted, the reporting for each type of membership lifecycle event is implemented in the report template "Membership Lifecycle Event (Detail)" (CRM_Membershipreports_Form_Member_Event). To specify which type of event is reported, set the "Type of Membership Lifecycle Event" filter accordingly. (Note: the "Abandonment" option appears only if such a membership status exists.)

Event Definition Implementation
Join The act of becoming a direct member for the first time. Report instance "Membership Join Events last month," based off of core template CRM_Report_Form_Member_Detail. The history in civicrm_membership_log isn't necessary to find Join events; the join_date ("Member Since" in the user interface) suffices.
Conferment The act of receiving a conferred membership. Returns the civicrm_membership_log record with the earliest modified_date for each membership with a non-NULL membership_owner_id.
Renewal The act of renewing (i.e, extending the end_date of) a direct membership while it is in a non-expired status. For each membership with a non-NULL membership_owner_id, returns each civicrm_membership_log record which has a different end_date value than the row immediately preceding it in the membership history, provided the status of the previous row is not "Expired."
Rejoin The act of becoming a direct member (again) after allowing an existing membership to expire. For each membership with a non-NULL membership_owner_id, returns each civicrm_membership_log record which has a different end_date value than the row immediately preceding it in the membership history, provided the status of the previous row is "Expired."
Lapse The act of allowing a direct membership to expire beyond its grace period. For each membership with a non-NULL membership_owner_id, returns each civicrm_membership_log record which has a status of "Expired" and a row immediately preceding it in the membership history with a different status.
Abandonment The act of intentionally allowing a direct membership to expire beyond its grace period (e.g., because contact has started an organization through which she now receives conferred membership). Returns the civicrm_membership_log record with the earliest modified_date and a status of "Abandoned" for each membership with a NULL membership_owner_id.

Searching for Non-Members

To build a list of contacts who have never held a membership, visit the Search Builder (Search > Search Builder). Select Membership as the record type, Membership ID for the field, and Is Null for the operator. Click Search.

This will return a very large list that will not likely be useful for prospecting. ANDing this condition with other criteria (e.g., Contribution ID is not null) may be fruitful, however.

Searching for who was a member on a particular date

This information may be able to be garnered from one of the new membership lifecycle reports, or by conflating information from two or more of the above reports. Some testing is required to suss this out. In lieu of this being true, there appears to be a decent answer on StackExchange using a standard Membership or Advanced search:

Since the status is based upon the start and end date and changes with the cron job, can you just leave the status off and select the date range. Anyone who had a start date before the date in question and an end date after that date should have been a member on that date.

So... Select custom date range for start. For From leave blank (the beginning of time). For To: put the date in question.

Select custom date range for end. For From put the date in question plus one day. For To: leave blank.

The problem with this is that if a person joins on 1/1/2010 and expires on 12/31/2010, then renews on 1/1/2012 one wouldn’t be able to accurately search for that person as being a member in June of 2010. Not with any degree of certainty. Searching on Start Date wouldn’t return this person, and using Member Since date would potentially return people with a similar join / renew pattern from the previous year.

A search in the series of tubes for "how to find out who was a member on a past date in civicrm” turned up some interesting, yet usually older, discussions.


Updated: 3-6-2019