A validated gap worth solving
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 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.
Cagan's Inspired makes the underlying case for why the opportunity must be owned before any solution is chosen. His central distinction is between featureFeatureProduct SpecificationA product capability or featureView reference → teams — which receive a prioritised backlog of solutions to execute — and empowered product teams, which are given a problem to solve and held responsible for the outcomeOutcomeStrategyA desired business or user outcomeView reference →. In that model the opportunity is what the team is accountable for, not the feature. Cagan also identifies four risksRiskComplianceA risk to the product or businessView reference → that every product initiativeInitiativeStrategyA large coordinated effort to achieve a strategic goalView reference → carries — value (will customers want it?), usability (can they use it?), feasibility (can the team build it?), and business viability (does it work for the business?) — and argues that discovery must address all four before build begins. The opportunity sits at the value-risk question: is there a real, recurring customer problem that a solution could address? Treating an unvalidated assumption as an opportunity bypasses that question entirely.
A subscriptionSubscriptionSales & RevenueA recurring subscriptionView reference → product sets the outcome "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
Worked example: Trellis
Trellis's flagship opportunity is the gap between "AI can generate an app in seconds" and "a tool a team can actually run operations on." It is broad and recurring, every team is trying AI for internal tools and getting demos they cannot trust, which is why it is worth pursuing before committing to a solutionSolutionDiscoveryA proposed approach to address an opportunityView reference →.
No type-specific properties; uses BaseNode fields only.
idstringrequiredUnique identifier (UUID)
typeNodeTyperequiredDiscriminator for the entity type
titlestringrequiredDisplay name
descriptionstringOptional detailed description
statusstringLifecycle status
tagsstring[]Freeform tags for filtering
3 phases, initial: identified
18 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_opportunitycompetitor_signal_surfaces_opportunitymarket_trend_creates_opportunityfeature_request_creates_opportunityopportunity_improves_user_journeyinsight_surfaces_opportunitylearning_validates_opportunityevidence_supports_opportunitydesired_outcome_reveals_opportunityfeedback_theme_reveals_opportunity7 frameworks use this entity type.