How the Opportunity Solution Tree Framework Drives Continuous Product Discovery

The Opportunity Solution Tree (OST) is a visual framework that structures continuous product discovery by connecting a single measurable desired outcome to a hierarchy of customer opportunities, potential solutions, and experiments that validate those solutions.

The Opportunity Solution Tree framework provides a structured approach to product discovery that prevents teams from jumping straight to features. In the phuryn/pm-skills repository, this framework is implemented as a reusable skill that guides product teams through a six-step process, ensuring discovery remains a continuous habit rather than a one-time event.

What Is the Opportunity Solution Tree Framework?

The Opportunity Solution Tree framework visualizes the path from business outcomes to validated solutions through four hierarchical levels. According to the source code in pm-product-discovery/skills/opportunity-solution-tree/SKILL.md, the tree is built around a single desired outcome—typically a measurable metric derived from OKRs or product strategy. This outcome branches into opportunities framed from the customer's perspective, which then connect to multiple solutions, each validated through experiments.

This structure ensures that product teams map opportunities before designing solutions, avoiding the "first-idea" trap that leads to premature feature development.

Mapping the OST Hierarchy: From Outcomes to Experiments

Defining the Desired Outcome

The root of every OST is one specific, measurable outcome. For example: "Increase 7‑day retention to 40 %" (current baseline: 32 %). This singular focus prevents scattered effort across multiple competing metrics.

Identifying and Scoring Opportunities

Opportunities are expressed as customer needs using the format "I wish I could …" or "I struggle with …". The framework prioritizes these using the Opportunity Score formula:


Opportunity Score = Importance × (1 − Satisfaction)

A high-importance, low-satisfaction opportunity yields a high score (e.g., 0.9 importance × 0.3 dissatisfaction = 0.63), indicating a valuable problem to solve.

Generating Solutions and Experiments

For each high-scoring opportunity, cross-functional teams—including Product Managers, Designers, and Engineers (the Product Trio)—generate multiple solutions. Each solution links to fast, cheap experiments that test assumptions around value, usability, viability, and feasibility. These experiments provide "skin-in-the-game" risk reduction before committing to full development.

Implementing OST in the pm-skills Repository

The phuryn/pm-skills repository implements the Opportunity Solution Tree framework as a modular skill within its product discovery toolkit.

Skill Architecture and Configuration

The core logic resides in pm-product-discovery/skills/opportunity-solution-tree/SKILL.md. This file defines the six-step architectural pattern:

  1. Define the desired outcome
  2. Map and prioritize opportunities
  3. Generate multiple solutions
  4. Design experiments
  5. Visualize the tree
  6. Iterate based on results

The skill ensures the tree follows this strict hierarchy: one outcome → many opportunities → many solutions → specific experiments.

Invoking the Opportunity Solution Tree Skill

You can invoke the skill directly through an AI assistant or CLI. The minimal invocation requires only an outcome statement:

Help me build an Opportunity Solution Tree for improving user activation.

The assistant prompts for required inputs—research data, current metrics, and customer interview notes—then produces a markdown OST document.

Sample OST Output Structure

The skill generates a structured markdown document. Here is a representative output showing the hierarchical relationship between components:


# Opportunity Solution Tree – Increase 7‑day retention to 40 %

## Desired Outcome  

🚀 **Increase 7‑day retention to 40 %** (current: 32 %)

### Opportunities

| # | Opportunity (customer phrasing) | Importance | Satisfaction | Score |

|---|--------------------------------|-----------|--------------|-------|
| 1 | "I wish onboarding helped me see value faster." | 0.9 | 0.3 | 0.63 |
| 2 | "I get lost when navigating to the dashboard." | 0.8 | 0.4 | 0.48 |
| 3 | "I’m unsure how to get help if I’m stuck." | 0.7 | 0.5 | 0.35 |

### Solutions

**Opportunity 1** – Onboarding  
1. Interactive walkthrough with progress tracking.  
2. Embedded "quick‑tip" videos on key features.  
3. Gamified onboarding badge system.

**Opportunity 2** – Navigation  
1. Persistent left‑hand navigation bar.  
2. Context‑aware search with suggestions.  
3. AI‑driven "help me find" shortcut.

### Experiments

| Solution | Experiment | Hypothesis | Metric | Success Threshold |
|----------|------------|------------|--------|-------------------|
| Interactive walkthrough | 5‑minute user test | Users finish onboarding > 80 % | Completion rate | ≥ 80 % |
| Persistent nav bar | A/B test (nav vs. no‑nav) | Retention ↑ 5 % | 7‑day retention | +5 % |
| AI "help me find" | Smoke test with 20 users | Reduce "I’m stuck" tickets | Ticket volume | ↓ 30 % |

The skill also renders a concise visual tree for quick reference:

Desired Outcome

├─ Opportunity 1: "I wish onboarding …"
│   ├─ Solution A: Interactive walkthrough
│   │   └─ Experiment A1: 5‑min user test
│   ├─ Solution B: Embedded videos
│   └─ Solution C: Gamified badge
└─ Opportunity 2: "I get lost …"
    ├─ Solution D: Persistent nav bar
    │   └─ Experiment D1: A/B test
    └─ …

Integration with the Discovery Command

The OST skill integrates into the broader discovery workflow via pm-product-discovery/commands/discover.md. The /discover command chains multiple skills, ensuring the OST is built on validated inputs:

/discover My AI‑powered note‑taking app

This command executes:

  1. Brainstorm ideas via brainstorm-ideas-new
  2. Identify assumptions
  3. Prioritize assumptions using prioritize-assumptions
  4. Build an Opportunity Solution Tree via opportunity-solution-tree
  5. Design experiments

Why OST Supports Continuous Discovery

The Opportunity Solution Tree framework enables continuous discovery through five key mechanisms:

  • Focus on one outcome at a time. The tree architecture prevents scope creep by anchoring all work to a single metric, as enforced in pm-product-discovery/skills/opportunity-solution-tree/SKILL.md.

  • Opportunity-first mindset. By mapping customer opportunities before generating solutions, teams avoid premature feature design and ensure they solve real problems.

  • Iterative validation. Experiments feed results back into the tree. Branches are killed or expanded based on evidence, creating a living document rather than a static plan.

  • Regular updates. The framework expects the tree to be refreshed weekly as new interview data or analytics arrive, institutionalizing discovery as a habit rather than an event.

  • Cross-functional collaboration. The skill explicitly requires the "Product Trio" to ideate together, ensuring technical feasibility and design insight are considered early in the process.

Summary

Frequently Asked Questions

What is the difference between an opportunity and a solution in the OST framework?

An opportunity represents a customer need or problem expressed from the user's perspective (e.g., "I wish I could see value faster"), while a solution is a specific feature or approach that addresses that opportunity (e.g., "Interactive onboarding walkthrough"). The framework deliberately maps opportunities before solutions to avoid jumping to the first idea and ensure the team solves the right problem.

How is the Opportunity Score calculated in the OST skill?

The Opportunity Score is calculated as Importance × (1 − Satisfaction). Importance measures how much the customer cares about the issue, while Satisfaction measures how well current solutions address it. High-importance, low-satisfaction opportunities yield the highest scores and should be prioritized first.

Can the Opportunity Solution Tree be used outside of the pm-skills repository?

Yes. While the phuryn/pm-skills repository provides automated tooling for generating OSTs, the framework itself is methodology-agnostic. Teams can manually create Opportunity Solution Trees using any markdown editor or whiteboarding tool, following the four-tier hierarchy: Outcome → Opportunities → Solutions → Experiments.

How often should teams update their Opportunity Solution Tree?

According to the source implementation, the tree should be refreshed weekly as new research data, customer interviews, or analytics become available. This cadence ensures the document remains a living artifact that drives continuous discovery rather than a static quarterly roadmap.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →