---
name: voice-of-customer-rollup
source: https://app.decimal.ai/s/voice-of-customer-rollup@1/SKILL.md
source_sha256: 3f366fc35d7b
---

# Voice-of-Customer Rollup

## What this does

Takes a batch of raw customer feedback from one or more channels — support tickets, NPS
comments, app-store reviews, survey open-text, sales-call notes — and produces a **fixed
digest**: a list of themes, each **ranked**, each carrying a **count** and **one quote copied
exactly from the feedback**, with **no theme that the feedback did not actually raise**.

Handed a pile of comments and asked "what are people saying?", the base model writes a smooth
paragraph. It groups loosely, **paraphrases** the customer's words into its own, attaches no
counts, orders themes by whatever it mentioned first, and will happily add a tidy conclusion
("overall, sentiment is positive") that no single comment supports. This skill replaces that
with a digest an operator can act on: themes ordered by real weight, each backed by a count
you can trust and a customer's **own words**, and nothing invented.

## When to use / when NOT to

**Use when:** the input is two or more pieces of customer feedback and the ask is to
consolidate them — "roll these up", "what are the top themes", "summarize this feedback",
"what are customers telling us across these".

**Do NOT use when:** scoring one account's churn risk (that is a rubric task); writing a
quarterly business review; drafting a reply to one customer; or doing sentiment on a single
comment. This skill is for the many-into-a-digest move.

## The rule

Every rollup obeys all six. The first three are what the base model gets wrong most.

1. **Quote verbatim — never paraphrase.** Each theme is anchored by **one representative
   quote copied word-for-word from an actual feedback item**. Do not clean up grammar,
   soften wording, merge two comments into one quote, or write a quote in your own voice. If
   you must shorten, cut only from the ends and mark the cut with `…` — the words you keep
   stay exactly as the customer wrote them. A quote a reader cannot find verbatim in the
   input is a fabrication.

2. **Invent no theme.** Every theme must be one that **at least one feedback item actually
   raises**. Do not add a theme because it is common in the industry, because you expect it,
   or to round out the list. If the feedback never mentions pricing, "pricing concerns" is
   not a theme. When in doubt, drop it.

3. **Count honestly.** Each theme carries a **count** = how many distinct feedback items
   raise it. The count reflects only items in the input. One item may support two themes;
   one item never counts twice toward the same theme. Do not estimate, round to a "roughly",
   or inflate a single mention into "several".

4. **Rank by frequency × severity.** Order themes by their weight, where weight combines
   **how many items raise it** (frequency) with **how much each instance hurts** (severity —
   a churn threat or blocked workflow outranks a mild annoyance). A theme raised 3 times where
   users say they will cancel outranks a cosmetic nit raised 5 times. State each theme's
   severity so the ranking is auditable; when two themes tie on weight, the higher-frequency
   one goes first.

5. **One item, its real theme.** Assign each feedback item to the theme(s) it genuinely
   raises. Do not force an off-topic comment into the nearest bucket to lift a count, and do
   not split one coherent complaint across three themes to pad the list.

6. **No editorial conclusion.** Do not append an overall-sentiment verdict, a recommendation,
   or a "customers love us but…" wrap-up unless the ask explicitly requests one. The digest is
   the themes and their evidence; a summary line the feedback does not collectively support is
   exactly the invention Rule 2 forbids.

## Output shape

For each theme, in ranked order:

```
1. <Theme label> — <count> mentions · severity: <high|medium|low>
   "<verbatim quote copied exactly from one feedback item>"
```

Lead with the highest-weight theme. Keep the label short and descriptive of what customers
said, not of how you feel about it ("Login fails after password reset", not "Frustrating auth
problems").

## Worked example

**Feedback given** (6 items):
- [1] "Reset my password and now I can't log in at all — completely locked out."
- [2] "The new dashboard is gorgeous, love the dark mode."
- [3] "After a password reset the login just spins forever. Had to email support."
- [4] "Export to CSV has been broken for a week, this is blocking our month-end close."
- [5] "Wish the date picker remembered my last range, minor thing."
- [6] "Password reset locked me out too, support took two days to fix it."

**BEFORE (base default — paraphrased, uncounted, editorialized):**
> Customers are generally happy with the new design but some are running into login trouble
> after resetting their passwords, and a few mentioned issues with exporting and small UI
> preferences. Overall sentiment is mixed but leaning positive.

No counts, quotes reworded, themes ordered by nothing, and a sentiment verdict nobody said.

**AFTER (this skill — ranked, counted, verbatim, nothing invented):**
> 1. Password reset locks users out — 3 mentions · severity: high
>    "Reset my password and now I can't log in at all — completely locked out."
> 2. CSV export broken — 1 mention · severity: high
>    "Export to CSV has been broken for a week, this is blocking our month-end close."
> 3. New dashboard / dark mode praised — 1 mention · severity: low
>    "The new dashboard is gorgeous, love the dark mode."
> 4. Date picker should remember last range — 1 mention · severity: low
>    "Wish the date picker remembered my last range, minor thing."

The reset lockout leads on frequency (3) and severity (high); the export bug is a single
mention but ranks above the cosmetic items because it blocks a workflow. Every quote is one
customer's exact words. No pricing theme, no sentiment verdict — neither is in the feedback.

## Edge cases

- **A theme is raised once but is severe** (a blocker or churn threat). Keep it and let
  severity carry it up the ranking — do not drop it just because frequency is 1.
- **Mixed sentiment on the same feature** (some praise it, some hate it). Split into two
  themes with their own counts and quotes, or name it one theme and note the split — do not
  average the sentiment away.
- **One comment raises several distinct issues.** Assign it to each relevant theme; it counts
  once toward each, never twice toward one.
- **A vague comment** ("meh, not great") that names no issue. It supports no specific theme;
  do not manufacture one from it.
- **The ask requests a recommendation or headline.** Then a summary line is in scope — but it
  must still follow only from the themes present, with no figure or claim the feedback lacks.

## Do / Don't

- **Do** copy the customer's exact words as the quote.
- **Don't** paraphrase, tidy grammar, or write the quote in your own voice.
- **Do** rank by frequency × severity and state each severity.
- **Don't** order themes by mention-order or by count alone.
- **Do** keep a rare-but-severe theme.
- **Don't** add a theme the feedback never raised, or a sentiment verdict it never supports.

## Common mistakes (the base's defaults)

- Paraphrasing quotes into the model's own words instead of copying them verbatim.
- Omitting counts, or writing "several / a few" instead of a number.
- Ordering themes by whichever was mentioned first, ignoring severity.
- Padding the list with an expected-but-absent theme (pricing, onboarding) nobody raised.
- Tacking on an "overall sentiment is positive" verdict the individual comments don't support.

## Quick checklist

- [ ] Every theme has a count = distinct items raising it.
- [ ] Every theme is anchored by a quote copied word-for-word from an input item.
- [ ] Themes ranked by frequency × severity, with each severity stated.
- [ ] No theme appears that no feedback item raised.
- [ ] No overall-sentiment verdict unless the ask requested one.
