River
Y CombinatorBacked by Y Combinator
FREE TEMPLATE

Product Roadmap and Capacity Plan

Every roadmap template hands you a timeline. This one derives your capacity from what you actually shipped and labels every line's commitment level.

Free download  ·  No account needed

Every product roadmap template solves the easy problem. It gives you a grid of quarters and a place to put initiatives, and the grid was never what made the last roadmap fall apart. What fell apart was different. An engineering lead said the plan was twice the team's capacity and nobody had a number to settle it with. Or a directional item came back six months later as something sales had already promised.

This pack derives your capacity instead of asking for it. Delivery History holds what each team actually finished per period, and Capacity Check reads it to compute a low, a median and a best, then divides the quarter's planned load by the median and reports the ratio. Nothing on that sheet comes from a person. Every figure recomputes from the history, which is what lets you put a number in front of an executive and have the conversation be about the plan rather than about your credibility.

The second half is commitment level. Every row in the Initiative Register says whether it is Committed, Planned, Directional or Exploring, what each of those licenses a stakeholder to do, and which decision last changed it. Directional work is excluded from the capacity check on purpose. Levels come down freely and go up only through a named decision, because the failure that costs a team its credibility is not a missed date, it is an intent quietly remembered as a promise.

The quarter that does not fit, and the sheet that proves it

Every figure in Capacity Check recomputes from Delivery History. Nothing on it was typed in by a person.

Initiative Register

Illustrative rows for a fictional expense management company, Ledgerline.

IDInitiativeTeamQtrLevelEffortEvidence
001SOC 2 evidence automationPayments26Q1Committed53 deals blocked, 340k ARR
002Chargeback dispute flowPayments26Q1Committed47 interrupt items in 25Q4
003Multi-currency settlementPayments26Q1Committed3none recorded
004Processor failoverPayments26Q1Planned42 incidents, same cause
005Partial refund supportPayments26Q1Planned388 support requests
020Spend forecastingPaymentsnoneDirectionaln/a2026 strategy deck
022Receipt OCR replacementMobile26Q1Exploringn/a11% error rate, n=400

Committed and Planned rows load the quarter. Directional and Exploring rows never do. Initiative 003 is committed on an offsite conversation with no evidence attached, which is why it is the first thing that comes off.

Capacity Check

Throughput derived from six periods of Delivery History. Load summed from the register.

QtrTeamLowMedianBestLoadRatioVerdict
26Q1Payments1113.516191.41Over
26Q1Platform1719.522150.77Room
26Q1Mobile89.51290.95Tight
26Q2Payments1113.516221.63Fiction
26Q1Growth56761.00Insufficient history

Payments 26Q1 needs 19 finished items from a team whose best recorded quarter was 16. Growth has two periods, one of them partial, so its plan is unchecked rather than approved.

Delivery History

The Payments team, six periods, split into planned and unplanned work.

PeriodPlanned finishedInterrupt itemsAbandonedInterrupt share
24Q3145226%
24Q4118142%
25Q1164020%
25Q2136332%
25Q3155125%
25Q4127237%

Median 13.5, low 11, best 16. The interrupt column is the number that wins the argument: in 24Q4 this team spent 42% of its output on work no roadmap ever contained.

What you get

01

Capacity Check

Reads Delivery History and reports the low, median and best throughput per team, the quarter's load, the ratio between them, and a verdict. Every figure recomputes from the history sheet, so a stakeholder who disagrees argues with the method rather than with you.

02

Delivery History

One row per period per team, splitting what shipped into planned work, unplanned interrupt work, and work started then dropped. The interrupt column is usually the most persuasive number in the pack.

03

Initiative Register

One row per initiative with the outcome it buys, the evidence that justified it, an explicit commitment level, and the decision that last changed that level. An empty evidence cell on a committed row is left empty on purpose.

04

Commitment Language

Four levels, each with what it licenses a stakeholder to do, what it costs in capacity, and the test that distinguishes it from the level below. Rename them to your team's own words in the first session.

05

Sequencing

One row per dependency, marked hard or soft, with the cost of a soft one stated. Catches the two patterns that break plans: a commitment resting on something nobody promised, and a cross-team dependency landing in the quarter that needs it.

06

Roadmap Narrative

The document that goes out with the slide, including the capacity number and what comes off if something has to. A roadmap that has already decided what it sacrifices survives a bad quarter. For a plan that is already settled, the 12-month roadmap narrative writes the story on its own.

How it works

  1. 1

    Send your delivery data

    A ticket export of closed items with close dates, covering the last six periods. River fills Delivery History and derives each team's throughput before it looks at a single initiative.

  2. 2

    Send your strategy inputs

    The deck, the request backlog, sales asks, support tags, churn interviews, last year's roadmap. River turns them into register rows with the evidence attached and the commitment level set at the lowest the inputs support.

  3. 3

    Get the quarters checked

    Once your team estimates effort, River assigns quarters, fills Sequencing, and reports the ratio per team. Expect at least one quarter to come out over; that is the useful outcome, not a failure.

  4. 4

    Decide what comes off

    River puts the options in front of you rather than silently rebalancing: which item to drop, which level to lower, which to move, and what each one costs.

Frequently asked questions

Why does this count finished items instead of story points?

Because points are a weak foundation for a capacity argument. The words "velocity" and "story point" each appear zero times in the 2020 Scrum Guide, which points teams at their "past performance" instead. The Kanban Guide is blunter still: "the measurement of throughput is the exact count of work items". An exact count recomputes from any ticket export.

What if my roadmap is not quarterly?

Any period works, as long as Delivery History and the plan use the same one. Months, six-week cycles and sprints all behave identically. The check reads the last six periods and reports how many it used, so a team on six-week cycles simply gets a check covering nine months instead of eighteen.

Does this decide what should be on the roadmap?

No, deliberately. This space answers whether a plan is deliverable and what each line commits you to. Choosing between initiatives is a different job, and the prioritization framework pack does that one. For the fast version, try how to prioritise when everything feels urgent. The register reads effort estimates from your team rather than producing them.

How is this different from a PRD?

A roadmap says what a team will do and when. A PRD says what one of those things actually is, in enough detail to build. They stack: initiatives here become specs in the PRD pack, or a one-pass draft from the PRD tool. Decide the quarter first, then spec what you committed to.

Why four commitment levels instead of committed and not committed?

Because two levels collapse into a binary that everything gets sorted into optimistically. Basecamp's Shape Up draws the same distinction with the betting table, where a bet commits a specific team for a specific cycle and is explicitly not a backlog item waiting its turn. Three levels work. Two do not.

What happens to the interrupt work nobody plans for?

It is already priced in, which is the point of deriving capacity from finished work. Your throughput came from a team simultaneously absorbing escalations, so the tax needs no estimating. Its own column also tells you which category to fix, the same way a postmortem turns one incident into a change. Planning forward, the quarterly planning pack subtracts it as a measured line.

What if we have no delivery history?

A team with fewer than three periods gets the verdict "Insufficient history" rather than an extrapolation from two data points, and its plan is reported as unchecked. Treat its initiatives as directional until a third period closes. A brand new team planning its first release should start with an MVP roadmap instead.

Check your next quarter before you present it

Send a ticket export and your strategy inputs. River derives what your teams actually finish, loads the quarter against it, and tells you what comes off.

Build my roadmap