Weighted Shortest Job First

Method

A prioritization method that divides what you lose by waiting by the size of the job, so short and urgent work rises to the top.

Why it exists

Most scoring frameworks looked at two things: how valuable a piece of work is and how much effort it takes. Score with those two and one thing drops out — work whose value depends on when it happens. The same feature can hold a contract together in March and be worth nothing in May, and there was no column on the sheet for that difference.

A meeting at Pagedeck stalled on exactly that missing column. Grace asked which came first, audit logging or automatic retry on failed payments. Both were valuable and both looked similar in effort, so the scores came out nearly identical. But without audit logging by March, one in-flight contract falls through, while retry returns the same value this quarter or next. The difference everyone held in their heads had nowhere to go on the sheet.

Weighted Shortest Job First (WSJF) exists to put that difference into the arithmetic. What you lose by being late goes in the numerator and the size of the job goes in the denominator. Work that evaporates when it's late moves forward, and work of equal urgency but greater bulk moves back.

How to run it

Score what each candidate loses by being late, divide that by the size of the job, and order the results from largest to smallest. The formula is one line: cost of delay divided by job size.

There are six steps.

  1. Collect the candidates on one sheet. Pull the ones in scope out of the product backlog, the stack of everything waiting to be built. Don't mix multi-day items with multi-month items on the same sheet. A sheet holding both produces an ordering nobody follows.
  2. Score the value to users and the business. Use a scale like 1, 2, 3, 5, 8, 13, set the smallest candidate on the sheet at 1, and judge the rest against it. Nothing is scored in hours or currency — this is the relative approach of agile estimation.
  3. Score time criticality: how fast the value drops as the work slips. Items with a date in a contract, items that mean nothing if a competitor ships first, and items tied to a fixed season score high.
  4. Score risk reduction and opportunity enablement: how much doing it now makes later work easier or prevents something from breaking. Cleaning up the billing structure so every plan change stacked on top of it gets shorter belongs here.
  5. Add steps 2, 3 and 4 to get the cost of delay. An 8, a 13 and a 3 make 24.
  6. Score job size on the same scale and divide. 24 over 5 is 4.8; a candidate with a cost of delay of 20 and a size of 13 is 1.5. On this sheet the first one goes first.

The numbers mean nothing on their own. 4.8 only matters against the 1.5 on the same sheet, and it can't be compared against another team's 4.8, because each team sets its own scale.

When it fits and when it doesn't

It fits when there are more than twenty candidates, their sizes vary wildly, and some of them have value tied to a date. It also helps when several teams argue over one list. When each team has to write its urgency into a time criticality column, the claims land on a shared scale. That's part of why SAFe, a planning system for large organizations, uses this method by default.

Three situations where it doesn't fit.

  1. Five candidates. Scoring three columns isn't worth it; a value-effort matrix, which pins items to quadrants on value and effort, does the job.
  2. Candidates whose time criticality is all similar. Nothing separates them in the numerator, so RICE, which looks at reach separately, distinguishes more.
  3. When the number of people affected is the deciding factor. There is no column here for how many users are involved, so a feature for ten thousand people and one for twenty can land on the same score.

It has limits. Results swing with who does the scoring. Let sales set time criticality and nearly every item comes out at 13, so assign an owner per column and allow the top value on only one or two items per sheet. Wrong size estimates flip the order too. If something scored as a 5 was really a 13, it was never in first place.

How it sounds at work

"Time criticality on this one is 13. Miss March and a contract goes away."

Moving urgency out of assertion and into a column on the sheet.

"The cost of delay is comparable, but the size is 13, so it dropped. Split it and it comes back up."

Explaining that the item lost on bulk rather than on value.

"Don't put 8 in all three columns. Set the smallest item in each column to 1 and judge again from there."

Once the relative scale collapses, the division stops separating anything.

After that meeting Mia put 18 items on one sheet and scored them again. Audit logging came out at 8, 13 and 3 for a cost of delay of 24, and at size 5 that made 4.8. Payment retry came out at 13, 2 and 5 for a cost of delay of 20, and at size 13 that made 1.5. A two-hour argument ended on those two lines.

The sheet turned up one more thing. Payment retry had been logged as a single six-week job; split into two weeks of failure notifications and four weeks of automatic retry, the first piece scored size 3 and rose to second place on the sheet. Leaving a splittable job whole keeps it permanently near the bottom under this method.

What people get wrong

The most common reading is that a high score means valuable work, since a ranking looks like a measure of importance. But this number comes after dividing by size, so small urgent work is always near the top. A six-month restructuring has a denominator large enough that it never places first in any quarter. Teams using this method therefore reserve a share of capacity for large work and apply the sheet's ordering only to the rest.

Reading it as objective because there's a formula is the other one. Division makes it look like a calculation, but all four inputs were assigned by people. Whether time criticality is a 13 or a 3 flips the ranking, so without a line of reasoning recorded next to each score, the same argument restarts next quarter.

Easily confused with

TermWhat it isHow it differs
Cost of delayThe value lost by starting laterIt's the numerator this method consumes. Order by that value alone and bulky work takes the front; only after dividing by size does short urgent work come first

Where to go next

  • Prioritization

    see which family this method is one option within

  • RICE

    read the most widely used alternative in the same slot side by side

Last updated 2026-09-16