FLOWZ
To Review · Internal
Flowz · Product Design Proposal

How we segment an audience:
Lifecycle · Tiers · Badges

A single engine under three fields the producer already understands – plus five candidate naming systems for the tier ladder. Built on a 9-track research sweep of HubSpot, Salesforce, Klaviyo, CleverTap, Braze, Zoho, ActiveCampaign, ticketing platforms, RFM practice and loyalty-program psychology.

Ripple Front Row Blaze Ocean Apex
Where we are

Three dimensions, no rules of engagement

Today lifecycle, tiers and tags live side by side with no defined relationship. Each one is fine alone – together they collide.

Lifecycle

New · Rising · Core · At-risk · Lapsed. A temporal state – but "VIP" used to sit inside it, mixing status into a time axis. Recency runs on calendar days, which breaks for annual events.

Tiers

Bronze · Silver · Gold · Platinum. Understandable but generic – and nothing defines what earns a tier: events? money? both? "Veteran" wants in but measures a different thing (tenure).

Tags

EarlyBuyer, GroupBuyer, Spender, Responsive... applied ad-hoc, no thresholds, no manager view, and no line between what a tag is versus what a tier is.

The research verdict: the three-field decomposition is industry-correct. What is missing is the connective tissue – one engine underneath, clear boundaries between the axes, and names a stranger ranks in under 2 seconds.
The proposal

Three fields, one engine

Every attendee action lands in an append-only ledger. Three engines read it, three fields surface it. Nothing can contradict, and every threshold recomputes cleanly from history when a client edits it later.

The Ledger

Append-only record of value events per attendee:

🎟️ ticket purchased · edition #
🏨 room / F&B / merch spend
📩 open · click · reply · WA / support
👥 group size · buy timing · referral
Lifecycle Temporal state: New → Returning → Regular → Cooling → Lapsed. Recency counted in missed editions, never calendar days. Engagement splits Cooling into "reachable" vs "silent". Recency + Engagement
Tier Earned status: events attended and LTV over a rolling window – one VIP table can't buy the top tier. Upgrades instantly, downgrades only at season end with a grace window. Frequency + Monetary
Badges Behavior patterns, auto-computed from editable rules: Early Bird, Group Buyer, Big Spender, Veteran, Advocate. Plus a separate freeform manual layer (Artist, Helper). Pattern rules
The boundary rule: rankable → Tier · temporal state → Lifecycle · behavior pattern → Badge
The logic

Where each signal lives – the five questions

SignalLives inWhy
1 · Events attendedTier inputRankable. Counted over a rolling 24 months in 3–4 bins – quintiles over "attended 1, 2 or 3 events" is fake precision.
2 · Rooms / F&B revenueTier inputMonetary sub-score. Tier needs events AND LTV, so the rooms-always buyer with 2 events can outrank a GA-only buyer with 4.
3 · Group buyersBadgeNot rankable. Their money already counts in Monetary; the badge captures the pattern for group offers and referral flows.
4 · Early / late buyersBadgeGold for pricing flows, meaningless as rank. Early Bird = first-window buyer 2+ times; Last-Minute = final-week buyer.
5 · Engagement scoreLifecycle modifierRatio with decay (share of messages engaged, events attended vs opportunity). Splits identical recency states: "Cooling · reachable" vs "Cooling · silent" – different flow each. Never feeds the tier: blended scores hide the driver.
Why engagement stays out of the tier: a fused "health score" is the documented failure mode – green account, renews at 78%. Multi-dimension views predict churn ~34% better. Spend and engagement stay visibly separate.
Tier mechanics

Status you earn, not a label that flickers

Upgrade instantly

The moment the threshold is crossed, the attendee levels up. Goal-gradient works for us: always show progress-to-next-tier on the profile.

Downgrade gently

Only at season end, with notice and a grace window – "attend 1 event to keep Backstage". Demoted customers measurably end up less loyal than never-promoted ones, so demotion is engineered, not automatic. Tier freezes during the producer's off-season.

📅 Event-relative recency

"Lapsed" means missed 2 consecutive editions they used to attend – never "no purchase in 365 days", which marks every annual-festival fan dead in month 11. Cadence detected per producer from their event calendar.

🔒 Sustained qualification

Tier = events AND LTV over the trailing window. Qualifying metric stays isolated from anything spendable (future points program), so a redemption can never demote anyone – the Salesforce currency split, adopted early.

Naming the ladder · 1 of 2

Two ladders in the brand's own language

Flowz is flow – water gives us ladders that are on-brand, calm enough for a retreat, big enough for a festival. A stranger ranks both in under 2 seconds.

WAVES

Energy magnitude. The crowd version – reads perfectly for bass, parties, festivals.

Flowz brand
Ripplefirst event Wave2+ events Surge4+ events · LTV floor Tsunamitop of the ladder

WATERS

Scale of water. The universal version – drop < stream < river < ocean needs zero explanation in any vertical.

Flowz brand
Dropfirst event Stream2+ events River4+ events · LTV floor Oceantop of the ladder

ELAD'S CURRENT CHOICE

The working pick – water scale with the Wave step and the Tsunami apex. Persona-name variant below each rung as an option.

Working pick
DropDroperfirst event WaveWaver2+ events StreamStreamer4+ events · LTV floor TsunamiTsunami?top of the ladder
Architecture either way: stable internal keys (tier_1...tier_4) + name skins. We ship a default skin, clients rename freely later – the Delta model: fixed names, repriced numbers.
Naming the ladder · 2 of 2

Three more, sliding up the cool scale

BACKSTAGE

Venue proximity physically encodes rank – every promoter and attendee decodes it instantly. Industry vernacular, not decoration.

Cool · safest
GAfirst event Front Row2+ events Backstage4+ events · LTV floor All-Accessblack laminate

FIRE

Heat is monotonic – spark to inferno self-ranks. Born for EDM and bass brands; deliberately wrong for yoga. That's what skins are for.

Cooler · genre skin
Sparkfirst event Glow2+ events Blaze4+ events · LTV floor Infernotop of the ladder

APEX

The unique one: the top tier is not a threshold – it's the top 5% of this producer's audience, live. A 300-person retreat and a 50k festival get equally exclusive apexes with zero tuning. No CRM ships this.

Coolest · dynamic apex
Rookiefirst event Riser2+ events Elite4+ events · LTV floor Apextop 5% · live
Alternatives

Five architectures considered

ApproachWhat it isVerdict
A · 3 fields + 1 engineLifecycle, Tier, Badges as visible fields; recency/frequency/monetary/engagement engines underneath, all reading one ledger.RECOMMENDED
B · Fused RFM gridOne set of named cells (Champions, At Risk, Can't Lose Them...) like Klaviyo/CleverTap. Loses "Gold member going cold" – our highest-value insight.KEEP AS VIEW
C · Fan Score 0–100One blended number per attendee. Composites hide drivers; no event platform exposes one; only ~40% of sales teams trust opaque scores.REJECTED
D · Points programFan-facing points, redemptions, leaderboards (Tixr Rewards style). A different product – but its ledger + currency-split lessons apply now.LATER PHASE
E · Two-axis gradeHubSpot-style A1–C3: value letter × recency number. Nice power-user shorthand for grid cells, not a primary construct.CELL LABELS
The consolidation you asked about happens in the view layer: the LTV dashboard's lifecycle × tier cross-view already IS the RFM grid. The data model stays orthogonal; the grid is how you look at it.
Research base

What the big platforms actually ship

Click any screenshot to open it full size – some have extra screens to page through.

HubSpot lifecycle stage editor
HubSpotLifecycle stages: a simple ordered-list editor with a "Used In" dependency guard. Scores live separately and drive stage transitions.
Salesforce Loyalty tiers
SalesforceLoyalty tier = name + rank + one threshold + color. Instant upgrade, period-end downgrade, currency split.
Klaviyo RFM
KlaviyoRFM scores are invisible plumbing – only 6 fixed group names surface. Thresholds editable with preview-before-save.
CleverTap RFM grid
CleverTapRecency × Frequency grid, 10 named cells, percentile-based so it auto-fits any audience size.
Braze churn histogram
BrazeChurn-score histogram with a draggable threshold slider showing live counts – the editing UX to copy.
The consensusScore ≠ tier ≠ stage everywhere. Scores are plumbing, names are the product. Clients edit definitions, never the math.
B2B config  Pro plan · optional upgrade

Clients edit definitions, never the math

Threshold editing and custom tags are a Pro-plan upgrade – the base plan runs on our opinionated defaults. On Pro, every threshold is a sentence, every edit previews its impact, and a Flowz rep tunes it with the client.

Backstage  =  attended 4 + events  AND  spent ₪ 2,500 +  over the last 24 months

Histogram + drag handles (Braze)

The producer drags the boundary over their real attendee distribution – counts update live.

Impact preview (Klaviyo)

⚠ This change moves 1,240 attendees from Backstage → Front Row

Nothing saves blind. Plus a validation nudge: "62% of Cooling actually lapsed – thresholds look healthy."

Custom Tags Pro

Producers define their own auto-badges with the same sentence rules:

👥Group Captain Camper 🚌Shuttle Rider 🍸Bar Big-Spender 👕Merch Collector 🌅Sunrise Crowd ✈️Out-of-Towner 💞Couple Ticket
Shipping defaults

Opinionated defaults, hard guardrails

📦 The defaults we ship

3+
events / 24 mo
= frequent / core
5–10%
max size of
the top tier
2
missed editions
= lapsed
90d
first purchase
= new
24 mo
rolling tier window
season-end downgrade
auto
seeded from the
client's own history

🛡️ Guardrails from the failure research

🔢
Hard caps: 5 stages, 4 tiersOne segment = one default action. If two trigger the same campaign, merge them.
🚫
No weight sliders, everWeights are meeting-room guesses nobody backtests.
🔗
Dependency guard"Used in 3 flows" blocks deletion – the HubSpot pattern.
💬
Every state explains itself"Cooling ↓ – 1 missed edition, opens down 60%".
🔤
One word, one axisTier names never reuse lifecycle words.
To decide

Two open calls, then we spec it

1 · Lifecycle names

New → Returning → Regular → Cooling → Lapsed
Self-describing – a producer parses it in one read. Engagement splits Cooling.
Keep Rising / Core
Brand personality, but needs a legend. Either way: no word repeats on the tier axis.

2 · The default tier ladder

Elad's pick: Drop → Wave → Stream → Tsunami
Brand-language water ladder, persona-name variant optional.
Backstage / Waters / Fire / Apex
Full candidates on slides 6–7. Dynamic top-% apex worth shipping regardless.
1Lock the callssurvey on the next slide
2Spec with Avivledger fields + engines
3Config UIthresholds in productv2
4Badge editorrules + Pro custom tags
Decide now

The decision survey – answer, export, ship

Q1Default tier ladder

Q2Persona-name variant (Droper / Waver / Streamer)?

Q3Lifecycle names

Q4Dynamic top-% apex tier

Q5Cooling split (reachable vs silent)

Q6Custom tags (Pro)

0 / 6 answered · export includes your notes
📄 Full report
01 / 12