How-To Guide12 min read
How to Build a Customer Feedback Taxonomy: Themes, Subthemes, and Tags
Last updated: · By Matt Teixeira, Founder and CEO
On this page
To build a taxonomy of themes and tags for customer feedback, label every item on two separate axes: a theme for where in the product it lands (Billing, Search, Onboarding) and a type for what kind of feedback it is (bug, feature request, praise). Draft themes from your product's navigation, sort about 200 real comments into them, and settle on 8 to 15 themes, each with a short description of what belongs and what does not. Add subthemes only where a theme is too big to act on, and have one owner review the list every quarter.
To categorize customer feedback into themes day to day, give each item one primary theme and one type, and send anything that fits nowhere to an "Other" bucket you read monthly. The step most teams skip is the boundary: a theme works only when its description says what it excludes.
Key Takeaways
- Keep two axes apart: themes say where (a product area), types say what kind (bug, request, praise). "Bugs" next to "Billing" in one list breaks every count.
- Draft themes from your product's navigation, test them on about 200 real comments, and define each one by what it excludes.
- Rules of thumb: 8 to 15 themes, two levels, 3 to 8 subthemes per theme, under 10% of items in "Other."
- One owner approves changes, reads "Other" monthly, and reviews every theme quarterly.
- AI tools such as Deck and Enterpret apply themes for you. You still own the names, descriptions, and merges.
What Is a Customer Feedback Taxonomy?
A customer feedback taxonomy is the fixed set of labels you sort feedback into so you can count it over time. Without one, the same problem shows up as "export bug," "CSV issue," and "reporting," and never looks big enough to fix.
It has four layers, and most teams blur them:
| Layer | Question it answers | Example | How many (rule of thumb) |
|---|---|---|---|
| Theme | Where in the product is this? | Reporting | 8 to 15 |
| Subtheme | What exactly is the problem? | Can't schedule a weekly report | 3 to 8 per theme |
| Type | What kind of feedback is it? | Bug, Feature Request, Praise | 4 to 6, fixed |
| Attribute | Who said it, and where? | Plan, ARR, segment, source | Synced from your CRM, not tagged by hand |
Keep the last row out of your tags. Typed by hand, "enterprise" and "Enterprise" become two segments within a quarter.
What Makes a Good Feedback Taxonomy?
A good taxonomy lets two people file the same comment in the same place without talking to each other. Four rules get you there:
- Mutually exclusive at the top. Each item gets one primary theme. If you often need two, the boundary between them is wrong.
- Product areas, not problem types. "Bugs," "UX," and "Feature requests" are types. As themes, they swallow everything and tell no team what to fix.
- Owned. Every theme maps to a team or PM who can act on it. Nobody reads a theme nobody owns.
- Shallow. Two levels is enough for most SaaS teams. Enterpret's taxonomy guide has a good test for a third: add a level only when someone makes a decision at it (Enterpret).
"The app is slow" is the classic edge case. Make Performance a theme only if a platform team owns it; otherwise, file it under the slow feature.
Step 1: Set a Fixed List of Feedback Types
Settle the "what kind" axis first, because type labels are the most common pollution in theme lists. Four to six types covers most SaaS products: Bug, Pain Point, Feature Request, Usability Issue, Praise, and Question.
In Deck this axis is already fixed: every insight gets one of six categories, Pain Points, Feature Requests, Usability Issues, Bugs & Errors, Delights, or General Feedback (Deck Themes).
Step 2: Draft Themes from Your Product's Navigation
Spend 30 minutes listing 6 to 12 product areas in the words customers already use. Your sidebar, pricing page, and help-center categories are the best sources, because customers learned the product from them.
Add two areas every SaaS product needs even when they are not in the nav: Onboarding (signup to first value) and Pricing (price level and plan limits). Skip generic templates and competitors' lists; every theme should name something your team can ship against.
Step 3: Sort 200 Real Comments into the Draft
Pull about 200 items from the last 60 to 90 days and give each a theme and a type. Budget two to three hours; this step turns a guess into a taxonomy. If your feedback still lives in five tools, centralize it first.
Weight the sample by source: if 40% of your feedback is tickets, make 80 items tickets. Then check the results against these rules of thumb:
- "Other" holds more than 10%: read the pile. Five or more items about one area means a missing theme.
- One theme holds more than 20%: it probably hides two areas. Split it, or plan subthemes.
- A theme holds under 2%: merge it into a neighbor unless it is new or strategic.
- You hesitated between two themes: note the pair. That boundary needs a sharper description in Step 5.
Step 4: Add Subthemes Where a Theme Is Too Big to Act On
Subthemes are the specific problems inside a theme, and they are what roadmap discussions are about. Add them only where a theme gets roughly 20 or more items a month; below that, just read the theme.
Name each subtheme as a customer problem, without the solution. "Can't schedule a weekly report" leaves room for several fixes, while "Scheduled exports" has already picked one. If a theme needs more than about 8 subthemes, it is probably two themes.
Expect subthemes to change monthly and themes to hold for quarters: themes carry your trend lines, subthemes track what customers say now.
Step 5: Write Descriptions and Run a Two-Person Test
Give every theme a two-sentence description: what belongs, and what does not, naming the neighbor it gets confused with. For example: "Reporting: scheduled reports, exports, and sharing results outside the app. Not building or viewing charts (see Dashboards)."
Then hand 20 random items and the descriptions to two teammates and have each sort them alone, which takes about 30 minutes. If they agree on fewer than 17 of 20, rewrite the descriptions where they split and retest with 20 new items.
The test also predicts how well AI will sort. Many tools, Deck included, classify new feedback using the names and descriptions you write.
Step 6: Set an Owner and a Review Cadence
Name one owner, usually the PM or product ops lead who runs feedback review. Anyone can propose a change, but only the owner approves it, which stops "Search," "Search issues," and "Bad search" from coexisting.
- Monthly, 30 minutes: read "Other" and any themes created since last month. Promote a new theme only when at least 5 unique accounts raised the same area in 30 days (a rule of thumb). Count accounts, not mentions, so one loud customer can't create a theme.
- Quarterly, 1 to 2 hours: check every theme for four problems: duplicate, vague, oversized, or stale. The taxonomy review playbook has a checklist.
- After a launch or a large import: give new areas a theme before their feedback piles up in "Other."
Log each change with its date and reason. Six months later, it is the only way to explain why a trend line jumped.
How Do You Merge Duplicate Themes Without Breaking Trends?
Merge when two themes hold the same problems in the same product area. Read about 10 quotes from each first, because similar names can hide different problems, and then protect the history:
- Move, don't delete. Move every item into the theme you keep, so its trend line keeps the old volume.
- Rename instead of recreating. A renamed theme keeps its history; a new one starts at zero.
- Check the math after a split. The new counts should roughly add up to the old one. If they don't, items fell into "Other."
When unsure, don't merge. A near-duplicate costs a few minutes in review; a wrong merge hides a distinct problem for months.
Worked Example: A Taxonomy for a B2B Analytics Product
This example is illustrative, not real data. A 25-person B2B SaaS company sells a dashboard and reporting tool on seat-based plans. The PM drafts seven themes from the sidebar (Onboarding, Data Integrations, Reporting, Search, Billing, Pricing, Performance) and sorts 200 items: 80 tickets, 50 call notes, 40 NPS comments, and 30 Slack posts.
- First pass: 31 items (about 15%) land in "Other," Reporting holds 52 (26%), and Search holds only 3.
- Fixes: 14 "Other" items are about roles and SSO, so Admin and Permissions becomes a theme. Reporting mixes building charts with getting data out, so Dashboards splits off and absorbs Search.
- Two-person test: the teammates agree on 15 of 20, and every split is between Data Integrations and Reporting. The PM adds "Not exports out of the app" to Data Integrations; the retest scores 18 of 20.
The final taxonomy has eight themes plus "Other":
| Theme | What belongs | What does not | Example subtheme |
|---|---|---|---|
| Onboarding | Signup, workspace setup, first data connection, invites | Role changes after setup (Admin and Permissions) | Can't tell when the first sync finished |
| Data Integrations | Connecting and syncing data sources | Exports out of the app (Reporting) | Salesforce sync drops custom fields |
| Dashboards | Building, viewing, searching, and filtering charts | Scheduled or exported reports (Reporting) | Charts time out on long date ranges |
| Reporting | Scheduled reports, CSV and PDF exports, sharing outside the app | Building charts (Dashboards) | Can't schedule a weekly report |
| Admin and Permissions | Roles, SSO, client access | Seat counts and invoices (Billing) | Need a view-only role for clients |
| Billing | Invoices, payment methods, seat changes, refunds | Price level and plan limits (Pricing) | Can't download past invoices |
| Pricing | Price level, plan limits, what each plan includes | Invoice errors (Billing) | Entry plan allows too few dashboards |
| Performance | App-wide load times and outages, owned by the platform team | Slowness in one feature (file under that feature) | Whole app slows on Monday mornings |
Every "What does not" cell names a neighbor. One of those cells is what lifted agreement from 15 to 18 of 20.
Common Mistakes to Avoid
- Launching with 50 tags. People memorize five and use them for everything. Start small and let "Other" show you what is missing.
- Copying the org chart. Customers don't recognize "Growth team," and the next reorg breaks your history.
- Naming feelings or solutions. "Bad search" and "Add dark mode" bake in a judgment or a fix. Name the area; let subthemes describe the problem.
- Shipping an AI-drafted list as is. Ask an LLM for a taxonomy and you tend to get generic buckets like "Usability" and "Integrations." Run Steps 3 and 5 on any AI draft first.
Should You Use an AI or Adaptive Taxonomy?
Yes, once you get more feedback than one person can read each week. AI is good at applying labels to thousands of items; deciding what your product areas are is still your job.
Enterpret's Adaptive Taxonomy is a well-documented example. It is built during onboarding from your keywords, help center, and changelog, and pairs three keyword levels (product area, feature, sub-feature) with Themes and Sub-themes labeled Help, Improvement, Complaint, or Praise (Enterpret Help). A Dynamic Taxonomy run every Saturday adds nodes for recurring patterns in Miscellaneous (Enterpret Help).
Adaptive still needs an editor. One G2 reviewer notes that Enterpret's "taxonomy needs some ongoing attention" (G2). The same holds for Deck, which builds themes from your feedback but sorts by the names and descriptions you approve (Deck docs).
Tools That Help
- A spreadsheet plus Claude or ChatGPT (free to start): paste your 200-item sample (names and emails removed) with the rules from this guide, and ask for a draft with descriptions. It speeds up Steps 2 to 5 but won't tag new feedback; for that, see alternatives to tagging feedback in spreadsheets.
- Dovetail: best when most of your feedback is interviews. Workspace tag boards share one tag set across research projects, and you can merge similar tags within a board (Dovetail Help).
- Enterpret: the adaptive taxonomy above, on annual contracts; its public AWS listing is $120,000 for 12 months (AWS Marketplace).
Where Deck Fits
Deck fits SaaS and AI startups that want a taxonomy applied to every ticket, call, and survey without hand-tagging. It files each insight, with its quote, sentiment, and category, under a matching theme, and creates a theme when recurring feedback fits none (Deck Themes).
- Steps 2 and 5: Deck's agents sort new feedback using your product areas from Settings → Context and each theme's name and description (up to 1,000 characters).
- Step 4: on Starter and up, Deck synthesizes subthemes weekly for themes with five or more insights (Deck subthemes docs).
- Step 6: create themes with a name and notes from the web app's command palette, and rename them on the theme page. Through Deck MCP, Claude, ChatGPT, or Cursor can create, split, merge, describe, and archive themes, asking before each change and spending no credits (Deck MCP docs). The design taxonomy playbook walks through it.
Limitations: Deck has two levels, not a custom hierarchy like Enterpret's. You can't write subthemes by hand, and Free has none. The categories are fixed, a merge can't be fully undone, and splits, merges, archives, and description edits after creation run through Deck MCP rather than the web app.
Pricing: Free is $0 with 200 AI credits a month. Starter, which adds subthemes, is $99 a month, or $79 billed annually. To try it, run the design taxonomy playbook on your own feedback on Free (Deck pricing).
Frequently Asked Questions
Sources
- Deck Themes
- Deck pricing
- Deck themes docs
- Deck subthemes docs
- Deck docs: Design the theme taxonomy
- Deck MCP docs
- Enterpret: The 6 Steps to Build a Multi-Level Customer Feedback Taxonomy
- Enterpret Help: What is the taxonomy?
- Enterpret Help: Dynamic taxonomy for themes and sub-themes
- Enterpret on AWS Marketplace
- G2: Enterpret reviews
- Dovetail Help: Workspace tags
Sources checked November 2, 2026.