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.)
|Join||The act of becoming a direct member for the first time.||Report instance "Membership Join Events last month," based off of core template
|Conferment||The act of receiving a conferred membership.||Returns the
|Renewal||The act of renewing (i.e, extending the
||For each membership with a non-NULL
|Rejoin||The act of becoming a direct member (again) after allowing an existing membership to expire.||For each membership with a non-NULL
|Lapse||The act of allowing a direct membership to expire beyond its grace period.||For each membership with a non-NULL
|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
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.
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.