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
Short answer

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:

LayerQuestion it answersExampleHow many (rule of thumb)
ThemeWhere in the product is this?Reporting8 to 15
SubthemeWhat exactly is the problem?Can't schedule a weekly report3 to 8 per theme
TypeWhat kind of feedback is it?Bug, Feature Request, Praise4 to 6, fixed
AttributeWho said it, and where?Plan, ARR, segment, sourceSynced 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:

  1. Mutually exclusive at the top. Each item gets one primary theme. If you often need two, the boundary between them is wrong.
  2. Product areas, not problem types. "Bugs," "UX," and "Feature requests" are types. As themes, they swallow everything and tell no team what to fix.
  3. Owned. Every theme maps to a team or PM who can act on it. Nobody reads a theme nobody owns.
  4. 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.

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":

ThemeWhat belongsWhat does notExample subtheme
OnboardingSignup, workspace setup, first data connection, invitesRole changes after setup (Admin and Permissions)Can't tell when the first sync finished
Data IntegrationsConnecting and syncing data sourcesExports out of the app (Reporting)Salesforce sync drops custom fields
DashboardsBuilding, viewing, searching, and filtering chartsScheduled or exported reports (Reporting)Charts time out on long date ranges
ReportingScheduled reports, CSV and PDF exports, sharing outside the appBuilding charts (Dashboards)Can't schedule a weekly report
Admin and PermissionsRoles, SSO, client accessSeat counts and invoices (Billing)Need a view-only role for clients
BillingInvoices, payment methods, seat changes, refundsPrice level and plan limits (Pricing)Can't download past invoices
PricingPrice level, plan limits, what each plan includesInvoice errors (Billing)Entry plan allows too few dashboards
PerformanceApp-wide load times and outages, owned by the platform teamSlowness 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

Start with 8 to 15 themes for a typical SaaS product, plus an Other bucket. Fewer than 8 usually means themes are too broad to act on; past 15, people stop scanning the list and pick whatever is close. For more detail, add subthemes rather than more themes.

A theme is the product area feedback is about, such as Billing or Search. A category, or type, is the kind of feedback, such as a bug, a feature request, or praise. Tags are any extra labels, and most should be fields synced from your CRM, such as plan or segment, rather than typed by hand.

It can, but keep it rare, because every extra theme inflates a count. Add a second theme only when the customer clearly talks about two areas, such as an invoice that shows the wrong seat count after a role change. If many items need two themes, the boundary between those themes is wrong.

Re-tag the last 90 days for any theme you add, split, or merge, so its trend line starts with real history. Older feedback can stay as it is unless you need a long-term trend. Some AI tools re-sort existing feedback into new themes and some only sort new items, so check which yours does.

Sources