River
Y CombinatorBacked by Y Combinator
FREE TEMPLATE

Opportunity Solution Tree Template

Every tree template says opportunities should come from research. This one makes each branch name the interviews it came from, and counts them.

Free download  ·  No account needed

Teresa Torres, who created this artifact, is direct about the constraint: keeping the tree to opportunities heard in customer interviews is what guarantees a team is working on real unmet needs. Opportunities that arrive through tickets or analytics usually lack the context that makes them safe to act on. Every template you can download repeats that instruction. None of them gives you a way to check whether you followed it. A tree that broke the rule looks exactly like one that kept it.

So that is the only thing this pack adds. Every opportunity names the specific sources it came from, with dates, and the count is the verdict. Five or more distinct sources is established. One is a quote. None at all is a solution somebody wanted, written upwards and drawn as a need. The threshold is not invented: a bootstrap study of thematic saturation put the median at six interviews before new information dropped below five percent of the total.

Then the second pass runs upward, tracing every roadmap item back to an opportunity and every opportunity to the outcome. In the worked example the six best-evidenced opportunities held 72 percent of the evidence and 22 percent of the effort. Putting two interviews in front of the fourteen engineer-weeks resting on two sources costs two days, which is under three percent of the build being checked. Sits under the strategy the tree serves, next to the outcome it hangs from and ahead of the roadmap it feeds.

Nineteen branches, sixty-eight citations, one tree upside down

Every opportunity cited by name and date, every roadmap item traced upward, and the two shares put side by side.

Opportunity Register

Illustrative, for a fictional veterinary practice management product called Kettleby. Outcome: appointments booked without a phone call, 22 percent to 40 percent. A sample of the 19 drafted opportunities, cited against 54 research artifacts.

Opportunity, in the customer’s wordsSourcesMost recentEngineer-weeksVerdict
I book the recheck while they are still at the desk, because if I let them go I am phoning them on Thursday143 weeks0Established
Half my no-shows are people who wanted to move the appointment and could not reach anyone95 weeks4Established
Two of my clients only use the app because their daughter set it up for them69 weeks0Established
It would be easier if the whole thing was in one app25 months14Thin
Emergency slots get taken by routine bookings214 months2Thin and stale
Customers want a mobile app15 months0Candidate
Practices want to reduce phone volume15 months0The outcome restated
Integration with the reference lab0n/a0A solution written upwards
19 opportunities as drafted68 citations, 35 distinct sources19 of 54 artifacts cited nowhere46 across the roadmap6 established, 5 thin, 5 candidates, 3 not opportunities

The count is the verdict, and the thresholds are written down before the list is read. Five or more distinct sources is established. Two to four is thin. Exactly one is a quote rather than an opportunity, so it becomes a candidate with the next interview named. None at all is almost always a solution written upwards, and it moves down to the solution layer under whichever opportunity it genuinely serves. Two branches here are neither: one restates the outcome as an opportunity, and one is a project name.

Evidence share against effort share

The second pass runs upward. Every roadmap item traced to an opportunity, every opportunity to the outcome, then one division per row.

BranchSourcesShare of evidenceEngineer-weeksShare of effort
O-04 Rechecks are booked at the desk or not at all1421%00%
O-09 The app works because somebody else set it up69%00%
O-11 It would be easier if it was all in one app23%1430%
The 6 established opportunities together4972%1022%
The 13 thin, candidate and non-opportunity branches1928%2452%
Roadmap items reaching no opportunity at alln/an/a1226%
Whole tree68100%46100%

Seventy-two percent of the evidence, twenty-two percent of the effort. The opportunity raised unprompted in nine of thirty-four interviews has nothing being built for it, and the one resting on two aside comments from five months ago carries 30 percent of the roadmap. Nobody decided that. Trees get drawn once and roadmaps keep moving, so the two drift apart by default, and this comparison is the only routine way to see it. Of the 12 engineer-weeks reaching no opportunity, 5 are compliance and platform work that is correctly off the tree and now labelled as such, and 7 are genuinely orphaned.

What the tree does next

The output is three moves, not a rebuilt roadmap. A register that recommends cancelling a quarter of committed work gets ignored, and it should be.

MoveBranchWhat it costsWhat it sits in front ofWhy now
Two interviews before the build continuesO-11, 2 sources2 days70 engineer-days2.9 percent of the work it checks. Both sources said it as an aside
A discovery slot and three solution optionsO-04, 14 sources3 daysNothing yetUnbuilt because nobody proposed anything, not because it lost
One query against existing dataO-06, 2 stale sourceshalf a day2 engineer-weeksBoth sources predate the release that may already have fixed it
Label the orphans as orphans8 roadmap items1 hour12 engineer-weeks3 are correctly off-tree, 5 are not, and the next planning list is shorter
Demote, do not delete5 single-source branchesn/a0 engineer-weeksEach gets a named next interview rather than a deletion
Re-point the experiments4 runningn/an/a3 of the 4 test solutions already in build, which is the wrong order
Whole pass19 branches, 23 items2 days of one person46 engineer-weeksAgainst artifacts that already exist

The first row is the one worth doing even if nothing else here is. Two interviews cost two days and they sit in front of 70 engineer-days of committed build, so the check is under three percent of the thing it checks. The recommendation is never to cancel the work, because the register has not earned that and the team will not act on it. It is to spend two days establishing whether the largest bet on the board rests on anything, before the remaining fourteen engineer-weeks are spent finding out.

What is in the pack

01

A source column, listed by name rather than counted

Interview numbers, ticket clusters, recording identifiers, each with a date. Not a note saying it came from research.

02

Thresholds written down before the list is read

Five or more sources is established, two to four is thin, one is a candidate, none is a solution in the wrong layer. Applied equally to every branch.

03

An upward trace from the roadmap

Every item traced to an opportunity, and the ones reaching nothing split into correctly off-tree work and genuine orphans.

04

Evidence share against effort share

One division per row, and the output most likely to change a decision. It is usually the first time anybody sees the drift.

05

A recency check that takes ten minutes

When the tree was last restructured against how many sources postdate it. Well-evidenced and stale is a real state and a count hides it.

06

The tree written as prose, not drawn

On a canvas a branch with one aside and a branch with fourteen interviews are the same size box. In a sentence they are not.

How it works

  1. 1

    Send the outcome

    One measurable thing with a baseline and a target. The tree and the research come next.

  2. 2

    Cite every branch

    Specific sources by name, with dates, working down from the branches carrying the most effort.

  3. 3

    Trace the roadmap up

    Every item to an opportunity, and every opportunity to the outcome. The ones that reach nothing are the finding.

  4. 4

    Compare the shares

    Evidence share against effort share, then three moves rather than a rebuilt roadmap.

Frequently asked questions

What do I need before this is useful?

One outcome with a baseline and a target, the tree if it exists, everything the research produced, and the current roadmap with rough effort against each item. Raw interview notes beat summaries, because a summary has already dropped the attribution this pack runs on.

What if we do not have a tree yet?

That is a cleaner start, not a worse one. Building from the research means the opportunities arrive with their citations already attached, which is the right way round. The two passes are the same, and the upward trace from the existing roadmap still finds the orphans.

Why is one source not enough?

Because a single mention establishes that somebody said it, not that it is a pattern. The published work on saturation counts sources for exactly this reason. A single-source branch is not deleted here, it is marked as a candidate with the next interview named, which is a cheap thing to settle.

Does this mean support tickets and analytics do not count?

They count and they are recorded as a different kind of source. A ticket cluster tells you something happens and not why, and a feature request tells you somebody asked for a solution. A branch resting only on those is a candidate rather than a disqualified one.

Will this tell me to cancel work?

No, and a register that did would be ignored. The output is three moves: a discovery slot for the best-evidenced branch, two interviews in front of the largest bet resting on the thinnest evidence, and the orphans labelled. That second move cost two days against 70 engineer-days in the example.

How is this different from prioritisation?

It answers a prior question. Nothing here scores opportunities against each other or ranks them by reach and effort. It establishes which branches have earned a decision at all, and scoring comes after that. A ranked list of unevidenced opportunities is still unevidenced.

How often should the tree be re-cut?

Whenever enough new research has arrived to move it, which the recency check makes visible. In the worked example the tree had not changed shape in five months while 13 further interviews were conducted, and a tree that has stopped changing has stopped being a discovery artifact.

Find out how many of your branches have research behind them

Send the outcome, the tree and whatever the research produced. What comes back first is the count: how many opportunities are established, how many are one quote, and how many are solutions in the wrong layer.

Check my tree against the research