Investment restriction
Manual obligations and attestations
A manual obligation is a policy requirement that no calculation on holdings can test, such as an annual policy review. Acclimetry records it with a schedule and attestation tasks, and monitors it like a limit. It is compliant while attested or not yet due, a warning as the due date nears, and a breach once overdue.
manual_obligationManual obligation
Which clauses become manual obligations
Every clause in a policy gets a disposition: mapped to a rule, manual obligation, ambiguous, not an obligation, or unsupported by the engine. Manual obligations are the clauses that a person must confirm because no data on holdings can prove them.
- Governance acts: the committee reviews the policy every year; a statement of investment principles is reviewed at least every three years.
- Confirmations: managers confirm compliance with the guidelines each quarter.
- Purpose tests: derivatives are used only to reduce risk; advice is taken before investing.
- Conditions in time: borrowing is temporary and repaid within one month.
Many clauses split. In ‘derivatives only for hedging’, the list of permitted derivative classes is a rule, while the hedging purpose is an attestation.
Reporting deadlines, such as ‘breaches reported to the committee within three business days’, are workflow. They belong to case escalation and its clocks, not to an obligation.
How it is measured
An obligation in the register has a frequency and a next due date, and each period produces an attestation task. A rule built on this template follows one obligation and reads its latest task by due date.
- Compliant: the latest task is approved, or nothing is due yet.
- Warning: a task falls due within the rule's warning window, such as 7 days, and is not complete.
- Breach: the due date has passed without an approved task, or the latest task failed or was rejected.
The measured value is the number of days overdue. An obligation with no task yet is judged by its next due date.
Obligations are not projected in pre-trade checks. A Trade Impact projection reports them as not evaluated rather than guessing.
When it is breached and what follows
An overdue attestation opens a case like any breach, with assignment, escalation and service-level clocks. The fix is to complete and approve the task; the next monitoring run reads it.
Because the obligation is a rule outcome, it can be an operand of a composite rule. ‘Derivative classes within the permitted list AND hedging purpose attested’ is one example.
Attestations are held in the system of record from which evidence packs and reports are generated.
How policies word it
- The investment committee will review this policy at least once a year.
- Each investment manager will confirm compliance with these guidelines in writing every quarter.
- Derivatives may be used only to reduce risk or for efficient portfolio management.
- The trustees will obtain and consider proper advice before making or changing investments.
- Any borrowing must be repaid within one month.
Data the check reads
- The obligation in the register, with its frequency and next due date
- The attestation task for each period, with its status and due date
- The warning window in days, set in the rule
- The source clause in the stored policy document, linked to the obligation
Rule parameters
Follows a governed manual obligation (Governance ▸ Obligations): compliant while its latest attestation task is approved or not yet due, a warning as the due date nears, a breach once it is overdue. Lets an obligation be monitored, cased and used as an operand of a composite rule.
| Parameter | In the platform | Options and help |
|---|---|---|
| obligationId | Obligation | The manual obligation this rule follows. Pick it from the register; its id is stored. |
| warnWithinDays | Warn within (days) | A pending task due within this many days is a warning, not yet a breach. |
Methodology choices
- The latest attestation task by due date decides; an obligation with no task yet is judged by its next due date.
- Days overdue are the measured value; a warning is raised inside the stated window before the due date.
Parameter names, methodology text and result-code meanings are shown exactly as the platform states them.
Worked examples, run by the engine
An approved task with the next period not yet due is compliant
Rule template:manual_obligation obligationId: 6aaf00000000000000000001warnWithinDays: 7
| Obligation | Frequency | Latest task | Next due |
|---|---|---|---|
| Quarterly liquidity attestation | quarterly | approved, due 1 September 2026 | 1 December 2026 |
| Group | Status | Value | Bounds | Headroom to the hard bound | Code |
|---|---|---|---|---|---|
| Quarterly liquidity attestation | Compliant | 0 | – | – | OBLIGATION_SATISFIED |
OBLIGATION_SATISFIED: The latest attestation task is approved or submitted, or nothing is due yet.
These are the product's own test cases for this template, evaluated by the Acclimetry rule engine (backend commit 8197063). The build fails if any result changes.
No task and the next period five days away, inside a seven-day window, is a warning
Rule template:manual_obligation obligationId: 6aaf00000000000000000001warnWithinDays: 7
| Obligation | Frequency | Latest task | Next due |
|---|---|---|---|
| Quarterly liquidity attestation | quarterly | no task yet | 25 September 2026 |
| Group | Status | Value | Bounds | Headroom to the hard bound | Code |
|---|---|---|---|---|---|
| Quarterly liquidity attestation | Warning | 0 | – | – | OBLIGATION_DUE_SOON |
OBLIGATION_DUE_SOON: The obligation falls due within the rule's warning window and is not yet complete.
These are the product's own test cases for this template, evaluated by the Acclimetry rule engine (backend commit 8197063). The build fails if any result changes.
A pending task ten days past due is a breach
Rule template:manual_obligation obligationId: 6aaf00000000000000000001warnWithinDays: 7
| Obligation | Frequency | Latest task | Next due |
|---|---|---|---|
| Quarterly liquidity attestation | quarterly | pending, due 10 September 2026 | 10 September 2026 |
| Group | Status | Value | Bounds | Headroom to the hard bound | Code |
|---|---|---|---|---|---|
| Quarterly liquidity attestation | Breach | 10 | – | – | OBLIGATION_OVERDUE |
OBLIGATION_OVERDUE: The obligation is past its due date without an approved task, or its latest task failed or was rejected.
These are the product's own test cases for this template, evaluated by the Acclimetry rule engine (backend commit 8197063). The build fails if any result changes.
An obligation the organisation does not own is not applicable
Rule template:manual_obligation obligationId: 6aaf00000000000000000001warnWithinDays: 7
| Obligation | Frequency | Latest task | Next due |
|---|
| Group | Status | Value | Bounds | Headroom to the hard bound | Code |
|---|---|---|---|---|---|
| Obligation | Not applicable | – | – | – | OBLIGATION_NOT_FOUND |
OBLIGATION_NOT_FOUND: No active obligation of this organisation has the id the rule names.
These are the product's own test cases for this template, evaluated by the Acclimetry rule engine (backend commit 8197063). The build fails if any result changes.
A pass with no obligation state (a projection) is not evaluated, never approximated
Rule template:manual_obligation obligationId: 6aaf00000000000000000001warnWithinDays: 7
| Group | Status | Value | Bounds | Headroom to the hard bound | Code |
|---|---|---|---|---|---|
| Obligation | Not evaluated: data quality | – | – | – | OBLIGATION_STATE_UNAVAILABLE |
OBLIGATION_STATE_UNAVAILABLE: The pass carried no obligation state — a projection, or the preload failed — so the obligation could not be read.
These are the product's own test cases for this template, evaluated by the Acclimetry rule engine (backend commit 8197063). The build fails if any result changes.
Interpretation traps
An attestation proves a statement was made
The rule tests that a named person confirmed the obligation on time. It does not test whether the statement is true, so the attestation wording should be specific and dated.
Split the computable part from the judgement
Turning a whole clause into an attestation hides what could be tested. Map the measurable part to a rule and attest only the judgement.
Rejected counts as overdue
A task that fails or is rejected counts like a missed one. The breach stays until a new task is completed and approved.
Workflow is not an obligation
Deadlines for reporting or escalating breaches belong to the case process. Modelling them as attestations duplicates the case clocks.
Result codes this check can return
| Code | State | Meaning | What to do |
|---|---|---|---|
| OBLIGATION_SATISFIED ✓ | Compliant | The latest attestation task is approved or submitted, or nothing is due yet. | None. |
| OBLIGATION_DUE_SOON ✓ | Warning | The obligation falls due within the rule's warning window and is not yet complete. | Complete the task before the due date. |
| OBLIGATION_OVERDUE ✓ | Breach | The obligation is past its due date without an approved task, or its latest task failed or was rejected. | Complete and approve the attestation task; the next pass reads it. |
| NOT_IN_SCOPE | Not applicable | This rule version does not apply to this portfolio — the portfolio is outside the version's stated scope. Recorded so that "considered and out of scope" can be told from "never run". | – |
| OBLIGATION_NOT_FOUND ✓ | Not applicable | No active obligation of this organisation has the id the rule names. | Point the rule at an obligation in Governance ▸ Obligations, or reactivate the one it names. |
| AGGREGATE_MEMBER_NOT_ACCEPTED | Not evaluated: data quality | A portfolio in the measured set has no authoritative snapshot, so the set-level number cannot be stated. | Accept the named portfolios' snapshots. A partial set produces no aggregate. |
| OBLIGATION_STATE_UNAVAILABLE ✓ | Not evaluated: data quality | The pass carried no obligation state — a projection, or the preload failed — so the obligation could not be read. | Run a monitoring pass; obligations are not projected pre-trade. |
| SNAPSHOT_NOT_ACCEPTED | Not evaluated: data quality | The portfolio's newest snapshot awaits data-quality review; only accepted data may produce an authoritative result. | Accept, override or reject the snapshot on Data & Quality. |
| SNAPSHOT_REJECTED | Not evaluated: data quality | The portfolio's newest snapshot was rejected, so there is no authoritative data to measure. | Load a corrected file. |
| STALE_POSITIONS | Not evaluated: data quality | The newest snapshot is older than the organisation's staleness threshold. | Load current positions, or revisit the threshold on Data & Quality ▸ Policy. |
| STALE_PRICES | Not evaluated: data quality | A holding had no price on the position file and its approved price was older than the organisation's price-staleness threshold, so it was left unvalued. | Load a current price for the holding, price it on the position file, or revisit the threshold on Data & Quality ▸ Policy. |
| AWAITING_EXTERNAL_DATA | Pending external data | An approved input is late but still inside the organisation's grace window. This is not a pass and not an exception. | None yet. If the delivery does not arrive, this becomes a data-quality exception. |
| METHOD_NOT_SUPPORTED | Not evaluated: unsupported | The rule version asks for a measurement method this engine does not implement. Declared rather than approximated. | Choose a supported methodology, or treat this limit as a manual obligation until the method ships. |
| EVALUATOR_ERROR | Not evaluated: system error | The evaluator raised an error. Surfaced as a visible result rather than as silence. | Report it. A system error is never a pass and never a compliant reading. |
✓ seen in the worked examples. The rest come from the platform registry’s own scan of the template source.
Regulatory analogues
- Statement of investment principles: review at least every three years and after a significant change in policy (2005 Regulations, reg 2)
- Trustee Act 2000: the written policy statement when delegating asset management (s15)
- Charity Commission CC14: trustees check that the manager complies with the investment policy
Acclimetry evaluates the state of one manual obligation from its latest attestation task: compliant, warning or breach, measured in days overdue. It does not judge whether an attested statement is true, or read minutes and documents for evidence. It does not project obligations in pre-trade checks.
Questions
What is an attestation?
A dated confirmation, by a named person, that an obligation was met for a period. In Acclimetry each period's attestation is a task that is completed and then approved.
When does a manual obligation become a breach?
When its due date passes without an approved task, or when the latest task fails or is rejected. The days overdue are the measured value.
Can a qualitative clause block a trade?
No. Obligations are not projected in pre-trade checks, so a Trade Impact check reports them as not evaluated.
Sources
- Occupational Pension Schemes (Investment) Regulations 2005, regulation 2 · OGL v3.0 · Read on12 October 2026
- Trustee Act 2000, section 15 · OGL v3.0 · Read on12 October 2026
- Charity Commission, Investing charity money: a guide for trustees (CC14), updated 1 August 2023 · OGL v3.0 · Read on12 October 2026