RFM Segments

    RFM (Recency, Frequency, Monetary) segments group customers by their ordering behaviour so you can target the right message to the right people — Champions, At Risk, Hibernating, and more.

    Each customer is scored 1–5 on three dimensions, then placed in a segment using the rules below. Scores are quintiles (NTILE 5) computed across this restaurant's customer base, so they recompute each time the CRM loads — a customer's segment can shift as your customer base grows.

    • Recency (R) — how recently they last ordered. 5 = most recent fifth, 1 = least recent fifth.
    • Frequency (F) — how often they order. 5 = top fifth by order count.
    • Monetary (M) — how much they've spent. 5 = top fifth by total spend.
    SegmentRuleWhat it meansSuggested action
    ChampionsR ≥ 4 AND F ≥ 4 AND M ≥ 4Recent, frequent, high spenders.Reward; ask for reviews and referrals.
    LoyalR ≥ 3 AND F ≥ 4Consistent repeat buyers.Upsell; loyalty perks.
    Potential LoyalistR ≥ 4 AND F = 3Recent buyers building frequency.Nurture toward loyalty.
    NewR ≥ 4 AND F ≤ 2Recently acquired, low frequency.Strong onboarding; second-order push.
    PromisingR ≥ 3 AND F ≤ 2Recent shoppers, low spend.Build the relationship.
    Needs AttentionR = 3 AND F = 3Average across the board.Re-engage with an offer.
    About to SleepR = 2 AND F between 2 and 3Slipping in recency and frequency.Reactivate soon.
    At RiskR = 2 AND F ≥ 4Frequent buyers gone quiet.Win-back campaign.
    Can't LoseR ≤ 2 AND F ≥ 4 AND M ≥ 4Top spenders who lapsed.Personal outreach.
    HibernatingR = 1 AND F ≥ 2Long inactive, moderate history.Reactivation push.
    LostR = 1 AND F = 1Lowest recency and frequency.Cheap re-engagement only.
    OthersDoesn't match the rules aboveEdge cases that fall between buckets.Monitor; no dedicated action.

    Rules are evaluated top-to-bottom — the first matching rule wins. Definitions mirror theget_customer_listPostgres function.

    Tip: Use RFM segments as automation triggers (e.g. send a win-back when a customer enters At Risk) or as audience filters in campaigns.