Structure your UX research findings into themes, insights, and next steps — so you can stop drowning in notes and start making confident product decisions.
Template components
Research Context
Summarize the study goal, participant count, method used, and the core question you were trying to answer.
Example: 6 moderated usability sessions with mid-market SaaS users testing the new onboarding flow; goal was to identify where users drop off before activating their first integration.
Raw Observations
List the key behaviors, quotes, and friction points you observed — one bullet per distinct finding, unedited.
Example: 4 of 6 users skipped the tooltip on the API key screen; 3 users said "I didn't realize I had to do this myself"; 2 users opened a new tab to search for documentation mid-task.
Themes & Patterns
Group your observations into 3–5 recurring themes that represent shared pain points or behaviors across participants.
For each theme, write one specific, prioritized action your product or design team should take based on the evidence.
Example: Add inline contextual help to the API key input field explaining where to find the key and estimated time to complete; deprioritize tooltip redesign until copy is validated.
Full Copyable Template
<div class="tmpl-full-doc">
<div class="tmpl-full-header">
<div class="tmpl-full-title">UX Research Analysis Template</div>
<div class="tmpl-full-meta">[Analyst Name] · [May 2026] · [UX research sessions]</div>
</div>
<div class="tmpl-full-section">
<div class="tmpl-full-section-title">1. Analysis Setup</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Data source</div>
<div class="tmpl-full-field-value">[8 moderated UX research sessions including usability test observations, think-aloud comments, and post-session interview quotes]</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Date range</div>
<div class="tmpl-full-field-value">[April 8, 2026 – April 19, 2026]</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Analyst name</div>
<div class="tmpl-full-field-value">[Jordan Lee, UX Researcher]</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Research question this analysis answers</div>
<div class="tmpl-full-field-value">[What usability issues and positive moments most strongly shape how participants find information, complete key tasks, and understand the product experience?]</div>
</div>
<div class="tmpl-full-tip">💡 Tip: Keep your analysis setup specific so anyone reviewing this artifact knows exactly which sessions, date range, and decision-making question the coding work is tied to.</div>
</div>
<hr class="tmpl-full-divider">
<div class="tmpl-full-section">
<div class="tmpl-full-section-title">2. Step 1 — Code Your Excerpts</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Step 1 overview</div>
<div class="tmpl-full-field-value">Start with raw excerpts from UX research sessions, then apply short descriptive codes/tags that capture what is happening in the moment.</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Excerpt 1</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a">"Okay, I need to update my billing details... I assumed it would be under Account, but now I'm in Workspace Settings, and this feels like admin stuff? I'm kind of bouncing around because none of these labels are what I expected."</div>
<div style="margin-top:8px;display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">navigation confusion</span>
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">terminology mismatch</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Excerpt 2</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a">"I clicked 'Save' and... did it work? Nothing changed on the page. I'm hesitating to move on because I don't want to lose it, but I also don't want to save it twice."</div>
<div style="margin-top:8px;display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">missing feedback/confirmation</span>
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">unexpected behavior</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Excerpt 3</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a">"There are just... a lot of things shouting at me here. Banner, side panel, tips, this chart, and then another button row. I'm not sure where I'm supposed to start for the task you asked me to do."</div>
<div style="margin-top:8px;display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">information overload</span>
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">task failure</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Excerpt 4</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a">"Oh wow, that was actually nice. I typed the customer's name and it immediately pulled the right record with the recent activity underneath. That's way faster than I expected."</div>
<div style="margin-top:8px;display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">delight moment</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Excerpt 5</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a">"When you say 'archive,' I think that means it's still around and I can restore it later. But the warning message sounds more permanent, so now I'm nervous to click it."</div>
<div style="margin-top:8px;display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">terminology mismatch</span>
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">missing feedback/confirmation</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Excerpt 6</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a">"I opened the filter drawer because I wanted only unresolved tickets, but applying the filter reset my search text. I didn't expect those two things to conflict, and now I have to reconstruct what I just did."</div>
<div style="margin-top:8px;display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">unexpected behavior</span>
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">task failure</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Excerpt 7</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a">"I kept looking for a 'Projects' tab because that's how my team talks about this work, but everything here says 'Initiatives.' I probably wouldn't have found this on my own without poking every menu."</div>
<div style="margin-top:8px;display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">navigation confusion</span>
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">terminology mismatch</span>
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">task failure</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Excerpt 8</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a">"The progress checkmarks are great. Even when I wasn't totally sure what came next, seeing step 2 marked complete made me feel like, okay, I'm moving forward and I didn't miss anything."</div>
<div style="margin-top:8px;display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">delight moment</span>
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">missing feedback/confirmation</span>
</div>
</div>
<div class="tmpl-full-tip">💡 Tip: A good code is short, reusable, and descriptive of what the excerpt shows—not a solution, and not a summary of the entire session.</div>
</div>
<hr class="tmpl-full-divider">
<div class="tmpl-full-section">
<div class="tmpl-full-section-title">3. Step 2 — Group Codes into Themes</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Step 2 overview</div>
<div class="tmpl-full-field-value">Once excerpts are coded, cluster related codes into broader themes that explain recurring patterns across sessions.</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label" style="font-size:16px">Navigation & Wayfinding</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#555;margin-bottom:10px">Participants struggled to predict where features, settings, and workflows would live in the interface.</div>
<div style="display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">navigation confusion · 2 excerpts</span>
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">task failure · 1 excerpt</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label" style="font-size:16px">Task Completion Friction</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#555;margin-bottom:10px">Key tasks broke down when the system interrupted flow, removed progress, or failed to support confident completion.</div>
<div style="display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">task failure · 3 excerpts</span>
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">unexpected behavior · 2 excerpts</span>
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">missing feedback/confirmation · 1 excerpt</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label" style="font-size:16px">Mental Model Mismatches</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#555;margin-bottom:10px">Product language and interaction patterns did not always match how participants expected concepts to work.</div>
<div style="display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">terminology mismatch · 3 excerpts</span>
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">unexpected behavior · 1 excerpt</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label" style="font-size:16px">UI Clarity Issues</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#555;margin-bottom:10px">Dense screens and weak system feedback made it harder for participants to understand state, priority, and next steps.</div>
<div style="display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">information overload · 1 excerpt</span>
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">missing feedback/confirmation · 3 excerpts</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label" style="font-size:16px">Positive Moments</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#555;margin-bottom:10px">A few interactions created speed, reassurance, and delight by making progress visible or reducing effort.</div>
<div style="display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">delight moment · 2 excerpts</span>
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">missing feedback/confirmation · 1 excerpt</span>
</div>
</div>
<div class="tmpl-full-tip">💡 Tip: Themes should explain a meaningful pattern across multiple excerpts. If a theme sounds like a single UI bug, it is probably still a code, not yet a theme.</div>
</div>
<hr class="tmpl-full-divider">
<div class="tmpl-full-section">
<div class="tmpl-full-section-title">4. Theme Summary Cards</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Navigation & Wayfinding · 2 total excerpts</div>
<div class="tmpl-full-field-value">Key insight: Participants often knew what they wanted to do, but not where the product expected them to go to do it.</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a;margin-top:8px">Representative quote: "I assumed it would be under Account, but now I'm in Workspace Settings... I'm kind of bouncing around because none of these labels are what I expected."</div>
<div class="tmpl-full-field-value" style="margin-top:8px">Recommended action: Revisit IA and menu labels for high-frequency tasks; validate with a tree test or first-click test.</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Task Completion Friction · 3 total excerpts</div>
<div class="tmpl-full-field-value">Key insight: Participants lost momentum when the product reset work, obscured completion state, or behaved inconsistently during critical flows.</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a;margin-top:8px">Representative quote: "Applying the filter reset my search text. I didn't expect those two things to conflict, and now I have to reconstruct what I just did."</div>
<div class="tmpl-full-field-value" style="margin-top:8px">Recommended action: Audit top task flows for state persistence, recovery paths, and completion clarity; prioritize fixes for steps with observed failure.</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Mental Model Mismatches · 3 total excerpts</div>
<div class="tmpl-full-field-value">Key insight: Language like "Initiatives" and "archive" did not align with participant expectations, creating hesitation and search failures.</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a;margin-top:8px">Representative quote: "I kept looking for a 'Projects' tab because that's how my team talks about this work, but everything here says 'Initiatives.'"</div>
<div class="tmpl-full-field-value" style="margin-top:8px">Recommended action: Review product terminology with users and customer-facing teams; rename or clarify labels that conflict with common mental models.</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">UI Clarity Issues · 3 total excerpts</div>
<div class="tmpl-full-field-value">Key insight: Visual density and weak system feedback made participants uncertain about priority, status, and what to do next.</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a;margin-top:8px">Representative quote: "There are just... a lot of things shouting at me here... I'm not sure where I'm supposed to start."</div>
<div class="tmpl-full-field-value" style="margin-top:8px">Recommended action: Simplify dense screens, strengthen hierarchy, and add clearer success states, confirmations, and progress indicators.</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Positive Moments · 2 total excerpts</div>
<div class="tmpl-full-field-value">Key insight: Fast retrieval, clear progress signals, and reassuring feedback created trust and made the experience feel easier than expected.</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a;margin-top:8px">Representative quote: "The progress checkmarks are great... seeing step 2 marked complete made me feel like, okay, I'm moving forward."</div>
<div class="tmpl-full-field-value" style="margin-top:8px">Recommended action: Preserve and expand these patterns in adjacent workflows to reinforce confidence and reduce perceived effort.</div>
</div>
</div>
<hr class="tmpl-full-divider">
<div class="tmpl-full-section">
<div class="tmpl-full-section-title">5. Analysis Wrap-Up</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Top finding</div>
<div class="tmpl-full-field-value">[Users can often describe their goal clearly, but struggle because labels, locations, and system responses do not consistently match their expectations.]</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Most urgent theme</div>
<div class="tmpl-full-field-value">[Task Completion Friction]</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Recommended next step</div>
<div class="tmpl-full-field-value">[Prioritize 2–3 high-severity workflow fixes, then run a follow-up validation round focused on completion, confidence, and error recovery.]</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Share with (stakeholder)</div>
<div class="tmpl-full-field-value">[Product Manager, Design Lead, UX Writer, Engineering Manager]</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Date completed</div>
<div class="tmpl-full-field-value">[May 2, 2026]</div>
</div>
<div class="tmpl-full-tip">💡 Tip: Your wrap-up should translate analysis into decisions—what matters most, what to fix first, and who needs to act on it.</div>
</div>
</div>
How to use it
Gather your raw session data Pull together all notes, recordings, or transcripts from your UX research sessions into one place before you start filling in the template.
Fill in the Research Context section first Write down the study goal and method upfront so every insight you record stays tied to the original question you were trying to answer.
Dump observations without filtering Capture every notable behavior and quote in the Raw Observations section exactly as you saw or heard it — you'll filter and group later.
Cluster into themes, then assign actions Review your observations, group related findings into 3–5 themes, and write one concrete next step for each theme before sharing with your team.
What it looks like filled in
Unclear Onboarding Requirements
"I had no idea I needed to generate an API key first — I thought it would just connect automatically."
→ Add a pre-step checklist to the onboarding flow that lists everything users need to have ready before starting the integration setup.
Lack of In-Product Guidance at Critical Steps
"There was nothing telling me if I'd done it right — I just had to guess and hope it worked."
→ Introduce real-time inline validation with success and error states on the API key and webhook configuration fields.
Users Abandoning Flow to Find External Help
"I ended up Googling it because the docs inside the app didn't answer my question."
→ Embed contextual help links directly on the screens where users most frequently leave the flow, surfacing the relevant help article in a side panel rather than a new tab.
Why teams skip the template
Manually tagging hundreds of quotes is brutally slow Even with a structured template, grouping raw observations into themes across 6+ sessions can take several hours and is highly subjective depending on who does it.
Patterns are easy to miss when you're close to the data When you've run the sessions yourself, confirmation bias creeps in — you unconsciously weight quotes that match what you already believe and undercount weaker signals.
Templates don't scale beyond a handful of sessions Once you're running continuous discovery or analyzing feedback from dozens of users at once, a spreadsheet-based template breaks down and insights get buried or lost entirely.
Analyze your UX research findings automatically — no template needed