The RFM work ranks clients by how valuable they are. That is the right question for a call list and the wrong question for an email calendar.
Every campaign decision at Trifecta forks on one thing: is this person paying monthly or paying per session. A Silver member and a lapsed Silver member can sit at the same RFM score and need opposite emails. So membership status runs as its own axis, and value becomes a tag layered on top of it.
A session a member consumes under their membership creates no sale record. Their monthly billing does. So RFM's frequency score counts a member's billing cycles, not their visits, while a non member's score counts real visits. The two are not comparable, and a member who has stopped showing up still scores as highly frequent right up until they cancel.
That is not a flaw to fix in RFM. It is the reason this second model exists.
Lifecycle is mutually exclusive. Every client lands in exactly one of eleven, ordered by distance from a membership. It answers "what is the next thing we want from this person."
Overlay tags are cross cutting. A client can carry several. They answer "what do we say and how much are they worth." Whale, tenured member, athlete, gift buyer.
A campaign targets one lifecycle segment, then optionally narrows or splits by tag. Never the reverse.
Ordered by proximity to a membership, closest at the top. The number on the left is the size of the segment. Everyone in the database is on exactly one rung.
Bronze 138 at $120/mo · Silver 95 at $225/mo · Platinum 23 at $400/mo · Gold 9 at $315/mo · Unlimited Recovery 3 at $99/mo. Eleven percent of the base, thirty seven percent of the revenue.
Job: keep them using what they already pay for. Usage is the leading indicator of churn, so member email sells booking, not buying. Never send them the new client offer.
They visit at least monthly and pay full retail every time. At $135 a session against $120 a month for Bronze, membership is already the cheaper way for them to do exactly what they are doing.
Job: the direct membership pitch, using their own visit count and their own spend. Highest conversion list in the file. Small enough that Anna or Cory should call the top of it rather than only emailing.
Regular, but every six to eight weeks rather than monthly. Bronze is not cheaper for them yet, so a savings claim here is false and they will do the math.
Job: sell the cadence, not the price. What changes when you come every month instead of every other. The membership is the mechanism, the outcome is the pitch.
The biggest paying non member pool and the one that most needs a rhythm. They come back, but only when something hurts.
Job: convert episodic into scheduled. Rebooking prompts, seasonal hooks, education on why maintenance beats repair. Membership is the eventual ask, not the opening one.
The largest segment in the business and the biggest single leak. Of 492 people who ever bought the first time session, 210 came back and 59 became members. The other 282 paid once and vanished.
Job: the second visit. One goal, nothing else. The urgent subset carries the no_second_visit tag, meaning their first visit was inside the last 90 days and they are still warm.
Average $1,831 spent each. Twenty eight of them are also tagged whale. Pound for pound the most valuable list in the file outside active members, and the window is closing.
Job: win the membership back while the habit is still recoverable. Ask why they left before selling. A reply is a better outcome than a click here.
Still worth $160,794 of history, but the habit is gone and most have re entered normal life.
Job: one quarterly send, not a series. Treat a re engagement as a fresh first visit rather than a resumed membership.
They already trust the brand enough to spend money on it. They have simply never been on a table.
Job: first service conversion. This is the one existing client segment that should receive the new client offer.
Not in this file. A transaction export cannot contain people who have never transacted. This segment has to be pulled from the WellnessLiving client list by filtering to zero purchases, then cross checked against whoever has opted in through the lander or the popup.
Job: the new client offer, and the only segment that should get it. Everyone already in the welcome flow is suppressed so the two do not collide.
Average $163 lifetime. Half of them were one visit, well over a year ago.
Suppress by default. One tailored re engagement test per quarter, sent on its own so it cannot damage the deliverability of anything else. Sunset the non openers after it.
Four percent of accounts, sixteen percent of the revenue. Only 32 have an email on file because the relationship lives on a phone, not in an inbox.
Suppress from every consumer campaign. Nothing in a membership or new client email applies to LSU Football. Managed directly by Cory and Anna.
Applied on top of the ladder. Use them to narrow a send, to split a test, or to change the tone of a send without changing the target.
Spent $2,000 or more and purchased within 180 days. $684,951 of the revenue in this file. Sits across the ladder: 154 are active members, 28 are recently lapsed members. That 28 is the highest value win back list in the business.
Twelve months or more of continuous membership, averaging $3,067 each. Referral asks, testimonial asks, and anything requiring goodwill go here and nowhere else.
Joined within the last 120 days. Still deciding whether the membership was worth it. Onboarding content, not promotions.
Current tier, one per billing account. Drives the upgrade ladder and stops us describing a benefit someone does not actually have. One of the 269 is an institutional account and is suppressed anyway.
Bought the first time offer, came once, still inside 90 days. The hot subset of One And Done and the single most time sensitive list here.
Performance sessions, training, golf evaluations, movement evaluations. Athletes and weekend competitors. Different language, different proof, different season.
Recovery services, Saturday clinics, classes. The lowest friction way back in the door, which makes this the best re activation offer for cold segments.
Bought or redeemed a gift card. Seasonal list. Note that the buyer and the recipient are different people and only the buyer is captured here.
$340,823 of revenue with no way to reach it. Not a campaign, a front desk task. 61 are institutional and 69 are one and done.
Campaign email only. Automated flows (welcome, abandoned booking, post assessment) run separately and always take precedence when someone is in both.
| Segment | Size | Cadence | The one thing the email does | Never send |
|---|---|---|---|---|
| Active Member | 268 | 2 per month | Get them to book the session they already paid for | New client offer |
| Membership Ready | 20 | 3 email push, then call | Show them their own numbers and ask for the membership | Discounts |
| Membership Warm | 101 | Monthly | Make the case for monthly cadence, offer membership as the mechanism | Savings claims |
| Repeat Non Member | 522 | 2 per month | Book the next one before something hurts | Nothing specific |
| One And Done | 710 | Weekly for 4, then monthly | Come back a second time | Membership pitch |
| Lapsed Member, Recent | 88 | 3 email win back | Ask what changed, then make it easy to restart | Mass promos |
| Lapsed Member, Old | 188 | Quarterly, single send | One reason to walk back in | Membership pitch |
| Retail and Gift Only | 74 | Monthly | Book a first session | Nothing specific |
| Prospect | pull | Flow, then monthly | Take the new client offer | Membership pitch |
| Dormant | 288 | Quarterly test only | Prove they are still alive | Everything else |
| Institutional | 93 | None | Handled by Cory and Anna directly | All campaigns |
One And Done at 710 people is the largest and the leakiest. Fifty seven percent of first time buyers never return. Moving that number five points is worth more than any subject line test we could run this year.
Lapsed Member Recent at 88 people has the highest revenue per name of anything we can email. Twenty eight are whales. A win back that lands even a tenth of them is a five figure return on one send.
Membership Ready at 20 people is tiny and should convert at a rate nothing else here will touch, because we are not persuading them to change behavior. We are offering to charge them less for the behavior they already have.
Segments answer who we want to reach. These answer who we are allowed to reach and who is worth reaching. They run first, and a segment is whatever survives them.
None of this is in the transaction data. Consent, bounces, opens, and clicks all live in WellnessLiving and have to be pulled from there. What follows is the spec for the gates and the list of what to pull.
Not a filter, a hard stop. Nothing downstream matters if this is wrong.
info@trifectasportstherapy.com, sitting in Retail and Gift Only with $250 of spend. That is Trifecta emailing itself.Households share an inbox. Sixty one addresses in the file map to 130 client records and $97,948 of revenue, and 43 of them hold people in conflicting lifecycle segments. One address covers three Alfords sitting in Membership Ready, Membership Warm and Repeat Non Member at once. Another holds an active member and a non member.
Untreated, that inbox gets "come back for a second visit" and "here is your member benefit" in the same week, from the same business, addressed to two different people. It reads as a broken list because it is one.
Dedupe at the send, not on the list. Keep both client records, because they are genuinely different clients with different histories. Collapse to one email per address per campaign and let the most advanced lifecycle win, so the household hears the member message rather than the prospect one. Personalize to the address, not the first name, wherever a segment is known to contain shared inboxes.
Three tiers, recalculated with the monthly refresh.
| Tier | Rule | Treatment |
|---|---|---|
| Engaged | opened or clicked within 90 days | Full cadence. Every campaign their segment qualifies for. |
| Cooling | last engaged 91 to 180 days ago | Cadence halved. Best content only, no routine promos. |
| Unengaged | no open or click in 180 days, across 5+ delivered sends | One win back attempt, then suppress from campaigns. |
| Never engaged | on the list 30+ days, zero opens ever | Suppress. Almost always a bad address or a spam folder. |
| New | subscribed within 30 days | Exempt from all of the above. No history is not the same as no engagement. |
Do not build these tiers on opens. Apple Mail privacy protection auto opens messages before a human sees them, which inflates open rates and, worse, marks genuinely dead addresses as engaged. Clicks are the reliable signal. Use opens only as a weak tiebreaker and never as the sole reason to keep someone.
Never sunset a high value client on engagement alone. A whale who has spent $3,000 and books every month but ignores email is not an unengaged contact, they are a client who does not use this channel. Suppressing them costs nothing and teaches nothing. Engagement suppression applies to Dormant, One And Done and Lapsed Member Old. For anyone tagged whale, member_active or member_tenured, an unengaged flag is a routing decision instead: move them to SMS, to the front desk, or onto Anna and Cory's call list.
sam@trifectasportstherapy.com is a new address with zero reputation. Volume on a cold address into a list this size will land in spam and take the domain with it. The three small sends recommended below are the warming plan as much as they are the campaign plan.Everything above needs four things this export does not contain. Worth confirming which of them WellnessLiving actually reports before the model depends on them.
WellnessLiving is both the CRM and the sending platform, which is the constraint that shapes everything below. These segments are defined against transaction history, and most of them cannot be expressed as a native filter.
The workable pattern is Client Groups as static tags, refreshed on a schedule. A group persists, an ad hoc filter does not, and email blasts can target a group reliably.
Create eleven groups named for the lifecycle segments, plus one group per overlay tag that we actually intend to send to. Prefix them so they sort together, for example SEG - Member Active and TAG - Whale.
Populate from the CSVs. The builder writes one file per segment with the client name, email, and the WellnessLiving profile URL for each person, so a group can be filled by search or by import depending on what the account allows.
Confirm what WellnessLiving can do natively. Membership status and last visit date are plausibly available as live filters. If they are, the member segments should be built dynamically and only the behavioral ones kept as static groups. Whoever administers the account should check this before we hand build all eleven.
Refresh monthly. These are point in time snapshots. A membership cancelled the day after a build sits in Active Member until the next run. Monthly is the slowest cadence that keeps the member segments honest.
Suppress at the send, not at the list. Dormant and Institutional stay in the database as groups and are excluded from every campaign, so nobody has to remember who not to include.
The WellnessLiving report API still authenticates, but the transactions report now returns a fraction of the data it holds. March 2026 returns 14 rows against the 1,419 already stored for that month. The same is true of every month tested.
This is not a code problem on our side. It points at the saved report inside WellnessLiving having changed scope, filters, or permissions. Until it is resolved these segments cannot be rebuilt from live data, which makes the monthly refresh above a plan rather than a process. Worth raising with Cory as an account question.
In order of expected return, not effort. One, the second visit email to no_second_visit, 72 people, still warm, nothing to lose. Two, the win back to Lapsed Member Recent, 88 people, highest revenue per name we can reach. Three, the membership pitch to Membership Ready, 20 people, paired with a call from Anna or Cory.
All three are small, clean, high intent lists. That is deliberate. It is also the fastest way to build sending reputation before we point anything at the 710.