slice icon Context Slice

CSAT Score Analysis

Output format:

# CSAT Analysis: [Data Source/Period]

## Summary
- **Average Score:** [X.X] / [Scale]
- **Response Rate:** [X%] (if available)
- **Period:** [Date range]
- **Sample Size:** [N responses]

## Distribution
| Score | Count | Percentage |
|-------|-------|------------|
| [5/10] | [N] | [X%] |
| [4/9] | [N] | [X%] |
| ... | ... | ... |

## Trends
[If date data available: describe score trend over time]

## Outliers & Patterns
- **Top performers:** [Customers/segments with highest scores]
- **At-risk:** [Customers/segments with lowest scores]
- **Notable pattern:** [Any interesting correlation]

## Key Themes (if feedback text available)
### Positive
- [Theme 1]: [Example quote]
- [Theme 2]: [Example quote]

### Negative
- [Theme 1]: [Example quote]
- [Theme 2]: [Example quote]

## Recommendations
1. [Action based on data]
2. [Action based on data]

Support Ticket Analysis

Output format:

# Support Ticket Analysis: [Period]

## Summary
- **Total Tickets:** [N]
- **Period:** [Date range]
- **Avg Resolution Time:** [X days/hours] (if available)
- **Ticket Trend:** [Up/Down/Flat] vs previous period

## Top Issues (by frequency)
| Rank | Issue/Category | Count | % of Total | Trend |
|------|---------------|-------|------------|-------|
| 1 | [Issue] | [N] | [X%] | [↑/↓/→] |
| 2 | [Issue] | [N] | [X%] | [↑/↓/→] |
| 3 | [Issue] | [N] | [X%] | [↑/↓/→] |
| 4 | [Issue] | [N] | [X%] | [↑/↓/→] |
| 5 | [Issue] | [N] | [X%] | [↑/↓/→] |

## By Priority/Severity (if available)
| Priority | Count | Avg Resolution |
|----------|-------|----------------|
| Critical | [N] | [X days] |
| High | [N] | [X days] |
| Medium | [N] | [X days] |
| Low | [N] | [X days] |

## Customer Concentration
- **High-ticket customers:** [Top N customers with most tickets]
- **Pattern:** [Are certain segments over-represented?]

## Root Cause Summary
[2-3 sentences on underlying causes for top issues]

## Recommended Actions
1. [Action for top issue]: [Expected impact]
2. [Action for pattern]: [Expected impact]
3. [Proactive measure]: [Expected impact]

Churn Risk Detection

Output format:

# Churn Risk Analysis: [Data Source/Period]

## Methodology
[1-2 sentences on signals used: usage drop, login frequency, support interactions, etc.]

## High-Risk Customers
| Customer | Risk Signals | Last Active | ARR/Value | Recommendation |
|----------|-------------|-------------|-----------|----------------|
| [Name] | [Signal 1, Signal 2] | [Date] | [$X] | [Action] |
| [Name] | [Signal 1, Signal 2] | [Date] | [$X] | [Action] |
| ... | ... | ... | ... | ... |

## Risk Summary
- **High Risk:** [N customers] ([X% of base], [$X ARR at risk])
- **Medium Risk:** [N customers] ([X% of base], [$X ARR])
- **Healthy:** [N customers] ([X% of base])

## Common Risk Patterns
1. **[Pattern]:** [N customers] — [Description]
2. **[Pattern]:** [N customers] — [Description]
3. **[Pattern]:** [N customers] — [Description]

## Recommended Actions
1. [Immediate outreach to high-risk segment]
2. [Process change to address pattern]
3. [Monitoring/alert to catch earlier]

Health Scoring Rubric

Output format:

# Health Score Rubric: [Segment/All Customers]

## Scoring Components

| Factor | Weight | Source | Scoring Logic |
|--------|--------|--------|---------------|
| Usage | [X%] | [Column/metric] | [How to score 1-10] |
| NPS/CSAT | [X%] | [Column/metric] | [How to score 1-10] |
| Support | [X%] | [Ticket count] | [How to score 1-10] |
| Renewal | [X%] | [Days to renewal] | [How to score 1-10] |
| Engagement | [X%] | [Meeting/response rate] | [How to score 1-10] |

**Total Weight:** 100%

## Score Thresholds
| Range | Label | Color | Action |
|-------|-------|-------|--------|
| 80-100 | Healthy | 🟢 Green | Monitor, identify expansion |
| 60-79 | Needs Attention | 🟡 Yellow | Proactive check-in |
| 40-59 | At Risk | 🟠 Orange | Intervention required |
| 0-39 | Critical | 🔴 Red | Escalate immediately |

## Sample Scores (Applied to Data)

| Customer | Usage | NPS | Support | Renewal | Engagement | **Total** | **Status** |
|----------|-------|-----|---------|---------|------------|-----------|------------|
| [Name] | [X] | [X] | [X] | [X] | [X] | **[X]** | [Color] |
| [Name] | [X] | [X] | [X] | [X] | [X] | **[X]** | [Color] |
| ... | ... | ... | ... | ... | ... | ... | ... |

## Distribution
- **Healthy:** [N] ([X%])
- **Needs Attention:** [N] ([X%])
- **At Risk:** [N] ([X%])
- **Critical:** [N] ([X%])

## Notes
- [Any data gaps or assumptions made]
- [Recommended adjustments based on segment]

Analysis Guidelines

See sliceData Analytics Guidelines for complete analysis principles. Key points for CS data:

  • ARR impact: Always quantify risk in revenue terms, not just customer counts
  • Health context: Scores are relative; note what "healthy" looks like for this segment
  • Churn signals: Distinguish between usage decline and support-driven churn indicators

Threshold Definitions

Use these defaults unless the user specifies otherwise:

Metric Threshold Definition
High-ticket customer >1 ticket in period Customers with 2+ tickets warrant attention
Small sample warning <20 rows Flag that results may not be statistically significant
Inactive customer >30 days since last login At-risk signal for churn detection
Renewal urgency <30 days to renewal Requires immediate attention
Low usage <25th percentile of cohort Relative to segment, not absolute

Edge Case Handling

Missing Expected Columns

If a required column type is not detected:

  1. List what columns ARE available
  2. Ask the user which column to use for that analysis dimension
  3. If no suitable column exists, note that analysis dimension will be skipped

Empty or Sparse Data

  • Headers only (0 rows): "The CSV contains only headers with no data rows. Please provide a file with data."
  • <20 rows: Include warning: "Note: Small sample size (N rows) — results may not be statistically significant."
  • Many null values: Report: "X% of rows have missing values in [column]. These were excluded from calculations."

Open Tickets (No Resolution Time)

For tickets without resolution dates:

  • Exclude from resolution time averages
  • Report separately: "X tickets remain open and are excluded from resolution time calculations."
  • Include in volume counts

Date Calculations

  • Use current date for "days since" calculations (state the reference date used)
  • For renewal proximity: "days until renewal" should be calculated from analysis date
  • Past renewal dates: Flag as "renewal date has passed — may need data update"

Data Format Handling

The parsed CSV may be returned as either:

  • Raw array: [{row1}, {row2}, ...]
  • Wrapped format: {"data": [{row1}, {row2}, ...], "source": "...", ...}

Handle both: if the JSON has a data property containing an array, use that; otherwise treat the root as the data array.