Repository: DFE-Digital/register-early-career-teachers-public
Pull request #384: [CPDLP-4073] financial statements service manual write up
Author: login: mooktakim
Created: 2025-03-25T17:13:54Z | Merged: 2025-04-02T09:12:31Z

JIRA ticket: https://dfedigital.atlassian.net/browse/CPDLP-4073

## Context:

* Financial statements service manual write up


Diff:
diff --git a/documentation/service-rules/ecf1/finance-users.md b/documentation/service-rules/ecf1/finance-users.md
new file mode 100644
index 000000000..e2e78b639
--- /dev/null
+++ b/documentation/service-rules/ecf1/finance-users.md
@@ -0,0 +1,215 @@
+---
+title: Finance users
+---
+
+Financial statements are monthly record of payments made to lead providers. They are generated based on the declarations submitted by lead providers, which are attached to a specific statement depending on the timing of submission and applicable funding criteria. Each statement provides a complete picture of the payments for that period, including a summary, detailed breakdowns, and total amounts. These totals may include output payments, clawbacks, VAT, service fees, and any additional one-off adjustments.
+
+## Contents
+
+[Attach declaration to a financial statement](#attach-declaration-to-a-financial-statement)
+
+[View financial statement](#view-financial-statement)
+
+[Download statement declarations](#download-statement-declarations)
+
+[Authorise statement for payment](#authorise-statement-for-payment)
+
+[Additional adjustments](#additional-adjustments)
+
+[Contract information](#contract-information)
+
+[Statement versioning](#contract-information)
+
+## Attach declaration to a financial statement
+
+When a lead provider submits a declaration via the `POST /api/v[1,2,3]/participant-declarations` endpoint, the declaration is attached to the next _output fee_ financial statement, provided the participant is fundable and the declaration is not a duplicate.
+
+The _next output fee statement_ is determined to be the first statement where:
+
+- `output_fee` is `true`
+- `deadline_date` is in the future
+- Ordered by `deadline_date ASC`
+
+Lead providers can check submitted declarations using the `GET /api/v[1,2,3]/participant-declarations` endpoint.
+
+Contract managers and product team members can check by:
+
+- Logging in as a user with the `finance` role
+- Visiting the **DfE Finance** dashboard
+- Navigating to the **Search participant data** page
+- Entering the participant ID or declaration ID
+- Scrolling down to the **Declarations** section, which lists all submitted declarations
+
+## View financial statement
+
+Financial statements are generated dynamically when visiting the **View financial statements** page in the **DfE Finance** dashboard.
+
+To view a financial statement:
+
+- Log in as a user with the `finance` role
+- Visit the **DfE Finance** dashboard
+- Go to the **View financial statements** page
+- Choose a lead provider
+- The financial statement will be displayed
+
+You can use the dropdowns to filter and view different statements:
+
+- Select a lead provider
+- Select a cohort
+- Select a statement month
+- Click the **View** button
+
+The following data is used to generate a statement:
+
+- Declarations (including clawbacks)
+- Call off contract
+- Mentor call off contract
+- Adjustments
+
+Statement values are calculated using the `Finance::ECF::StatementCalculator`.
+
+There are two versions of statements:
+
+- **Cohorts up to 2024** – values for ECTs and Mentors are combined
+- **Cohorts from 2025 onwards** – values for ECTs and Mentors are separated
+
+Declarations are submitted by lead providers.
+Call-off contract and mentor call-off contract information are provided by contract managers.
+Adjustments are also added by contract managers.
+
+## Download statement declarations
+
+The financial statement page includes a **Download declarations (CSV)** link. This allows finance users to download a full list of all declarations used in the statement.
+
+The CSV includes the following fields:
+
+- Participant ID
+- Participant Name
+- TRN
+- Type
+- Mentor Profile ID
+- Schedule
+- Eligible for Funding
+- Eligible for Funding Reason
+- Sparsity Uplift
+- Pupil Premium Uplift
+- Sparsity and PP
+- Lead Provider Name
+- Delivery Partner Name
+- School URN
+- School Name
+- Training Status
+- Training Status Reason
+- Declaration ID
+- Declaration Status
+- Declaration Type
+- Declaration Date
+- Declaration Created At
+- Statement Name
+- Statement ID
+- Uplift Payable
+
+## Authorise statement for payment
+
+A statement can be marked as paid if:
+
+- `output_fee` is `true`
+- `state` is `payable`
+- `marked_as_paid_at` is `nil`
+- `deadline_date` is in the past
+- It contains declarations
+
+Statements are automatically marked as payable by a daily cron job once the `deadline_date` has passed.
+
+If all the above conditions are met, an **Authorise for payment** button is shown on the financial statement page.
+
+Once a statement is marked as paid:
+
+- The button is replaced with `Authorised for payment at {marked_as_paid_at}`
+- Adjustments can no longer be edited
+- Declarations can no longer be attached to that statement
+
+## Additional adjustments
+
+Statements with `output_fee` set to `true` can include additional one-off adjustments. These can be positive or negative, e.g. backdated service fees.
+
+A breakdown of adjustments appears at the bottom of the financial statement page, and the total adjustment value is shown in the summary section at the top.
+
+Adjustments cannot be edited after the statement has been marked as paid.
+
+### To add an adjustment
+
+- Visit the relevant statement page (`output_fee` must be `true`)
+- Scroll down to **Additional adjustments**
+- Click **Add**
+- Enter the payment type and click **Continue**
+- Enter the payment amount and click **Continue**
+- Review the summary and click **Confirm and continue**
+- Choose to add another adjustment or select **No** and click **Continue**
+
+### To change an adjustment
+
+- Visit the statement page
+- Scroll to **Additional adjustments**
+- Click **Change or remove**
+- Click **Change** on the relevant adjustment
+- Update the payment type and/or amount
+- Click **Continue** and then **Confirm and continue**
+- Click **Back** to return to the statement page
+
+### To remove an adjustment
+
+- Visit the statement page
+- Scroll to **Additional adjustments**
+- Click **Change or remove**
+- Click **Remove** on the relevant adjustment
+- Confirm and click **Continue**
+- Click **Back** to return to the statement page
+
+## Contract information
+
+Contract managers can view contract values used for statement calculation by clicking the **Contract information** link at the bottom of the financial statement page.
+
+A contract is identified by the lead provider, cohort and version. Contracts are not shared by lead providers or cohort.
+Statements from the same lead provider and cohort can share the same contract (identified by `contract_version`).
+
+The information displayed depends on the cohort:
+
+### Cohorts up to 2024
+
+- Provider name
+- Recruitment target
+- Revised recruitment target (+2%)
+- Uplift target
+- Uplift amount
+- Set-up fee
+- Bands:
+  - Band name
+  - Minimum
+  - Maximum
+  - Payment per participant
+
+### Cohorts from 2025 onwards
+
+- ECT recruitment target
+- Revised ECT recruitment target (+115%)
+- ECT bands:
+  - Band name
+  - Minimum
+  - Maximum
+  - Payment per participant
+- Mentor recruitment target
+- Mentor payment per participant
+
+## Statement versioning
+
+Statements include a `contract_version` field, which determines which version of the call off contract to use in the statement calculator. This value follows **semantic versioning**, starting from `0.0.1`.
+
+When contract values are updated:
+
+- The existing contract and its bands are duplicated
+- New contract values and band values are applied
+- The contract `version` is incremented (patch version)
+- The statement’s `contract_version` is updated to match the new contract version
+
+Contracts that are no longer linked to statements (due to them being superseded by new contract version) or identified as duplicates have their `version` prefixed with `unused_` (e.g. `unused_0.0.1`) to indicate they should not be used for statement calculations.
diff --git a/documentation/site/content/index.html b/documentation/site/content/index.html
index cb7028dd0..9a5b2bd76 100644
--- a/documentation/site/content/index.html
+++ b/documentation/site/content/index.html
@@ -28,6 +28,10 @@ <h2 class="govuk-heading-m">How the new Register early career teachers service w
     <a class="govuk-link--no-visited-state" href="/service-rules/school-admins">School admins</a>
     (<a class="govuk-link--no-visited-state" href="/service-rules/ecf1/school-admins/"><span class="govuk-visually-hidden">School admins in </span>ECF1</a>)
   </li>
+  <li>
+    Finance users
+    (<a class="govuk-link--no-visited-state" href="/service-rules/ecf1/finance-users/"><span class="govuk-visually-hidden">Finance users in </span>ECF1</a>)
+  </li>
 </ul>
 
 <h2 class="govuk-heading-m">Policy documentation</h2>


Reviews:
user: login: ethax-ross
body: Looks good just a few minor comments/suggestions
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-27T09:58:22Z
user: login: cwrw
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-31T07:35:10Z
user: login: cwrw
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-31T07:35:39Z
user: login: cwrw
body: looks good, just some minor comments
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-31T07:35:48Z
user: login: cwrw
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-31T07:37:28Z
user: login: mooktakim
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-31T14:33:51Z
user: login: cwrw
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-31T15:10:41Z
user: login: leandroalemao
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T08:24:55Z
user: login: leandroalemao
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T08:24:59Z
user: login: leandroalemao
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T08:25:33Z
user: login: ethax-ross
body: Looks good past Leandro's comments
state: APPROVED
author_association: COLLABORATOR
submitted_at: 2025-04-01T08:26:36Z
user: login: leandroalemao
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T08:27:21Z
user: login: leandroalemao
body: 👍 tks @mooktakim All good just small corrections..
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T08:27:42Z

Review comments:
diff_hunk: @@ -0,0 +1,208 @@
+---
+title: Financial Statements
+---
+
+Financial statements are monthly record of payments made to lead providers. It is generated based on the declarations submitted by lead providers, which are assigned to a specific statement depending on the timing of submission and applicable funding criteria. Each statement provides a complete picture of the payments for that period, including a summary, detailed breakdowns, and total amounts. These totals may include output payments, clawbacks, VAT, service fees, and any additional one-off adjustments.
path: documentation/service-rules/ecf1/financial-statements.md
user: login: ethax-ross
body: > They are generated
created_at: 2025-03-27T09:53:07Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,208 @@
+---
+title: Financial Statements
+---
+
+Financial statements are monthly record of payments made to lead providers. It is generated based on the declarations submitted by lead providers, which are assigned to a specific statement depending on the timing of submission and applicable funding criteria. Each statement provides a complete picture of the payments for that period, including a summary, detailed breakdowns, and total amounts. These totals may include output payments, clawbacks, VAT, service fees, and any additional one-off adjustments.
+
+---
+
+## How declarations are assigned to a statement
+
+When a lead provider submits a declaration via the `POST /api/v[1,2,3]/participant-declarations` endpoint, the declaration is assigned to the next _output fee_ financial statement—provided the participant is fundable and the declaration is not a duplicate.
+
+The _next output fee statement_ is determined as the first statement where:
+
+- `output_fee` is `true`
+- `deadline_date` is in the future
+- Ordered by `deadline_date ASC`
+
+Lead providers can check submitted declarations using the `GET /api/v[1,2,3]/participant-declarations` endpoint.
+
+Contract managers and product team members can check by:
+
+- Logging in as a user with the `finance` role
+- Visiting the **DfE Finance** dashboard
+- Navigating to the **Search participant data** page
+- Entering the participant ID or declaration ID
+- Scrolling down to the **Declarations** section, which lists all submitted declarations
+
+---
+
+## How statements are generated
+
+Financial statements are generated dynamically when visiting the **View financial statements** page in the **DfE Finance** dashboard.
+
+The following data is used to generate a statement:
+
+- Declarations (including clawbacks)
+- Call off contract
+- Mentor call off contract
+- Adjustments
+
+Statement values are calculated using the `Finance::ECF::StatementCalculator`.
+
+There are two versions of statements:
+
+- **Cohorts up to 2024** – values for ECTs and Mentors are combined
+- **Cohorts from 2025 onwards** – values for ECTs and Mentors are separated
+
+Declarations are submitted by lead providers. Call off contract and mentor call off contract information is provided by contract managers. Adjustments are also added by contract managers.
+
+---
+
+## How to view statements
+
+To view a financial statement:
+
+- Log in as a user with the `finance` role
+- Visit the **DfE Finance** dashboard
+- Go to the **View financial statements** page
+- Choose a lead provider
+- The financial statement will be displayed
+
+You can use the dropdowns to filter and view different statements:
+
+- Select a lead provider
+- Select a cohort
+- Select a statement month
+- Click the **View** button
+
+---
+
+## Downloading declarations (granular view)
+
+The statement page includes a **Download declarations (CSV)** link. This allows users to download a full list of all declarations used in the statement.
+
+The CSV includes the following fields:
+
+- Participant ID
+- Participant Name
+- TRN
+- Type
+- Mentor Profile ID
+- Schedule
+- Eligible for Funding
+- Eligible for Funding Reason
+- Sparsity Uplift
+- Pupil Premium Uplift
+- Sparsity and PP
+- Lead Provider Name
+- Delivery Partner Name
+- School URN
+- School Name
+- Training Status
+- Training Status Reason
+- Declaration ID
+- Declaration Status
+- Declaration Type
+- Declaration Date
+- Declaration Created At
+- Statement Name
+- Statement ID
+- Uplift Payable
+
+---
+
+## How to authorise statements for payment
path: documentation/service-rules/ecf1/financial-statements.md
user: login: ethax-ross
body: Is it worth mentioning how statements get marked as payable? I think its a job we run periodically?
created_at: 2025-03-27T09:57:53Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,208 @@
+---
+title: Financial Statements
+---
+
+Financial statements are monthly record of payments made to lead providers. It is generated based on the declarations submitted by lead providers, which are assigned to a specific statement depending on the timing of submission and applicable funding criteria. Each statement provides a complete picture of the payments for that period, including a summary, detailed breakdowns, and total amounts. These totals may include output payments, clawbacks, VAT, service fees, and any additional one-off adjustments.
+
+---
+
+## How declarations are assigned to a statement
+
+When a lead provider submits a declaration via the `POST /api/v[1,2,3]/participant-declarations` endpoint, the declaration is assigned to the next _output fee_ financial statement—provided the participant is fundable and the declaration is not a duplicate.
+
+The _next output fee statement_ is determined as the first statement where:
+
+- `output_fee` is `true`
+- `deadline_date` is in the future
+- Ordered by `deadline_date ASC`
+
+Lead providers can check submitted declarations using the `GET /api/v[1,2,3]/participant-declarations` endpoint.
+
+Contract managers and product team members can check by:
+
+- Logging in as a user with the `finance` role
+- Visiting the **DfE Finance** dashboard
+- Navigating to the **Search participant data** page
+- Entering the participant ID or declaration ID
+- Scrolling down to the **Declarations** section, which lists all submitted declarations
+
+---
+
+## How statements are generated
+
+Financial statements are generated dynamically when visiting the **View financial statements** page in the **DfE Finance** dashboard.
+
+The following data is used to generate a statement:
+
+- Declarations (including clawbacks)
+- Call off contract
+- Mentor call off contract
+- Adjustments
+
+Statement values are calculated using the `Finance::ECF::StatementCalculator`.
+
+There are two versions of statements:
+
+- **Cohorts up to 2024** – values for ECTs and Mentors are combined
+- **Cohorts from 2025 onwards** – values for ECTs and Mentors are separated
+
+Declarations are submitted by lead providers. Call off contract and mentor call off contract information is provided by contract managers. Adjustments are also added by contract managers.
+
+---
+
+## How to view statements
+
+To view a financial statement:
+
+- Log in as a user with the `finance` role
+- Visit the **DfE Finance** dashboard
+- Go to the **View financial statements** page
+- Choose a lead provider
+- The financial statement will be displayed
+
+You can use the dropdowns to filter and view different statements:
+
+- Select a lead provider
+- Select a cohort
+- Select a statement month
+- Click the **View** button
+
+---
+
+## Downloading declarations (granular view)
+
+The statement page includes a **Download declarations (CSV)** link. This allows users to download a full list of all declarations used in the statement.
+
+The CSV includes the following fields:
+
+- Participant ID
+- Participant Name
+- TRN
+- Type
+- Mentor Profile ID
+- Schedule
+- Eligible for Funding
+- Eligible for Funding Reason
+- Sparsity Uplift
+- Pupil Premium Uplift
+- Sparsity and PP
+- Lead Provider Name
+- Delivery Partner Name
+- School URN
+- School Name
+- Training Status
+- Training Status Reason
+- Declaration ID
+- Declaration Status
+- Declaration Type
+- Declaration Date
+- Declaration Created At
+- Statement Name
+- Statement ID
+- Uplift Payable
+
+---
+
+## How to authorise statements for payment
+
+A statement can be marked as paid if:
+
+- `output_fee` is `true`
+- `state` is `payable`
+- `marked_as_paid_at` is `nil`
+- `deadline_date` is in the past
+- It contains declarations
+
+If all the above conditions are met, an **Authorise for payment** button is shown on the statement page.
+
+Once a statement is marked as paid:
+
+- The button is replaced with `Authorised for payment at {marked_as_paid_at}`
+- Adjustments can no longer be edited
+- Declarations can no longer be assigned to that statement
+
+---
+
+## How to add adjustments to a financial statement
+
+Statements with `output_fee` set to `true` can include additional one-off adjustments. These can be positive or negative, e.g. backdated service fees.
+
+A breakdown of adjustments appears at the bottom of the statement page, and the total adjustment value is shown in the summary section at the top.
+
+> **Note:** Adjustments cannot be edited after the statement has been marked as paid.
+
+### To add an adjustment
+
+- Visit the relevant statement page (`output_fee` must be `true`)
+- Scroll down to **Additional adjustments**
+- Click **Add**
+- Enter the payment type and click **Continue**
+- Enter the payment amount and click **Continue**
+- Review the summary and click **Confirm and continue**
+- Choose to add another adjustment or select **No** and click **Continue**
+
+### To change an adjustment
+
+- Visit the statement page
+- Scroll to **Additional adjustments**
+- Click **Change or remove**
+- Click **Change** on the relevant adjustment
+- Update the payment type and/or amount
+- Click **Continue** and then **Confirm and continue**
+- Click **Back** to return to the statement page
+
+### To remove an adjustment
+
+- Visit the statement page
+- Scroll to **Additional adjustments**
+- Click **Change or remove**
+- Click **Remove** on the relevant adjustment
+- Confirm and click **Continue**
+- Click **Back** to return to the statement page
+
+---
+
+## Viewing contract information
+
+Contract managers can view contract values used for statement calculation by clicking the **Contract information** link at the bottom of the statement page.
+
+The information displayed depends on the cohort:
+
+### Cohorts up to 2024
+
+- Provider name
+- Recruitment target
+- Revised recruitment target (+2%)
+- Uplift target
+- Uplift amount
+- Set-up fee
+- Bands:
+  - Band name
+  - Minimum
+  - Maximum
+  - Payment per participant
+
+### Cohorts from 2025 onwards
+
+- ECT recruitment target
+- Revised ECT recruitment target (+115%)
+- ECT bands:
+  - Band name
+  - Minimum
+  - Maximum
+  - Payment per participant
+- Mentor recruitment target
+- Mentor payment per participant
+
+---
+
+## Statement versioning
path: documentation/service-rules/ecf1/financial-statements.md
user: login: ethax-ross
body: Worth adding a note about the unused version we introduced recently?
created_at: 2025-03-27T09:58:09Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,212 @@
+---
+title: Finance users
+---
+
+Financial statements are monthly record of payments made to lead providers. They are generated based on the declarations submitted by lead providers, which are attached to a specific statement depending on the timing of submission and applicable funding criteria. Each statement provides a complete picture of the payments for that period, including a summary, detailed breakdowns, and total amounts. These totals may include output payments, clawbacks, VAT, service fees, and any additional one-off adjustments.
+
+## Contents
+
+[Attach declaration to a financial statement](#attach-declaration-to-a-financial-statement)
+
+[View financial statement](#view-financial-statement)
+
+[Download statement declarations](#download-statement-declarations)
+
+[Authorise statement for payment](#authorise-statement-for-payment)
+
+[Additional adjustments](#additional-adjustments)
+
+[Contract information](#contract-information)
+
+[Statement versioning](#contract-information)
+
+## Attach declaration to a financial statement
+
+When a lead provider submits a declaration via the `POST /api/v[1,2,3]/participant-declarations` endpoint, the declaration is attached to the next _output fee_ financial statement, provided the participant is fundable and the declaration is not a duplicate.
+
+The _next output fee statement_ is determined as the first statement where:
+
+- `output_fee` is `true`
+- `deadline_date` is in the future
+- Ordered by `deadline_date ASC`
+
+Lead providers can check submitted declarations using the `GET /api/v[1,2,3]/participant-declarations` endpoint.
+
+Contract managers and product team members can check by:
+
+- Logging in as a user with the `finance` role
+- Visiting the **DfE Finance** dashboard
+- Navigating to the **Search participant data** page
+- Entering the participant ID or declaration ID
+- Scrolling down to the **Declarations** section, which lists all submitted declarations
+
+## View financial statement
+
+Financial statements are generated dynamically when visiting the **View financial statements** page in the **DfE Finance** dashboard.
+
+To view a financial statement:
+
+- Log in as a user with the `finance` role
+- Visit the **DfE Finance** dashboard
+- Go to the **View financial statements** page
+- Choose a lead provider
+- The financial statement will be displayed
+
+You can use the dropdowns to filter and view different statements:
+
+- Select a lead provider
+- Select a cohort
+- Select a statement month
+- Click the **View** button
+
+The following data is used to generate a statement:
+
+- Declarations (including clawbacks)
+- Call off contract
+- Mentor call off contract
+- Adjustments
+
+Statement values are calculated using the `Finance::ECF::StatementCalculator`.
+
+There are two versions of statements:
+
+- **Cohorts up to 2024** – values for ECTs and Mentors are combined
+- **Cohorts from 2025 onwards** – values for ECTs and Mentors are separated
+
+Declarations are submitted by lead providers.
+Call off contract and mentor call off contract information is provided by contract managers.
+Adjustments are also added by contract managers.
+
+## Download statement declarations
+
+The financial statement page includes a **Download declarations (CSV)** link. This allows finance users to download a full list of all declarations used in the statement.
+
+The CSV includes the following fields:
+
+- Participant ID
+- Participant Name
+- TRN
+- Type
+- Mentor Profile ID
+- Schedule
+- Eligible for Funding
+- Eligible for Funding Reason
+- Sparsity Uplift
+- Pupil Premium Uplift
+- Sparsity and PP
+- Lead Provider Name
+- Delivery Partner Name
+- School URN
+- School Name
+- Training Status
+- Training Status Reason
+- Declaration ID
+- Declaration Status
+- Declaration Type
+- Declaration Date
+- Declaration Created At
+- Statement Name
+- Statement ID
+- Uplift Payable
+
+## Authorise statement for payment
+
+A statement can be marked as paid if:
+
+- `output_fee` is `true`
+- `state` is `payable`
+- `marked_as_paid_at` is `nil`
+- `deadline_date` is in the past
+- It contains declarations
+
+Statements are automatically marked as payable by a daily cron job once the `deadline_date` has passed.
+
+If all the above conditions are met, an **Authorise for payment** button is shown on the financial statement page.
+
+Once a statement is marked as paid:
+
+- The button is replaced with `Authorised for payment at {marked_as_paid_at}`
+- Adjustments can no longer be edited
+- Declarations can no longer be attached to that statement
+
+## Additional adjustments
+
+Statements with `output_fee` set to `true` can include additional one-off adjustments. These can be positive or negative, e.g. backdated service fees.
+
+A breakdown of adjustments appears at the bottom of the financial statement page, and the total adjustment value is shown in the summary section at the top.
+
+Adjustments cannot be edited after the statement has been marked as paid.
+
+### To add an adjustment
+
+- Visit the relevant statement page (`output_fee` must be `true`)
+- Scroll down to **Additional adjustments**
+- Click **Add**
+- Enter the payment type and click **Continue**
+- Enter the payment amount and click **Continue**
+- Review the summary and click **Confirm and continue**
+- Choose to add another adjustment or select **No** and click **Continue**
+
+### To change an adjustment
+
+- Visit the statement page
+- Scroll to **Additional adjustments**
+- Click **Change or remove**
+- Click **Change** on the relevant adjustment
+- Update the payment type and/or amount
+- Click **Continue** and then **Confirm and continue**
+- Click **Back** to return to the statement page
+
+### To remove an adjustment
+
+- Visit the statement page
+- Scroll to **Additional adjustments**
+- Click **Change or remove**
+- Click **Remove** on the relevant adjustment
+- Confirm and click **Continue**
+- Click **Back** to return to the statement page
+
+## Contract information
+
+Contract managers can view contract values used for statement calculation by clicking the **Contract information** link at the bottom of the financial statement page.
+
+The information displayed depends on the cohort:
+
+### Cohorts up to 2024
+
+- Provider name
+- Recruitment target
+- Revised recruitment target (+2%)
+- Uplift target
+- Uplift amount
+- Set-up fee
+- Bands:
+  - Band name
+  - Minimum
+  - Maximum
+  - Payment per participant
+
+### Cohorts from 2025 onwards
+
+- ECT recruitment target
+- Revised ECT recruitment target (+115%)
+- ECT bands:
+  - Band name
+  - Minimum
+  - Maximum
+  - Payment per participant
+- Mentor recruitment target
+- Mentor payment per participant
+
+## Statement versioning
+
+Statements include a `contract_version` field, which determines which version of the call off contract to use in the statement calculator. This value follows **semantic versioning**, starting from `0.0.1`.
+
+When contract values are updated:
+
+- The existing contract is duplicated
+- New values are applied
+- The version is incremented (patch version)
+- The statement’s `contract_version` is updated to match the new contract version
+
+Contracts that are no longer in use or identified as duplicates have their `version` prefixed with `unused_` (e.g. `unused_0.0.1`) to indicate they should not be used for statement calculations.
path: documentation/service-rules/ecf1/finance-users.md
user: login: cwrw
body: we might need to be careful here as no longer in use might mean they are still attached to a statement. We maybe can clarify that if something is marked as unused it is not attached to any statement
created_at: 2025-03-31T07:35:10Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,212 @@
+---
+title: Finance users
+---
+
+Financial statements are monthly record of payments made to lead providers. They are generated based on the declarations submitted by lead providers, which are attached to a specific statement depending on the timing of submission and applicable funding criteria. Each statement provides a complete picture of the payments for that period, including a summary, detailed breakdowns, and total amounts. These totals may include output payments, clawbacks, VAT, service fees, and any additional one-off adjustments.
+
+## Contents
+
+[Attach declaration to a financial statement](#attach-declaration-to-a-financial-statement)
+
+[View financial statement](#view-financial-statement)
+
+[Download statement declarations](#download-statement-declarations)
+
+[Authorise statement for payment](#authorise-statement-for-payment)
+
+[Additional adjustments](#additional-adjustments)
+
+[Contract information](#contract-information)
+
+[Statement versioning](#contract-information)
+
+## Attach declaration to a financial statement
+
+When a lead provider submits a declaration via the `POST /api/v[1,2,3]/participant-declarations` endpoint, the declaration is attached to the next _output fee_ financial statement, provided the participant is fundable and the declaration is not a duplicate.
+
+The _next output fee statement_ is determined as the first statement where:
+
+- `output_fee` is `true`
+- `deadline_date` is in the future
+- Ordered by `deadline_date ASC`
+
+Lead providers can check submitted declarations using the `GET /api/v[1,2,3]/participant-declarations` endpoint.
+
+Contract managers and product team members can check by:
+
+- Logging in as a user with the `finance` role
+- Visiting the **DfE Finance** dashboard
+- Navigating to the **Search participant data** page
+- Entering the participant ID or declaration ID
+- Scrolling down to the **Declarations** section, which lists all submitted declarations
+
+## View financial statement
+
+Financial statements are generated dynamically when visiting the **View financial statements** page in the **DfE Finance** dashboard.
+
+To view a financial statement:
+
+- Log in as a user with the `finance` role
+- Visit the **DfE Finance** dashboard
+- Go to the **View financial statements** page
+- Choose a lead provider
+- The financial statement will be displayed
+
+You can use the dropdowns to filter and view different statements:
+
+- Select a lead provider
+- Select a cohort
+- Select a statement month
+- Click the **View** button
+
+The following data is used to generate a statement:
+
+- Declarations (including clawbacks)
+- Call off contract
+- Mentor call off contract
+- Adjustments
+
+Statement values are calculated using the `Finance::ECF::StatementCalculator`.
+
+There are two versions of statements:
+
+- **Cohorts up to 2024** – values for ECTs and Mentors are combined
+- **Cohorts from 2025 onwards** – values for ECTs and Mentors are separated
+
+Declarations are submitted by lead providers.
+Call off contract and mentor call off contract information is provided by contract managers.
+Adjustments are also added by contract managers.
+
+## Download statement declarations
+
+The financial statement page includes a **Download declarations (CSV)** link. This allows finance users to download a full list of all declarations used in the statement.
+
+The CSV includes the following fields:
+
+- Participant ID
+- Participant Name
+- TRN
+- Type
+- Mentor Profile ID
+- Schedule
+- Eligible for Funding
+- Eligible for Funding Reason
+- Sparsity Uplift
+- Pupil Premium Uplift
+- Sparsity and PP
+- Lead Provider Name
+- Delivery Partner Name
+- School URN
+- School Name
+- Training Status
+- Training Status Reason
+- Declaration ID
+- Declaration Status
+- Declaration Type
+- Declaration Date
+- Declaration Created At
+- Statement Name
+- Statement ID
+- Uplift Payable
+
+## Authorise statement for payment
+
+A statement can be marked as paid if:
+
+- `output_fee` is `true`
+- `state` is `payable`
+- `marked_as_paid_at` is `nil`
+- `deadline_date` is in the past
+- It contains declarations
+
+Statements are automatically marked as payable by a daily cron job once the `deadline_date` has passed.
+
+If all the above conditions are met, an **Authorise for payment** button is shown on the financial statement page.
+
+Once a statement is marked as paid:
+
+- The button is replaced with `Authorised for payment at {marked_as_paid_at}`
+- Adjustments can no longer be edited
+- Declarations can no longer be attached to that statement
+
+## Additional adjustments
+
+Statements with `output_fee` set to `true` can include additional one-off adjustments. These can be positive or negative, e.g. backdated service fees.
+
+A breakdown of adjustments appears at the bottom of the financial statement page, and the total adjustment value is shown in the summary section at the top.
+
+Adjustments cannot be edited after the statement has been marked as paid.
+
+### To add an adjustment
+
+- Visit the relevant statement page (`output_fee` must be `true`)
+- Scroll down to **Additional adjustments**
+- Click **Add**
+- Enter the payment type and click **Continue**
+- Enter the payment amount and click **Continue**
+- Review the summary and click **Confirm and continue**
+- Choose to add another adjustment or select **No** and click **Continue**
+
+### To change an adjustment
+
+- Visit the statement page
+- Scroll to **Additional adjustments**
+- Click **Change or remove**
+- Click **Change** on the relevant adjustment
+- Update the payment type and/or amount
+- Click **Continue** and then **Confirm and continue**
+- Click **Back** to return to the statement page
+
+### To remove an adjustment
+
+- Visit the statement page
+- Scroll to **Additional adjustments**
+- Click **Change or remove**
+- Click **Remove** on the relevant adjustment
+- Confirm and click **Continue**
+- Click **Back** to return to the statement page
+
+## Contract information
+
+Contract managers can view contract values used for statement calculation by clicking the **Contract information** link at the bottom of the financial statement page.
+
+The information displayed depends on the cohort:
+
+### Cohorts up to 2024
+
+- Provider name
+- Recruitment target
+- Revised recruitment target (+2%)
+- Uplift target
+- Uplift amount
+- Set-up fee
+- Bands:
+  - Band name
+  - Minimum
+  - Maximum
+  - Payment per participant
+
+### Cohorts from 2025 onwards
+
+- ECT recruitment target
+- Revised ECT recruitment target (+115%)
+- ECT bands:
+  - Band name
+  - Minimum
+  - Maximum
+  - Payment per participant
+- Mentor recruitment target
+- Mentor payment per participant
+
+## Statement versioning
+
+Statements include a `contract_version` field, which determines which version of the call off contract to use in the statement calculator. This value follows **semantic versioning**, starting from `0.0.1`.
+
+When contract values are updated:
+
+- The existing contract is duplicated
+- New values are applied
path: documentation/service-rules/ecf1/finance-users.md
user: login: cwrw
body: maybe we add bandings are copied as well, also that statements that were previously marked as paid will still be attached to the previous version? 
created_at: 2025-03-31T07:35:39Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,212 @@
+---
+title: Finance users
+---
+
+Financial statements are monthly record of payments made to lead providers. They are generated based on the declarations submitted by lead providers, which are attached to a specific statement depending on the timing of submission and applicable funding criteria. Each statement provides a complete picture of the payments for that period, including a summary, detailed breakdowns, and total amounts. These totals may include output payments, clawbacks, VAT, service fees, and any additional one-off adjustments.
+
+## Contents
+
+[Attach declaration to a financial statement](#attach-declaration-to-a-financial-statement)
+
+[View financial statement](#view-financial-statement)
+
+[Download statement declarations](#download-statement-declarations)
+
+[Authorise statement for payment](#authorise-statement-for-payment)
+
+[Additional adjustments](#additional-adjustments)
+
+[Contract information](#contract-information)
+
+[Statement versioning](#contract-information)
+
+## Attach declaration to a financial statement
+
+When a lead provider submits a declaration via the `POST /api/v[1,2,3]/participant-declarations` endpoint, the declaration is attached to the next _output fee_ financial statement, provided the participant is fundable and the declaration is not a duplicate.
+
+The _next output fee statement_ is determined as the first statement where:
+
+- `output_fee` is `true`
+- `deadline_date` is in the future
+- Ordered by `deadline_date ASC`
+
+Lead providers can check submitted declarations using the `GET /api/v[1,2,3]/participant-declarations` endpoint.
+
+Contract managers and product team members can check by:
+
+- Logging in as a user with the `finance` role
+- Visiting the **DfE Finance** dashboard
+- Navigating to the **Search participant data** page
+- Entering the participant ID or declaration ID
+- Scrolling down to the **Declarations** section, which lists all submitted declarations
+
+## View financial statement
+
+Financial statements are generated dynamically when visiting the **View financial statements** page in the **DfE Finance** dashboard.
+
+To view a financial statement:
+
+- Log in as a user with the `finance` role
+- Visit the **DfE Finance** dashboard
+- Go to the **View financial statements** page
+- Choose a lead provider
+- The financial statement will be displayed
+
+You can use the dropdowns to filter and view different statements:
+
+- Select a lead provider
+- Select a cohort
+- Select a statement month
+- Click the **View** button
+
+The following data is used to generate a statement:
+
+- Declarations (including clawbacks)
+- Call off contract
+- Mentor call off contract
+- Adjustments
+
+Statement values are calculated using the `Finance::ECF::StatementCalculator`.
+
+There are two versions of statements:
+
+- **Cohorts up to 2024** – values for ECTs and Mentors are combined
+- **Cohorts from 2025 onwards** – values for ECTs and Mentors are separated
+
+Declarations are submitted by lead providers.
+Call off contract and mentor call off contract information is provided by contract managers.
+Adjustments are also added by contract managers.
+
+## Download statement declarations
+
+The financial statement page includes a **Download declarations (CSV)** link. This allows finance users to download a full list of all declarations used in the statement.
+
+The CSV includes the following fields:
+
+- Participant ID
+- Participant Name
+- TRN
+- Type
+- Mentor Profile ID
+- Schedule
+- Eligible for Funding
+- Eligible for Funding Reason
+- Sparsity Uplift
+- Pupil Premium Uplift
+- Sparsity and PP
+- Lead Provider Name
+- Delivery Partner Name
+- School URN
+- School Name
+- Training Status
+- Training Status Reason
+- Declaration ID
+- Declaration Status
+- Declaration Type
+- Declaration Date
+- Declaration Created At
+- Statement Name
+- Statement ID
+- Uplift Payable
+
+## Authorise statement for payment
+
+A statement can be marked as paid if:
+
+- `output_fee` is `true`
+- `state` is `payable`
+- `marked_as_paid_at` is `nil`
+- `deadline_date` is in the past
+- It contains declarations
+
+Statements are automatically marked as payable by a daily cron job once the `deadline_date` has passed.
+
+If all the above conditions are met, an **Authorise for payment** button is shown on the financial statement page.
+
+Once a statement is marked as paid:
+
+- The button is replaced with `Authorised for payment at {marked_as_paid_at}`
+- Adjustments can no longer be edited
+- Declarations can no longer be attached to that statement
+
+## Additional adjustments
+
+Statements with `output_fee` set to `true` can include additional one-off adjustments. These can be positive or negative, e.g. backdated service fees.
+
+A breakdown of adjustments appears at the bottom of the financial statement page, and the total adjustment value is shown in the summary section at the top.
+
+Adjustments cannot be edited after the statement has been marked as paid.
+
+### To add an adjustment
+
+- Visit the relevant statement page (`output_fee` must be `true`)
+- Scroll down to **Additional adjustments**
+- Click **Add**
+- Enter the payment type and click **Continue**
+- Enter the payment amount and click **Continue**
+- Review the summary and click **Confirm and continue**
+- Choose to add another adjustment or select **No** and click **Continue**
+
+### To change an adjustment
+
+- Visit the statement page
+- Scroll to **Additional adjustments**
+- Click **Change or remove**
+- Click **Change** on the relevant adjustment
+- Update the payment type and/or amount
+- Click **Continue** and then **Confirm and continue**
+- Click **Back** to return to the statement page
+
+### To remove an adjustment
+
+- Visit the statement page
+- Scroll to **Additional adjustments**
+- Click **Change or remove**
+- Click **Remove** on the relevant adjustment
+- Confirm and click **Continue**
+- Click **Back** to return to the statement page
+
+## Contract information
+
+Contract managers can view contract values used for statement calculation by clicking the **Contract information** link at the bottom of the financial statement page.
path: documentation/service-rules/ecf1/finance-users.md
user: login: cwrw
body: maybe we can explain here how this is different between providers?
created_at: 2025-03-31T07:37:28Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,212 @@
+---
+title: Finance users
+---
+
+Financial statements are monthly record of payments made to lead providers. They are generated based on the declarations submitted by lead providers, which are attached to a specific statement depending on the timing of submission and applicable funding criteria. Each statement provides a complete picture of the payments for that period, including a summary, detailed breakdowns, and total amounts. These totals may include output payments, clawbacks, VAT, service fees, and any additional one-off adjustments.
+
+## Contents
+
+[Attach declaration to a financial statement](#attach-declaration-to-a-financial-statement)
+
+[View financial statement](#view-financial-statement)
+
+[Download statement declarations](#download-statement-declarations)
+
+[Authorise statement for payment](#authorise-statement-for-payment)
+
+[Additional adjustments](#additional-adjustments)
+
+[Contract information](#contract-information)
+
+[Statement versioning](#contract-information)
+
+## Attach declaration to a financial statement
+
+When a lead provider submits a declaration via the `POST /api/v[1,2,3]/participant-declarations` endpoint, the declaration is attached to the next _output fee_ financial statement, provided the participant is fundable and the declaration is not a duplicate.
+
+The _next output fee statement_ is determined as the first statement where:
+
+- `output_fee` is `true`
+- `deadline_date` is in the future
+- Ordered by `deadline_date ASC`
+
+Lead providers can check submitted declarations using the `GET /api/v[1,2,3]/participant-declarations` endpoint.
+
+Contract managers and product team members can check by:
+
+- Logging in as a user with the `finance` role
+- Visiting the **DfE Finance** dashboard
+- Navigating to the **Search participant data** page
+- Entering the participant ID or declaration ID
+- Scrolling down to the **Declarations** section, which lists all submitted declarations
+
+## View financial statement
+
+Financial statements are generated dynamically when visiting the **View financial statements** page in the **DfE Finance** dashboard.
+
+To view a financial statement:
+
+- Log in as a user with the `finance` role
+- Visit the **DfE Finance** dashboard
+- Go to the **View financial statements** page
+- Choose a lead provider
+- The financial statement will be displayed
+
+You can use the dropdowns to filter and view different statements:
+
+- Select a lead provider
+- Select a cohort
+- Select a statement month
+- Click the **View** button
+
+The following data is used to generate a statement:
+
+- Declarations (including clawbacks)
+- Call off contract
+- Mentor call off contract
+- Adjustments
+
+Statement values are calculated using the `Finance::ECF::StatementCalculator`.
+
+There are two versions of statements:
+
+- **Cohorts up to 2024** – values for ECTs and Mentors are combined
+- **Cohorts from 2025 onwards** – values for ECTs and Mentors are separated
+
+Declarations are submitted by lead providers.
+Call off contract and mentor call off contract information is provided by contract managers.
+Adjustments are also added by contract managers.
+
+## Download statement declarations
+
+The financial statement page includes a **Download declarations (CSV)** link. This allows finance users to download a full list of all declarations used in the statement.
+
+The CSV includes the following fields:
+
+- Participant ID
+- Participant Name
+- TRN
+- Type
+- Mentor Profile ID
+- Schedule
+- Eligible for Funding
+- Eligible for Funding Reason
+- Sparsity Uplift
+- Pupil Premium Uplift
+- Sparsity and PP
+- Lead Provider Name
+- Delivery Partner Name
+- School URN
+- School Name
+- Training Status
+- Training Status Reason
+- Declaration ID
+- Declaration Status
+- Declaration Type
+- Declaration Date
+- Declaration Created At
+- Statement Name
+- Statement ID
+- Uplift Payable
+
+## Authorise statement for payment
+
+A statement can be marked as paid if:
+
+- `output_fee` is `true`
+- `state` is `payable`
+- `marked_as_paid_at` is `nil`
+- `deadline_date` is in the past
+- It contains declarations
+
+Statements are automatically marked as payable by a daily cron job once the `deadline_date` has passed.
+
+If all the above conditions are met, an **Authorise for payment** button is shown on the financial statement page.
+
+Once a statement is marked as paid:
+
+- The button is replaced with `Authorised for payment at {marked_as_paid_at}`
+- Adjustments can no longer be edited
+- Declarations can no longer be attached to that statement
+
+## Additional adjustments
+
+Statements with `output_fee` set to `true` can include additional one-off adjustments. These can be positive or negative, e.g. backdated service fees.
+
+A breakdown of adjustments appears at the bottom of the financial statement page, and the total adjustment value is shown in the summary section at the top.
+
+Adjustments cannot be edited after the statement has been marked as paid.
+
+### To add an adjustment
+
+- Visit the relevant statement page (`output_fee` must be `true`)
+- Scroll down to **Additional adjustments**
+- Click **Add**
+- Enter the payment type and click **Continue**
+- Enter the payment amount and click **Continue**
+- Review the summary and click **Confirm and continue**
+- Choose to add another adjustment or select **No** and click **Continue**
+
+### To change an adjustment
+
+- Visit the statement page
+- Scroll to **Additional adjustments**
+- Click **Change or remove**
+- Click **Change** on the relevant adjustment
+- Update the payment type and/or amount
+- Click **Continue** and then **Confirm and continue**
+- Click **Back** to return to the statement page
+
+### To remove an adjustment
+
+- Visit the statement page
+- Scroll to **Additional adjustments**
+- Click **Change or remove**
+- Click **Remove** on the relevant adjustment
+- Confirm and click **Continue**
+- Click **Back** to return to the statement page
+
+## Contract information
+
+Contract managers can view contract values used for statement calculation by clicking the **Contract information** link at the bottom of the financial statement page.
+
+The information displayed depends on the cohort:
+
+### Cohorts up to 2024
+
+- Provider name
+- Recruitment target
+- Revised recruitment target (+2%)
+- Uplift target
+- Uplift amount
+- Set-up fee
+- Bands:
+  - Band name
+  - Minimum
+  - Maximum
+  - Payment per participant
+
+### Cohorts from 2025 onwards
+
+- ECT recruitment target
+- Revised ECT recruitment target (+115%)
+- ECT bands:
+  - Band name
+  - Minimum
+  - Maximum
+  - Payment per participant
+- Mentor recruitment target
+- Mentor payment per participant
+
+## Statement versioning
+
+Statements include a `contract_version` field, which determines which version of the call off contract to use in the statement calculator. This value follows **semantic versioning**, starting from `0.0.1`.
+
+When contract values are updated:
+
+- The existing contract is duplicated
+- New values are applied
+- The version is incremented (patch version)
+- The statement’s `contract_version` is updated to match the new contract version
+
+Contracts that are no longer in use or identified as duplicates have their `version` prefixed with `unused_` (e.g. `unused_0.0.1`) to indicate they should not be used for statement calculations.
path: documentation/service-rules/ecf1/finance-users.md
user: login: mooktakim
body: rephrased 👍
created_at: 2025-03-31T14:33:51Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,215 @@
+---
+title: Finance users
+---
+
+Financial statements are monthly record of payments made to lead providers. They are generated based on the declarations submitted by lead providers, which are attached to a specific statement depending on the timing of submission and applicable funding criteria. Each statement provides a complete picture of the payments for that period, including a summary, detailed breakdowns, and total amounts. These totals may include output payments, clawbacks, VAT, service fees, and any additional one-off adjustments.
+
+## Contents
+
+[Attach declaration to a financial statement](#attach-declaration-to-a-financial-statement)
+
+[View financial statement](#view-financial-statement)
+
+[Download statement declarations](#download-statement-declarations)
+
+[Authorise statement for payment](#authorise-statement-for-payment)
+
+[Additional adjustments](#additional-adjustments)
+
+[Contract information](#contract-information)
+
+[Statement versioning](#contract-information)
+
+## Attach declaration to a financial statement
+
+When a lead provider submits a declaration via the `POST /api/v[1,2,3]/participant-declarations` endpoint, the declaration is attached to the next _output fee_ financial statement, provided the participant is fundable and the declaration is not a duplicate.
+
+The _next output fee statement_ is determined as the first statement where:
+
+- `output_fee` is `true`
+- `deadline_date` is in the future
+- Ordered by `deadline_date ASC`
+
+Lead providers can check submitted declarations using the `GET /api/v[1,2,3]/participant-declarations` endpoint.
+
+Contract managers and product team members can check by:
+
+- Logging in as a user with the `finance` role
+- Visiting the **DfE Finance** dashboard
+- Navigating to the **Search participant data** page
+- Entering the participant ID or declaration ID
+- Scrolling down to the **Declarations** section, which lists all submitted declarations
+
+## View financial statement
+
+Financial statements are generated dynamically when visiting the **View financial statements** page in the **DfE Finance** dashboard.
+
+To view a financial statement:
+
+- Log in as a user with the `finance` role
+- Visit the **DfE Finance** dashboard
+- Go to the **View financial statements** page
+- Choose a lead provider
+- The financial statement will be displayed
+
+You can use the dropdowns to filter and view different statements:
+
+- Select a lead provider
+- Select a cohort
+- Select a statement month
+- Click the **View** button
+
+The following data is used to generate a statement:
+
+- Declarations (including clawbacks)
+- Call off contract
+- Mentor call off contract
+- Adjustments
+
+Statement values are calculated using the `Finance::ECF::StatementCalculator`.
+
+There are two versions of statements:
+
+- **Cohorts up to 2024** – values for ECTs and Mentors are combined
+- **Cohorts from 2025 onwards** – values for ECTs and Mentors are separated
+
+Declarations are submitted by lead providers.
+Call off contract and mentor call off contract information is provided by contract managers.
+Adjustments are also added by contract managers.
+
+## Download statement declarations
+
+The financial statement page includes a **Download declarations (CSV)** link. This allows finance users to download a full list of all declarations used in the statement.
+
+The CSV includes the following fields:
+
+- Participant ID
+- Participant Name
+- TRN
+- Type
+- Mentor Profile ID
+- Schedule
+- Eligible for Funding
+- Eligible for Funding Reason
+- Sparsity Uplift
+- Pupil Premium Uplift
+- Sparsity and PP
+- Lead Provider Name
+- Delivery Partner Name
+- School URN
+- School Name
+- Training Status
+- Training Status Reason
+- Declaration ID
+- Declaration Status
+- Declaration Type
+- Declaration Date
+- Declaration Created At
+- Statement Name
+- Statement ID
+- Uplift Payable
+
+## Authorise statement for payment
+
+A statement can be marked as paid if:
+
+- `output_fee` is `true`
+- `state` is `payable`
+- `marked_as_paid_at` is `nil`
+- `deadline_date` is in the past
+- It contains declarations
+
+Statements are automatically marked as payable by a daily cron job once the `deadline_date` has passed.
+
+If all the above conditions are met, an **Authorise for payment** button is shown on the financial statement page.
+
+Once a statement is marked as paid:
+
+- The button is replaced with `Authorised for payment at {marked_as_paid_at}`
+- Adjustments can no longer be edited
+- Declarations can no longer be attached to that statement
+
+## Additional adjustments
+
+Statements with `output_fee` set to `true` can include additional one-off adjustments. These can be positive or negative, e.g. backdated service fees.
+
+A breakdown of adjustments appears at the bottom of the financial statement page, and the total adjustment value is shown in the summary section at the top.
+
+Adjustments cannot be edited after the statement has been marked as paid.
+
+### To add an adjustment
+
+- Visit the relevant statement page (`output_fee` must be `true`)
+- Scroll down to **Additional adjustments**
+- Click **Add**
+- Enter the payment type and click **Continue**
+- Enter the payment amount and click **Continue**
+- Review the summary and click **Confirm and continue**
+- Choose to add another adjustment or select **No** and click **Continue**
+
+### To change an adjustment
+
+- Visit the statement page
+- Scroll to **Additional adjustments**
+- Click **Change or remove**
+- Click **Change** on the relevant adjustment
+- Update the payment type and/or amount
+- Click **Continue** and then **Confirm and continue**
+- Click **Back** to return to the statement page
+
+### To remove an adjustment
+
+- Visit the statement page
+- Scroll to **Additional adjustments**
+- Click **Change or remove**
+- Click **Remove** on the relevant adjustment
+- Confirm and click **Continue**
+- Click **Back** to return to the statement page
+
+## Contract information
+
+Contract managers can view contract values used for statement calculation by clicking the **Contract information** link at the bottom of the financial statement page.
+
+A contract is identified by the lead provider, cohort and version. Contracts are not shared by lead providers or cohort.
+Statements from the same lead provider and cohort can share the same contract (identified by `contract_version`).
+
+The information displayed depends on the cohort:
+
+### Cohorts up to 2024
+
+- Provider name
+- Recruitment target
+- Revised recruitment target (+2%)
+- Uplift target
+- Uplift amount
+- Set-up fee
+- Bands:
+  - Band name
+  - Minimum
+  - Maximum
+  - Payment per participant
+
+### Cohorts from 2025 onwards
+
+- ECT recruitment target
+- Revised ECT recruitment target (+115%)
+- ECT bands:
+  - Band name
+  - Minimum
+  - Maximum
+  - Payment per participant
+- Mentor recruitment target
+- Mentor payment per participant
+
+## Statement versioning
+
+Statements include a `contract_version` field, which determines which version of the call off contract to use in the statement calculator. This value follows **semantic versioning**, starting from `0.0.1`.
+
+When contract values are updated:
+
+- The existing contract and its bands are duplicated
+- New contract values and band values are applied
+- The contract `version` is incremented (patch version)
+- The statement’s `contract_version` is updated to match the new contract version
+
+Contracts that are no longer linked to statements (due to it being superseded by new contract version) or identified as duplicates have their `version` prefixed with `unused_` (e.g. `unused_0.0.1`) to indicate they should not be used for statement calculations.
path: documentation/service-rules/ecf1/finance-users.md
user: login: leandroalemao
body: Contracts that are no longer linked to statements (due to them being superseded by a new contract version)
created_at: 2025-04-01T08:24:55Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,215 @@
+---
+title: Finance users
+---
+
+Financial statements are monthly record of payments made to lead providers. They are generated based on the declarations submitted by lead providers, which are attached to a specific statement depending on the timing of submission and applicable funding criteria. Each statement provides a complete picture of the payments for that period, including a summary, detailed breakdowns, and total amounts. These totals may include output payments, clawbacks, VAT, service fees, and any additional one-off adjustments.
path: documentation/service-rules/ecf1/finance-users.md
user: login: leandroalemao
body: Financial statements are **a** monthly record
created_at: 2025-04-01T08:24:59Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,215 @@
+---
+title: Finance users
+---
+
+Financial statements are monthly record of payments made to lead providers. They are generated based on the declarations submitted by lead providers, which are attached to a specific statement depending on the timing of submission and applicable funding criteria. Each statement provides a complete picture of the payments for that period, including a summary, detailed breakdowns, and total amounts. These totals may include output payments, clawbacks, VAT, service fees, and any additional one-off adjustments.
+
+## Contents
+
+[Attach declaration to a financial statement](#attach-declaration-to-a-financial-statement)
+
+[View financial statement](#view-financial-statement)
+
+[Download statement declarations](#download-statement-declarations)
+
+[Authorise statement for payment](#authorise-statement-for-payment)
+
+[Additional adjustments](#additional-adjustments)
+
+[Contract information](#contract-information)
+
+[Statement versioning](#contract-information)
+
+## Attach declaration to a financial statement
+
+When a lead provider submits a declaration via the `POST /api/v[1,2,3]/participant-declarations` endpoint, the declaration is attached to the next _output fee_ financial statement, provided the participant is fundable and the declaration is not a duplicate.
+
+The _next output fee statement_ is determined as the first statement where:
+
+- `output_fee` is `true`
+- `deadline_date` is in the future
+- Ordered by `deadline_date ASC`
+
+Lead providers can check submitted declarations using the `GET /api/v[1,2,3]/participant-declarations` endpoint.
+
+Contract managers and product team members can check by:
+
+- Logging in as a user with the `finance` role
+- Visiting the **DfE Finance** dashboard
+- Navigating to the **Search participant data** page
+- Entering the participant ID or declaration ID
+- Scrolling down to the **Declarations** section, which lists all submitted declarations
+
+## View financial statement
+
+Financial statements are generated dynamically when visiting the **View financial statements** page in the **DfE Finance** dashboard.
+
+To view a financial statement:
+
+- Log in as a user with the `finance` role
+- Visit the **DfE Finance** dashboard
+- Go to the **View financial statements** page
+- Choose a lead provider
+- The financial statement will be displayed
+
+You can use the dropdowns to filter and view different statements:
+
+- Select a lead provider
+- Select a cohort
+- Select a statement month
+- Click the **View** button
+
+The following data is used to generate a statement:
+
+- Declarations (including clawbacks)
+- Call off contract
+- Mentor call off contract
+- Adjustments
+
+Statement values are calculated using the `Finance::ECF::StatementCalculator`.
+
+There are two versions of statements:
+
+- **Cohorts up to 2024** – values for ECTs and Mentors are combined
+- **Cohorts from 2025 onwards** – values for ECTs and Mentors are separated
+
+Declarations are submitted by lead providers.
+Call off contract and mentor call off contract information is provided by contract managers.
path: documentation/service-rules/ecf1/finance-users.md
user: login: leandroalemao
body: Call-off contract and mentor call-off contract information are provided by contract managers.
created_at: 2025-04-01T08:25:33Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,215 @@
+---
+title: Finance users
+---
+
+Financial statements are monthly record of payments made to lead providers. They are generated based on the declarations submitted by lead providers, which are attached to a specific statement depending on the timing of submission and applicable funding criteria. Each statement provides a complete picture of the payments for that period, including a summary, detailed breakdowns, and total amounts. These totals may include output payments, clawbacks, VAT, service fees, and any additional one-off adjustments.
+
+## Contents
+
+[Attach declaration to a financial statement](#attach-declaration-to-a-financial-statement)
+
+[View financial statement](#view-financial-statement)
+
+[Download statement declarations](#download-statement-declarations)
+
+[Authorise statement for payment](#authorise-statement-for-payment)
+
+[Additional adjustments](#additional-adjustments)
+
+[Contract information](#contract-information)
+
+[Statement versioning](#contract-information)
+
+## Attach declaration to a financial statement
+
+When a lead provider submits a declaration via the `POST /api/v[1,2,3]/participant-declarations` endpoint, the declaration is attached to the next _output fee_ financial statement, provided the participant is fundable and the declaration is not a duplicate.
+
+The _next output fee statement_ is determined as the first statement where:
path: documentation/service-rules/ecf1/finance-users.md
user: login: leandroalemao
body: The _next output fee statement_ is determined to be the first statement where:
created_at: 2025-04-01T08:27:21Z
author_association: CONTRIBUTOR

PR comments:
user: login: github-actions[bot]
created_at: 2025-03-25T17:18:42Z
body: Review app deployed to https://cpd-ec2-review-384-web.test.teacherservices.cloud
<!-- Sticky Pull Request Comment -->
author_association: NONE
user: login: sonarqubecloud[bot]
created_at: 2025-04-01T09:29:34Z
body: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=DFE-Digital_register-early-career-teachers-public&pullRequest=384) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=DFE-Digital_register-early-career-teachers-public&pullRequest=384&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=DFE-Digital_register-early-career-teachers-public&pullRequest=384&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=DFE-Digital_register-early-career-teachers-public&pullRequest=384&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=DFE-Digital_register-early-career-teachers-public&pullRequest=384&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=DFE-Digital_register-early-career-teachers-public&pullRequest=384&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=DFE-Digital_register-early-career-teachers-public&pullRequest=384)


author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-02T09:13:18Z
body: Review app ECF2 deployed to <https://ec2-review-384-web.test.teacherservices.cloud> was deleted
<!-- Sticky Pull Request Commentaks -->
author_association: NONE