FREE TOOL · BACKLOG PRIORITIZATION

RICE and WSJF calculator for a Jira backlog

Score each item once with both methods. The calculator ranks the backlog by RICE and by WSJF, shows where the two disagree, and suggests one of Jira’s five default priorities for each item.

RICE puts “Saved cards at checkout” first, WSJF puts “Fraud rule for card testing” first. Biggest disagreement (3 places): “Saved cards at checkout”, #1 by RICE and #4 by WSJF; “PCI audit log retention”, #5 by RICE and #2 by WSJF. 5 items.

Ranked by RICE
RankItemRICE (rank)WSJF (rank)Suggested Jira priorityRICE vs WSJF
1Saved cards at checkout2133.3 (#1)2.63 (#4)HighestWSJF: 3 places lower
2Export payouts to CSV1500 (#2)6 (#3)HighWSJF: 1 place lower
3Fraud rule for card testing900 (#3)13.67 (#1)MediumWSJF: 2 places higher
4New onboarding tour312.5 (#4)1.4 (#5)LowWSJF: 1 place lower
5PCI audit log retention100 (#5)7 (#2)LowestWSJF: 3 places higher

How the two scores are calculated

RICE = reach × impact × confidence ÷ effort. Sean McBride introduced it at Intercom in 2018: reach is “number of people/events per time period”, effort is person-months, and the other two are multiple choice.

ImpactConfidence
3 massive, 2 high, 1 medium100% high
0.5 low, 0.25 minimal80% medium, 50% low

WSJF = cost of delay ÷ job size, where cost of delay = user-business value + time criticality + risk reduction or opportunity enablement. The Scaled Agile Framework estimates all four relatively, one column at a time: “set the smallest item to a one, and then set the others relative to that item”, using the modified Fibonacci numbers of planning poker (SAFe WSJF page, 2016 archive). Job size stands in for duration, which SAFe says holds “in systems with fixed resources”.

Worked example: why RICE puts the audit last

A payments team scores five items. The PCI audit log affects only 200 customers, so RICE ranks it last with 100. But the audit has a fixed date, so it gets the top time-criticality score, 20, and WSJF ranks it second. Saved cards at checkout make the opposite move: the widest reach puts it first by RICE, and its size (8) drops it to fourth by WSJF.

The same five items ranked by RICE and by WSJFSaved cards: #1 by RICE, #4 by WSJF. Payout export: #2 by RICE, #3 by WSJF. Fraud rule: #3 by RICE, #1 by WSJF. Onboarding tour: #4 by RICE, #5 by WSJF. PCI audit log: #5 by RICE, #2 by WSJF.By RICEBy WSJF1. Saved cards4. Saved cards2. Payout export3. Payout export3. Fraud rule1. Fraud rule4. Onboarding tour5. Onboarding tour5. PCI audit log2. PCI audit logFormulas: Intercom RICE (2018), SAFe WSJF
Thick line: the PCI audit log, last by RICE and second by WSJF, because only WSJF counts its deadline.

Neither ranking is “right”. McBride himself writes that “RICE scores shouldn’t be used as a hard and fast rule”. The disagreement is the useful part: an item that moves three places is the one to talk about in the backlog review.

RICE or WSJF: which one to use

RICEWSJF
RewardsMany people reached per person-monthHigh cost of delay per unit of size
InputsReal counts (reach), person-monthsRelative scores, smallest = 1
Sees deadlinesNoYes, as time criticality
Blind spotRisk work and fixed datesBig bets with wide reach
FitsProduct features with usage dataMixed backlogs: features, risk, compliance

From a score to Jira’s Priority field

“Jira comes with a set of default priorities: Highest, High, Medium, Low, and Lowest.” The calculator splits the ranked list into fifths: the top fifth is Highest, the next High, and so on, and equal scores share a priority. Treat it as a first draft for the review, not a rule. Inside each priority, the order you agree on becomes the issue’s rank.

If you use Jira Product Discovery, its formula fields can hold a RICE score for ideas. For Jira Software issues, the score itself has no field, but the decision does: the Priority and the rank.

Set the priorities on the board, not in a spreadsheet

Priority Board for Jira shows a project’s backlog as one column per priority. Drag a card to another column and its real Priority field changes; drag it up or down and its rank changes, the same order your backlog shows. Select several cards to move them together, and undo with Ctrl+Z. It does not calculate RICE or WSJF: score here, then apply the result there.

Planning the sprint that follows? The sprint capacity calculator works out how much the team can take on when people are out.

Frequently asked questions

How do you calculate a RICE score?

Multiply reach by impact and by confidence, then divide by effort. Reach is people or events per time period, impact is 3, 2, 1, 0.5 or 0.25, confidence is 100%, 80% or 50%, and effort is person-months. 450 customers a quarter × 3 × 100% ÷ 2 person-months = 675.

How is WSJF calculated in SAFe?

WSJF is the cost of delay divided by the job size. Cost of delay is the sum of user-business value, time criticality and risk reduction or opportunity enablement, each scored relative to the other items, with the smallest set to 1.

Why do RICE and WSJF rank my backlog differently?

RICE has no term for time: a fixed deadline or a growing risk does not change reach, impact or confidence. WSJF adds time criticality and risk reduction, so urgent, small jobs rise and large ones with no deadline fall.

What is a good RICE score?

There is none in absolute terms. A RICE score only means something next to scores of the same backlog, estimated with the same time period for reach and the same unit for effort.

Can I calculate RICE or WSJF inside Jira?

Jira Product Discovery lets you build RICE with custom fields and a formula field. In Jira Software, keep the result as the Priority field and rank: Priority Board for Jira sets both by drag and drop, but it does not calculate scores.

Why is there no ICE score?

We found no primary source that defines ICE’s formula, and calculators online disagree on whether to multiply or average impact, confidence and ease. RICE and WSJF both have a published definition.

Is my backlog sent anywhere?

No. The scores are computed in your browser. This page has no analytics and its Content-Security-Policy blocks every network request, so nothing you type can leave the page. It is not saved either: a reload brings back the example.