---
title: "Levelling"
slug: workspace/resourcing-levelling
url: https://projectri.com/docs/workspace/resourcing-levelling
section: workspace
audience: workspace
app_route: "/[slug]/[user]/resourcing/levelling"
permissions: [booking.manage.all, booking.confirm]
plan: resourcing.bookings
mobile: "/levelling"
updated: 2026-09-08
source: Projectri documentation
---

# Levelling

Where an over-allocation becomes a decision — a run proposes moves that would clear it, and you accept the ones you agree with.

![Levelling](https://projectri.com/docs-shots/workspace-resourcing-levelling.png)

## What it is

Levelling takes a person, a project or a team over a window, works out what
could move so that nobody is booked past their capacity, and proposes it.
Nothing is applied. Each proposed change carries a reason and a disruption
score, and you tick the ones you accept.

## How to get there

Levelling is the last link in the resourcing strip, from
[Resourcing](/docs/workspace/resourcing). Reading the runs needs
`booking.manage.all` — a run reasons across everybody in its scope, so somebody
who can only see their own team would be shown moves involving people they
cannot evaluate.

Accepting changes needs `booking.confirm` **as well**, because levelling moves
confirmed commitments and that key exists to countersign exactly that act.
Without it the panel says so rather than offering a button that refuses.

Raising a run and applying one need the **`resourcing.bookings`** entitlement.

The usual way in is not this screen. On the timeline, where anybody is over
capacity, the over-capacity figure in the header is a button — it opens a run
dialog with the window, and the project filter if one is on, already filled in.

## How to use it

### Raise a run

1. Press **Level a window**, or arrive from the timeline's over-capacity figure.
2. Pick a **scope** — a person, a project or a team — and then the specific one.
   There is deliberately no whole-company run: a plan nobody can review is a
   plan nobody accepts, and the scope cannot be left empty.
3. Set the window.
4. Choose which strategies the run may use. A manager who will not move people
   onto other work can say so, and a run that reassigned anyway is one they stop
   trusting.
5. A run over a window where nothing is over-allocated writes nothing and says
   so. That is the best possible outcome, not a failure.

### Read a proposal

1. The list on the left is recent runs, named by what each was about — "Priya,
   next six weeks" — with the window and what it cleared, as *conflicts before →
   after*.
2. The panel names how much was resolved, and then the **unresolved** conflicts
   above the changes rather than hidden behind a disclosure. "I could not fix
   these three, and here is what blocked each" is the half a resource manager can
   act on — it names the milestone to go and argue about.
3. Each change says what it does in plain words. A booking starts later, runs
   longer, drops to fewer hours a day, or moves from one person to another.
4. The reason beside it is the engine's own — it names a milestone, a dependency
   or a match score — and is printed verbatim rather than rephrased.
5. The disruption chip is **Quiet**, **Noticeable** or **Disruptive**. It is the
   ranking that was recorded when the run happened, never recomputed against a
   world that has since moved.

### Accept changes

1. Nothing arrives ticked. A change nobody has ticked has not been refused —
   undecided and rejected are different states.
2. Tick the changes you agree with. **Select all** exists, but the apply button
   counts what it is about to do rather than saying "Apply".
3. Confirm. Only the ticked changes go into the real plan and the people booked
   are told; everything else is left exactly as it was.
4. An applied run says which changes went in and that the rest were left alone.

### Discard

**Discard proposal** throws the run away. Nothing in it was applied, and the
screen records that.

### Take it into a scenario

Where a run was raised against a scenario, **Open as scenario** takes you to the
timeline in that scenario's mode.

## What it affects

- **The real plan.** Accepted changes rewrite bookings — dates, hours a day, or
  who holds them — and notify the people affected.
- **Audit.** Raising a run and applying one are both recorded, with the scope,
  the window and what was accepted.
- **Everything downstream.** Because levelling moves bookings, Bench, Demand and
  the availability lane all move with it.
- **Nothing until you accept.** A proposal on screen has changed nothing. The
  run is the only thing that exists.

## On mobile

The Expo app lists proposals and lets you read and decide one. Raising a run is
web work — it needs the timeline the conflict was spotted on, and a scope, a
window and a strategy mix chosen together. Reading a proposal, and accepting it,
is not; a proposal sitting unread because the person who must accept it is not
at a desk is exactly what holds levelling up.

## Limits and gotchas

- The run has a step limit. Where it stops because of that rather than because
  it finished, the panel says so — what is on screen is a good plan, not a
  complete one.
- A run is a snapshot. A booking that has since been deleted is shown as *a
  booking that no longer exists*.
- Levelling always reads and moves the **real** plan. It is not offered from the
  timeline while you are inside a scenario, because an action that silently
  ignored the scenario would be exactly the confusion scenario mode spends three
  signals avoiding.
- There is no accept-all on the write path. The screen can send every id if you
  really did tick every box, but the API takes an explicit list.

## Related

- [Resourcing](/docs/workspace/resourcing) — where an over-allocation is noticed and a run is raised.
- [Scenarios](/docs/workspace/resourcing-scenarios) — trying a change without touching the real plan.
- [Capacity](/docs/workspace/capacity) — the other reading of an overloaded week.

## Related

- [Resourcing](https://projectri.com/docs/workspace/resourcing.md): The staffing timeline — people down the side, days across the top, bookings as bars you can drag, resize and fill.
- [Scenarios](https://projectri.com/docs/workspace/resourcing-scenarios.md): A private copy of the staffing plan for asking what October looks like if a deal lands, compared against the real plan and promoted only when you decide.
- [Capacity](https://projectri.com/docs/workspace/capacity.md): Committed hours against contracted hours week by week, built from the estimates on dated tasks, so an overloaded week is visible before it arrives.
