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.

Rule template
manual_obligation
Manual obligation
Measured in
count
Worked examples, run by the engine
5

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

Data the check reads

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.

ParameterIn the platformOptions and help
obligationIdObligationThe manual obligation this rule follows. Pick it from the register; its id is stored.
warnWithinDaysWarn within (days)A pending task due within this many days is a warning, not yet a breach.

Methodology choices

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: 6aaf00000000000000000001
warnWithinDays: 7

Obligation and its latest attestation task
ObligationFrequencyLatest taskNext due
Quarterly liquidity attestationquarterlyapproved, due 1 September 20261 December 2026
Result
GroupStatusValueBoundsHeadroom to the hard boundCode
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: 6aaf00000000000000000001
warnWithinDays: 7

Obligation and its latest attestation task
ObligationFrequencyLatest taskNext due
Quarterly liquidity attestationquarterlyno task yet25 September 2026
Result
GroupStatusValueBoundsHeadroom to the hard boundCode
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: 6aaf00000000000000000001
warnWithinDays: 7

Obligation and its latest attestation task
ObligationFrequencyLatest taskNext due
Quarterly liquidity attestationquarterlypending, due 10 September 202610 September 2026
Result
GroupStatusValueBoundsHeadroom to the hard boundCode
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: 6aaf00000000000000000001
warnWithinDays: 7

Obligation and its latest attestation task
ObligationFrequencyLatest taskNext due
Result
GroupStatusValueBoundsHeadroom to the hard boundCode
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: 6aaf00000000000000000001
warnWithinDays: 7

Result
GroupStatusValueBoundsHeadroom to the hard boundCode
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

CodeStateMeaningWhat to do
OBLIGATION_SATISFIED ✓CompliantThe latest attestation task is approved or submitted, or nothing is due yet.None.
OBLIGATION_DUE_SOON ✓WarningThe obligation falls due within the rule's warning window and is not yet complete.Complete the task before the due date.
OBLIGATION_OVERDUE ✓BreachThe 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_SCOPENot applicableThis 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 applicableNo 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_ACCEPTEDNot evaluated: data qualityA 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 qualityThe 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_ACCEPTEDNot evaluated: data qualityThe 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_REJECTEDNot evaluated: data qualityThe portfolio's newest snapshot was rejected, so there is no authoritative data to measure.Load a corrected file.
STALE_POSITIONSNot evaluated: data qualityThe newest snapshot is older than the organisation's staleness threshold.Load current positions, or revisit the threshold on Data & Quality ▸ Policy.
STALE_PRICESNot evaluated: data qualityA 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_DATAPending external dataAn 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_SUPPORTEDNot evaluated: unsupportedThe 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_ERRORNot evaluated: system errorThe 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

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

Updated: 12 October 2026Acclimetry · Foreranger Ltd