What coding actually does to your data
Qualitative coding is the process of attaching short labels — codes — to segments of text: a sentence in an interview transcript, a paragraph in a field note, a caption under a photograph. Each code names something happening in that segment: a topic, an emotion, an action, a relationship. On its own, that sounds almost too simple to be a "method." What makes it one is what coding does next: it turns forty pages of transcript that only exist as forty pages of transcript into a set of labeled, searchable, comparable segments you can pull together across every interview in your study.
That's the actual job coding does in a qualitative project. Before coding, your data is a pile of text you've read, maybe annotated in the margins, and mostly remember by feel. After coding, you can ask "what did everyone say about this" and get an answer, instead of trying to recall which of your fourteen participants mentioned it and where. Coding is the hinge between "I read the transcripts" and "I have findings" — it's the step that makes analysis possible, not the analysis itself. You still have to interpret the coded data, group codes into larger themes, and write about what it means. None of that works, though, without a reasonably consistent set of labels underneath it.
Two ways into your data: deductive and inductive coding
Before you code your first transcript, you have to decide where your codes come from. There are two standard answers, and most real projects end up somewhere between them.
Deductive coding: starting with a framework
In deductive coding, you build your set of codes before you look closely at the data — usually from your research questions, an existing theory, or prior literature. If you're studying how nurses experience burnout using a three-dimension model of burnout (exhaustion, cynicism, reduced sense of efficacy), you might start coding with exactly those three codes already defined, then go through your transcripts looking for where each one applies.
The advantage is structure. A predefined framework is systematic, and it produces results that compare cleanly — if you're testing whether burnout looks different across two departments, applying identical codes to both makes that comparison meaningful. It's also faster to start, since you're not waiting for categories to emerge before you can code anything.
The risk is exactly what you'd expect: a framework you bring to the data can quiet the data. If your predefined codes don't have a slot for something a participant clearly cares about, it's easy to either force it into an existing code where it doesn't quite fit, or not notice it at all. Deductive coding is only as good as the framework you started with.
Inductive coding: starting with the data
Inductive coding reverses the order. You don't bring a framework in — you read the data first, closely and repeatedly, and let codes emerge from what's actually there. This is the core logic behind grounded theory, where the point is to build a theory up from the data rather than test one you already had going in.
The advantage is fidelity to the data. Nothing gets coded away because it doesn't fit a category you decided on before you'd read a single transcript. Surprising or contradictory material — often the most interesting part of a study — has somewhere to go.
The cost is real, too. Inductive coding takes longer, because your code list isn't stable until you've read enough data to trust it's capturing what's actually there, and it keeps changing as you go. It also depends more heavily on the individual researcher's interpretation — hand the same transcript to two people doing pure inductive coding with no shared codebook, and you'll likely get two different sets of codes. Not because one of them is wrong, but because coding always involves judgment calls about what a passage is "really" about.
In practice, most projects do both
Very few real studies are purely one or the other. A common, defensible approach is to start with a small set of deductive codes tied directly to your research questions — enough to get you oriented — while deliberately leaving room for inductive codes to emerge as you read. You go in with a framework, but treat it as a draft the data is allowed to argue with. If you notice yourself forcing data into existing codes just to avoid creating a new one, that's usually a sign it's time to let the codebook grow.
The codebook: your project's shared memory
A codebook is the document that makes coding a method instead of a vibe. At minimum, it lists every code you're using, a clear definition of what qualifies for that code, and ideally an example excerpt showing the code applied correctly. A single entry might look like this:
- Code: access_barrier
- Definition: Any mention of a structural or logistical obstacle to receiving care — cost, transportation, appointment availability, insurance. Does not include emotional reluctance to seek care (see trust_in_provider).
- Example: "I would have gone in sooner, but the earliest appointment was six weeks out."
That last line — distinguishing this code from a neighboring one — matters more than it looks. Most coding errors aren't wild misapplications; they're boundary confusion between two related codes that were never clearly separated in writing. A codebook earns its keep by making those boundaries explicit before you're twenty transcripts deep and can't remember which of two similar codes you meant for which situation.
The codebook is also what makes your analysis legible to anyone who isn't you — a co-author, a dissertation committee, a peer reviewer. When someone asks how you decided a passage counted as one theme and not another, the codebook is where that answer lives. Without it, "why did you code it that way" only has one answer: "because I said so at the time," which satisfies nobody, including future-you, re-reading your own coding six months later.
Saturation: knowing when to stop
New researchers often ask this as a data-collection question — "how many interviews do I need?" — but the honest answer isn't really about the number. It's about saturation: the point at which additional data stops producing new codes, new variations on existing codes, or new insight into the categories you already have. Your fifteenth interview sounding a lot like your third isn't a problem; it's the signal you've been coding toward.
Saturation isn't something you can calculate in advance, and it isn't a fixed interview count that works across studies — a narrow, homogeneous sample might saturate at eight or ten interviews, while a broader or more varied one might need thirty. What you're watching for is the rate of new information, not the volume of data. A practical way to track it: after each new transcript, note whether it added a new code, expanded the definition of an existing one, or just gave you another instance of something you'd already seen. When several transcripts in a row land in that last category, you're likely approaching saturation.
It's worth being explicit in your methods write-up about how you assessed saturation, rather than treating it as a box to check. "I stopped at twelve interviews because that's what my advisor's last three students did" is not the same claim as "the last four interviews introduced no new codes," and reviewers increasingly know the difference.
Coding with others: inter-rater reliability
If more than one person is coding the same data — common in team-based studies, multi-site projects, or anywhere a supervisor wants a check on a research assistant's coding — you need some way to measure how consistently everyone applies the same codes to the same material. That measure is inter-rater reliability, often reported as a statistic like Cohen's kappa, which adjusts raw agreement for the agreement you'd expect from chance alone.
You don't need to run the statistics yourself to understand why this matters: if two coders look at the same transcript and tag entirely different segments with the same code, or apply different codes to the same passage, your findings are really only describing one person's reading of the data, not a shared, checkable analysis. A common workflow is to have two coders independently code a subset of the same transcripts, compare results, calculate agreement, then meet to reconcile disagreements and refine whichever codebook definitions caused them. Low agreement usually isn't a sign that someone is coding "wrong" — it's a sign the codebook's definitions weren't precise enough yet, which is useful information, not a failure.
Inter-rater reliability checks are standard practice in team-based qualitative work for exactly this reason, and are increasingly expected by grant reviewers and IRBs wherever multiple staff will be handling participant data.
Mistakes almost everyone makes the first time
Three patterns show up often enough in first-time coders that they're worth naming directly.
Coding everything before looking back. It's tempting to treat coding as a single pass: code all the transcripts, then start analyzing. In practice, coding and reflection need to interleave. Read a batch, code it, sit with what you're finding, adjust your codebook if needed, and only then move to the next batch. Codebooks treated as fixed on day one are almost always wrong by day thirty — not because the researcher did something wrong, but because understanding a dataset well enough to code it perfectly on the first pass isn't realistic. Let the codebook evolve, and note when and why it changed.
Vague code definitions. A code named "frustration" with no written definition feels obvious the moment you create it and completely ambiguous three weeks later, when you're trying to remember whether it was meant to cover frustration with the healthcare system, frustration with a specific provider, or general life stress that happened to come up during the interview. Write the definition down the moment you create the code, not after you've already applied it forty times from memory alone.
Confusing codes with themes. This is the single most common conceptual mix-up in early qualitative work. A code is a label attached directly to a segment of data — descriptive, and close to the ground. A theme is an analytic idea you build afterward, by noticing a pattern across several related codes. "Long wait times," "cost concerns," and "no nearby clinic" might all be separate codes; "structural barriers to care" is the theme that groups them. If your "codes" already sound like the conclusions of your paper, you've probably jumped straight to themes and skipped the coding that would let you actually support them with data.
A code is a label you put on the data. A theme is an idea you build from several codes. Keep the two apart until you're ready to build the second out of the first.
Where this leaves you
None of this requires special software — researchers coded transcripts with highlighters and margin notes long before any of today's tools existed, and plenty still do. What software mostly adds is bookkeeping: keeping the codebook, the coded segments, and the source transcripts connected to each other as a project grows past the size a stack of printouts can hold. The method underneath — deciding what a code means, watching for saturation, checking agreement across coders, keeping codes and themes distinct — is the same regardless of what's holding it together.
If you're looking to run this workflow on your own machine.
Sondera is a local-first qualitative analysis workspace in development for macOS, built around coding, codebooks, and an audit trail — beta planned for fall 2026.