← Methods repository
concept

Qualitative Interview Study

A primary-data qualitative design that collects open-ended, semi-structured or in-depth individual interviews to characterize lived experience, meaning, and process, analyzed thematically toward conceptual rather than statistical generalization.

Study_Designqualitativeinterviewsemi-structuredthematic-analysisinformation-powersaturationcoreqpatient-experience
Methods reference only. Use primary source citations and local policy before applying this in a study protocol, regulatory submission, payer dossier, or clinical decision.

In plain language

A qualitative interview study sits a small number of carefully chosen patients (or clinicians) down for an open-ended conversation, records what they say, and works through the transcripts to find the recurring ideas in their own words. It answers "how" and "why" questions a survey can't reach yet — like why people quit a medication or what living with a disease actually feels like — by digging into the meaning behind the experience rather than counting how many people picked option B. The product is a set of themes and a richer understanding, not a percentage or an effect estimate. Its honest limit: because the handful of people were picked on purpose (not at random), you cannot turn their answers into prevalence or generalize them to a whole population.

A qualitative interview study generates primary data by asking purposively selected participants open-ended questions — most often through a semi-structured guide (a flexible topic list with probes) rather than a fixed questionnaire — and analyzes the resulting transcripts to build themes, concepts, and explanatory accounts. In RWE and HEOR it is the workhorse method for the questions that counts cannot answer: why patients stop a therapy, how the burden of an injectable regimen plays out in daily life, what outcomes matter to people who actually have the disease, and which candidate items belong in a new patient-reported outcome (PRO) instrument. Its product is meaning and hypothesis, not incidence and hazard ratios.

Core conceptual distinction

. The interview study's logic is the inverse of the quantitative observational study, and the two are separable. (1) Sampling for information, not representativeness: participants are chosen purposively (often by maximum-variation sampling across age, severity, treatment line, or setting) so the analysis spans the conceptual range of experience; the goal is transferability of insight, not a generalizable point estimate. A claims cohort wants N large and unbiased; an interview study wants N informative. (2) Generalization is analytic/conceptual, not statistical: findings transfer to similar contexts through the richness and credibility of the account, judged by the reader, rather than through a sampling frame and confidence interval. (3) Sample size is governed by adequacy of information, not power: the modern frame is information power (Malterud) — narrower aim, dense sample specificity, strong dialogue, and established theory all lower the number of interviews needed — which supersedes naive "count interviews until nothing new appears" data saturation. The estimand, loosely, is a credible thematic account of the phenomenon as experienced, defensible against an audit trail; it is categorically not a treatment effect.

Pros, cons, and trade-offs

(specific and comparative, naming the alternatives). - vs structured survey / PRO questionnaire: the interview discovers the constructs and language a survey can only measure once they are known; it surfaces unanticipated themes a closed instrument forecloses. Cost: it cannot estimate prevalence or compare groups, is labor-intensive, and is vulnerable to interviewer effects and small, non-representative samples. Prefer the interview in the item-generation / concept-elicitation phase of FDA PFDD or EMA PRO work, then hand off to a survey for quantification. - vs focus group: individual interviews give privacy for sensitive topics (stigma, sexual health, end-of-life, adherence shame) and avoid the dominant-voice and conformity dynamics of groups; they yield deeper individual narratives. Cost: they forgo the group interaction that itself generates data (participants reacting to and building on each other) and are less efficient per participant-hour. Prefer interviews for sensitive or highly individual experiences; prefer focus groups when social interaction and norm-formation are the object of study. - vs ethnography / participant observation: interviews capture reported experience efficiently; ethnography captures enacted behavior in situ and catches the gap between what people say and what they do. Cost: ethnography is far more time- and access-intensive. Prefer interviews when self-report is the appropriate evidence and field access is impractical; see the qualitative-ethnographic entry when the say–do gap is central. - vs quantitative observational analysis of claims/EHR: the interview explains mechanism and meaning that a hazard ratio cannot; it is the only way to learn outcomes-that-matter directly from patients. Cost: no effect estimate, no counterfactual, no scale. The two are complementary, not rivals — interviews most often run inside a mixed-methods design to interpret or generate quantitative findings.

When to use

(clear decision rules). Use a qualitative interview study when the question is how/why/what-matters rather than how many/how much: eliciting concepts and language for a new PRO/COA instrument (FDA PFDD Guidance 2–3, EMA reflection paper on PROs); understanding drivers of non-adherence, discontinuation, or treatment burden; mapping the patient journey for an HTA value dossier or patient-preference submission; exploring an unexpected quantitative signal ("why did discontinuation spike in this subgroup?"); and any setting where the constructs are not yet well enough defined to write valid closed-ended items. Use a semi-structured guide for most applied work, in-depth/narrative when the account itself is the data, and reserve structured interviews for when the construct space is already fixed.

When NOT to use — and when it is actively misleading or dangerous

(clear decision rules). - The question is quantitative. If you need prevalence, an effect estimate, a between-arm comparison, or a powered test, interviews cannot deliver it; reporting theme frequencies from a purposive sample as if they were prevalence ("80% of patients reported X") is a category error and is actively misleading — small purposive samples are not built to count, and reviewers (and FDA/EMA) will treat such numbers as pseudo-quantification. - Generalizable population inference is required. A non-probability, maximum-variation sample cannot support statistical generalization; presenting it as representative invites refutation. - Saturation is asserted as a checkbox. Declaring "saturation reached" without a pre-specified, transparent stopping rule (or, better, an information-power justification) is a hollow ritual that masks an under-powered, premature analysis; it is one of the most common fatal flaws reviewers flag. - Sensitive topics with a coercive recruitment or group format. Routing stigmatized experience through gatekeeper- selected participants or a focus group can silence the very voices the study claims to represent — selection and social desirability then manufacture a false consensus. - No analytic rigor or audit trail. "We talked to some patients and here are quotes" is not analysis. Without a codebook, inter-coder checks, reflexivity, and a documented chain from data to claim, the work is anecdote dressed as evidence and will not survive regulatory or HTA review.

Data-source operational depth

. The "source" here is primary — recorded interviews and their transcripts — and the operational risks are different in kind from claims/EHR/registry work; they live in sampling, modality, recording, anonymization, and analysis rather than in enrollment and code lists. - Sampling frame & recruitment. Purposive (maximum-variation, typical-case, deviant-case) or snowball sampling. Failure mode: gatekeeper / volunteer selection — clinicians refer the articulate, satisfied, or adherent patients, so the hardest experiences (the people who quietly dropped therapy) are systematically absent. Workaround: sample against the gatekeeper's grain (explicitly recruit discontinuers, non-attenders, low-literacy and minority-language participants), document a recruitment log, and report who declined. - Modality (in-person vs video vs telephone vs asynchronous text). Each trades reach against richness. Failure mode: telephone and async lose non-verbal cues and rapport, dampening disclosure on sensitive topics; video introduces a digital-access bias that under-samples older and lower-income participants. Workaround: pre-register modality, offer a choice, and note modality alongside each transcript so its effect on depth can be assessed. - Recording, transcription & translation. Failure mode: lost or corrupted recordings, verbatim vs cleaned transcription decisions that erase meaning, and translation drift when interviews in another language are coded from an English translation (idiom and affect are lost). Workaround: redundant recording, professional verbatim transcription with accuracy QC, and analysis in the source language by bilingual coders with back-translation of key quotes. - Interviewer effects & social desirability. Failure mode: a clinician-interviewer elicits courtesy answers; leading probes plant themes; the interviewer's stance shapes what is said. Workaround: neutral, trained interviewers, a piloted non-leading guide, and explicit reflexivity (document the interviewer's role and assumptions — a COREQ requirement). - Anonymization & identifiability in small/rare subgroups. Failure mode: in a rare-disease cohort, a verbatim quote plus role and locale re-identifies the participant. Workaround: paraphrase or generalize identifying detail, suppress rare quasi-identifiers, and apply small-cell logic to qualitative reporting just as to claims tables. - Premature / ritual saturation. Failure mode: stopping at a round number because "themes repeated," with no operational definition. Workaround: pre-specify the stopping rule (e.g., a saturation grid tracking new codes per interview) or justify the sample with information power before fielding.

Worked applied example (qualitative, item-generation for a PRO)

Aim: elicit the concepts and patient language of treatment burden among adults with advanced chronic kidney disease on oral phosphate binders, to generate candidate items for a new disease-specific PRO supporting an FDA PFDD submission. (1) Sampling frame: maximum-variation purposive sampling across CKD stage (3b–5, pre-dialysis), pill burden (low vs high binder count), age, and health literacy; recruit through two nephrology clinics and a patient advocacy group to counter gatekeeper selection, with a recruitment log of approached/declined. (2) Sample size: justified by information power — narrow aim, high sample specificity, an experienced interviewer, and an existing treatment-burden framework — pre-specifying ~16–20 interviews with a stopping rule of two consecutive interviews adding no new codes to the saturation grid. (3) Instrument: a piloted semi-structured guide opening broad ("walk me through a typical day taking your kidney medicines") with non-leading probes; modality offered as video or telephone, recorded with redundant capture. (4) Transcription: professional verbatim with accuracy QC; interviews conducted in the participant's preferred language by a bilingual interviewer. (5) Analysis: two coders independently apply open coding to the first transcripts, reconcile a codebook, then code the corpus; inter-coder agreement is quantified on a shared subset (Cohen's kappa, target ≥0.70) and disagreements adjudicated; codes are abstracted into themes and a conceptual model of burden. (6) Rigor & reporting: member checking with a participant subset, a reflexivity statement on the interviewer's clinical role, an audit trail from quote → code → theme → claim, and full COREQ reporting of the 32 items. The deliverable is a saturated concept map and a draft item pool — handed off to a quantitative survey for psychometric validation, never reported as prevalence.

Worked example

Scenario

A team wants to understand the burden of taking daily oral phosphate-binder pills among adults with advanced chronic kidney disease, so they can later build a patient-reported outcome questionnaire. They interview a small, purposively chosen group of patients with one broad opener ("walk me through a typical day taking your kidney medicines") plus gentle follow-up probes. Below is a tiny slice of the coding work: a handful of paraphrased quotes from three participants, the code each quote received, and the theme each code rolls up into. Real studies code hundreds of passages — this shows the mechanics in miniature.

Dataset

A coding table: each row is one interview passage, paraphrased, with the analyst's code and the theme it belongs to. This is what the working spreadsheet of a thematic analysis actually looks like.

participantquote_paraphrasecodetheme
P01I take so many pills with every meal I feel like I'm eating medicine, not food.high_pill_countPhysical burden of treatment
P01They upset my stomach, so I skip them when I'm eating out with friends.side_effects_cause_skippingTreatment interferes with daily life
P02I keep a chart on the fridge or I lose track of which dose I've taken.memory_and_tracking_effortMental work of staying on top of it
P02I won't take them at a restaurant because I don't want people asking questions.hiding_meds_in_publicTreatment interferes with daily life
P03Honestly some days I just give up and don't bother with the lunchtime ones.intentional_dose_skippingMental work of staying on top of it
P03The sheer number of tablets makes me feel sicker than I really am.high_pill_countPhysical burden of treatment

Steps

  • Coding: read each passage and attach a short label that names the idea in it. "I take so many pills... eating medicine, not food" gets the code high_pill_count. When P03 says almost the same thing, you reuse that exact code instead of inventing a new one — that reuse is what keeps the analysis consistent and is recorded in the codebook.

  • Building themes: step back from the individual codes and group the ones that share a deeper meaning. high_pill_count and side-effect codes are both about the body, so they roll up into the theme "Physical burden of treatment"; memory_and_tracking_effort and intentional_dose_skipping are both about the daily mental effort, so they roll up into "Mental work of staying on top of it."

  • Checking saturation: across these three participants the same codes keep reappearing (high_pill_count shows up for both P01 and P03) and no genuinely new idea arrives in the last interview. That repetition is the signal of saturation — a cue you have probably captured the range of experiences and can stop interviewing, rather than a number to report.

  • Why this is not a survey: notice there is no "60% of patients said X." With only a handful of purposively chosen people, counting would be misleading. The payoff is the depth of meaning — you learn the actual words patients use ("eating medicine, not food") and the reasons behind a behavior, which is exactly what you need before you can write good survey questions.

Result

Three themes synthesized from the codes: (1) Physical burden of treatment, (2) Treatment interferes with daily life, and (3) Mental work of staying on top of it. These themes — together with the patients' own language — become the raw material for drafting questionnaire items. No prevalence figures or statistics are produced or implied; the deliverable is a credible, well-evidenced map of what treatment burden means to these patients.

Runnable example

python implementation

Inter-coder reliability (Cohen's kappa) on a double-coded subset of interview segments, the standard quantitative check on coding consistency before a single coder finalizes the full corpus. Required input (a tidy table after two coders independently apply...

import pandas as pd
from sklearn.metrics import cohen_kappa_score

def coder_agreement(coded: pd.DataFrame) -> pd.DataFrame:
    """Overall and per-code Cohen's kappa for two coders on shared segments."""
    a = coded["code_coder_a"].astype("string")
    b = coded["code_coder_b"].astype("string")

    rows = [{"code": "OVERALL (all labels)",
             "n_segments": len(coded),
             "kappa": round(cohen_kappa_score(a, b), 3)}]

    # Per-code presence/absence agreement (one-vs-rest): isolates poorly-defined codes.
    for code in sorted(set(a.dropna()) | set(b.dropna())):
        ind_a = (a == code).astype(int)
        ind_b = (b == code).astype(int)
        rows.append({"code": code,
                     "n_segments": int((ind_a | ind_b).sum()),
                     "kappa": round(cohen_kappa_score(ind_a, ind_b), 3)})

    out = pd.DataFrame(rows)
    out["below_threshold"] = out["kappa"] < 0.70  # flag codes needing codebook clarification
    return out
r implementation

Inter-coder reliability for interview coding in R. For two coders use Cohen's kappa; for three or more coders applying the same codebook to the same segments, Fleiss' kappa is the correct generalization. Required input: coded : data.frame with one row per...

library(irr)

coder_agreement <- function(coded, coder_cols) {
  ratings <- coded[, coder_cols, drop = FALSE]

  if (length(coder_cols) == 2L) {
    overall <- kappa2(ratings, weight = "unweighted")$value      # Cohen's kappa, 2 coders
  } else {
    overall <- kappam.fleiss(ratings)$value                      # Fleiss' kappa, 3+ coders
  }

  # Per-code presence/absence agreement (one-vs-rest) to localize weak codes.
  all_codes <- sort(unique(unlist(ratings, use.names = FALSE)))
  per_code <- lapply(all_codes, function(code) {
    ind <- as.data.frame(lapply(ratings, function(x) as.integer(x == code)))
    k <- if (length(coder_cols) == 2L) kappa2(ind)$value else kappam.fleiss(ind)$value
    data.frame(code = code, kappa = round(k, 3), below_threshold = k < 0.70)
  })

  list(overall = round(overall, 3), per_code = do.call(rbind, per_code))
}