Reflexive Thematic Analysis in NVivo: Step-by-Step Guide

Last Updated on 2 weeks ago by Bernard Mugo

In this guide, I’m going to show you exactly how to conduct reflexive thematic analysis in NVivo, following the six steps proposed by Braun and Clarke. We go from raw interview transcripts all the way to a complete findings report. I’ll use NVivo 15 throughout, but the steps work equally well in earlier versions.

What Is Reflexive Thematic Analysis? (Braun and Clarke Explained)


Reflexive thematic analysis is a qualitative research method developed by Braun and Clarke for identifying, analysing, and reporting patterns — called themes — within qualitative data. What makes it distinct from other thematic approaches is the emphasis on reflexivity: the researcher’s active awareness of how their own background, experiences, and biases shape their interpretation of the data.

Braun and Clarke formalised this in their 2022 book Thematic Analysis: A Practical Guide, building on their widely cited 2006 paper in Qualitative Research in Psychology. The six-step framework they outline is:

  1. Familiarizing with the data
  2. Generating initial codes
  3. Generating themes
  4. Reviewing themes
  5. Defining and naming themes
  6. Producing the report
Circular wheel diagram of Braun and Clarke's six-step reflexive thematic analysis framework
Circular wheel diagram of Braun and Clarke’s six-step reflexive thematic analysis framework

My name is Bernard Mugo. Over the past three years, I’ve helped more than 200 PhD students analyze qualitative data and complete their dissertations. The process I walk through here is exactly what I use with my own consulting clients.

Five-star client reviews for Surviving Research qualitative analysis consulting service
Five-star client reviews for Surviving Research qualitative analysis consulting service

Why Reflexivity Matters — and What a Reflexive Journal Looks Like

The word reflexive is a key addition to what used to be called simply the “Braun and Clarke six steps.” It signals something important: in this approach, you — the researcher — are not a neutral observer. Your experiences, background, and perceptions inevitably shape how you interpret what participants say.

Reflexive thematic analysis asks you to stay aware of this throughout your analysis by keeping a reflexive journal — a running record of your thoughts, feelings, and evolving interpretations as you code and develop themes. You incorporate these reflections into your thesis or dissertation in the role of the researcher section.

Examples of Reflexive Journal Entries

Here are two real examples from Braun and Clarke’s book.

The first researcher wrote after their first focus group: they describe feeling overwhelmed by the emotional weight of participants’ stories, recognising how their own discomfort may have limited the depth of their probing. They committed to going deeper in the next session.

The second entry, dated January 2017, describes a researcher mid-coding who noticed a pattern emerging around participants’ perceptions of Black men — and flagged their own awareness of how prior assumptions could influence interpretation.

These entries show what reflexive journals look like in practice: honest, dated, and specific. You don’t need perfect prose — just genuine reflection.

Reflexive journal entries from Braun and Clarke's 2022 book showing researcher reflections during thematic analysis
Reflexive journal entries from Braun and Clarke’s 2022 book showing researcher reflections during thematic analysis
Second reflexive journal entry example showing researcher reflections on coding process in thematic analysis
Second reflexive journal entry example showing researcher reflections on coding process in thematic analysis

Step 1 – Familiarize Yourself with the Data

In this first step of reflexive thematic analysis, you read through all your transcripts as if reading a story. Don’t code yet — just read and take short notes on what stands out.

For this example, I’m analysing two transcripts from a study on student views of teaching strategies at a college. I read each transcript from start to finish and note emerging impressions: what are students concerned about? What surprises me? What patterns seem to be appearing?

This step is foundational. You can’t code well what you haven’t understood. Scribbr’s guide to thematic analysis has an excellent explanation of why data familiarization is not a step to rush, especially for dissertation research.

The transcript we are coding

Step 2 – Generate Initial Codes in NVivo

Generating initial codes is where the real analysis begins. A code is a label — an interpretive statement — applied to any piece of data that’s meaningful to your research question. Codes don’t have to be one or two words; they just need to be concise and capture meaning accurately.

Definition of a qualitative code as an interpretive label linked to research questions in NVivo
Definition of a qualitative code as an interpretive label linked to research questions in NVivo

For a deeper overview of how qualitative coding works in practice, NVivo’s official resource hub at Lumivero is a useful reference point.

Setting Up Your NVivo Project

Open NVivo 15 and click New Project. Give your project a name — I’m calling mine RTA Project One — then choose your save location. When prompted about autosave, set it to remind you every 15 minutes and click Yes. This is your insurance policy against losing hours of work if NVivo crashes.

Once the project opens, focus on two sections in the left panel: Files (where your transcripts live) and Codes (where your analysis happens).

NVivo 15 home screen showing new project options for starting reflexive thematic analysis
NVivo 15 home screen showing new project options for starting reflexive thematic analysis
NVivo 15 new project dialog with project name field for reflexive thematic analysis
NVivo 15 new project dialog with project name field for reflexive thematic analysis
NVivo 15 autosave reminder settings dialog during project setup
NVivo 15 autosave reminder settings dialog during project setup
NVivo 15 top menu bar showing File, Home, Import, Create, Explore, Share and Modules tabs
NVivo 15 top menu bar showing File, Home, Import, Create, Explore, Share and Modules tabs
NVivo toolbar showing coding, case classification, and AI Assistant tools for thematic analysis.
NVivo 15 toolbar showing coding, case classification, and AI Assistant tools for thematic analysis
N-Vivo interface highlighting the navigation panel with import, coding and data management tools.
N-Vivo interface highlighting the navigation panel with import, coding and data management tools
NVivo 15 left navigation panel highlighting Files and Codes sections for thematic analysis
NVivo 15 left navigation panel highlighting Files and Codes sections for thematic analysis

Importing Transcripts into NVivo

Click on the Files section in the left panel, then go to Import → Files. Select your transcript files and click Open. Alternatively, you can drag and drop transcripts directly into the Files section. Double-click any file to open it in the workspace.

NVivo 15 Files section in left panel ready for importing interview transcripts
NVivo 15 Files section in left panel ready for importing interview transcripts
NVivo 15 Import button in top menu used to import interview transcripts for thematic analysis
NVivo 15 Import button in top menu used to import interview transcripts for thematic analysis
NVivo 15 Import Files dialog for selecting interview transcript files
NVivo 15 Import Files dialog for selecting interview transcript files
NVivo 15 showing imported transcripts in Files section after successful import
NVivo 15 showing imported transcripts in Files section after successful import
NVivo 15 showing imported transcripts in Files section after successful import

How to Code: Color Codes vs. Questions as Containers

Before coding, you need a system for tracking where each code came from. I use two approaches:

Approach 1 — Color codes: Assign a color to each interview question (e.g. Question 1 = red, Question 2 = green). When you create a code, assign the matching color.

Approach 2 — Questions as containers: Create a folder for each question inside your Codes panel, then file codes inside the relevant folder. This is my preferred method — it keeps the structure clean and makes combining codes into themes easier.

Microsoft Word transcript with Question 1 highlighted in red for color-coded coding in NVivo
Microsoft Word transcript with Question 1 highlighted in red for color-coded coding in NVivo
Microsoft Word transcript with Question 2 highlighted in green for color-coded coding in NVivo
Microsoft Word transcript with Question 2 highlighted in green for color-coded coding in NVivo
Microsoft Word transcript with Question 4 highlighted in dark purple for color-coded coding in NVivo
Microsoft Word transcript with Question 4 highlighted in dark purple for color-coded coding in NVivo

Coding Walkthrough — Student Experience Study

In the Codes panel, right-click and create a new folder. Name it Initial Codes. Open your first transcript and read the full response to Question 1 before coding anything. Then go back and highlight meaningful sections.

Here’s how it works in practice with Student 1’s response about their institution experience:

  • Highlight “they repaint” → right-click → Code Selection → Initial Codes → new code: Repainted classrooms
  • Highlight “redid the roof” → new code: Redone roof
  • Highlight “classrooms not clean” → new code: Dirty classrooms
NVivo 15 right-click menu in Codes panel showing New Folder option for creating Initial Codes folder
NVivo 15 right-click menu in Codes panel showing New Folder option for creating Initial Codes folder
Initial Codes folder created in NVivo 15 Codes panel for Braun and Clarke thematic analysis
Initial Codes folder created in NVivo 15 Codes panel for Braun and Clarke thematic analysis
NVivo 15 right-click Code Selection menu used to code highlighted interview text
NVivo 15 right-click Code Selection menu used to code highlighted interview text
NVivo 15 Initial Codes folder selected in code panel during reflexive thematic analysis
NVivo 15 Initial Codes folder selected in code panel during reflexive thematic analysis
NVivo 15 showing Repainted classrooms code created under Initial Codes folder
NVivo 15 showing Repainted classrooms code created under Initial Codes folder
Highlighted section of student interview about roof repairs coded in NVivo thematic analysis
Highlighted section of student interview about roof repairs coded in NVivo thematic analysis
NVivo 15 showing Redone roof code created under Initial Codes folder
NVivo 15 showing Redone roof code created under Initial Codes folder
NVivo 15 right-click color menu for assigning color codes to qualitative codes
NVivo 15 right-click color menu for assigning color codes to qualitative codes
NVivo 15 code panel showing color-coded initial code in red for Question 1
NVivo 15 code panel showing color-coded initial code in red for Question 1
Highlighted student interview excerpt about dirty classrooms ready for coding in NVivo
Highlighted student interview excerpt about dirty classrooms ready for coding in NVivo
NVivo 15 showing Dirty classrooms code created under Initial Codes folder
NVivo 15 showing Dirty classrooms code created under Initial Codes folder
Highlighted interview excerpt about paying for learning resources coded in NVivo thematic analysis
Highlighted interview excerpt about paying for learning resources coded in NVivo thematic analysis
NVivo 15 showing Needing to pay for learning resources code created under Initial Codes folder
NVivo 15 showing Needing to pay for learning resources code created under Initial Codes folder
Highlighted student interview excerpt about poor management communication coded in NVivo
Highlighted student interview excerpt about poor management communication coded in NVivo
NVivo 15 showing Poor communication from management code created under Initial Codes folder
NVivo 15 showing Poor communication from management code created under Initial Codes folder
NVivo 15 right-click code menu showing color assignment options for initial codes
NVivo 15 right-click code menu showing color assignment options for initial codes

When you encounter a statement that matches an existing code, drag that quote directly into the existing code rather than creating a new one. The References count on the code will increase, showing how many participants made the same point.

When you’re done coding Question 1 for both transcripts, right-click the question container → Aggregate Coding from Children. For a deeper look at this step, see my full guide on qualitative analysis of interviews in NVivo.

NVivo 15 Codes panel showing Initial Codes folder with color-coded codes from Question 1
NVivo 15 Codes panel showing Initial Codes folder with color-coded codes from Question 1
NVivo 15 copy button used to copy interview question text for questions-as-containers approach
NVivo 15 copy button used to copy interview question text for questions-as-containers approach
NVivo 15 New Code dialog used to create question containers in Codes panel
NVivo 15 New Code dialog used to create question containers in Codes panel
NVivo 15 showing pasted interview question as a container code in Initial Codes folder
NVivo 15 showing pasted interview question as a container code in Initial Codes folder
Student interview extract about teaching strategies displayed in NVivo 15 for coding
Student interview extract about teaching strategies displayed in NVivo 15 for coding
Highlighted interview text about lecturer explanations selected for coding in NVivo
Highlighted interview text about lecturer explanations selected for coding in NVivo
NVivo 15 Question 2 container selected in Codes panel for child code creation
NVivo 15 Question 2 container selected in Codes panel for child code creation
NVivo 15 child code dialog for creating sub-codes under Question 2 container
NVivo 15 child code dialog for creating sub-codes under Question 2 container
NVivo 15 showing Inadequate explanation from lecturers code created under Question 2
NVivo 15 showing Inadequate explanation from lecturers code created under Question 2
N-Vivo view showing coded reference linked to “Inadequate explanation from lecturers” in reflexive thematic analysis.
NVivo 15 coded reference showing participant quote linked to Inadequate explanation from lecturers
NVivo 15 Code Selection menu used during coding of timetable-related interview responses
NVivo 15 Code Selection menu used during coding of timetable-related interview responses
NVivo 15 showing Lecturers struggle to adhere to timetable code created under Question 2
NVivo 15 showing Lecturers struggle to adhere to timetable code created under Question 2
Highlighted interview excerpt about lecturer punctuality selected for coding in NVivo
Highlighted interview excerpt about lecturer punctuality selected for coding in NVivo
NVivo 15 showing Lecturers lack punctuality code created under Question 2 container
NVivo 15 showing Lecturers lack punctuality code created under Question 2 container
Highlighted interview text about insufficient feedback from lecturers coded in NVivo thematic analysis
Highlighted interview text about insufficient feedback from lecturers coded in NVivo thematic analysis
NVivo 15 right-click menu showing Aggregate Coding from Children option for question containers
NVivo 15 right-click menu showing Aggregate Coding from Children option for question containers
NVivo 15 Codes panel showing Question 2 with aggregated coding from child codes
NVivo 15 Codes panel showing Question 2 with aggregated coding from child codes
NVivo 15 showing interview question being copied to create questions-as-containers structure
NVivo 15 showing interview question being copied to create questions-as-containers structure
NVivo 15 showing pasted interview question as Question 1 container in Initial Codes folder
NVivo 15 showing pasted interview question as Question 1 container in Initial Codes folder
NVivo 15 codes panel showing Question 1 and Question 2 containers with child codes
NVivo 15 codes panel showing Question 1 and Question 2 containers with child codes
Second student interview transcript opened in NVivo 15 for coding Question 1 responses
Second student interview transcript opened in NVivo 15 for coding Question 1 responses
Highlighted interview excerpt about practical training selected for coding in NVivo
Highlighted interview excerpt about practical training selected for coding in NVivo
NVivo 15 showing Lack of sufficient practical training code created under Question 1
NVivo 15 showing Lack of sufficient practical training code created under Question 1
Highlighted interview excerpt about rude administration staff selected for coding in NVivo
Highlighted interview excerpt about rude administration staff selected for coding in NVivo
NVivo 15 showing two related codes merged under Poor communication from management
NVivo 15 showing two related codes merged under Poor communication from management
NVivo 15 participant quotes panel showing two students coded under Poor communication from management
NVivo 15 participant quotes panel showing two students coded under Poor communication from management
Highlighted interview excerpt about staff not communicating class cancellations coded in NVivo
Highlighted interview excerpt about staff not communicating class cancellations coded in NVivo
NVivo 15 showing Poor communication from staff code created under Question 1 container
NVivo 15 showing Poor communication from staff code created under Question 1 container
Highlighted interview text about inadequate lecture explanations coded in NVivo Question 2
Highlighted interview text about inadequate lecture explanations coded in NVivo Question 2
NVivo 15 showing two related codes merged under Inadequate explanation from lecturers
NVivo 15 showing two related codes merged under Inadequate explanation from lecturers
Highlighted interview text about lecturers not planning lessons coded in NVivo
Highlighted interview text about lecturers not planning lessons coded in NVivo
NVivo 15 showing Insufficient planning from lecturers code created under Question 2
NVivo 15 showing Insufficient planning from lecturers code created under Question 2

After your first pass, do one additional step I consider essential: code revision. Create a second folder called Revised Codes, copy your initial codes into it, and review each one. Never edit your original folder — always work from the copy.

NVivo 15 right-click menu showing New Folder option for creating Revised Codes folder
NVivo 15 right-click menu showing New Folder option for creating Revised Codes folder
NVivo 15 Revised Codes folder created as second-pass coding workspace
NVivo 15 Revised Codes folder created as second-pass coding workspace
NVivo 15 showing initial codes selected with Ctrl+A for copying to Revised Codes folder
NVivo 15 showing initial codes selected with Ctrl+A for copying to Revised Codes folder
NVivo 15 showing pasted codes in Revised Codes folder ready for review
NVivo 15 showing pasted codes in Revised Codes folder ready for review
NVivo 15 participant quotes panel showing references under a revised code
NVivo 15 participant quotes panel showing references under a revised code
NVivo 15 participant quotes panel showing evidence under Lack of sufficient practical training code
NVivo 15 participant quotes panel showing evidence under Lack of sufficient practical training code

Step 3 – Generate Preliminary Themes

With your revised codes in hand, you’re ready to move from codes to themes.

Create a new folder in the Codes panel called Preliminary Themes. Copy your revised codes into it. Now, instead of thinking about which question a code came from, look for patterns of shared meaning across codes.

For this study, two patterns emerged from Question 1 codes:

Negative experiences at the institution (dirty classrooms, poor communication, paid resources, lack of practical training)

Positive experiences at the institution (repainted classrooms, redone roof)

NVivo 15 showing Preliminary Themes folder selected for creating initial themes
NVivo 15 showing Preliminary Themes folder selected for creating initial themes
NVivo 15 revised codes copied to Preliminary Themes folder for theme generation
NVivo 15 revised codes copied to Preliminary Themes folder for theme generation
NVivo 15 Preliminary Themes folder created for Braun and Clarke theme generation step
NVivo 15 Preliminary Themes folder created for Braun and Clarke theme generation step
NVivo 15 showing all initial codes under Question 1 container in Preliminary Themes folder
NVivo 15 showing all initial codes under Question 1 container in Preliminary Themes folder
NVivo 15 Code Properties dialog used to rename Question 1 container to a theme name
NVivo 15 Code Properties dialog used to rename Question 1 container to a theme name
NVivo 15 theme name field showing Student Experiences at the Institution being entered
NVivo 15 theme name field showing Student Experiences at the Institution being entered
NVivo 15 showing Theme 1 renamed to Student Experiences at the Institution
NVivo 15 showing Theme 1 renamed to Student Experiences at the Institution
NVivo 15 description field for Theme 1 showing positive and negative student experiences
NVivo 15 description field for Theme 1 showing positive and negative student experiences
NVivo 15 codes panel showing Theme 1 with initial codes ready for sub-theme grouping
NVivo 15 codes panel showing Theme 1 with initial codes ready for sub-theme grouping
NVivo 15 showing positive experience codes grouped under Sub-theme 1 in thematic analysis
NVivo 15 showing positive experience codes grouped under Sub-theme 1 in thematic analysis
NVivo 15 showing Negative Experiences sub-theme created under Student Experiences theme
NVivo 15 showing Negative Experiences sub-theme created under Student Experiences theme
NVivo 15 right-click menu showing Aggregate Coding from Children for sub-themes
NVivo 15 right-click menu showing Aggregate Coding from Children for sub-themes
NVivo 15 showing aggregated coding results under positive and negative experience sub-themes
NVivo 15 showing aggregated coding results under positive and negative experience sub-themes

I renamed the Question 1 container to Student Experiences at the Institution and wrote a description: This theme represents both positive and negative experiences students reported at the college.

You can learn how the same process applies to focus group data in my post on thematic analysis of focus group data using NVivo.

NVivo 15 Code Properties dialog for writing sub-theme description in reflexive thematic analysis
NVivo 15 Code Properties dialog for writing sub-theme description in reflexive thematic analysis
NVivo 15 showing description added to Sub-theme 2 Negative Experiences at the institution
NVivo 15 showing description added to Sub-theme 2 Negative Experiences at the institution
NVivo 15 showing description added to Sub-theme 1 Positive Experiences at the institution
NVivo 15 showing description added to Sub-theme 1 Positive Experiences at the institution
NVivo 15 Codes panel showing Theme 1 with two sub-themes and nested codes
NVivo 15 Codes panel showing Theme 1 with two sub-themes and nested codes
NVivo 15 showing Question 2 container selected for renaming as a theme
NVivo 15 showing Question 2 container selected for renaming as a theme
NVivo 15 showing Theme 2 renamed to Experiences with Teaching Strategies Used in the Classroom
NVivo 15 showing Theme 2 renamed to Experiences with Teaching Strategies Used in the Classroom
NVivo 15 Final Themes folder created for Braun and Clarke defining and naming themes step
NVivo 15 Final Themes folder created for Braun and Clarke defining and naming themes step

Steps 4 and 5 – Review, Define, and Name Your Themes

In practice, Steps 3, 4, and 5 flow together naturally — you’re generating themes, reviewing whether they hold up, and naming them clearly, often in a single pass.

Create a final folder: Final Themes. Copy your preliminary themes into it. Now review everything with fresh eyes:

  • Do the codes under each theme actually belong together?
  • Is the theme name accurate, or does it need refinement?
  • Are there any codes that span two themes and need a decision?
NVivo 15 Final Themes folder showing preliminary themes pasted in for final review
NVivo 15 Final Themes folder showing preliminary themes pasted in for final review
NVivo 15 Final Theme 1 Student Experiences at the Institution with sub-themes and descriptions
NVivo 15 Final Theme 1 Student Experiences at the Institution with sub-themes and descriptions
NVivo 15 Final Theme 2 Negative Experiences with Teaching renamed and described
NVivo 15 Final Theme 2 Negative Experiences with Teaching renamed and described

Each theme should have a clear, written description before you move to the report. See my guide on how to report thematic analysis findings in NVivo 15 for exactly how to do that.

Step 6 – Produce the Findings Report

The final step is writing up your findings. In NVivo, before you leave the software, do two things:

  1. Export your codebook: Go to Share → Export → Export Code Book. This gives you a document with all your codes, sub-themes, themes, and descriptions — useful as an appendix and as a scaffold for your findings chapter.
  2. Export your coding structure as Excel: Select all codes in your Final Themes folder (Ctrl+A), then go to Export → Export List. This produces an Excel file showing your full coding hierarchy, which you can use to build tables in your findings report.
NVivo 15 Share menu selected for exporting codebook after reflexive thematic analysis
NVivo 15 Share menu selected for exporting codebook after reflexive thematic analysis
NVivo 15 Export button clicked for exporting codebook from completed thematic analysis
NVivo 15 Export button clicked for exporting codebook from completed thematic analysis
NVivo 15 codebook export showing theme names, descriptions and codes from reflexive thematic analysis
NVivo 15 codebook export showing theme names, descriptions and codes from reflexive thematic analysis
Excel sheet showing themes and sub themes from Braun and Clarke’s reflexive thematic analysis using N-Vivo.
Excel spreadsheet exported from NVivo 15 showing full coding structure from reflexive thematic analysis
NVivo 15 codes panel showing color-coded initial codes using the color-code approach
NVivo 15 codes panel showing color-coded initial codes using the color-code approach

Frequently Asked Questions

What is the difference between reflexive thematic analysis and regular thematic analysis?  Reflexive thematic analysis, as defined by Braun and Clarke, emphasises the researcher’s active role in shaping the analysis. Rather than treating themes as things that simply “emerge” from the data, it acknowledges that the researcher’s interpretations, experiences, and biases influence how data is read and coded.

Which version of NVivo should I use?  Any version from NVivo 12 onwards works well. This tutorial uses NVivo 15, which includes an AI Assistant feature, but the coding and theme-generation steps are identical across versions.

How many themes is normal?  Most dissertation-level studies produce between 3 and 6 main themes, each with 2–4 sub-themes. What matters is that each theme has a clear name, a written description, and is supported by codes from multiple participants.

Do I have to use NVivo for reflexive thematic analysis?  No. NVivo is a tool for managing the process, not a requirement. You can conduct reflexive thematic analysis manually or with other software like MAXQDA or ATLAS.ti.

What should I write in my reflexive journal?  Date each entry. Write about how you felt during the session, what surprised you, what assumptions you noticed yourself making, and how your interpretations may be shifting. Even a paragraph per coding session is enough.

Key Takeaways

  • Reflexive thematic analysis follows the Braun and Clarke six-step framework: familiarize, code, generate themes, review, name, report
  • The word “reflexive” means you actively document your own influence on the analysis through a reflexive journal
  • In NVivo, organise your work across four folders: Initial Codes → Revised Codes → Preliminary Themes → Final Themes
  • Use either color codes or questions-as-containers to track where codes originated
  • Always export your codebook and coding structure before writing your findings chapter

Need Help with Your Qualitative Analysis?

If you’re working through reflexive thematic analysis for your dissertation and need expert support, I offer a done-for-you NVivo thematic analysis service that takes your transcripts and delivers a complete, academically sound findings report. You can also book a consulting session if you’d prefer to work through the analysis together. Reach out at bernardmugo@survivingresearch.com — I’m happy to help.

2 thoughts on “Reflexive Thematic Analysis in NVivo: Step-by-Step Guide”

  1. Pingback: How to Create a Word Cloud in NVivo After Thematic Analysis -

  2. Pingback: 12 Qualitative Coding Mistakes (And How to Fix Them) -

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top