A single dimension in a competitive classification matrix. One axis along which alternatives are compared.
A classification axis is a single dimension along which entities get sorted: company size, product maturity, deploymentDeploymentEngineeringA deployment eventView reference → model, price tier. It defines the question ("how big is the company?") without committing to any one answer. The discipline of competitive analysisCompetitive AnalysisMarket IntelligenceA structured analysis of the competitive landscapeView reference → lives or dies on choosing axes that actually separate players, instead of ones that flatter your own position.
The axis comes from positioningPositioningGo-To-MarketProduct positioning statementView reference → theory and the perceptual map. Al Ries and Jack Trout's *Positioning: The Battle for Your Mind* (1981) made the case that a brand occupies a coordinate in the customer's mind, which presumes dimensions to be positioned along. Those dimensions are classification axes.
The rigorous version is older, drawn from psychometrics. Perceptual mapping borrows multidimensional scaling and factor analysis, developed in the 1950s and 1960s by researchers such as Warren Torgerson and Joseph Kruskal. The technique derives the axes statistically from how customers rate similarity between brands, rather than letting a strategist assert them. The map then shows distance as perceived interchangeability: brands close together are seen as substitutes.
The popular form collapsed all this into the 2x2: two axes, four quadrants, every competitorCompetitorMarket IntelligenceA competing product or companyView reference → placed. Convenient, and easy to rig. The same companies rearrange depending on which two axes you pick, and the temptation is to choose the pair that puts you alone in the top-right. The honest practice treats axis selection as the real analytical work, choosing dimensions that buyers care about and that genuinely discriminate.
A team mapping the project-management market starts with the lazy pair, price against featuresFeatureProduct SpecificationA product capability or featureView reference →, and learns nothing: everyone clusters in a diagonal smear. They switch axes. The first becomes deployment model, from self-serve to sales-assisted. The second becomes target team size, from solo through enterprise.
Now the field separates. One cluster is self-serve and built for small teams; another is sales-led and enterprise-only; a sparse top-left, self-serve but enterprise-grade, holds two players and a gap. The axes did the work. The same competitors that looked identical on price-versus-features now sit in distinct regions, and the empty quadrant is a positioning opportunityOpportunityDiscoveryA validated gap worth solvingView reference → the team can argue about with evidenceEvidenceValidationData supporting or refuting a hypothesisView reference →.
In the Unified Product Graph, a classification axis lives in the market intelligence region as the dimension node. A Competitive Analysisdimensioned byClassification Axishierarchy edge records which axes a given analysis chose, and competitive_analysis_dimensioned_by_classification_axisClassification AxisincludesClassification Valuehierarchy enumerates the discrete positions along it. Separating the axis from its values, as two node types joined by an edge, lets the graph reuse one axis across many analyses and tag competitors, segments, and personasPersonaUserAn archetype representing a user segmentView reference → against the same shared scale, so a "company size" axis means the same thing everywhere it appears.classification_axis_includes_classification_value
Type-specific fields on BaseNode
axis_kindstringStructural kind of values on this axis. `categorical` = discrete, unordered (most common; CMS architectures). `ordinal` = discrete, ordered (maturity tiers, T-shirt sizes). `continuous` = numeric range (latency budget, price points).
owner_productstringProduct id when product-specific. Axes are usually product-agnostic; leave empty for shared taxonomies.
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.
competitive_analysis_dimensioned_by_classification_axisclassification_axis_includes_classification_value