OpportunitySpec¶
The OpportunitySpec is a merged 12-box framework combining Jeff Patton's Opportunity Canvas (discovery-focused) with Marty Cagan's SVPG Opportunity Assessment (business case-focused).
Overview¶
OpportunitySpec bridges the gap between user discovery and business case rigor, providing a comprehensive evaluation for feature-level opportunities.
References:
Grid Layout (3×4)¶
┌─────────────────────┬─────────────────────┬─────────────────────┐
│ 1. Users & Problem │ 2. Current Solutions│ 3. Solution Ideas │
│ │ │ │
├─────────────────────┼─────────────────────┼─────────────────────┤
│ 4. User Value │ 5. Business Value │ 6. Competitive Edge │
│ │ │ │
├─────────────────────┼─────────────────────┼─────────────────────┤
│ 7. Market & Timing │ 8. Go-to-Market │ 9. Success Metrics │
│ │ │ │
├─────────────────────┼─────────────────────┼─────────────────────┤
│ 10. Critical Reqs │ 11. Risks & Assump. │ 12. Recommendation │
│ │ │ │
└─────────────────────┴─────────────────────┴─────────────────────┘
Row Organization¶
| Row | Focus | Boxes |
|---|---|---|
| Row 1: Discovery | Understanding the problem space | Users & Problem, Current Solutions, Solution Ideas |
| Row 2: Value | Articulating value to users and business | User Value, Business Value, Competitive Edge |
| Row 3: Market | Market positioning and go-to-market | Market & Timing, Go-to-Market, Success Metrics |
| Row 4: Validation | Requirements, risks, and decision | Critical Reqs, Risks & Assumptions, Recommendation |
Box Details¶
Row 1: Discovery¶
Box 1: Users & Problem¶
"Who has the problem and what problem are we solving?"
Combines Patton's Users/Problems with Cagan's Value Proposition.
| Field | Description |
|---|---|
primaryUsers | Primary user types affected |
secondaryUsers | Secondary user types |
problemStatement | Clear statement of the problem |
customerPains | Specific pain points |
currentState | How things work today |
desiredState | How things should work |
evidence | Evidence the problem exists |
Box 2: Current Solutions¶
"How do people solve this today?"
Combines Patton's Solutions Today with Cagan's Competitive Landscape.
| Field | Description |
|---|---|
directCompetitors | Head-to-head competitors |
indirectCompetitors | Alternative solutions |
workarounds | Manual workarounds |
internalSolutions | Internal tools being used |
doNothing | Cost of status quo |
marketDynamics | Competitive dynamics |
Box 3: Solution Ideas¶
"What are our solution concepts?"
From Patton's Solution Ideas with evaluation criteria.
| Field | Description |
|---|---|
ideas | Solution concepts with pros/cons |
recommendedIdea | Which idea is recommended |
selectionReason | Why this idea |
alternativesPros | Why other ideas might work |
alternativesCons | Why other ideas might not work |
Row 2: Value¶
Box 4: User Value¶
"What value does this provide to users?"
Combines Patton's User Value with Cagan's Value Proposition.
| Field | Description |
|---|---|
valueStatement | Core value proposition for users |
keyBenefits | Main benefits |
painsRelieved | Which pains are addressed |
gainsEnabled | What new gains are enabled |
jobsToBeDone | Jobs this helps accomplish |
adoptionBarrier | What might prevent adoption |
Box 5: Business Value¶
"What value does this provide to the business?"
Combines Patton's Business Problem/Metrics with Cagan's Market Size.
| Field | Description |
|---|---|
businessProblem | Why this matters to the business |
businessOutcomes | Expected business outcomes |
revenueImpact | Revenue potential |
costImpact | Cost savings/implications |
strategicFit | How this fits strategy |
marketSize | TAM/SAM/SOM |
Box 6: Competitive Edge¶
"Why are we best suited to pursue this?"
From Cagan's Our Differentiator.
| Field | Description |
|---|---|
differentiator | What makes us different |
coreStrengths | What we do well |
uniqueCapabilities | What only we can do |
strategicAssets | Assets we can leverage |
unfairAdvantage | What's hard to replicate |
entryBarriers | Barriers we create |
Row 3: Market¶
Box 7: Market & Timing¶
"Who's the market and why now?"
Combines Cagan's Target Market with Market Window.
| Field | Description |
|---|---|
primarySegment | Main target segment |
secondarySegments | Additional segments |
whyNow | Primary reason for timing |
marketTriggers | Events creating opportunity |
technologyShifts | Tech changes enabling this |
windowDuration | How long window is open |
urgencyLevel | high, medium, low |
Box 8: Go-to-Market¶
"How will we get this to users?"
Combines Patton's Adoption Strategy with Cagan's GTM Strategy.
| Field | Description |
|---|---|
strategy | Overall GTM approach |
adoptionPath | How users will find/adopt |
channels | Distribution channels |
salesModel | Self-serve, sales-led, PLG |
launchApproach | Beta, GA, etc. |
estimatedCAC | Customer acquisition cost |
Box 9: Success Metrics¶
"How will we measure success?"
Combines Patton's User/Business Metrics with Cagan's Metrics/Revenue.
| Field | Description |
|---|---|
primaryMetric | North star metric |
userMetrics | User behavior to track |
businessMetrics | Business outcomes to measure |
leadingIndicators | Early signals of success |
revenueModel | Subscription, usage, etc. |
timeToValue | When value is realized |
Row 4: Validation¶
Box 10: Critical Requirements¶
"What must be true for this to succeed?"
From Cagan's Solution Requirements.
| Field | Description |
|---|---|
mustHaveCapabilities | Non-negotiable features |
technicalRequirements | Technical needs |
integrationNeeds | Required integrations |
complianceNeeds | Regulatory/compliance |
keyDependencies | External dependencies |
successConditions | Conditions that must be met |
Box 11: Risks & Assumptions¶
"What are we betting on and what could go wrong?"
Combines Patton's Assumptions with Cagan's Key Assumptions.
| Field | Description |
|---|---|
keyAssumptions | Key assumptions to validate |
riskiestAssumption | Most critical assumption |
risks | Identified risks |
highestRisk | Most critical risk |
mitigationStrategy | How to mitigate top risks |
validationApproach | How to validate assumptions |
experimentsNeeded | Experiments to run |
Box 12: Recommendation¶
"Given all the above, what's the recommendation?"
Combines Cagan's Recommendation with Patton's Budget.
| Field | Description |
|---|---|
decision | go, no-go, conditional, defer |
rationale | Why this decision |
confidence | high, medium, low |
conditions | Conditions for conditional go |
timeEstimate | Time to deliver |
teamSize | Team needed |
investmentAsk | Budget requested |
nextSteps | What to do next |
successCriteria | How we'll know it worked |
Prioritization¶
OpportunitySpec integrates with two prioritization frameworks for feature evaluation:
RICE Scoring¶
RICE provides quantitative scoring based on Reach, Impact, Confidence, and Effort.
// Set RICE score
spec.SetRICE(1000, prioritization.ImpactHigh, prioritization.ConfidenceHigh, 2.0)
// Check score
if spec.HasRICE() {
score := spec.GetRICEScore()
fmt.Printf("RICE Score: %.0f\n", score) // 1000
}
| Component | Description |
|---|---|
| Reach | Users affected per quarter |
| Impact | massive (3x), high (2x), medium (1x), low (0.5x), minimal (0.25x) |
| Confidence | high (100%), medium (80%), low (50%) |
| Effort | Person-months |
Kano Model¶
Kano classifies features by customer satisfaction impact.
// Set Kano from questionnaire responses
spec.SetKano(prioritization.KanoLike, prioritization.KanoDislike)
// Check category
if spec.HasKano() {
category := spec.GetKanoCategory() // "performance"
}
// Convenience checks
if spec.IsMustHave() { /* Basic expectation */ }
if spec.IsDelighter() { /* Attractive feature */ }
if spec.IsPerformance() { /* More is better */ }
| Category | Priority | Description |
|---|---|---|
| Must-Be | 5 | Basic expectation - absence causes dissatisfaction |
| Performance | 4 | Linear satisfaction - more is better |
| Attractive | 3 | Delighter - unexpected positive surprise |
| Indifferent | 1 | No significant impact |
| Reverse | 0 | Unwanted - presence causes dissatisfaction |
Prioritization Summary¶
summary := spec.GetPrioritizationSummary()
// summary.HasRICE, summary.RICEScore
// summary.HasKano, summary.KanoCategory, summary.KanoPriority
See Prioritization for detailed documentation on RICE and Kano frameworks.
Usage Example¶
spec := canvas.NewOpportunitySpec("os-mobile", "Mobile App OpportunitySpec")
// Row 1: Discovery
spec.UsersAndProblem = canvas.OSUsersAndProblem{
PrimaryUsers: []canvas.OSUser{
{Name: "Field Service Reps", Goals: []string{"Complete jobs faster"}},
},
ProblemStatement: "Field teams cannot access critical data without WiFi",
CustomerPains: []string{"Delayed decisions", "Manual workarounds"},
}
spec.CurrentSolutions = canvas.OSCurrentSolutions{
DirectCompetitors: []canvas.OSCompetitor{
{Name: "FieldPro", Strengths: []string{"Mobile-first"}},
},
Workarounds: []string{"Paper forms", "Phone calls to office"},
}
spec.SolutionIdeas = canvas.OSSolutionIdeas{
Ideas: []canvas.OSSolutionIdea{
{ID: "S1", Name: "Native App", Feasibility: "high"},
{ID: "S2", Name: "PWA", Feasibility: "medium"},
},
RecommendedIdea: "S1",
}
// Row 2: Value
spec.UserValue = canvas.OSUserValue{
ValueStatement: "Complete jobs 50% faster with offline access",
KeyBenefits: []string{"Work anywhere", "Real-time sync"},
}
spec.BusinessValue = canvas.OSBusinessValue{
BusinessProblem: "Losing deals to mobile-first competitors",
BusinessOutcomes: []string{"Increase win rate 20%"},
MarketSize: "TAM: $5B, SAM: $1.2B",
}
spec.CompetitiveEdge = canvas.OSCompetitiveEdge{
Differentiator: "Deep enterprise integration",
UnfairAdvantage: "Existing customer relationships",
}
// Row 3: Market
spec.MarketAndTiming = canvas.OSMarketAndTiming{
PrimarySegment: "Enterprise field service",
WhyNow: "5G rollout enabling new use cases",
UrgencyLevel: "high",
}
spec.GoToMarket = canvas.OSGoToMarket{
Strategy: "Land and expand with existing customers",
SalesModel: "sales-led",
}
spec.SuccessMetrics = canvas.OSSuccessMetrics{
PrimaryMetric: "Weekly active mobile users",
BusinessMetrics: []string{"Mobile-originated revenue"},
}
// Row 4: Validation
spec.CriticalRequirements = canvas.OSCriticalRequirements{
MustHaveCapabilities: []string{"Offline mode", "Sync engine"},
}
spec.RisksAndAssumptions = canvas.OSRisksAndAssumptions{
RiskiestAssumption: "Users will adopt mobile within 30 days",
Risks: []canvas.OSRisk{
{ID: "R1", Description: "Development longer than expected", Impact: "high"},
},
}
spec.Recommendation = canvas.OSRecommendation{
Decision: "go",
Rationale: "Strong market need, clear differentiation",
Confidence: "high",
TimeEstimate: "6 months",
InvestmentAsk: "$1.2M",
NextSteps: []string{"Form team", "Customer validation"},
}
// Check decision
if spec.IsGo() && spec.HasHighConfidence() {
fmt.Println("Ready to proceed!")
}
Integration with multispec¶
OpportunitySpec is designed to integrate with multispec for LLM-as-a-Judge evaluation:
# Initialize with OpportunitySpec profile
multispec init my-feature --profile aws-feature
# Draft the OpportunitySpec
multispec draft opportunity-spec -p my-feature
# Evaluate against rubric
multispec eval opportunity-spec -p my-feature
# If passing, proceed to Press Release
multispec synthesize press -p my-feature
Canonical Assets in prism-roadmap¶
| Asset | Path | Description |
|---|---|---|
| Go Types | canvas/opportunity_spec.go | OpportunitySpec struct and helpers |
| Template | templates/opportunity-spec.md | Markdown template with placeholders |
| Rubric | rubrics/opportunity-spec.rubric.yaml | LLM-as-a-Judge evaluation criteria |
Comparison¶
| Aspect | Opportunity Canvas | Opportunity Assessment | OpportunitySpec |
|---|---|---|---|
| Boxes | 10 (9+budget) | 10 | 12 |
| Focus | Discovery | Business case | Both |
| Output | Problem understanding | Go/no-go decision | Comprehensive evaluation |
| Best for | Early exploration | Investment decision | Feature-level opportunities |
When to Use¶
Use OpportunitySpec when:
- Evaluating a feature-level opportunity (not a new product line)
- Need both discovery rigor and business case
- Bridging PM discovery with executive approval
- Feeding into multispec Working Backwards flow
Use Opportunity Canvas (Patton) when:
- Pure discovery/exploration phase
- Don't need business case rigor yet
Use Opportunity Assessment (Cagan) when:
- Evaluating a major new initiative
- Need formal investment approval
- Less focus on discovery, more on business viability
Template¶
See templates/opportunity-spec.md for a complete markdown template.
Rubric¶
See rubrics/opportunity-spec.rubric.yaml for LLM evaluation criteria with 5 weighted categories:
| Category | Weight | Description |
|---|---|---|
| Discovery Clarity | 20% | Problem definition, user identification, competitive analysis |
| Value Proposition | 25% | User value, business value, differentiation |
| Market & Timing | 20% | Market definition, timing rationale, success metrics |
| Validation Readiness | 20% | Requirements, risks, recommendation quality |
| Document Quality | 15% | Coherence, completeness, actionability |
See Also¶
- Opportunity Canvas - Jeff Patton's discovery-focused canvas
- Opportunity Assessment - Marty Cagan's SVPG framework
- multispec AWS Workflow - Working Backwards integration