Trifecta Sports Therapy · Email Marketing

Campaign
Segmentation

Who gets which email, and why. Eleven segments built on one axis RFM cannot see: whether they are a member.

Built 2026-07-31 Source · trifecta_2025.db ESP · WellnessLiving Data as of 2026-04-28
2,352
Clients in file
1,835
Reachable before consent gate
268
Active members
37.4%
Revenue from those members
The premise

Membership is the axis, not a footnote

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.

RFM cannot see it, and here is the mechanic

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.

How the two layers work

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.

Layer one

The lifecycle ladder

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.

268
clients

Active Member

membership charge within 45 days

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.

Revenue in file
$667,660
Emailable
261
20
clients

Membership Ready

never a member · 6+ service visits in 180 days

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.

Revenue in file
$33,349
Emailable
18
101
clients

Membership Warm

never a member · 3 to 5 service visits in 180 days

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.

Revenue in file
$77,295
Emailable
92
522
clients

Repeat Non Member

2+ lifetime service visits · purchased within 365 days

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.

Revenue in file
$244,650
Emailable
493
710
clients

One And Done

exactly 1 lifetime service visit · purchased within 365 days

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.

Revenue in file
$94,915
Emailable
641
88
clients

Lapsed Member, Recent

membership stopped 46 to 180 days ago

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.

Revenue in file
$161,092
Emailable
85
188
clients

Lapsed Member, Old

membership stopped 180+ days ago

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.

Revenue in file
$160,794
Emailable
187
74
clients

Retail and Gift Only

bought product or a gift card · never booked a service

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.

Revenue in file
$12,449
Emailable
58
?
unknown

Prospect

in WellnessLiving · has never purchased anything

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.

Revenue in file
n/a
Emailable
pull from WL
288
clients

Dormant

no purchase of any kind in 365+ days

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.

Revenue in file
$47,035
Emailable
269
93
accounts

Institutional

LSU teams, corporate, on site, private events

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.

Revenue in file
$285,090
Emailable
32
Layer two

Overlay tags

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.

whale207

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.

member_tenured174

Twelve months or more of continuous membership, averaging $3,067 each. Referral asks, testimonial asks, and anything requiring goodwill go here and nowhere else.

member_new42

Joined within the last 120 days. Still deciding whether the membership was worth it. Onboarding content, not promotions.

member_bronze … member_platinum269

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.

no_second_visit72

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.

performance245

Performance sessions, training, golf evaluations, movement evaluations. Athletes and weekend competitors. Different language, different proof, different season.

recovery_class454

Recovery services, Saturday clinics, classes. The lowest friction way back in the door, which makes this the best re activation offer for cold segments.

gift_card108

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.

no_email216

$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.

Putting it to work

What each segment gets

Campaign email only. Automated flows (welcome, abandoned booking, post assessment) run separately and always take precedence when someone is in both.

SegmentSizeCadenceThe one thing the email doesNever send
Active Member2682 per monthGet them to book the session they already paid forNew client offer
Membership Ready203 email push, then callShow them their own numbers and ask for the membershipDiscounts
Membership Warm101MonthlyMake the case for monthly cadence, offer membership as the mechanismSavings claims
Repeat Non Member5222 per monthBook the next one before something hurtsNothing specific
One And Done710Weekly for 4, then monthlyCome back a second timeMembership pitch
Lapsed Member, Recent883 email win backAsk what changed, then make it easy to restartMass promos
Lapsed Member, Old188Quarterly, single sendOne reason to walk back inMembership pitch
Retail and Gift Only74MonthlyBook a first sessionNothing specific
ProspectpullFlow, then monthlyTake the new client offerMembership pitch
Dormant288Quarterly test onlyProve they are still aliveEverything else
Institutional93NoneHandled by Cory and Anna directlyAll campaigns

The three that pay for the program

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.

Before the segment

The gates every send passes through

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.

Gate one · Consent

Not a filter, a hard stop. Nothing downstream matters if this is wrong.

Gate two · Deliverability

61 addresses belong to more than one person

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.

Gate three · Engagement

Three tiers, recalculated with the monthly refresh.

TierRuleTreatment
Engagedopened or clicked within 90 daysFull cadence. Every campaign their segment qualifies for.
Coolinglast engaged 91 to 180 days agoCadence halved. Best content only, no routine promos.
Unengagedno open or click in 180 days, across 5+ delivered sendsOne win back attempt, then suppress from campaigns.
Never engagedon the list 30+ days, zero opens everSuppress. Almost always a bad address or a spam folder.
Newsubscribed within 30 daysExempt from all of the above. No history is not the same as no engagement.

Two rules that keep this from doing damage

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.

Gate four · Collision and frequency

What to pull from WellnessLiving

Everything above needs four things this export does not contain. Worth confirming which of them WellnessLiving actually reports before the model depends on them.

Implementation

Building these in WellnessLiving

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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 refresh is currently broken

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.

Before anything ships

What these numbers do not know

Suggested first three sends

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.