River
Y CombinatorBacked by Y Combinator
FREE TEMPLATE

Quarterly Product Planning Template

Nine engineers, thirteen weeks, 117 engineer-weeks on paper. Sixty-three of them are actually available to commit, and the other fifty-four are already spoken for.

Free download  ·  No account needed

Quarterly plans get written as though the team starts from zero. No team ever does, and that one omission is why a plan that fits on paper does not fit in practice, and why the failure afterwards gets read as poor execution rather than arithmetic. Capacity is a subtraction with five terms and most planning meetings quote only the first: nominal, minus carryover, minus measured interrupt load, minus booked leave, minus maintenance with an external deadline.

The term that decides everything is carryover, and it is missing for a structural reason: the session opens with a fresh candidate list, so nobody in the room is holding last quarter's unfinished work. Build that sheet first and a question appears that no fresh-start process can ask, which is whether the half-finished work is still worth finishing. In the worked quarter, stopping one initiative that was 60% built freed fourteen engineer-weeks, which was 22% of everything available. Nothing on the candidate ranking moved half that much.

Basecamp arrived at the same order from the other end with fixed time and variable scope: set the budget, then shape the work to fit it. Ranking a list against an unknown budget cannot terminate, which is why the sessions that overrun are always the ones that opened with the backlog. The output is three tiers rather than one plan, because a single list makes every item equally binding and therefore nothing binding. Once the number exists, the prioritization pack cuts the list against it and the roadmap pack publishes what survives.

117 engineer-weeks on paper, 63 in reality, 119 asked for

Capacity Model, Prior Quarter Carryover and the Candidate Register cut against them.

Capacity Model

Illustrative for a fictional field service platform, Rivenhall. Nine engineers across a thirteen-week quarter.

LineEngineer-weeksOf nominalBasis
Nominal capacity117100%9 engineers x 13 weeks. The only number anybody quotes
Less carryover-17-15%Re-estimated, after one initiative was stopped
Less interrupt load-18-15%Measured at 15.4% across three quarters. Assumed at 10% for three years
Less leave and holidays-11-9%Booked, plus one parental leave from week 6
Less non-negotiable maintenance-8-7%Framework end-of-life and two deprecations dated inside the quarter
Available for new commitments6354%With the dashboard builder stopped
Available if nothing is stopped4942%14 fewer, which is 22% of what remains
Committed5950%6 initiatives. Fits inside 63
Unallocated buffer43%Deliberately small, with a named rescope when it goes
Asked for at the start119102%11 candidates plus everything unfinished. Nearly double

Every line under nominal is a number somebody already had. None of it is pessimism, and 54% available is not a problem to fix: raising it by shaving the interrupt measurement is how the figure becomes fictional again.

Prior Quarter Carryover

Built before capacity, and long before anything is ranked. The two remaining columns are the point.

InitiativeEst.SpentDoneLeft, as reportedLeft, re-estimatedVerdictFrees
Custom dashboard builder15960%614Stop14
Bulk edit for shipment records8862%05Finish-
Warehouse API v2201155%99Finish-
SSO with SCIM sync9667%33Finish-
Technician skills matrix7229%55Back to candidates5
Reschedule reason capture600%66Recommit as new-
Carryover if everything finishes31
Carryover after one stop1714

The dashboard builder is the whole argument. Six weeks remaining at the last status update, fourteen once somebody re-estimated it, and the account that requested it churned in month two. Nine engineer-weeks are written off either way, and that is not a reason to spend fourteen more.

Candidate Register

Sorted on evidence with a running effort total beside it. The line is drawn where the total crosses 63. No weighted scores: weights get tuned until the answer comes out right.

CandidateEffortRunningEvidenceTier
Reschedule reason capture6641% of reschedules recorded no reasonCommitted
Bulk technician import410Onboarding is 11 days median, 6 of them thisCommitted
Reporting export API81819 accounts asked, 6 in renewal conversationsCommitted
Audit log9272 enterprise deals blocked in security review, 340k ARRCommitted
Parts inventory phase 214413 deals naming it, 210k ARR, promised at launchCommitted
Mobile offline mode185961 tickets; top technician complaint in every interviewCommitted
Available capacity 63. Buffer 4. Line drawn here
Custom fields on jobs127111 accounts asked, none blockingPlanned, hear by wk 6
Technician skills matrix7782 engineer-weeks already spent, which argues for nothingPlanned, hear by wk 6
Slack integration58314 accounts asked, all nice-to-havePlanned, hear by wk 9
Multi-language technician app15982 named deals, 180k ARR, both requiring SpanishCut on effort
Advanced scheduling optimiser21119Raised in every board meeting for 3 quarters. 3 accounts askedCut, CEO told directly
AI job summarisation--Nobody has asked. Two engineers want to try itExploring

The cheapest row has the strongest measured effect: bulk technician import is four engineer-weeks against six days of manual entry in every single onboarding. The largest and most senior request is cut, in writing, with what the cut costs and who was told on which date.

What is in the pack

01

Capacity Model

Five lines, every one of them a number your team already has. Nominal, carryover, measured interrupt load, booked leave, dated maintenance. Plus what a stop decision would free, stated as a share of what remains.

02

Prior Quarter Carryover

Every unfinished initiative with remaining-as-reported and remaining-re-estimated in separate columns. The gap between those two is what makes next quarter fail the same way as this one.

03

Candidate Register

Effort, evidence, running total, tier. Evidence must be a count, a named account, a measured figure or a contractual obligation. Strategic and table stakes are not evidence.

04

Commitment Summary

Three tiers with three different promises. Committed carries a named consequence if missed, Planned carries the week you will hear yes or no, Exploring carries no date and says so.

05

Trade-off Note

One section per cut: who asked, what the cut costs, whether they have been told and on what date, and the specific thing that would change the answer.

06

Planning Agenda

The session run in the order that works, with carryover and stop decisions first rather than in the last ten minutes after the plan is already written.

How it works

  1. 1

    Send last quarter and next quarter

    What finished and what did not, the candidate list in any shape, and your headcount, leave and on-call rota. Half-remembered is fine to start.

  2. 2

    Carryover gets built first

    Every unfinished item is re-estimated from where it actually is, not carried at whatever figure was in the last status update. Those two disagree constantly.

  3. 3

    Decide what to stop

    One question per unfinished initiative: is the remaining cost worth the remaining value, given what is known now. Percent complete is recorded and never argues.

  4. 4

    Cut the list against what is left

    Sorted on evidence, running total beside it, line drawn where the total crosses available capacity. Everything below the line gets a row in the trade-off note.

Frequently asked questions

Why is carryover the term that matters?

Because it is the only one that is structurally invisible. A planning session opens with a fresh candidate list, so nobody in the room is holding last quarter's unfinished work, and it gets bolted on at the end when the plan is already written. Building it first is also the only way the stop question ever gets asked.

Do I need story points or a velocity model?

No, and the pack deliberately does not build one. Effort goes in as coarse engineer-weeks. The value is in the subtraction, not in estimate precision. A team spending the session arguing whether something is 8 or 10 weeks has missed that they were 56 engineer-weeks over. Outcome targets get the same treatment in the OKR pack, checked against the metric's own record.

What if we cannot measure our interrupt load?

Say so explicitly, use 15% as a stated placeholder, and put measuring it in the plan as a task. The portfolio review derives it from delivery history. It is worth doing once: the worked team assumed 10% for three years against a measured 15.4%, which on 117 nominal engineer-weeks is roughly one initiative a year with no capacity behind it.

Is stopping a 60%-complete project not just waste?

The nine engineer-weeks are written off whichever way the decision goes. The only live question is whether the fourteen remaining are worth more here than anywhere else, and once the requesting account has churned they are not. Percent complete is a fact about the past and it gets recorded, never argued from.

Why three commitment tiers instead of one plan?

One list makes every item equally binding, which makes nothing binding. The Scrum Guide reaches the same place from the other side by attaching an explicit commitment to each artifact so progress can be measured against something. A stakeholder who knows their item is Planned and will hear in week six stops asking weekly.

How is this different from a prioritization framework?

A framework ranks a list. This produces the number the ranking has to fit inside, which is the step before it. The choices the ranking serves come out of the product strategy pack. Run this first, then rank the survivors with the prioritization pack, publish with the roadmap pack, and ship what lands through the launch brief pack.

We are four engineers, not nine. Does it still work?

Better, because the terms are proportionally larger. One person's parental leave is 25% of a four-person quarter, and a single unfinished initiative can consume the entire remainder. Small teams also carry interrupt load worse, since there is nobody to absorb it.

Find out how much of next quarter exists

Send last quarter's unfinished work and next quarter's list. The first number back is what is actually available, and it is usually about half.

Work out my real capacity