{"id":"customer-success-manager","name":"customer-success-manager","summary":"顧客の健康状態を監視し、チャーンリスクを予測し、加重スコアモデルを用いてSaaSの顧客成功のための拡大機会を特定します","body":"# Customer Success Manager\n\nProduction-grade customer success analytics with multi-dimensional health scoring, churn risk prediction, and expansion opportunity identification. Three Python CLI tools provide deterministic, repeatable analysis using standard library only -- no external dependencies, no API calls, no ML models.\n\n---\n\n## Table of Contents\n\n- [Capabilities](#capabilities)\n- [Input Requirements](#input-requirements)\n- [Output Formats](#output-formats)\n- [How to Use](#how-to-use)\n- [Scripts](#scripts)\n- [Reference Guides](#reference-guides)\n- [Templates](#templates)\n- [Best Practices](#best-practices)\n- [Limitations](#limitations)\n\n---\n\n## Capabilities\n\n- **Customer Health Scoring**: Multi-dimensional weighted scoring across usage, engagement, support, and relationship dimensions with Red/Yellow/Green classification\n- **Churn Risk Analysis**: Behavioral signal detection with tier-based intervention playbooks and time-to-renewal urgency multipliers\n- **Expansion Opportunity Scoring**: Adoption depth analysis, whitespace mapping, and revenue opportunity estimation with effort-vs-impact prioritization\n- **Segment-Aware Benchmarking**: Configurable thresholds for Enterprise, Mid-Market, and SMB customer segments\n- **Trend Analysis**: Period-over-period comparison to detect improving or declining trajectories\n- **Executive Reporting**: QBR templates, success plans, and executive business review templates\n\n---\n\n## Input Requirements\n\nAll scripts accept a JSON file as positional input argument. See `assets/sample_customer_data.json` for complete examples.\n\n### Health Score Calculator\n\n```json\n{\n  \"customers\": [\n    {\n      \"customer_id\": \"CUST-001\",\n      \"name\": \"Acme Corp\",\n      \"segment\": \"enterprise\",\n      \"arr\": 120000,\n      \"usage\": {\n        \"login_frequency\": 85,\n        \"feature_adoption\": 72,\n        \"dau_mau_ratio\": 0.45\n      },\n      \"engagement\": {\n        \"support_ticket_volume\": 3,\n        \"meeting_attendance\": 90,\n        \"nps_score\": 8,\n        \"csat_score\": 4.2\n      },\n      \"support\": {\n        \"open_tickets\": 2,\n        \"escalation_rate\": 0.05,\n        \"avg_resolution_hours\": 18\n      },\n      \"relationship\": {\n        \"executive_sponsor_engagement\": 80,\n        \"multi_threading_depth\": 4,\n        \"renewal_sentiment\": \"positive\"\n      },\n      \"previous_period\": {\n        \"usage_score\": 70,\n        \"engagement_score\": 65,\n        \"support_score\": 75,\n        \"relationship_score\": 60\n      }\n    }\n  ]\n}\n```\n\n### Churn Risk Analyzer\n\n```json\n{\n  \"customers\": [\n    {\n      \"customer_id\": \"CUST-001\",\n      \"name\": \"Acme Corp\",\n      \"segment\": \"enterprise\",\n      \"arr\": 120000,\n      \"contract_end_date\": \"2026-06-30\",\n      \"usage_decline\": {\n        \"login_trend\": -15,\n        \"feature_adoption_change\": -10,\n        \"dau_mau_change\": -0.08\n      },\n      \"engagement_drop\": {\n        \"meeting_cancellations\": 2,\n        \"response_time_days\": 5,\n        \"nps_change\": -3\n      },\n      \"support_issues\": {\n        \"open_escalations\": 1,\n        \"unresolved_critical\": 0,\n        \"satisfaction_trend\": \"declining\"\n      },\n      \"relationship_signals\": {\n        \"champion_left\": false,\n        \"sponsor_change\": false,\n        \"competitor_mentions\": 1\n      },\n      \"commercial_factors\": {\n        \"contract_type\": \"annual\",\n        \"pricing_complaints\": false,\n        \"budget_cuts_mentioned\": false\n      }\n    }\n  ]\n}\n```\n\n### Expansion Opportunity Scorer\n\n```json\n{\n  \"customers\": [\n    {\n      \"customer_id\": \"CUST-001\",\n      \"name\": \"Acme Corp\",\n      \"segment\": \"enterprise\",\n      \"arr\": 120000,\n      \"contract\": {\n        \"licensed_seats\": 100,\n        \"active_seats\": 95,\n        \"plan_tier\": \"professional\",\n        \"available_tiers\": [\"professional\", \"enterprise\", \"enterprise_plus\"]\n      },\n      \"product_usage\": {\n        \"core_platform\": {\"adopted\": true, \"usage_pct\": 85},\n        \"analytics_module\": {\"adopted\": true, \"usage_pct\": 60},\n        \"integrations_module\": {\"adopted\": false, \"usage_pct\": 0},\n        \"api_access\": {\"adopted\": true, \"usage_pct\": 40},\n        \"advanced_reporting\": {\"adopted\": false, \"usage_pct\": 0}\n      },\n      \"departments\": {\n        \"current\": [\"engineering\", \"product\"],\n        \"potential\": [\"marketing\", \"sales\", \"support\"]\n      }\n    }\n  ]\n}\n```\n\n---\n\n## Output Formats\n\nAll scripts support two output formats via the `--format` flag:\n\n- **`text`** (default): Human-readable formatted output for terminal viewing\n- **`json`**: Machine-readable JSON output for integrations and pipelines\n\n---\n\n## Clarify First\n\nBefore running the analysis, confirm these inputs. If any is unknown or vague, ASK — do not assume:\n\n- [ ] **Which analysis** — health score, churn risk, or expansion opportunity (selects which of the three scripts and its input schema)\n- [ ] **Customer segment** — Enterprise / Mid-Market / SMB (segment-aware thresholds change every Red/Yellow/Green and risk-tier cutoff)\n- [ ] **Previous-period data availability** — without it, trend analysis (declining vs improving) cannot run\n- [ ] **Renewal date / contract end** — drives the time-to-renewal urgency multiplier in churn scoring\n\nStop rule: ask only the 2-3 that most change the output. If the user says \"just draft it,\" proceed and list your assumptions at the top of the output.\n\n## How to Use\n\n### Quick Start\n\n```bash\n# Health scoring\npython scripts/health_score_calculator.py assets/sample_customer_data.json\npython scripts/health_score_calculator.py assets/sample_customer_data.json --format json\n\n# Churn risk analysis\npython scripts/churn_risk_analyzer.py assets/sample_customer_data.json\npython scripts/churn_risk_analyzer.py assets/sample_customer_data.json --format json\n\n# Expansion opportunity scoring\npython scripts/expansion_opportunity_scorer.py assets/sample_customer_data.json\npython scripts/expansion_opportunity_scorer.py assets/sample_customer_data.json --format json\n```\n\n### Workflow Integration\n\n```bash\n# 1. Score customer health across portfolio\npython scripts/health_score_calculator.py customer_portfolio.json --format json > health_results.json\n\n# 2. Identify at-risk accounts\npython scripts/churn_risk_analyzer.py customer_portfolio.json --format json > risk_results.json\n\n# 3. Find expansion opportunities in healthy accounts\npython scripts/expansion_opportunity_scorer.py customer_portfolio.json --format json > expansion_results.json\n\n# 4. Prepare QBR using templates\n# Reference: assets/qbr_template.md\n```\n\n---\n\n## Scripts\n\n### 1. health_score_calculator.py\n\n**Purpose:** Multi-dimensional customer health scoring with trend analysis and segment-aware benchmarking.\n\n**Dimensions and Weights:**\n| Dimension | Weight | Metrics |\n|-----------|--------|---------|\n| Usage | 30% | Login frequency, feature adoption, DAU/MAU ratio |\n| Engagement | 25% | Support ticket volume, meeting attendance, NPS/CSAT |\n| Support | 20% | Open tickets, escalation rate, avg resolution time |\n| Relationship | 25% | Executive sponsor engagement, multi-threading depth, renewal sentiment |\n\n**Classification:**\n- Green (75-100): Healthy -- customer achieving value\n- Yellow (50-74): Needs attention -- monitor closely\n- Red (0-49): At risk -- immediate intervention required\n\n**Usage:**\n```bash\npython scripts/health_score_calculator.py customer_data.json\npython scripts/health_score_calculator.py customer_data.json --format json\n```\n\n### 2. churn_risk_analyzer.py\n\n**Purpose:** Identify at-risk accounts with behavioral signal detection and tier-based intervention recommendations.\n\n**Risk Signal Weights:**\n| Signal Category | Weight | Indicators |\n|----------------|--------|------------|\n| Usage Decline | 30% | Login trend, feature adoption change, DAU/MAU change |\n| Engagement Drop | 25% | Meeting cancellations, response time, NPS change |\n| Support Issues | 20% | Open escalations, unresolved critical, satisfaction trend |\n| Relationship Signals | 15% | Champion left, sponsor change, competitor mentions |\n| Commercial Factors | 10% | Contract type, pricing complaints, budget cuts |\n\n**Risk Tiers:**\n- Critical (80-100): Immediate executive escalation\n- High (60-79): Urgent CSM intervention\n- Medium (40-59): Proactive outreach\n- Low (0-39): Standard monitoring\n\n**Usage:**\n```bash\npython scripts/churn_risk_analyzer.py customer_data.json\npython scripts/churn_risk_analyzer.py customer_data.json --format json\n```\n\n### 3. expansion_opportunity_scorer.py\n\n**Purpose:** Identify upsell, cross-sell, and expansion opportunities with revenue estimation and priority ranking.\n\n**Expansion Types:**\n- **Upsell**: Upgrade to higher tier or more of existing product\n- **Cross-sell**: Add new product modules\n- **Expansion**: Additional seats or departments\n\n**Usage:**\n```bash\npython scripts/expansion_opportunity_scorer.py customer_data.json\npython scripts/expansion_opportunity_scorer.py customer_data.json --format json\n```\n\n---\n\n## Reference Guides\n\n| Reference | Description |\n|-----------|-------------|\n| `references/health-scoring-framework.md` | Complete health scoring methodology, dimension definitions, weighting rationale, threshold calibration |\n| `references/cs-playbooks.md` | Intervention playbooks for each risk tier, onboarding, renewal, expansion, and escalation procedures |\n| `references/cs-metrics-benchmarks.md` | Industry benchmarks for NRR, GRR, churn rates, health scores, expansion rates by segment and industry |\n\n---\n\n## Templates\n\n| Template | Purpose |\n|----------|---------|\n| `assets/qbr_template.md` | Quarterly Business Review presentation structure |\n| `assets/success_plan_template.md` | Customer success plan with goals, milestones, and metrics |\n| `assets/onboarding_checklist_template.md` | 90-day onboarding checklist with phase gates |\n| `assets/executive_business_review_template.md` | Executive stakeholder review for strategic accounts |\n\n---\n\n## Best Practices\n\n1. **Score regularly**: Run health scoring weekly for Enterprise, bi-weekly for Mid-Market, monthly for SMB\n2. **Act on trends, not snapshots**: A declining Green is more urgent than a stable Yellow\n3. **Combine signals**: Use all three scripts together for a complete customer picture\n4. **Calibrate thresholds**: Adjust segment benchmarks based on your product and industry\n5. **Document interventions**: Track what actions you took and outcomes for playbook refinement\n6. **Prepare with data**: Run scripts before every QBR and executive meeting\n\n---\n\n## Limitations\n\n- **No real-time data**: Scripts analyze point-in-time snapshots from JSON input files\n- **No CRM integration**: Data must be exported manually from your CRM/CS platform\n- **Deterministic only**: No predictive ML -- scoring is algorithmic based on weighted signals\n- **Threshold tuning**: Default thresholds are industry-standard but may need calibration for your business\n- **Revenue estimates**: Expansion revenue estimates are approximations based on usage patterns\n\n---\n\n---\n\n## Tool Reference\n\n### 1. health_score_calculator.py\n\n**Purpose:** Multi-dimensional customer health scoring with trend analysis and segment-aware benchmarking.\n\n```bash\npython scripts/health_score_calculator.py customer_data.json\npython scripts/health_score_calculator.py customer_data.json --format json\n```\n\n| Flag | Required | Description |\n|------|----------|-------------|\n| `customer_data.json` | Yes | JSON file with customer health data (usage, engagement, support, relationship metrics) |\n| `--format` | No | Output format: text (default) or json |\n\n**Dimensions and Weights:** Usage (30%), Engagement (25%), Support (20%), Relationship (25%)\n\n**Classification:** Green (75-100), Yellow (50-74), Red (0-49) -- thresholds adjust by segment (Enterprise, Mid-Market, SMB)\n\n### 2. churn_risk_analyzer.py\n\n**Purpose:** Identify at-risk accounts with behavioral signal detection and tier-based intervention recommendations.\n\n```bash\npython scripts/churn_risk_analyzer.py customer_data.json\npython scripts/churn_risk_analyzer.py customer_data.json --format json\n```\n\n| Flag | Required | Description |\n|------|----------|-------------|\n| `customer_data.json` | Yes | JSON file with churn risk signals (usage decline, engagement drop, support issues, relationship signals, commercial factors) |\n| `--format` | No | Output format: text (default) or json |\n\n**Risk Tiers:** Critical (80-100), High (60-79), Medium (40-59), Low (0-39)\n\n**Signal Weights:** Usage Decline (30%), Engagement Drop (25%), Support Issues (20%), Relationship Signals (15%), Commercial Factors (10%)\n\n### 3. expansion_opportunity_scorer.py\n\n**Purpose:** Identify upsell, cross-sell, and expansion opportunities with revenue estimation and priority ranking.\n\n```bash\npython scripts/expansion_opportunity_scorer.py customer_data.json\npython scripts/expansion_opportunity_scorer.py customer_data.json --format json\n```\n\n| Flag | Required | Description |\n|------|----------|-------------|\n| `customer_data.json` | Yes | JSON file with customer contract, product usage, and department data |\n| `--format` | No | Output format: text (default) or json |\n\n**Expansion Types:** Upsell (tier upgrade), Cross-sell (new modules), Expansion (seats/departments)\n\n---\n\n## Troubleshooting\n\n| Problem | Likely Cause | Solution |\n|---------|-------------|----------|\n| Health scores do not correlate with actual churn | Default thresholds do not match your product | Calibrate segment thresholds using historical churn data; compare 90-day retained vs churned cohorts |\n| All accounts show as Yellow | Thresholds too strict or data quality issues | Review input data completeness; adjust benchmarks in health_score_calculator.py constants for your industry |\n| Churn risk scores are uniformly low | Missing key signals (champion left, competitor mentions) | Ensure all signal categories have data; missing data defaults to low risk, which understates actual risk |\n| Expansion scores do not reflect reality | Product usage data is incomplete or stale | Verify product_usage fields cover all modules; run with fresh data exports from your product analytics |\n| Scripts error on input data | JSON format does not match expected schema | Reference the Input Requirements section for exact JSON structure; validate JSON before running |\n| Trend analysis shows no change | Previous period data not provided | Include the previous_period block in health score input for meaningful trend comparison |\n| Intervention recommendations feel generic | Segment is not specified | Always include the segment field (enterprise, mid-market, smb) for segment-appropriate playbooks |\n\n---\n\n## Success Criteria\n\n- Health scores run weekly for Enterprise, bi-weekly for Mid-Market, monthly for SMB accounts\n- Portfolio health distribution: 60%+ Green, less than 15% Red\n- Churn risk critical accounts have executive escalation within 48 hours\n- Expansion pipeline generated covers 20%+ of net retention target\n- Health score trends (improving/declining) drive proactive outreach before renewal window\n- QBR preparation includes health score, risk assessment, and expansion opportunities for every strategic account\n- Intervention playbooks followed for all High and Critical risk accounts\n\n---\n\n## Scope & Limitations\n\n- **In scope:** Customer health scoring, churn risk analysis, expansion opportunity identification, segment benchmarking, trend analysis, QBR preparation\n- **Out of scope:** CRM integration, real-time monitoring, predictive ML modeling, automated outreach\n- **Data dependency:** Scripts analyze point-in-time JSON snapshots; data must be exported manually from your CRM/CS platform\n- **Deterministic scoring:** All analysis is algorithmic based on weighted signals -- no machine learning predictions\n- **Threshold tuning:** Default thresholds are industry-standard benchmarks; calibrate for your specific product and customer base\n- **Revenue estimates:** Expansion revenue estimates are approximations based on usage patterns, not binding forecasts\n\n---\n\n## Integration Points\n\n- **churn-prevention** -- High-risk accounts from churn_risk_analyzer.py should trigger cancel flow optimization and save offer review\n- **revenue-operations** -- Expansion opportunities feed into pipeline forecasting; health scores inform forecast confidence\n- **onboarding-cro** -- When health scores show low usage in early lifecycle, the root cause is often poor activation\n- **pricing-strategy** -- When expansion analysis reveals pricing as a barrier to upsell, feed into pricing-strategy for packaging review\n- **competitive-teardown** -- When churn risk signals include competitor mentions, use teardown data to build counter-positioning\n\n---\n\n**Last Updated:** March 2026\n**Tools:** 3 Python CLI tools\n**Dependencies:** Python 3.7+ standard library only","author":"@borghei","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/borghei/Claude-Skills/tree/main/business-growth/customer-success-manager","license":"MIT","category":"coding","lang":"en","tokens":3734,"stars":0,"calls30d":2,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[{"path":"assets/executive_business_review_template.md","size":6951,"sha256":"6db74584eff31aa9056b58538f4d4fc31c56a2070c30f1425b45bd8cee1cc54c"},{"path":"assets/expected_output.json","size":4280,"sha256":"cf4c4623bb81ffbf047e1bc0f4b3fa4838e37544ed286934cd86b996366458a8"},{"path":"assets/onboarding_checklist_template.md","size":7353,"sha256":"238ed39d71afdc5f7db53d50f179c821f81e6c4664be13134a87ca40d01e92c3"},{"path":"assets/qbr_template.md","size":4711,"sha256":"09f70ccd3e245cb576f2fc51846f7d65b781e3758b2f2285d65191a04d18111c"},{"path":"assets/sample_customer_data.json","size":9231,"sha256":"4d6b0edb04c7c38c5fbc4299edd0ffc6e4e82864956dfd504bc5bbb20a2998f6"},{"path":"assets/success_plan_template.md","size":5889,"sha256":"a57ff20ccc43144de5b4432ed571b1ae3c50f44aea6ab7a2c63eaa16c7446be4"},{"path":"references/cs-metrics-benchmarks.md","size":9116,"sha256":"d4c1c6416162d3159ce619388b09a85728614a205b9c1ce955641fe00eb32469"},{"path":"references/cs-playbooks.md","size":10656,"sha256":"2cbc6f6caa69ce752a067cef4ff1366edceaba237079ea77d4f0f09ff60db670"},{"path":"references/health-scoring-framework.md","size":8540,"sha256":"b1029b9b89cc1d7c309404b288463c295601e376d74e5fa4fb5505cf99e66916"},{"path":"scripts/churn_risk_analyzer.py","size":19540,"sha256":"28f1220ce71076d7b688ba54a084f74c49dbc9c4071caad97913dcf59ea59102"},{"path":"scripts/expansion_opportunity_scorer.py","size":15734,"sha256":"849b133c3d6f11366ee2942f9a1a5095721e8eccc4f00ba3e55a672e2a5d9b90"},{"path":"scripts/health_score_calculator.py","size":16651,"sha256":"d850b6b6e3299d3bc7e3e98f7256a91cc2493423112603f73cb72357163fea9a"}],"requires":{"mcp":[],"tools":[]},"safety":{"flags":[],"scannedAt":"2026-08-22","hasScripts":true,"networkEndpoints":[]}}