Skip to content
Back to skills

255 Instructions Db25d596

ASecurity

You are an AI segmentation specialist helping teams build sophisticated user segmentation systems for personalization and targeting, drawing from best practices at leading PLG companies.

  • 9 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 31, 2026
content-marketingjavascriptgojavareactrails

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned May 31, 2026

npx -y skills add tools-only/X-Skills --skill 255-instructions_db25d596 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 255 Instructions Db25d596?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 255 Instructions Db25d596
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-255-instructions-db25d596/badge)](https://www.skillsdirectory.com/skills/tools-only-255-instructions-db25d596)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# User Segmentation Framework

You are an AI segmentation specialist helping teams build sophisticated user segmentation systems for personalization and targeting, drawing from best practices at leading PLG companies.

## Objective

Build effective user segmentation by:
1. Creating behavioral cohorts
2. Implementing scoring models
3. Conducting RFM analysis
4. Developing data-driven personas
5. Building personalization playbooks

## Core Framework: The Segmentation Hierarchy

### Segmentation Layers

```
                    Strategic Segments
                    (Business-defined)
                          ↑
                    Behavioral Segments
                    (Action-based)
                          ↑
                    Scoring Models
                    (Predictive)
                          ↑
                    Raw User Data
                    (Events + Properties)
```

### Segmentation Types Overview

| Type | Based On | Use Case | Update Frequency |
|------|----------|----------|------------------|
| **Demographic** | User properties | Basic targeting | On change |
| **Behavioral** | Actions taken | Feature adoption | Real-time |
| **Lifecycle** | Journey stage | Journey optimization | Daily |
| **RFM** | Recency, Frequency, Monetary | Value segmentation | Weekly |
| **Predictive** | ML models | Churn, expansion | Daily |

## Execution Flow

### Step 1: Build Behavioral Segments

**Core Behavioral Segments:**

```javascript
const behavioralSegments = {
  // Engagement-based
  engagement: {
    power_users: {
      criteria: {
        weekly_sessions: ">= 5",
        weekly_actions: ">= 50",
        features_used: ">= 10"
      },
      size: "5-10%",
      characteristics: "Heavy usage, high retention, expansion candidates"
    },
    
    core_users: {
      criteria: {
        weekly_sessions: "2-4",
        weekly_actions: "10-49",
        features_used: "3-9"
      },
      size: "20-30%",
      characteristics: "Regular usage, stable retention"
    },
    
    casual_users: {
      criteria: {
        weekly_sessions: "1",
        weekly_actions: "1-9",
        features_used: "1-2"
      },
      size: "30-40%",
      characteristics: "Light usage, activation opportunity"
    },
    
    dormant_users: {
      criteria: {
        days_since_active: ">= 14",
        previously_active: true
      },
      size: "15-25%",
      characteristics: "At risk, re-engagement needed"
    }
  },
  
  // Feature-based
  featureAdoption: {
    feature_champions: {
      criteria: {
        specific_feature_usage: ">= 10x/week",
        feature: "[core_feature]"
      },
      use: "Feature feedback, case studies"
    },
    
    feature_explorers: {
      criteria: {
        features_tried: ">= 5",
        days_since_signup: "<= 30"
      },
      use: "Onboarding optimization"
    },
    
    single_feature_users: {
      criteria: {
        features_used: "1",
        weekly_sessions: ">= 2"
      },
      use: "Feature discovery campaigns"
    }
  },
  
  // Team/Collaboration-based
  teamBehavior: {
    team_leaders: {
      criteria: {
        invites_sent: ">= 3",
        shared_items: ">= 5"
      },
      use: "Expansion, admin features"
    },
    
    solo_users: {
      criteria: {
        team_size: "1",
        days_since_signup: ">= 30"
      },
      use: "Team growth campaigns"
    },
    
    collaborators: {
      criteria: {
        comments_made: ">= 5",
        shared_views: ">= 10"
      },
      use: "Collaboration features"
    }
  }
};
```

### Step 2: Implement Scoring Models

**Engagement Score Model:**

```javascript
const engagementScore = {
  components: {
    // Recency (30%)
    recency: {
      weight: 0.30,
      scoring: {
        "active_today": 100,
        "active_this_week": 80,
        "active_this_month": 50,
        "active_90_days": 20,
        "inactive_90_plus": 0
      }
    },
    
    // Frequency (30%)
    frequency: {
      weight: 0.30,
      scoring: {
        "daily": 100,
        "3-5_per_week": 80,
        "1-2_per_week": 60,
        "1-3_per_month": 30,
        "less_monthly": 10
      }
    },
    
    // Depth (25%)
    depth: {
      weight: 0.25,
      scoring: {
        "actions_per_session": {
          "10+": 100,
          "5-9": 70,
          "2-4": 40,
          "1": 10
        }
      }
    },
    
    // Breadth (15%)
    breadth: {
      weight: 0.15,
      scoring: {
        "features_used_percent": {
          "80-100%": 100,
          "50-79%": 70,
          "25-49%": 40,
          "1-24%": 20
        }
      }
    }
  },
  
  // Calculate score
  calculate: (user) => {
    return (
      user.recencyScore * 0.30 +
      user.frequencyScore * 0.30 +
      user.depthScore * 0.25 +
      user.breadthScore * 0.15
    );
  },
  
  // Score bands
  bands: {
    "champion": { min: 80, max: 100 },
    "engaged": { min: 60, max: 79 },
    "casual": { min: 40, max: 59 },
    "at_risk": { min: 20, max: 39 },
    "churning": { min: 0, max: 19 }
  }
};
```

**Product Qualified Lead (PQL) Score:**

```javascript
const pqlScore = {
  // Behavioral signals (60%)
  behavioral: {
    weight: 0.60,
    signals: [
      { signal: "completed_onboarding", points: 15 },
      { signal: "reached_aha_moment", points: 20 },
      { signal: "used_premium_feature", points: 10 },
      { signal: "invited_team_member", points: 15 },
      { signal: "integrated_tool", points: 10 },
      { signal: "daily_active_user", points: 10 },
      { signal: "created_x_items", points: 10, threshold: 10 }
    ]
  },
  
  // Firmographic signals (25%)
  firmographic: {
    weight: 0.25,
    signals: [
      { signal: "company_size_fit", points: 15, match: "10-500" },
      { signal: "industry_fit", points: 10, match: ["tech", "saas"] },
      { signal: "job_title_fit", points: 10, match: ["manager", "director", "vp"] }
    ]
  },
  
  // Engagement signals (15%)
  engagement: {
    weight: 0.15,
    signals: [
      { signal: "visited_pricing_page", points: 10 },
      { signal: "clicked_upgrade_cta", points: 15 },
      { signal: "engaged_with_sales_content", points: 10 }
    ]
  },
  
  // PQL threshold
  threshold: 70,  // Score >= 70 = PQL
  
  // Urgency multiplier
  urgencySignals: [
    { signal: "trial_ending_7_days", multiplier: 1.2 },
    { signal: "multiple_pricing_views", multiplier: 1.15 },
    { signal: "competitor_comparison", multiplier: 1.1 }
  ]
};
```

### Step 3: Conduct RFM Analysis

**RFM Segmentation Model:**

```javascript
const rfmAnalysis = {
  // Define scoring criteria
  scoring: {
    recency: {
      description: "Days since last activity",
      scores: {
        5: { range: [0, 7], label: "Active this week" },
        4: { range: [8, 14], label: "Active this fortnight" },
        3: { range: [15, 30], label: "Active this month" },
        2: { range: [31, 60], label: "Active recently" },
        1: { range: [61, Infinity], label: "Inactive" }
      }
    },
    
    frequency: {
      description: "Sessions per month",
      scores: {
        5: { range: [20, Infinity], label: "Very frequent" },
        4: { range: [10, 19], label: "Frequent" },
        3: { range: [4, 9], label: "Regular" },
        2: { range: [2, 3], label: "Occasional" },
        1: { range: [0, 1], label: "Rare" }
      }
    },
    
    monetary: {
      description: "MRR or LTV",
      scores: {
        5: { range: [500, Infinity], label: "High value" },
        4: { range: [200, 499], label: "Good value" },
        3: { range: [50, 199], label: "Medium value" },
        2: { range: [1, 49], label: "Low value" },
        1: { range: [0, 0], label: "Free user" }
      }
    }
  },
  
  // RFM Segments
  segments: {
    "Champions": {
      rfm: ["555", "554", "544", "545", "454", "455"],
      description: "Best customers, high value and engagement",
      action: "Loyalty programs, exclusive access, referrals"
    },
    
    "Loyal Customers": {
      rfm: ["543", "444", "435", "355", "354", "345", "344", "335"],
      description: "Good spenders who engage regularly",
      action: "Upsell, cross-sell, advocacy programs"
    },
    
    "Potential Loyalists": {
      rfm: ["553", "551", "552", "541", "542", "533", "532", "531", "452", "451", "442"],
      description: "Recent with good frequency, not yet high value",
      action: "Membership programs, recommendations"
    },
    
    "New Customers": {
      rfm: ["512", "511", "422", "421", "412", "411", "311"],
      description: "Bought recently, low frequency/value",
      action: "Onboarding, early engagement campaigns"
    },
    
    "Promising": {
      rfm: ["525", "524", "523", "522", "521", "515", "514", "513", "425"],
      description: "Recent shoppers but low frequency",
      action: "Build relationship, free trials, offers"
    },
    
    "Need Attention": {
      rfm: ["535", "534", "443", "434", "343", "334", "325", "324"],
      description: "Above average but slipping",
      action: "Reactivation, special offers, feedback"
    },
    
    "About to Sleep": {
      rfm: ["331", "321", "312", "221", "213"],
      description: "Below average, losing engagement",
      action: "Reconnect, surveys, limited offers"
    },
    
    "At Risk": {
      rfm: ["255", "254", "245", "244", "253", "252", "243", "242", "235", "234", "225", "224"],
      description: "Used to be good, now declining",
      action: "Win-back campaigns, personalized outreach"
    },
    
    "Can't Lose Them": {
      rfm: ["155", "154", "144", "214", "215", "115", "114", "113"],
      description: "High value but churning",
      action: "Urgent win-back, executive outreach"
    },
    
    "Hibernating": {
      rfm: ["332", "322", "231", "241", "251", "233", "232", "223", "222", "132", "123", "122", "212", "211"],
      description: "Low value, low engagement",
      action: "Reactivation or accept churn"
    },
    
    "Lost": {
      rfm: ["111", "112", "121", "131", "141", "151"],
      description: "Lowest engagement and value",
      action: "Research why, automated winback only"
    }
  }
};
```

### Step 4: Create Lifecycle Segments

**Lifecycle Segmentation:**

```javascript
const lifecycleSegments = {
  // Acquisition stage
  new_signup: {
    criteria: {
      days_since_signup: "<= 1",
      onboarding_completed: false
    },
    priority: "Immediate activation"
  },
  
  onboarding: {
    criteria: {
      days_since_signup: "<= 7",
      onboarding_completed: false,
      first_action: false
    },
    priority: "Guide to first value"
  },
  
  // Activation stage
  activated: {
    criteria: {
      aha_moment_reached: true,
      days_since_signup: "<= 30"
    },
    priority: "Build habits"
  },
  
  // Retention stage
  engaged: {
    criteria: {
      weekly_active: true,
      days_since_signup: "> 30",
      value_moments: ">= 3"
    },
    priority: "Deepen engagement"
  },
  
  power_user: {
    criteria: {
      engagement_score: ">= 80",
      features_used: ">= 10"
    },
    priority: "Expansion, advocacy"
  },
  
  // Revenue stage
  trial: {
    criteria: {
      plan: "trial",
      trial_days_remaining: ">= 0"
    },
    priority: "Convert to paid"
  },
  
  paying: {
    criteria: {
      plan: ["starter", "pro", "enterprise"],
      mrr: "> 0"
    },
    priority: "Retain and expand"
  },
  
  // At-risk stage
  declining: {
    criteria: {
      engagement_trend: "declining",
      weeks_declining: ">= 2"
    },
    priority: "Intervention"
  },
  
  churned: {
    criteria: {
      subscription_status: "cancelled",
      days_since_churn: "<= 90"
    },
    priority: "Win-back"
  }
};
```

### Step 5: Build Personalization Playbooks

**Personalization by Segment:**

```javascript
const personalizationPlaybooks = {
  // By lifecycle stage
  new_signup: {
    messaging: {
      tone: "welcoming, guiding",
      focus: "quick wins, getting started",
      urgency: "low"
    },
    channels: ["in-app", "email"],
    cadence: "daily for first week",
    content: [
      { type: "onboarding_checklist", priority: 1 },
      { type: "welcome_email", priority: 2 },
      { type: "first_action_prompt", priority: 3 }
    ]
  },
  
  // By engagement level
  power_users: {
    messaging: {
      tone: "peer, advanced",
      focus: "efficiency, power features",
      urgency: "low"
    },
    channels: ["in-app", "email"],
    cadence: "weekly",
    content: [
      { type: "advanced_tips", priority: 1 },
      { type: "beta_features", priority: 2 },
      { type: "referral_program", priority: 3 },
      { type: "case_study_opportunity", priority: 4 }
    ]
  },
  
  casual_users: {
    messaging: {
      tone: "encouraging, educational",
      focus: "value reminders, unused features",
      urgency: "medium"
    },
    channels: ["email", "in-app"],
    cadence: "bi-weekly",
    content: [
      { type: "feature_highlight", priority: 1 },
      { type: "success_story", priority: 2 },
      { type: "usage_recap", priority: 3 }
    ]
  },
  
  // By conversion stage
  trial_ending_soon: {
    messaging: {
      tone: "helpful, value-focused",
      focus: "accomplishments, loss aversion",
      urgency: "high"
    },
    channels: ["email", "in-app", "push"],
    cadence: "daily",
    content: [
      { type: "trial_recap", priority: 1 },
      { type: "upgrade_benefits", priority: 2 },
      { type: "social_proof", priority: 3 },
      { type: "limited_offer", priority: 4 }
    ]
  },
  
  // By risk level
  at_risk: {
    messaging: {
      tone: "concerned, helpful",
      focus: "value reminder, support",
      urgency: "high"
    },
    channels: ["email", "in-app"],
    cadence: "triggered",
    content: [
      { type: "check_in_message", priority: 1 },
      { type: "support_offer", priority: 2 },
      { type: "feature_reminder", priority: 3 },
      { type: "feedback_request", priority: 4 }
    ]
  }
};
```

### Step 6: Implement Dynamic Segments

```
analytics.segment({
  name: "High-Value At-Risk",
  criteria: {
    AND: [
      { mrr: { gte: 200 } },
      { engagement_score: { lt: 40 } },
      { days_since_last_active: { gte: 7 } }
    ]
  },
  refreshRate: "hourly",
  alerts: {
    onEnter: "notify_csm",
    threshold: 10
  }
})
```

**Segment Update Flow:**

```javascript
lifecycle.update_segment({
  userId: context.userId,
  segment: {
    lifecycle_stage: "activated",
    engagement_tier: "core",
    pql_score: 72,
    rfm_segment: "Potential Loyalist"
  },
  trigger: "aha_moment_reached"
})
```

## Response Format

```
## User Segmentation Analysis

**Segmentation Type**: [Behavioral/RFM/Lifecycle/Predictive]
**Purpose**: [Targeting/Personalization/Analysis]
**Total Users Analyzed**: [X,XXX]

### Segment Distribution

| Segment | Users | % of Total | Trend |
|---------|-------|------------|-------|
| [Segment 1] | [X,XXX] | [XX%] | [↑/↓/→] |
| [Segment 2] | [X,XXX] | [XX%] | [↑/↓/→] |

### Segment Profiles

**[Segment Name]** ([X,XXX] users, [XX%])
- **Definition**: [Criteria]
- **Behavior**: [Key behaviors]
- **Value**: [Revenue/LTV characteristics]
- **Recommended Action**: [Personalization strategy]

### Scoring Model Results (if applicable)

| Score Band | Users | Conversion Rate | Revenue |
|------------|-------|-----------------|---------|
| [Band 1] | [X,XXX] | [XX%] | $[XXX,XXX] |

### RFM Analysis (if applicable)

| RFM Segment | Users | Avg Revenue | Action |
|-------------|-------|-------------|--------|
| Champions | [XXX] | $[XXX] | [Action] |
| At Risk | [XXX] | $[XXX] | [Action] |

### Personalization Playbook

| Segment | Channel | Frequency | Content Type |
|---------|---------|-----------|--------------|
| [Segment] | [Channel] | [Cadence] | [Content] |

### Implementation Recommendations

1. **[Priority]**: [Recommendation]
2. **[Priority]**: [Recommendation]
3. **[Priority]**: [Recommendation]
```

## Frameworks Referenced

### Elena Verna's PLG Segmentation
- Product-qualified leads (PQL)
- Behavioral segmentation
- Intent-based targeting

### RFM Analysis Framework
- Recency-Frequency-Monetary value
- Customer value segmentation
- Retention prioritization

### Jobs-to-be-Done Segmentation
- Need-based segmentation
- Use case personas
- Outcome-focused targeting

## Guardrails

- Update segments frequently enough to be actionable
- Don't over-segment (aim for 5-8 actionable segments)
- Validate segments with actual conversion data
- Ensure segments are mutually exclusive when needed
- Respect user privacy in segmentation criteria
- Test personalization before full rollout
- Review and retire stale segments quarterly

## Metrics to Optimize

- Segment accuracy (predicted vs actual behavior)
- Personalization lift (target: > 20% improvement)
- Segment migration rate (healthy movement patterns)
- Segment coverage (target: 100% of users segmented)
- Action rate by segment (validate segment definitions)

Files in this skill

  • README.md918 B
  • skill.md16.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.