> For the complete documentation index, see [llms.txt](https://help.resouris.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.resouris.com/understand-your-capacity/capacity-economics-and-attainment.md).

# Training impact and capacity economics

> **Operator guide for v1.9.0 (Cohorts C, D and E, shipped 2026-08-22).** What your capacity costs, whether it meets the published national standard, and what one more competency would be worth. Builds directly on the throughput evidence recorded in [Throughput analytics + attendance confirmation](/understand-your-capacity/throughput-and-attendance.md).

## What this feature is for

Three surfaces answering three successive questions:

1. **`/ui/admin/cost-model`** — what a session costs to staff. You configure the basis; the system does the arithmetic.
2. **`/ui/admin/attainment`** — where the department sits against the NHS England Levels of Attainment for e-rostering and e-job-planning, scored from live data.
3. **`/ui/admin/counterfactual`** — "Training impact". What the department could staff if one more person held one more competency, measured by re-solving the year.

The third depends on the first: without a configured cost model, training has no price and the recommendations carry no business case.

## Every money figure is indicative, and the screens say so

A cost here is **employer cost of time**, derived from the pay range for a grade plus your on-cost percentage, spread over your productive-hours figure. It is not what any individual earns, and it is not a quotation.

Three rules the surfaces follow without exception:

* **A cost is a band, never a point.** Pay ranges are ranges. Where a single figure has to be shown, the surface says which end of the band it used and why.
* **A partial total is never shown.** If any worker in a session is unpriced, the session cost is *unknown* — not the sum of the ones that happened to be priced. A number that looks complete and is not is worse than no number.
* **An unpriced grade stays unpriced.** Training grades and non-Agenda-for-Change roles often have no published range. The system records that as unknown rather than substituting a plausible figure.

Expect gaps if your department has staff outside the AfC bands, and expect the page to tell you how many.

## The attainment scorecard is a self-assessment

It scores your data against the 33 published criteria and reports a level per standard. Two things it is deliberately not:

* **It is not a submission.** The page says so, prominently, and that wording is fixed.
* **It is not validated by NHS England.** It is your own data measured against their published thresholds.

Criteria the system cannot measure from data are reported as **unknown**, shown as an em dash — never as a cross. Unmeasured is not failed, and the distinction is the whole point of the screen. Levels are sequential: you do not reach level 3 by passing three level-3 criteria while a level-2 criterion is unmet.

## Training impact: what it measures, and what it does not

The page answers one question: **given the competencies your people currently hold, how much of your scheduled work could be staffed — and how much more if one person held one more?**

**It is a ceiling, not a forecast.** The figure is the most the department *could* cover. Your published roster will usually achieve less, because a real roster also balances fairness, preference and continuity. The value in the comparison is that every option is measured the same way.

**The year is measured, not scaled.** Where your roster is published, that is what is used. Beyond it, the department's own recurring timetable is carried forward — the room-and-time slots that have run the same service line every week. The page tells you what proportion is which, and to what date. Nothing is extrapolated from a sample.

**Every option is evaluated.** Not a shortlist. If the page says 62 development moves were measured and 4 increase capacity, all 62 were solved.

### ⚠️ The options table cannot be added up

This is the one thing to get right when you show this to anybody.

Each figure in the options table answers *"what if this training is funded, and nothing else"*. Two options frequently overlap:

* they close **the same unstaffed sessions** (two people trained in the same competency), or
* they need **the same person's hours** (one person appearing twice for different competencies).

So the column does not sum. On a real department the naive total came to +310 sessions where the truth was +160 — an overstatement of nearly double. The page labels every row and names what it competes with, but the arithmetic is tempting and somebody will try it.

**Use the recommended plan instead.** The plan is funded in order, and after each step the whole year is re-measured against a department that has already had the earlier training. *Those* totals add up, and that is why the plan's numbers and the table's disagree. If you fund from this page, fund from the plan.

The budget control shows how far a given budget reaches down the plan. It does not re-select a cheaper combination for that amount, and does not claim to.

### The comparator

If you configure what an additional attendance costs you by other means — a bank session, a waiting-list initiative — the page shows the training cost against it. **Absent that configuration nothing is shown**, deliberately: a comparison against an invented national average would be the most persuasive and least defensible figure on the screen.

Configure it with a real local rate and a note saying where it came from. The page renders that note.

### Reading the cost-per-attendance figure

It is a **year-one** figure: the training's lead time is deducted, because a ten-week programme delivers forty-two weeks of benefit in its first year. It is therefore deliberately *not* the cost divided by the annual attendance figure shown beside it, and the label says "in year one" for exactly that reason.

## What has to be true for any of it to work

* **A configured cost model.** Otherwise every money figure reads "unknown".
* **Skill requirements on your positions.** If every position can be filled by anyone, nothing is ever scarce and the shortfall is zero.
* **A supervision ladder that people are actually spread across.** If every held competency sits at the top rung, no single step of training can satisfy any requirement, and the analysis will correctly report that nothing helps — for a reason that is about your data rather than your department.
* **Recorded attendance.** Sessions convert to patients at the mean actually observed in your data, never a planned figure. With no attendance history, results are reported in sessions and stop there.

## When it runs

Training impact is computed by an overnight batch, because measuring a year means solving it — 52 weeks, plus one re-solve per candidate. The page reads the cached result and computes nothing, so it loads instantly and shows you when it was last measured.

If the figures look stale, they are: re-run the batch rather than refreshing the page.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.resouris.com/understand-your-capacity/capacity-economics-and-attainment.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
