Purpose
Convert raw event metrics into a consistent, defensible performance tier for every event — using a weighted KPI rubric with explicit benchmarks — so analysts can triage a portfolio at a glance, flag at-risk events early, and apply the same scoring logic across batch exports and real-time evaluation.
When to Use
Invoke this skill when the user asks to:
- Classify or tier a set of events by performance
- Score events against KPI benchmarks or targets
- Flag underperforming or at-risk events in a portfolio
- Build a reusable rubric for evaluating event health
- Segment events for prioritization, resourcing, or intervention
- Rank events and explain why each landed where it did
Inputs Required
Before starting, collect:
- Event dataset: One or more events with their metrics (table, list, or single record — batch or one-off)
- KPIs to evaluate: Which metrics define performance (e.g., attendance rate, GMV, conversion, NPS, refund rate)
- Benchmarks or targets: Per-KPI target values, tier thresholds, or historical baselines to score against
- KPI weights: Relative importance of each KPI (if omitted, apply equal weighting and note it)
- Event type/segment: Category, region, or size class — so events are scored against comparable peers
- Direction of each KPI: Whether higher is better (GMV) or lower is better (refund rate, no-show rate)
- Tier count and names: If the user has a preferred scheme; otherwise default to 5 tiers below
If benchmarks are missing, derive relative thresholds from the dataset's own distribution (percentiles) and clearly state that classification is relative, not absolute.
Instructions
Step 1: Normalize and Validate Inputs
Prepare the data before scoring:
- Confirm every event has values for the required KPIs; flag events with missing fields and score them on available KPIs only (mark as "partial data")
- Normalize each KPI to a 0–100 subscore against its benchmark:
- Higher-is-better: subscore = min(100, actual / target × 100)
- Lower-is-better: subscore = min(100, target / actual × 100)
- Percentile-based (no benchmark): rank the value within the dataset and map to 0–100
- Cap subscores at 100 so a single overperforming KPI can't mask weakness elsewhere
Step 2: Apply the Weighted Scoring Rubric
Compute a composite score per event:
- Composite = Σ (KPI subscore × KPI weight) / Σ weights
- Round to one decimal; retain the KPI-level subscores for the rationale
- Ensure weights sum to 1.0 (or normalize them); state the weighting used
Step 3: Assign Performance Tier
Map composite scores to tiers. Default 5-tier scheme (override if the user supplied one):
- Elite (90–100): Top performers exceeding targets across most KPIs — replicate and protect
- Strong (75–89.9): Consistently above benchmark with minor gaps — optimize the margins
- Steady (60–74.9): Meeting core expectations, mixed KPI profile — monitor and nudge
- Underperforming (40–59.9): Missing benchmarks on key weighted KPIs — intervene
- At-Risk (0–39.9): Failing across weighted KPIs — escalate or evaluate for retirement
Apply an override rule: if any single KPI weighted above 0.30 scores below 30, cap the tier at Underperforming regardless of composite — a critical failure shouldn't be averaged away.
Step 4: Write Per-Event Rationale
For each event, produce:
- Composite score and assigned tier
- The 1–2 KPIs pulling the score up and the 1–2 pulling it down (with subscores)
- Any override or partial-data flag triggered
Step 5: Attach Tier-Specific Actions
Recommend the standard next move for each event based on its tier:
- Elite: Document what's working; use as a benchmark template for peers
- Strong: Identify the single lagging KPI and set a targeted improvement goal
- Steady: Watch the weakest KPI; re-evaluate next cycle
- Underperforming: Diagnose the failing weighted KPI and assign an intervention owner
- At-Risk: Escalate immediately — decide within the cycle whether to fix or sunset
Step 6: Summarize the Portfolio
Provide a distribution rollup: count and percentage of events per tier, the highest and lowest composite scores, and any systemic pattern (e.g., "all At-Risk events share low conversion").
Output Format
- Structure: Classification table (one row per event) followed by per-event rationale, a tier distribution summary, and the reusable rubric definition
- Length: Scales with dataset — ~40–80 words of rationale per event, plus a 100–150 word portfolio summary
- Format: Table for the classification results; short structured bullets for rationale and actions; a compact rubric block at the end
- Sections: Classification Table → Per-Event Rationale & Actions → Portfolio Distribution → Reusable Scoring Rubric
- Tone: Analyst-precise and decisive — every tier assignment is justified by numbers, no hedging
Quality Checklist
Before delivering output, verify:
- [ ] Every event in the input received a composite score and a tier (count matches input)
- [ ] Weights used are stated and sum to 1.0 (or were normalized)
- [ ] Each rationale names the specific KPIs driving the score up and down — not "performed well overall"
- [ ] The single-KPI override rule was checked and applied where triggered
- [ ] Partial-data or missing-KPI events are flagged, not silently scored as zero
- [ ] The portfolio summary reports exact per-tier counts and the score range
Notes
- The rubric is the reusable asset — deliver it in a form the analyst can re-apply to next month's export or wire into a real-time evaluation without re-deriving thresholds
- Always score events against comparable peers; a small regional event and a flagship shouldn't share the same absolute GMV benchmark unless the user insists
- When benchmarks are absent, percentile-based scoring is fine for triage but tells you rank, not health — label it clearly so tiers aren't misread as absolute performance
- Recommend re-running the classifier on a fixed cadence so tier movement (an event slipping from Steady to Underperforming) becomes an early warning signal
How to use this skill
This file is a Claude Code skill in Anthropic's standard format — markdown with YAML frontmatter at the top.
Installing in Claude Code:
~/.claude/skills/<folder-name>/SKILL.md— auto-loads in every session anywhere on your machine (recommended for skills you'll use across multiple projects)<your-project>/.claude/skills/<folder-name>/SKILL.md— auto-loads only when working in that project (recommended for project-specific skills)
Restart Claude Code or open a new session to register.
Using in Claude.ai, ChatGPT, Gemini, or other AI tools:
- Drag this file into a new chat, or copy and paste its contents
- Send your task or request as your next message — the AI will apply the skill where it fits
For Claude Code skill details: https://docs.anthropic.com/en/docs/claude-code/skills