A client recently posted a ticket that felt like a bug:
The membership report shows nothing. But Advanced Search finds them. What’s going on?
Initially, it felt like a permissions issue. But after going down a rabbit hole of financial ACL’s, the answer became apparent— the “missing” members were all lifetime members. No payments, no expiration dates.
When I checked the Developer tab and looked at the SQL statement in the Membership Details report template, I got onto something. The report is built to link memberships to payments. Since these lifetime memberships never had a contribution attached, the report didn’t pull them in.
Not necessarily a bug, just unexpected behavior for an end-user.
Here’s the deal:
If you’re using CiviMember to track free, non-ending memberships, it might make more sense to subscribe them to a Group instead. This keeps things simpler.
If this organization does stick with using memberships, you can still find them easy enough. Hint: CiviReport is slowly on it’s way out as a legacy framework. It’s good for simple reporting with what’s there, but it’ll best to learn building reports in Search Kit going forward.
For this organization, their options to get the data they need are:
- Use Advanced Search => Display as Memberships,
- or similarly, Memberships => Find Memberships,
- or in SearchKit, just remember to group by Membership ID if you start with Contacts.
