-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrice-framework.html
More file actions
224 lines (206 loc) · 18.1 KB
/
rice-framework.html
File metadata and controls
224 lines (206 loc) · 18.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>RICE — Intercom's transparent ranking formula</title>
<link rel="stylesheet" href="framework.css">
<style>
/* Page-accent — overrides framework.css fallback */
:root{--page-accent:var(--accent);--page-accent-soft:var(--accent-soft)}
/* RICE-specific anatomy diagram */
.anatomy{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px;box-shadow:var(--shadow);margin:18px 0}
.eq-big{text-align:center;font-family:Georgia,serif;font-size:22px;margin:6px 0 18px}
.eq-big .num{color:var(--page-accent);font-weight:700}
.eq-big .den{color:var(--ink-soft)}
.factors{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:8px 0 0}
.factor{border:1px solid var(--line);border-radius:10px;padding:14px 14px;background:var(--page-accent-soft)}
.factor .lt{font-family:Georgia,serif;font-size:28px;color:var(--page-accent);font-weight:700;line-height:1}
.factor .nm{font-weight:700;margin:2px 0 5px;font-size:14px}
.factor .ds{font-size:12.5px;color:var(--ink-soft);line-height:1.45}
.factor .scl{font-size:11.5px;color:var(--page-accent);margin-top:6px;font-weight:600}
/* RICE-specific limits box */
.limits{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 22px;margin:14px 0;box-shadow:var(--shadow)}
.limits h3{margin:0 0 8px;font-size:16px}
.limits ul{margin:6px 0;padding-left:22px}
.limits li{margin:6px 0;font-size:14.5px;color:var(--ink-soft)}
.limits li b{color:var(--ink)}
/* Mobile — factor grid only (h1 size handled in framework.css) */
@media(max-width:680px){.factors{grid-template-columns:repeat(2,1fr)}}
</style>
</head>
<body>
<nav class="sitenav">
<details>
<summary>📑 Jump to</summary>
<div class="navmenu">
<div class="navgrp"><h4>Start here</h4>
<a href="index.html"><b>← Home (goal & map)</b></a>
<a href="impact-saas-companies.html">SaaS / B2B field study</a>
<a href="impact-consumer-companies.html">Consumer-tech field study</a>
<a href="methodologies-comparison.html"><b>All methods compared →</b></a>
<a href="experiment-trustworthiness.html">How 40k tests actually work →</a>
<a href="jargon.html">Jargon (glossary)</a>
</div>
<div class="navgrp"><h4>Scoring & Input modeling</h4>
<a class="cur" href="rice-framework.html">RICE (Intercom)</a>
<a href="north-star-framework.html">North Star (Amplitude / Slack)</a>
</div>
<div class="navgrp"><h4>Goal-laddering / Define first</h4>
<a href="v2mom-framework.html">V2MOM (Salesforce)</a>
<a href="pyramid-of-clarity-framework.html">Pyramid of Clarity (Asana)</a>
<a href="pr-faq-framework.html">PR-FAQ / Working Backwards (Amazon)</a>
<a href="heart-framework.html">HEART (Google)</a>
<a href="dibb-framework.html">DIBB (Spotify)</a>
</div>
<div class="navgrp"><h4>Experimentation (SaaS)</h4>
<a href="microsoft-exp-framework.html">Microsoft ExP / CUPED</a>
<a href="linkedin-xlnt-framework.html">LinkedIn T-REX</a>
</div>
<div class="navgrp"><h4>Experimentation (Consumer)</h4>
<a href="netflix-experimentation.html">Netflix · ABlaze</a>
<a href="booking-experimentation.html">Booking.com</a>
<a href="airbnb-erf-framework.html">Airbnb ERF</a>
<a href="uber-xp-framework.html">Uber XP</a>
<a href="doordash-switchback-framework.html">DoorDash switchback</a>
<a href="lyft-experimentation.html">Lyft</a>
<a href="pinterest-ab-framework.html">Pinterest</a>
</div>
<div class="navgrp"><h4>AI labs</h4>
<a href="anthropic-pm-on-ai-exponential.html">Anthropic · PM on AI exponential</a>
<a href="google-customer-zero-2026.html">Google · "Customer zero" 2026</a>
</div>
<div class="navgrp"><h4>Written discipline</h4>
<a href="stripe-shaping-framework.html">Stripe shaping</a>
</div>
</div>
</details>
</nav>
<div class="wrap">
<header class="masthead">
<p class="kicker">Methods · Deep-dive · Scoring</p>
<h1>RICE — Intercom's transparent ranking formula <span class="srcyr">2018</span></h1>
<p class="sub">A four-factor score Intercom's growth team built to rank project ideas against a single goal — designed (per the original post) to avoid bias toward features the team would use themselves. Not a forecaster; a way to make assumptions visible and rankable.</p>
<div class="goal"><span>Goal</span><br>Decide features by data-backed expected impact — choose by outcome, not by to-do list or opinion.</div>
</header>
<div class="eli">
<span class="lbl">🎓 8th-grade version</span>
<p>You've got more ideas than time. RICE turns each idea into one number so you can rank them. The number comes from four honest answers: <b>how many people it helps</b>, <b>how much it helps each one</b>, <b>how sure you are</b>, and <b>how long it takes</b>. Multiply the first three, divide by the last. Bigger number = build it first.</p>
<p>Everything below is how to answer those four questions without fooling yourself.</p>
</div>
<nav class="toc">
<a href="#headline">Honest headline</a>
<a href="#anatomy">Anatomy</a>
<a href="#mechanism">How it picks work</a>
<a href="#example">Worked example</a>
<a href="#apply">Apply to a sheet</a>
<a href="#limits">Where it breaks</a>
<a href="methodologies-comparison.html" style="color:var(--accent);font-weight:700">Comparison table →</a>
</nav>
<div class="finding" id="headline">
<h2>The honest headline: it's a transparent ranking, not a forecast</h2>
<p>RICE doesn't predict revenue or guarantee impact. It takes four numbers you would have guessed anyway — <b>Reach, Impact, Confidence, Effort</b> — and forces them onto a shared scale so two ideas are directly <b>comparable</b>. The single most important discipline is writing down what you actually believe, in numbers. A weak Confidence score is the formula's way of catching an overconfident estimate before it gets shipped.</p>
<p>The formula: <code>RICE = (Reach × Impact × Confidence) ÷ Effort</code> — designed to maximize "total impact per time worked." It is widely used by thousands of PM teams precisely because it's <b>cheap, comparable, and falsifiable</b> — not because it's accurate. Actual expected impact still needs evidence (past data, a <a class="j" href="jargon.html#fake-door-test">fake-door test</a>, or a controlled experiment); RICE just produces the audit trail of <em>why we picked this over that</em>.</p>
</div>
<!-- ANATOMY -->
<h2 class="sec" id="anatomy">Anatomy: four factors, one formula</h2>
<p class="secsub">Each factor uses a <em>fixed scale</em> — a pre-agreed set of values everyone scores against, not free-form numbers — so different reviewers produce comparable scores. The Confidence multiplier does the heavy lifting: it discounts ideas where you don't actually know the numbers, so confident-sounding guesses can't outrank measured evidence.</p>
<div class="anatomy">
<div class="eq-big">
<span class="num">Reach × Impact × Confidence</span>
<span class="den"> ÷ Effort</span>
</div>
<div class="factors">
<div class="factor">
<div class="lt">R</div>
<div class="nm">Reach</div>
<div class="ds">How many people / events affected per time period (e.g. customers per quarter).</div>
<div class="scl">Scale: raw count</div>
</div>
<div class="factor">
<div class="lt">I</div>
<div class="nm">Impact</div>
<div class="ds">How much it moves the chosen goal per person — picked from a fixed scale, not made up.</div>
<div class="scl">Scale: 3 massive · 2 high · 1 medium · 0.5 low · 0.25 minimal</div>
</div>
<div class="factor">
<div class="lt">C</div>
<div class="nm">Confidence</div>
<div class="ds">How sure you are in the R and I numbers — backed by data, evidence, or just a hunch.</div>
<div class="scl">Scale: 100% high · 80% medium · 50% low · <50% moonshot</div>
</div>
<div class="factor">
<div class="lt">E</div>
<div class="nm">Effort</div>
<div class="ds">Total person-months of work across product, design, and engineering.</div>
<div class="scl">Scale: person-months (whole numbers, 0.5 minimum)</div>
</div>
</div>
<p style="font-size:12.5px;color:var(--ink-soft);margin:14px 0 0">Scales above are <strong>Intercom's published defaults</strong> — teams may adapt, but the discipline is the same: fixed scale + Confidence multiplier so guesses can't hide as facts.</p>
</div>
<div class="src">Source: <a class="cite" href="https://www.intercom.com/blog/rice-simple-prioritization-for-product-managers/">Intercom — RICE: simple prioritization for product managers</a> (Sean McBride, January 5, 2018). All four scales above are reproduced as the post defines them, including the <50% "moonshot" confidence tier and the 0.5 person-month effort minimum.</div>
<!-- MECHANISM -->
<h2 class="sec" id="mechanism">How RICE actually picks work</h2>
<p class="secsub">RICE is a four-step ritual, not a one-shot calculation. Step 5 — review the results sceptically — is what separates teams that use RICE well from teams that blindly ship the top of the list.</p>
<div class="step"><div class="num">1</div><div><h3>Agree the goal first</h3><p>RICE compares ideas against <b>one goal</b> — e.g. "growth in trial signups" or "reduce support contacts." If you skip this, Impact has nothing to mean. (Intercom's example was scored against "improving conversion to paid.")</p></div></div>
<div class="step"><div class="num">2</div><div><h3>Score each idea on R, I, C, E</h3><p>Use the fixed scales. <b>Force Confidence honestly</b>: an idea with no data is 50%, not 80%. That single number stops "we feel strongly" from outranking "we measured."</p></div></div>
<div class="step"><div class="num">3</div><div><h3>Compute and rank</h3><p>Sort by the score. Ideas with similar scores are <em>not</em> meaningfully different — RICE is a coarse ordering, not a precise ranking.</p></div></div>
<div class="step"><div class="num">4</div><div><h3>Sanity-check the top of the list</h3><p>Read the top 5–10 and ask "does this list make sense?" If a beloved idea ranks low, the value is in <em>why</em>: usually low Reach or low Confidence. Don't override the score — fix the inputs (do research to lift Confidence, or accept the verdict).</p></div></div>
<div class="step"><div class="num">5</div><div><h3>After shipping: log estimate vs actual</h3><p>The under-used step. The Intercom post tells teams to <em>sort and re-evaluate</em> after the initial scoring; the same discipline applies once features ship — track which Impact estimates were wildly wrong, and over time your scale calibrates. RICE only gets better than gut-feel if you do this part.</p></div></div>
<!-- WORKED EXAMPLE -->
<h2 class="sec" id="example">Worked example — a SaaS backlog snapshot with RICE applied</h2>
<p class="secsub">Eight candidate features scored on <b>Intercom's published scales</b>. Effort budget for the cycle = <strong>10 person-months</strong>. Rows highlighted in coral are what the formula picks; the rest are either <em>discovery candidates</em> (low Confidence — go research) or <em>real cuts</em> (low Reach × Impact). Numbers illustrative.</p>
<div class="extable">
<table class="ex">
<thead><tr><th>Feature</th><th>Reach (users/Q)</th><th>Impact</th><th>Confidence</th><th>Effort (PM)</th><th>RICE</th><th>Decision</th></tr></thead>
<tbody>
<tr class="top"><td>Add Slack notification integration</td><td>5,000</td><td>2</td><td>80%</td><td>3</td><td class="score">2,667</td><td>Build</td></tr>
<tr class="top"><td>Saved filters on reports page</td><td>4,000</td><td>1</td><td>80%</td><td>2</td><td class="score">1,600</td><td>Build</td></tr>
<tr class="top"><td>Bulk user import via <a class="j" href="jargon.html#scim">SCIM</a></td><td>800</td><td>2</td><td>100%</td><td>2</td><td class="score">800</td><td>Build</td></tr>
<tr class="top"><td>Add CSV export to dashboard</td><td>3,000</td><td>0.5</td><td>50%</td><td>1</td><td class="score">750</td><td>Build</td></tr>
<tr class="top"><td>Mobile dark mode</td><td>1,500</td><td>0.25</td><td>100%</td><td>1</td><td class="score">375</td><td>Build · fills budget</td></tr>
<tr><td>AI-powered insights panel</td><td>6,000</td><td>1</td><td>50%</td><td>8</td><td class="score" style="color:var(--gold)">375</td><td>Discovery — lift Confidence</td></tr>
<tr><td>Customisable dashboard widgets</td><td>2,500</td><td>0.5</td><td>80%</td><td>4</td><td class="score" style="color:var(--ink-soft)">250</td><td>Cut</td></tr>
<tr><td>Rebuild onboarding flow</td><td>2,000</td><td>2</td><td>50%</td><td>10</td><td class="score" style="color:var(--gold)">200</td><td>Discovery — lift Confidence</td></tr>
</tbody>
</table>
</div>
<div class="note" style="background:var(--accent-soft);border-left-color:var(--accent)"><b style="color:var(--accent)">The most important reading skill for this sheet.</b> A low RICE score from <em>low Confidence</em> is <strong>not</strong> a cut — it's a signal to do research or a small test, then re-score. A low RICE score from <em>low Reach or Impact</em> is a real cut. The <em>onboarding rebuild</em> and <em>AI panel</em> above look intuitively important, but their <b>low Confidence × high Effort</b> sinks them — that's RICE doing its job. Don't override: invest in research, mockups, or a fake-door test to lift Confidence, then re-score next cycle.</div>
<p style="font-size:13.5px;color:var(--ink-soft)">Reading the rest of the sheet: Slack integration dominates (high Reach × high Confidence × bounded Effort). Cheap items like dark mode and CSV export earn their spot purely on low denominator — the math rewards "cheap and narrow" honestly. Five rows fit the 10-PM budget (3+2+2+1+1 = 9). The <em>customisable widgets</em> row is a real cut — solid Confidence but too little Impact per unit of Effort.</p>
<!-- APPLY TO A SHEET -->
<h2 class="sec" id="apply">Apply to a feature sheet</h2>
<p class="secsub">If you adopt RICE for your backlog, every feature row gains six columns. The first four are honest inputs, the fifth is computed, the sixth is the verdict. The worked example above is what the sheet looks like once it's filled in.</p>
<div class="note" style="background:var(--teal-soft);border-left-color:var(--teal)"><b style="color:var(--teal)">Try it Monday morning (30 minutes).</b> Pick 5 items from your current backlog. Add the columns below to a spreadsheet. Fill in honest numbers — including any 50% Confidence scores you'd normally hide. Sort by the RICE column. The smallest useful run of RICE is exactly this. You'll learn more from arguing about the five scores than from any abstract debate about prioritisation.</div>
<div class="extable">
<table class="ex">
<thead><tr><th>Column to add</th><th>What it captures</th><th>How you fill it</th></tr></thead>
<tbody>
<tr><td>Feature</td><td>Idea or backlog item</td><td>Existing backlog title</td></tr>
<tr><td>Reach</td><td>Users / events affected per quarter</td><td>Raw count — analytics, segment size, or honest estimate</td></tr>
<tr><td>Impact</td><td>How much it moves the chosen goal per reached user</td><td>Pick from fixed scale: 3 / 2 / 1 / 0.5 / 0.25</td></tr>
<tr><td>Confidence</td><td>How sure you are in Reach & Impact</td><td>100% (have data) / 80% (some data) / 50% (hunch) / <50% (moonshot — flag for discovery)</td></tr>
<tr><td>Effort</td><td>Total person-months across product, design, eng</td><td>Sized by the team, not the requester</td></tr>
<tr><td>RICE Score</td><td>(R × I × C) ÷ E</td><td>Spreadsheet formula — auto-computed</td></tr>
<tr><td>Decision</td><td>Build / cut / send to discovery</td><td>Top-N within Effort budget; rest = cut or research</td></tr>
</tbody>
</table>
</div>
<div class="note"><b>Decision rule.</b> Sort by RICE Score descending. Build the top N that fit your Effort budget for the cycle. Items ranked low because of <em>low Confidence</em> aren't a cut — they're candidates for discovery work (user research, fake-door test) to lift Confidence before re-scoring next cycle. Items ranked low because of <em>low Reach or Impact</em> are real cuts. RICE is the audit trail of <em>why</em> you picked this over that — not proof it will work; that still requires shipping and measuring.</div>
<!-- LIMITS -->
<h2 class="sec" id="limits">Where RICE breaks (and what to do instead)</h2>
<p class="secsub">The most common abuse: treating the score as truth instead of an exposed argument. The Intercom post itself flags these.</p>
<div class="limits">
<h3>Three honest limits</h3>
<ul>
<li><b>Spurious precision.</b> A score of 2,667 vs 2,540 is meaningless — RICE separates rough <em>tiers</em>, not exact ranks. Treat scores as equal if they're within ~25% of each other.</li>
<li><b>It doesn't tell you <em>which</em> goal to score against.</b> That's the North Star Framework's job. RICE is the second step, not the first. See <a class="cite" href="north-star-framework.html">North Star deep-dive</a>.</li>
<li><b>It penalises discovery work.</b> Genuinely novel bets have low Confidence, so they always lose to obvious incremental wins. Counter: ring-fence a "discovery budget" outside the RICE list, or run a quick <em>fake-door test</em> (a fake button or landing page for a feature that doesn't exist yet, used to measure real interest) to lift Confidence before re-scoring.</li>
</ul>
</div>
<footer>
Companion to <a href="impact-saas-companies.html#scoring">← SaaS case studies · Scoring & Sizing</a> · <a href="methodologies-comparison.html">All methods compared</a><br>
Grounded in: <a href="https://www.intercom.com/blog/rice-simple-prioritization-for-product-managers/">Intercom's original RICE post</a> (Sean McBride, January 5, 2018). All four scales above are verbatim from the post. Worked-example numbers are illustrative team estimates clearly flagged as such. <em>Note: the previous version of this page also cited the GitLab Handbook for public RICE use; a 2026 re-check of the handbook found no RICE reference, so that citation has been removed.</em>
</footer>
</div>
</body>
</html>