Three-node chain validating IFRS 17 insurance contract measurement from model classification through CSM roll-forward to risk adjustment disclosure. Each stage produces a SHA-256 execution hash, forming a tamper-evident audit trail. Terminal node exports a W3C Verifiable Credential.
{
"tool": "classify_ifrs17_measurement_model",
"arguments": {
"contract": {
"coverage_period_months": 12,
"direct_participating_features": false,
"is_reinsurance": false,
"premium_allocation_approach_election": false,
"vfa_election": false
}
}
}
{
"tool": "validate_ifrs17_csm_rollforward",
"arguments": {
"rollforward": {
"opening_csm": 1000,
"new_business_csm": 200,
"interest_accretion": 50,
"experience_adjustments": -30,
"release_to_profit": 120,
"fx_adjustments": 10
}
}
}
{
"tool": "check_ifrs17_risk_adjustment",
"arguments": {
"risk_adjustment": {
"ra_amount": 500,
"technique": "CoC",
"confidence_level_pct": 0,
"disclosed": true,
"onerous_contracts_identified": false,
"loss_component_recognized": false
}
}
}
Run all three tools in order. Each result's execution_hash feeds as parent_hash to the next call, creating the linked audit chain.
// Step 1: classify measurement model
const step1 = await mcp.call("classify_ifrs17_measurement_model", {
contract: {
coverage_period_months: 12,
direct_participating_features: false,
is_reinsurance: false,
premium_allocation_approach_election: false,
vfa_election: false
}
});
// Step 2: validate CSM roll-forward (chain from step 1)
const step2 = await mcp.call("validate_ifrs17_csm_rollforward", {
rollforward: {
opening_csm: 1000,
new_business_csm: 200,
interest_accretion: 50,
experience_adjustments: -30,
release_to_profit: 120,
fx_adjustments: 10
}
});
// Step 3: check risk adjustment — final stage
const step3 = await mcp.call("check_ifrs17_risk_adjustment", {
risk_adjustment: {
ra_amount: 500,
technique: "CoC",
confidence_level_pct: 0,
disclosed: true,
onerous_contracts_identified: false,
loss_component_recognized: false
}
});
// Terminal artifact — export as W3C VC or Policy Mandate JSON
console.log("ra_compliant:", step3.ra_compliant);
console.log("gaps:", step3.gaps);
| Chain slug | ifrs17-measurement-conformance |
| Nodes | art-177 → art-178 → art-179 |
| Cluster | ⑰ Insurance, Actuarial & Prudential |
| Regulation | IFRS 17 Insurance Contracts (2023) |
| Spec version | 0.5.0 |
| Terminal export | Policy Mandate JSON · W3C VC (§13.11) |
| Hash scheme | SHA-256 over JCS-canonical {policy_parameters, output_payload} |