I wrote this blog post after having the same conversation a few too many times, so sharing it here in case it's useful.
The quick test I've started using: can you pull one member's renewal status, event history, and payment record in under a minute? Usually not, and that's the whole story. The model isn't the issue. The data's sitting in a renewals spreadsheet, a payment processor, an event tool, and a CRM that don't talk to each other. Feed that to an AI, and it can't tell a lapsed member from a renewed one.
The unglamorous stuff has to come first: de-duped records, renewals and payments pointing at the same member, engagement captured as data instead of living in someone's head.
If you want a starting point that's easy to measure, renewal risk flagging is usually it. Small data footprint, and staff can tell you immediately whether the output looks right.
Yes I can. I implemented NPSP for a UK charity who use it for memberships and attendance on courses and other events (campaigns). Integration with goCardless means they have payment history and the time warp package means you can see it graphically on the contacts record page. Easy as