MoSCoW prioritisation is a simple way to agree what goes into a release. Every item goes into one of four buckets: Must have, Should have, Could have or Won’t have (this time). It’s popular because anyone can follow it, from engineers to execs to customers.

The trouble is that MoSCoW has no built-in way to decide which bucket something belongs in. So the loudest voice wins, and half the backlog ends up as a Must. This guide covers the method, the 60/20/20 rule that keeps it honest, and how to use revenue, usage and codebase evidence to decide categories. There’s a worked example and a free template too.

What is MoSCoW prioritisation?

MoSCoW comes from the DSDM agile method. The lower-case o’s are just there to make the word pronounceable. The four categories:

The 60/20/20 rule

MoSCoW only works if the categories are capped. The common guidance (from DSDM) is:

The logic is simple. Estimates are always wrong in some direction. If 90% of your capacity is Musts and the work overruns by 15%, you miss the deadline with no room to move. With 60% Musts, the Coulds (and if needed the Shoulds) absorb the overrun, and every Must still ships.

Measure the split in effort (developer-days, points), not in number of items. Five small Musts and one huge Must can look balanced by count and still blow the budget.

MoSCoW prioritisation diagram showing the 60/20/20 effort split for Must, Should and Could, with Won't listed separately, and the evidence filters used to decide what counts as a Must.
The 60/20/20 split, and the evidence filters a Must has to pass. Diagram by VocxAI (vocxai.com); reuse it with a credit link back to this page. SVG version

How to decide what’s really a Must

This is where most teams struggle. “Must” ends up meaning “someone important wants it.” A better test uses evidence:

1. Revenue at stake

Check the CRM. Is there ARR tied to this: a renewal that names it, a deal blocked by it, an account at risk? A named renewal or a stalled enterprise deal is strong Must evidence. A large number of small requests is usually a Should.

2. Usage reach

Product analytics like Amplitude will show how many active accounts touch the workflow. If a third of your active accounts hit a painful workaround every week, that’s real. If a feature is asked for but the related area is barely used, be sceptical.

3. Independent evidence, and problem vs symptom

Do support tickets, sales calls, reviews and usage data point the same way? One channel isn’t enough for a Must. Then ask: is this request the underlying problem, or a symptom of it? “Custom dashboards” might really be “I can’t see overdue invoices.” Solve the problem with the smallest change that works.

4. Codebase fit

Ask engineering how well the change fits the existing code. Is there a pattern to reuse? How many services does it touch? Effort estimates should come from someone who has looked at the code, because those numbers decide whether your 60/20/20 split holds.

A useful rule: if you can’t write one line of evidence for why something is a Must, it isn’t one.

Worked example: a quarter’s release

This is a hypothetical example. A B2B invoicing app (about $3M ARR) has a 10-week release with 50 developer-days of capacity. Eight candidate items are on the table.

Round 1: categorised by gut feel

ItemEffort (dev-days)Category
Custom dashboard builder15Must
Salesforce sync14Must
SAML single sign-on10Must
Dark mode6Must
Bulk CSV export4Should
Audit log6Won’t
Slack notifications4Won’t
“Days overdue” dashboard metric3Not considered
CategoryEffortShare of 50 days
Must15 + 14 + 10 + 6 = 4590%
Should48%
Could00%
Planned total4998%

Ninety per cent Musts and 2% slack. One overrun on the dashboard builder and a Must is missed.

Round 2: categorised with evidence

The team pulls CRM, analytics and ticket data first:

ItemEffort (dev-days)CategoryEvidence (one line)
Salesforce sync14Must$310k ARR, 2 renewals name it, 3 sources
SAML single sign-on10Must$260k ARR, deals blocked at security review
Bulk CSV export4Must31% of weekly active accounts, $140k ARR
Audit log6ShouldRaised in security reviews
“Days overdue” metric3ShouldUnderlying problem behind dashboard requests
Dark mode6Could$21k ARR, voting board only
Slack notifications4CouldLow evidence
Custom dashboard builder15Won’t (this time)Symptom; revisit after overdue metric
CategoryEffortShare of 50 daysTarget
Must14 + 10 + 4 = 2856%≤ 60%
Should6 + 3 = 918%~20%
Could6 + 4 = 1020%~20%
Planned total4794%
Unallocated buffer36%

Maths check: 28 + 9 + 10 = 47; 47 + 3 = 50. 28 ÷ 50 = 56%, 9 ÷ 50 = 18%, 10 ÷ 50 = 20%, 3 ÷ 50 = 6%.

What changed: the Musts dropped from 45 to 28 developer-days, so the Musts could overrun by up to 22 days (the Shoulds, Coulds and buffer combined, about 79% of 28) and still all ship. The dashboard builder, the biggest gut-feel Must, turned out to be a symptom. A 3-day metric solves most of the problem. And Salesforce sync stays a Must for a reason anyone can check.

MoSCoW vs ICE vs RICE

MoSCoWICERICE
InputsCategory: Must, Should, Could, Won’tImpact, Confidence, EaseReach, Impact, Confidence, Effort
MathsNone; capped by the 60/20/20 effort splitI × C × E (or average)(R × I × C) ÷ Effort
OutputScope for a fixed releaseRanked listRanked list
Best forAgreeing scope with stakeholders for a deadlineFast ranking of many ideasComparing ideas with very different reach
Main riskEverything becomes a MustSubjective scoresFalse precision
Make it better withEvidence per Must, effort capsEvidence-anchored scalesReal usage data for Reach

They work well together: rank with ICE or RICE, then use MoSCoW to agree what fits in the release. See our ICE scoring model guide, the RICE scoring model guide, and the feature prioritisation matrix template.

Running a MoSCoW session

  1. Fix the timebox and capacity first. You can’t apply 60/20/20 without a number.
  2. Bring the evidence, not just the list. ARR at stake, usage reach and sources for each item, gathered before the meeting.
  3. Agree the definition of Must out loud. “The release fails without it” is the bar.
  4. Start everything as a Could. Make each item earn its way up with evidence. This reverses the usual drift towards Must.
  5. Check the split in effort. If Musts are over 60%, something has to come down.
  6. Write down the Won’ts. And tell the people who asked for them, with a reason.

Calibration and anti-bias tips

Free MoSCoW template

Download the MoSCoW prioritisation template (XLSX) or the CSV version. Enter your capacity and effort estimates, pick a category for each item, and the sheet calculates the effort share per category and flags when Musts go over 60%. The example above is pre-filled.

How VocxAI automates this

Gathering revenue, usage and ticket evidence for every item is the slow part of a good MoSCoW session. VocxAI does it automatically. It connects feedback, product usage and CRM revenue, separates underlying problems from symptoms, and checks how well each change fits your codebase. You walk into the session with evidence for each Must already attached. There’s a free tier if you’d like to try it on your next release.

FAQ

What does MoSCoW stand for?

Must have, Should have, Could have and Won’t have (this time). The o’s are only there to make it easy to say.

What is the 60/20/20 rule in MoSCoW?

Keep Musts to about 60% of the available effort, with about 20% each for Shoulds and Coulds. The Coulds act as contingency, so the Musts still ship if estimates run over.

How do you decide if something is a Must?

Ask whether the release fails without it. Back that up with evidence: revenue at stake (renewals, blocked deals), usage reach, and consistent signals from more than one source. If you can’t write one line of evidence, it isn’t a Must.

Does “Won’t have” mean never?

No. It means not in this release. Recording Won’ts stops the same debates recurring and tells stakeholders where they stand.

Can MoSCoW be combined with ICE or RICE?

Yes, and it works well. Use ICE or RICE to rank the backlog, then MoSCoW to agree what fits in a fixed release.

What’s the main weakness of MoSCoW?

It has no built-in scoring, so categories drift towards Must. Effort caps and evidence for each Must fix most of that.

See how VocxAI builds this for you

VocxAI is the AI agent that keeps improving your product: it finds the patterns in customer feedback from any tool you use, works out what's wrong in your code, has AI agents build the fix for your approval, then checks whether it worked and acts on what it learns.

Sign up for free