An identified gap between the current state and a desired state that the product could fill. Opportunities emerge from the intersection of user needs, market gaps, and business goals.
An opportunity is a validated gap between where a customer is and where they want to be, framed as a needNeedUserA user need, pain, desire, or constraintView reference →, pain point, or desire rather than as the thing you might build. It is the unit of product discovery that sits between a business goal and a solutionSolutionDiscoveryA proposed approach to address an opportunityView reference →: specific enough to act on, open enough that more than one solution could address it. The discipline of opportunity work is mostly the discipline of refusing to let a solution sneak in wearing an opportunity's clothes.
The word has long meant "an unmet need worth pursuing", but its current product-management precision comes from Teresa Torres and the Opportunity Solution Tree, formalised in Continuous Discovery Habits (2021). Torres defines an opportunity as "an unmet customer need, pain point, or desire", and arranges discovery as a tree: a single desired outcomeDesired OutcomeUserWhat the user hopes to achieveView reference → at the root, branching into opportunities, each branching into candidate solutions, each tested by assumptionsAssumptionStrategyA belief taken as true that underpins a strategyView reference →.
Torres's sharpest contribution is a test for whether something is genuinely an opportunity. Ask: is there more than one way to address this? "I want to go out to eat" fails the test, because it already names the solution. Ask "why?" and the real opportunities appear: "I don't have time to cook", "I want something tastier than I can manage myself", each of which admits many solutions. An opportunity that admits only one solution is a solution in disguise, and treating it as an opportunity quietly kills the team's option space before discovery begins.
The structure also encodes a sequencing rule the field had been missing. Opportunities are sized and prioritised before any solution is committed, which keeps teams from falling in love with the first idea. This built on earlier dual-track and continuous-discovery thinking, and it gave product teams a shared visual artefact for an argument that used to happen in scattered documents.
A subscriptionSubscriptionSales & RevenueA recurring subscriptionView reference → product sets the outcomeOutcomeStrategyA desired business or user outcomeView reference → "lift trial-to-paid conversion from 22% to 30%". Discovery interviews surface several distinct gaps. One recurs: trial users who connect their data on day one convert at 41%, while those who do not convert at 9%, and most never connect because the setup asks for admin credentials they do not have. That gap becomes an opportunity: "I want to see the product working with my own data without waiting on my IT team." It passes Torres's test, because there are several ways to address it: a read-only demo dataset, a delegated-invite flow, a lightweight CSV import. The team sizes this opportunity against two others on the tree, picks it because the conversion delta is largest and the addressable population widest, and only then starts generating solutions. The framing keeps the conversation on the gap until the evidenceEvidenceValidationData supporting or refuting a hypothesisView reference → justifies a bet.
opportunity_drives_solutionOpportunitydrivesSolutioncausal. Collapsing the two is the most common discovery failure.outcome_reveals_opportunityOutcomerevealsOpportunitycausal.insight_surfaces_opportunityInsightsurfacesOpportunitycross-domain, never the reverse.The opportunity is the anchor of the Discovery, Research & Validation region, a deliberately cyclic space whose model is question to hypothesisHypothesisValidationA testable belief about a solutionView reference → to test to evidence to decisionDecisionStrategyA recorded decision with context, rationale, and consequencesView reference →, then loop. It earns the anchor role by sitting on the region's import border: outcomes (OutcomerevealsOpportunitycausal), market trendsMarket TrendMarket IntelligenceAn emerging trend in the marketView reference → (outcome_reveals_opportunityMarket TrendcreatesOpportunitycross-domain), and feature requestsFeature RequestCustomer FeedbackA user-submitted feature requestView reference → (market_trend_creates_opportunityFeature RequestcreatesOpportunitycross-domain) all flow in and become opportunities, while research evidence hardens them through feature_request_creates_opportunityEvidencesupportsOpportunitycross-domain and evidence_supports_opportunityLearningvalidatesOpportunitycross-domain. Downstream, learning_validates_opportunityOpportunitydrivesSolutioncausal opens the solution space and opportunity_drives_solutionOpportunityaddressesNeedcross-domain ties the gap back to the user it serves. That position, fed by strategy and research and feeding solution work, is why an unvalidated opportunity is visibly orphaned in the graph.opportunity_addresses_need
Type-specific fields on BaseNode
reachobjectHow many users experience this problem
frequencyobjectHow often users experience this problem
painobjectHow painful it is when unaddressed
opportunity_scorenumberComputed: normalized_reach x normalized_frequency x normalized_pain (0-1)
idstringrequiredUnique identifier (UUID)
typeNodeTyperequiredDiscriminator for the entity type
titlestringrequiredDisplay name
descriptionstringOptional detailed description
statusstringLifecycle status
tagsstring[]Freeform tags for filtering
3 phases — initial: identified
16 edge types connected to this entity.
outcome_reveals_opportunityopportunity_drives_solutionopportunity_explores_via_design_conceptopportunity_assessed_by_feasibility_studyopportunity_investigated_via_design_sprintopportunity_addresses_needopportunity_pursues_outcomeopportunity_contextualises_jobinsight_informs_opportunitymarket_trend_creates_opportunityfeature_request_creates_opportunityopportunity_improves_user_journeyinsight_surfaces_opportunityinsight_informs_opportunity_cross_domainlearning_validates_opportunityevidence_supports_opportunity2 frameworks use this entity type.