What's the difference between codes and themes in qualitative analysis?
You'll see lots of literature on qualitative analysis talk about using both codes and themes, but they are difficult concepts to explain and often the lines between them are blurred.
You'll see lots of literature on qualitative analysis talk about using both codes and themes, but they are difficult concepts to explain. Often the lines between them are blurred.
But that's good! Usually approaches like thematic analysis or grounded theory talk about creating codes and then themes as two separate stages of the analysis process. You start by going through and creating codes - basic topics of interest. Then you go through the data and the codes again, and identify themes - more complex concepts that help you connect the data with your research question and the main issues illustrated in the data.
Our video above helps explain some of the differences, and how to get from codes to themes. We've also provided a video transcript for you below. Alternatively, read on in this blog post as we explore codes and themes in more detail.
Video transcript
Dr Cathy Gibbons:
So you've already read your data, made notes and coded your text. So whichever model of qualitative analysis you're using, you are on the way to a deeper understanding of your data. But many get stuck at this point as we move from those isolated codes to themes and then towards the refinement of your analysis. And when you have a mass of data, it can be rather overwhelming, a bit like trying to eat an elephant.
So how do you eat an elephant? One chunk at a time. Well, you've already broken down your elephant. You've got codes, but every time you look at them, you don't get very far. Now, instead of one big thing, one big elephant, you've got lots of small things. And when you attempt to think about it, you end up back where you started. You've simply rebuilt your elephant. You've created a linear relationship with your data rather than a recursive or a reflexive one.
So I know you've heard about this need to be reflexive with qualitative data, but what does it mean? Well, let's take an example. So imagine the problem is that children are getting too fat because they are playing too much on computers. So we look for ways to make them play less on computers.
This is a linear reversal of thinking. You've ended up back at your elephant. A recursive example or reflexive example would return to the idea of playing computer games. The problem is not how much kids play, but the static nature of the game. So the nature of the question has now been changed. How could we get kids to lose weight by playing more computer games? A small but crucial difference in your thinking.
So what can you do to be more recursive and reflexive and less linear, more analytic rather than simply describing what you have with your themes? To achieve this level of analysis, we can start with grouping or labeling our codes. In larger groups or themes, you might use colour to help you or envelopes or whole folders to help you group.
As we do this, we may realize that a theme is missing or that a theme occurs to you as you think and move your data around your different groups. You could simply spend time thinking creating memos and writing to help you find new things and patterns. Or you could use creative thinking techniques to help you.
So back to our elephant. How do you eat an elephant? One chunk at a time. So the technique I'm going to show you is called chunking. It's very simple. You can chunk down which you've done to create codes; you can chunk back up to create groups or themes, but you can also chunk across at different conceptual levels to create new codes, new themes, or to come up with newly created or refined themes or abstracted themes from your data.
So here's the same diagram again. We've just changed the labels. So you'll notice that through a repeated process of chunking up and down in our thinking, one of the codes has been changed and refined, and we now have created a sub-theme. But let me give you an example of how to do this.
So take an idea like rain. It's liquid water falling from the sky. We have a lot of it here. But when you've been reading your interview transcripts, you've noticed encoded talk for other kinds of water falling from the sky, like snow or drizzle. So we can chunk up to create a group or form a theme from these. Let's call it precipitation. And you could chunk back down to find new forms of precipitation, whether they're in the data yet or not, like mist, fog, sleet. And you may notice that these things have already been coded or that you may need to add codes or labels to your data if it's there.
So you continue looking at your codes and you notice other codes associated with water, like frost or dew. This could be from your experience, actually finding it in your data or knowing about it from your reading or even something you've already coded and hadn't noticed previously. So at this point, you may realise that your ideas have moved away from precipitation and seem to be concentrating on frozen water. So you've chunked across.
What is this new theme? Let's just call it ice for now. Well, that's about how cold it is, isn't it, if it's ice? But what's the reverse of cold? Well, hot. And isn't there something in between, like warm? And they all seem to chunk up to a theme that we could call temperature. So we now have two major themes, precipitation and temperature, just from thinking about one code, which was rain initially. We can go back to our data and see what else we can find. And we can think of these themes and think if they can be chunked up to form new ones. And it may relate to a known overarching theme. And in this example, of course, it's weather, or it could be something entirely new. So you can now chunk that down from weather to consider new themes or sub-themes associated with weather like wind speed, air quality, sun, sunlight, cloud cover.
And I've literally been chunking across as I've been thinking about this. And that's the point of chunking. It isn't a rigid hierarchy. It's to help you think, spot new patterns and create new groups, sets, themes, so that new insight can emerge. When you label it a theme, a set or a group, it's not that important in your thinking. It's just a name to help you organize your thinking.
So as qualitative research is an iterative process, you will have to examine your coding and go back to your data repeatedly and your nice tidy groups can start to look messy. But remember, there will be overlaps. Qualitative research is about context, not neat hierarchies of information. And I know that can be uncomfortable.
But as Victoria Clarke said in a 2022 interview, "we are [...] highlighting the researcher's role in crafting and creating themes. You're not 'discovering', you're active, you're sculpting" with your data. The themes are not lying about waiting for you to discover them. You will create them from your data.
Yes, qualitative research is an iterative process, so you must think about and reflect in order to refine your themes. The overlaps and bits that don't fit neatly are your links to new insight, so don't be afraid of them. Spending time thinking, writing and modelling your data will help you understand which of your emerging themes are already known and maybe match the literature and which actually give a new perspective.
I know that it can be hard to move on from those initial codes and themes. You may even feel like you're not doing it right because you've changed the names and merged things as you go through your analysis again and again. Nice tidy descriptions have become difficult to articulate and messy. But that's what we need. Initial codes and themes aren't just a step on the way to sculpting your interpretation with new themes and weaving a new narrative. When you repeatedly reflect and sculpt what started out in your weather example (or our weather) example looking like a description of different types of weather actually ends up as a group of themes around family responses to significant events, which happen to include weather events. That's an analytic insight.
Now, I hope you've enjoyed hearing about chunking your data back up and across. If you want to find out more about analyzing qualitative research data, go to our blog or subscribe to our channel. If you'd like a free trial of our Quirkos software, which you saw in our weather example, go to our website or click on the link. Thank you for listening. Use the comments to let us know what other videos you'd like to see. And no elephants were harmed in the making of this video. Bye.
This transcript was produced with Quirkos Transcribe, our secure AI transcription tool for qualitative research. We don't train any machine learning models on your data; we encrypt your data end-to-end on our in-house, solar-powered transcription server, so no one else can view or access it except you. Try it out for free with a Quirkos Cloud trial!
Qualitative codes vs. themes
The main difference between codes and themes is that codes tend to be very simple 'tags' of basic categories, like 'happy' or 'sad', or 'snow' or 'rain'. Themes tend to be more abstract higher level concepts, such as 'Anxiety about arriving on time' or 'Preparing for weather'. But it's not always so clear-cut, and there are often overlaps. Sometimes, a simple code like 'Anxiety' becomes such an important concept that it is essentially a theme as well. And a simple observation like when people are talking about a 'bus' might be the key category that unwinds a complex problem: like how access to a cancer screening service is limited by public transport options.
Themes tend to bring a series of codes together - which is why grouping or connecting approaches like open/axial coding are such common concepts in the literature. Sometimes it's as simple as connecting a bunch of similar codes (like 'rain', 'snow', 'hail' in our video above). But sometimes it's because you've put together a series of seemingly disparate codes like bus, location and childcare - to create a theme - "Lack of public transport affects families more".
This is one of the reasons that I wanted Quirkos to have this mappable 'canvas' area where you can arbitrarily move codes around, putting them close, but not always under each other. Creating a hierarchy of codes (subcategories) can limit your thinking in a way that can make it harder to create themes, while total flexibility with space (or colour) allows for shades of relationships that are more varied and variable. Personally, I don't like lists or hierarchies of codes that imply primacy (although many like to work like this, so we added it to Quirkos too).

How can I create themes from codes?
One of the best ways to create themes (other than just re-reading your data) is to re-read your codes - not just their names, but their descriptions and all the data in each of them. Or you could look and see how codes are connected - how often they occur together in the same transcript or paragraph (Quirkos has dedicated overlap views to visualise this).
Sometimes codes (and the text/quotes you have assigned to them) evolve a little: for example 'bus' might become 'public transport' or 'access issues' as you understand the concept better through reading more transcripts, or re-reading the data.

And that's a key take-away for me when teaching qualitative coding - codes and themes evolve, and the best analysis is based around flexible interpretations. We thought that code for 'bus' was the big thing, but even though there aren't other transport options in this city, it's really about 'Public Transport'. So at one stage, we renamed it. And later we found it's about not really transport itself, but Access - so we renamed it again. Sometimes you will literally rename a code or theme, but sometimes you'll duplicate your code (as in the picture above) to have subtle differences in subcategories and the quotes under them, or merge it with other themes (maybe trams, or lack of parking in this case).
Which is why I always say, think of your code and theme names as being written in pencil, not pen. They can always change as your concept of them changes, and this will help you to not start forcing important statements from participants into codes or themes that aren't quite right. Mishra and Dey (2022) go into more detail about keeping this flexibility, and avoiding locking yourself (and your thinking) into one code too soon.
Sometimes it can go the other way - things you thought were going to be game-changing themes become not so important as you kept reading the data, and end up being codes - just a simple descriptive category that doesn't work to bring everything together. In our Access example, this might be the realisation that 'Access' wasn't really about public transport, but because the clinic was only open a few hours a day, which didn't work well for the bus schedule. So the main theme would become 'Opening Hours' - that's where we decided the access issue was, not with the public transport directly.

So with the examples above, hopefully you can see how sometimes a code can also be a theme. Our video describes chunking up and down to create and rethink codes, groups and themes, but this doesn't always work for every coding approach or dataset. It's important to remember that every type of qualitative analysis (grounded theory, IPA, thematic analysis etc.) is a general approach, not a one-size-fits-all approach. There's no right way to apply it for each different project, and although there are good guidelines that help, it's important not to get too caught up in whether something is a code or a theme, but let these categories be flexible to help you better understand your data.
Further resources on qualitative coding
Having said all this, the best way to get better at qualitative analysis is to practice! So we provide open access datasets for practicing, video tutorials and example projects for Quirkos so you can see at least one way that interpretations were done.
You can also get a free trial of Quirkos, our simple and visual tool for qualitative data analysis, and see how the flexible open canvas area can help you be creative in your qualitative thinking!