Individual skill

call-kpi-scoring

Use this skill after a sales call — coaching a rep, judging whether a call moved the deal forward, or producing a scorecard on how the conversation actually went — call scoring, call quality, call coaching, call KPIs, talk ratio, question rate, monologue length, engagement score. Different from a behavior-based scorecard: this measures nine largely quantitative KPIs (talk-to-listen ratio, question rate, longest monologue, talking speed, engagement, sentiment, agenda set, next steps, next meeting scheduled) directly from the call itself, plus a tenth narrative one (improvement tips). Input: a call transcript, a raw audio file, or a live connection to a call-recording/conversation-intelligence system (required — one of the three); always recomputes every metric from the source material rather than trusting a connected system's own numbers. Classifies the call's type from its content first, scores each KPI against a type-specific target band where one exists, and groups the KPIs into conversation-quality and forward-motion — surfacing it explicitly whenever a call scores well on one and poorly on the other, rather than flattening both into one average or an "N of 10 green" tally.

skills/amit-rotstein/call-kpi-scoring/SKILL.md

Read pinned source

Source commit 5d786aad0c7b2ca59b1abf1f601f9407ca261996

What was checked

Matches the observed repository HEAD
Yes
Scanner rules are current
Yes
Repository scan complete
No
Skill scan complete
No
Observed behavior
Instructions only
Last checked
Nov 11, 2026

These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.

Install this skill

Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.

An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.

Repository context

Repository stars (not skill ratings)
237
Repository last updated
Oct 20, 2026
License
MIT

Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.

Files and excerpt

File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.

Browse files
Read excerpt

Use this skill after a sales call — coaching a rep, judging whether it moved the deal forward, or just getting a scorecard on how it went. **Input:** a call transcript, a raw audio file, or a live connection to a call-recording system — this skill has nothing to score without one of the three; an audio file needs to be transcribed with speaker separation and timestamps before some of the scoring below is possible. It classifies the call's type first, then scores nine call-quality KPIs against a target band matched to that type — always computed fresh from the source material rather than pulled from any connected system's own numbers — plus a tenth, Improvement Tips, written as narrative rather than scored.

## The play

1. Confirm at least one valid input exists: a transcript, an audio file, or a live connection. If it's an audio file, transcribe it first; the transcription must include speaker separation and per-turn timestamps to support the timing-dependent KPIs in step 4 — if it doesn't, treat it the same as a plain-text transcript for those KPIs. If a live connection to a call-recording/conversation-intelligence system is used, pull the raw transcript and any speaker/timing metadata from it, but always compute every KPI in this skill directly from that raw material — never adopt the connected system's own precomputed KPI values, even when it offers them, so scoring stays consistent across all three input paths.
2. Resolve who's speaking before scoring anything. See `references/speaker-attribution.md` for the fallback chain — domain/calendar metadata, then contact-list/CRM match, then a content-cue guess that must be proposed and confirmed before use. On a call with more than one person per side (two reps, or two buyer-side attendees), treat every KPI that splits time or turns between "the seller" and "the prospect" as a per-side aggregate — pool all seller-side speakers into one side and all buyer-side speakers into the other — rather than picking one representative speaker per side or scoring individuals separately. For Longest Monologue specifically, this means an uninterrupted stretch where the other side never gets a turn counts as one continuous monologue even if it passes between two speakers on the same side — measured or estimated, it's about one side holding the floor, not any one individual's turn length.
3. Classify the call's type from its actual content — what was discussed and how, not just its label. A calendar invite title, meeting subject line, or CRM meeting-type/stage field can be checked first as a hint, but the transcript content is the deciding signal and overrides them on conflict. Four types: Discovery, Demo/Technical, Commercial, and General (the default for a low-confidence call). If a call's content spans more than one type (e.g. opens with discovery, moves into a demo), classify it by its dominant type — whichever the content leans toward overall — rather than splitting it across two scorecards. There's no fixed rule for what counts as low-confidence-enough-for-General; use judgment, and say so explicitly when a call is a close call between two types.
4. Score the nine graded KPIs using the target bands in `references/kpi-targets.md` (defaults, with overrides on three of the nine for Discovery and Demo/Technical; everything else uses the default band regardless of type). Five are timing-dependent and need a diarized, timestamped transcript to compute directly: Talk-to-Listen Ratio, Question Rate, Longest Monologue, Talking Speed, Engagement Level. Without that data:
   - Talk-to-Listen Ratio, and Engagement Level's turn-frequency component, can still be estimated from word share and turn counts in the text alone — label these explicitly as estimates, not measured values.
   - Longest Monologue can be estimated too: take the seller side's longest uninterrupted stretch by word count (see step 2 on multi-seller aggregation) and convert it to seconds using an assumed average speaking rate (150 WPM, the midpoint of the Talking Speed target band) — label this as a word-count-based estimate.
   - Talking Speed and Question Rate cannot be estimated this way — Talking Speed would require assuming the very rate it's supposed to measure, and Question Rate needs a real call duration. Skip both and disclose explicitly that they're unavailable without timing data, rather than guessing.
   The remaining four graded KPIs — Customer Sentiment, Introduction & Agenda Set, Next Steps & Action Items, Next Meeting Scheduled — are content-judgment calls readable from any transcript regardless of timing data. Improvement Tips is not a graded KPI at all — it's the narrative output written in step 7, with nothing to score or cite against a target.
5. For every graded KPI score, show the basis behind it: a direct quote for the content-judgment KPIs, a disclosed method (word share, or the longest-turn excerpt and its word-count-to-seconds conversion) for the estimated timing KPIs, and an explicit "unavailable — no timestamps" for the two that were skipped. Never present a scored value with no citation or method behind it.
6. Group the nine graded KPIs into two categories before presenting a verdict: conversation-quality (Talk-to-Listen Ratio, Question Rate, Longest Monologue, Talking Speed, Engagement Level, Customer Sentiment) and forward-motion (Introduction & Agenda Set, Next Steps & Action Items, Next Meeting Scheduled). Check whether the two groups agree or diverge — a call can score well on conversation-quality and still fail to move the deal (no agreed next step, no meeting booked), or score poorly on conversation-quality while still landing real forward motion. Call out a divergence explicitly as the headline finding; don't fold it into a flat average or an "N of 10 green" tally.
Back to top