WSJF and Cost of Delay explained

The economic prioritization model that sequences work by Cost of Delay divided by job size — and why it only tells the truth when it sits on top of a real schedule engine.

Last updated: July 2026

Weighted Shortest Job First (WSJF) is an economic prioritization model that sequences a backlog by the money lost to delay rather than by gut feel, seniority, or whoever shouted loudest. It comes from the work of Don Reinertsen on product-development flow and is the prioritization engine inside the Scaled Agile Framework (SAFe). The idea is simple and hard to argue with: when capacity is finite, do the work that buys down the most Cost of Delay per unit of effort first.

The whole model rests on one concept most teams never quantify — Cost of Delay, the economic loss per unit of time that a deliverable is late. Once you can put a number on what a slip actually costs, prioritization stops being a debate and becomes arithmetic. For R&D programs, where a single quarter of delay on an IND filing or a TRL gate can be worth tens of millions, that arithmetic is the difference between a defensible board deck and a guess.

What is Cost of Delay?

Cost of Delay (CoD) is the rate at which value erodes while a deliverable waits. It answers a question deterministic plans never ask: "What does one more week of slip cost us?" The answer is rarely zero and is often enormous — lost market exclusivity, a missed funding tranche, a competitor reaching a milestone first, or fixed burn that keeps running while the program stalls.

In R&D the numbers are stark. Late-stage pharma routinely models a cost of delay on the order of $800,000 per day, because every day of delay pushes back the revenue-generating life of a patent-protected asset. A deep-tech startup's CoD might be the runway it burns waiting on a long-lead component; a federally funded program's CoD might be a grant milestone that gates the next disbursement. The exact figure matters less than the discipline of computing one — most board decks carry P50 dates no one priced, and prioritize features no one costed.

  • Value/market loss — exclusivity, first-mover advantage, or revenue erosion from a later launch.
  • Cost of capital — fixed program burn and runway consumed while work waits.
  • Opportunity cost — the next-best work the team could have done with the same capacity.
  • Urgency decay — value that drops sharply after a deadline (a gate, a filing window, a funding date).

The WSJF formula

WSJF converts Cost of Delay into a sequencing rule by dividing it by the size of the job. The formula is WSJF = Cost of Delay / Job Size (job size is a proxy for duration or effort). You compute it for every candidate item and do the highest-scoring work first. Dividing by size is what makes the model smart: a high-value item that takes forever can still be the wrong thing to start if a cheaper item delivers nearly as much value much sooner.

In SAFe, Cost of Delay is itself estimated as the sum of three components — user/business value, time criticality, and risk-reduction or opportunity enablement — usually scored on a relative scale so teams can rank without precise dollar figures. The mechanics are the point: shortest job that buys down the most delay goes first, and the sequence falls out of the numbers rather than out of a meeting.

  • WSJF = Cost of Delay ÷ Job Size.
  • Cost of Delay (SAFe) = Business Value + Time Criticality + Risk Reduction / Opportunity Enablement.
  • Higher WSJF = sequence earlier. Ties broken toward the smaller job.

Why WSJF sequences work economically

The reason WSJF beats intuition is queueing economics. When work waits in a queue, the cost of that wait is paid by everything behind it, not just the item itself. Doing the highest-CoD-per-effort work first minimizes the total weighted delay across the entire backlog — it is the provably optimal ordering when you are trying to reduce aggregate Cost of Delay under a capacity constraint.

Practically, WSJF kills three bad habits at once: it stops teams from doing big, low-urgency work just because it is interesting; it stops them from starving small, high-leverage items that unblock everything downstream; and it gives a program leader a defensible answer to "why is this ahead of that?" The answer is a number, not a personality.

Where naive WSJF goes wrong

WSJF is only as honest as its two inputs, and most tools that offer it leave both as static numbers a human typed in. "Job size" is usually a story-point guess that ignores resource contention and the dependency network — but the real duration of a task depends on what else is competing for the same scientist or instrument, and on what must finish before it can start. A WSJF score built on a made-up duration ranks work against a fiction.

Cost of Delay has the same problem in reverse. The true CoD of a task is not just its own value — it is how much it moves the probabilistic finish date of the program. An item on the critical path or with a high criticality index drives the deadline; an item with slack does not, even if it scores well in isolation. Naive WSJF can't see that, because it has no schedule engine underneath it. This is the gap that separates a backlog ranking from genuine schedule-risk-driven prioritization.

How CritPath AI combines WSJF, Cost of Delay, Monte Carlo, and CPM

CritPath AI is, as far as we know, the only platform that runs WSJF and Cost of Delay on top of a live schedule-risk engine rather than as a standalone backlog widget. The Critical Path Method gives each task a real, resource-aware duration, float, and a near-critical flag — so "job size" reflects the actual network, not a story-point guess. The Monte Carlo simulation gives each task a criticality index: how often it lands on the critical path across thousands of runs, which is a direct, probabilistic measure of how much that work drives the program's P50/P80 finish.

Feed those into the WSJF formula and the prioritization stops being theater. Cost of Delay is weighted by how much a deliverable actually moves the probabilistic deadline, and job size is the engine's duration, not a guess — so the sequence reflects schedule risk, not just stated value. When a decision gate fires or a CMC vendor slips, retroactive rescheduling re-cascades the plan and the WSJF ranking updates with it. The Claude- and Gemini-powered copilot, grounded in the real dependency graph, can then explain in plain language why one item jumped the queue — which constraint it relieves and what it does to your P80.

All of this lives in one modern web app at $10 per user per month, with AI usage billed separately by metered token usage — not three disconnected tools stitched together, and not a $50K desktop suite that still can't connect WSJF to its own Monte Carlo output.

Frequently asked questions

What is the WSJF formula?

WSJF = Cost of Delay ÷ Job Size. You divide the economic loss from delaying an item by its size (a proxy for duration or effort), compute the score for every candidate, and do the highest-scoring work first. In SAFe, Cost of Delay is estimated as business value + time criticality + risk reduction / opportunity enablement.

What is Cost of Delay?

Cost of Delay is the economic loss per unit of time that a deliverable is late — lost market exclusivity, burned runway, a missed funding milestone, or fixed program cost that keeps running. In late-stage pharma it is often modeled around $800,000 per day, which is why pricing a slip matters more than the exact figure.

Why divide Cost of Delay by job size?

Dividing by size minimizes total weighted delay across the whole backlog under a capacity constraint. A high-value item that takes a long time can be the wrong thing to start if a cheaper item delivers nearly as much value much sooner. WSJF favors the shortest job that buys down the most delay.

How is CritPath AI's WSJF different from a backlog tool's?

Most tools treat job size and Cost of Delay as static numbers a human typed in. CritPath derives job size from a resource-aware CPM duration and weights Cost of Delay by each task's Monte Carlo criticality index — how much it actually drives the probabilistic finish date. The ranking reflects schedule risk, not just stated value, and updates when a gate fires or a task slips.

Does WSJF replace Monte Carlo or CPM?

No — it sits on top of them. CPM and Monte Carlo tell you which work drives the deadline and how uncertain it is; WSJF turns that into an economic sequencing decision. Run alone, WSJF ranks against guessed durations; run on a real engine, it ranks against the actual schedule.

Related

See the math on your own schedule

CritPath AI is $10/user/month — real Monte Carlo, CCPM, decision gates, and a schedule-aware AI copilot. Join the waitlist for beta access.

Join the waitlist