A thematic grouping of observations
An affinity cluster is a group of individual observationsObservationUser ResearchA specific behaviour or statement observedView reference → that turned out to belong together, discovered by sorting the raw notes until natural groupings emerge. The method works from the bottom up: you start with scattered, single observations and let the themesThemeProduct SpecificationA strategic grouping of related featuresView reference → assemble themselves, holding back the categories you walked in expecting. The cluster is the step between a wall of disconnected notes and a conclusion the team can act on.
The technique comes from the Japanese anthropologist Jiro Kawakita, who developed it in the 1960s and gave it his initials, the KJ method. Kawakita built it to make sense of fieldwork, organising qualitative findings from ethnographic studies, including work in Nepal on environmental equilibrium, where conventional quantitative methods left the data inert. His insightInsightUser ResearchA synthesised finding from researchView reference → was procedural: write each observation on its own card, then group the cards by felt relatedness before naming any group, so the structure follows the data instead of the researcher's prior categories.
The method spread well beyond anthropology. It became one of the Seven Management and Planning Tools of Japanese quality management, where it is known as the affinity diagram, and from there entered software and UX research as affinity mapping. The wall of sticky notes that teams cluster after a round of interviews is the KJ method, usually practised without anyone knowing whose method it is.
A discipline underlies the ritual that is easy to skip. The grouping is meant to be silent and intuitive first, with labels written only after the clusters settle, which is why the method leans on what the philosopher Charles Peirce called abduction, reasoning toward the best explanation, over deductive sorting into known buckets. Two failure modes recur: clustering by surface topic, such as putting every note that mentions "search" together regardless of what each reveals, and naming groups so early that the labels dictate the sort. Done well, the cluster surprises the team that made it.
After fifteen interviews about a budgeting app, a team has roughly ninety observations on cards. They sort in silence. One cluster forms from notes that mention no shared keyword: "checks balance before buying coffee," "screenshots the total to send a partner," "feels guilty opening the app after a big weekend." Topically these have nothing in common, yet they group by an emotional thread, money as a source of shared anxiety rather than a number to optimise. The team names the cluster only once it has settled: "the app is read as a verdict, not a tool." That label becomes a single synthesised insight, and the ninety cards behind it stay available as the evidenceEvidenceValidationData supporting or refuting a hypothesisView reference → trail. A topic-first sort would have scattered those three notes across "balance," "sharing," and "notifications," and the theme would never have appeared.
In the Unified Product Graph, an affinity cluster is the synthesis structure of the User Research region, sitting deliberately between raw observations and finished insight. A body of fieldwork resolves into clusters through Research Studyclusters intoAffinity Clusterhierarchy, which records that a set of notes was grouped rather than cherry-picked. Each settled cluster then yields its conclusion through research_study_clusters_into_affinity_clusterAffinity ClustersynthesisesInsighthierarchy, making the analytical leap an explicit, inspectable edge. That structure preserves the audit trail the KJ method was built to honour: every insight traces back through its cluster to the individual observations that justified it, so a stakeholderStakeholderTeam & OrganisationA person with influence over the productView reference → can always ask which notes produced a given theme and get a real answer.affinity_cluster_synthesises_insight
Type-specific fields on BaseNode
themestringEmergent theme label
child_observation_countnumberObservations in this cluster
confidencestringConfidence in the theme's validity
idstringrequiredUnique identifier (UUID)
typeNodeTyperequiredDiscriminator for the entity type
titlestringrequiredDisplay name
descriptionstringOptional detailed description
statusstringLifecycle status
tagsstring[]Freeform tags for filtering
2 edge types connected to this entity.
research_study_clusters_into_affinity_clusteraffinity_cluster_synthesises_insight