Knowledge base MessagesEntitiesAttributesCode listsErrors and fixesProcessesRolesReleasesGlossaryEcosystemCompare Validator NL EN

Release 2027 (pre-release) · Schema version001.05 · Active

SIVI message 3 (0001c): Pension projection (VB-PUO)

Message 3 contains the projected future pension payments per cohort and per payment date, plus the amounts weighted by the hedging percentage. This lets the fiduciary or LDI manager set up the interest-rate hedge (protection portfolio) on the fund's actual liability profile.

Sender
Pension administrator (PUO)
Receiver
Fiduciary manager (FM), investment administrator (BA) and LDI manager
Timing
Monthly (expected); in FPR model 2 at T-4 to the LDI manager
Arrangement
SPR; in FPR model 2 also as interest-rate risk profile to the LDI manager
afdDefinitionName
VBPUO-001.00-Bericht_3._Pensioenprojectie_(0001c)

Message structure

Entities with cardinality [min..max] and number of attributes; click for the entity page.

Attributes(45)

EntityAttributeTypeV/OCode listDescription
chunking.default currentChunkId string V Unique reference (id) of the current chunk.
chunking.default chunkSequenceNumber integer V Sequence number of the current chunk.
chunking.default totalNumberOfChunks integer V Total number of chunks the message has been split into.
chunking.default chunkFragmentPaths array[string] V Array of JMESPath references to the message fragments used within the current chunk.
commonFunctional.default afdDefinitionVersion string · max 80 V 001.05 Version of the AFD-definition.
commonFunctional.default afdDefinitionName string · max 80 V Name of the AFD-definition.
commonFunctional.default originalMessageId string · max 70 O The messageId of the original message, which is replaced by this message.
commonFunctional.default function string V ADNFUN Message function
commonTechnical.default creationDateTime string · format date-time V Date and time (as timestamp) when the message was created.
commonTechnical.default messageId string · max 70 V Unique identification of the message. (AFD 2.0 only)
commonTechnical.default testMessage boolean O Indication whether the message is a test message.
party.receiver refKey string · max 70 V Unique reference key assigned to an entity.
party.receiver organizationName string · max 60 V Name of professional or branch organization.
party.receiver rsinNumber string · max 9 O Governmental identification number for legal entities and associations. (AFD 2.0 only)
party.sender refKey string · max 70 V Unique reference key assigned to an entity.
party.sender applicationSenderName string · max 60 O Name of the application that sends the data.
party.sender organizationName string · max 60 V Name of professional or branch organization.
party.sender rsinNumber string · max 9 O Governmental identification number for legal entities and associations. (AFD 2.0 only)
party.contact workPhoneNumber string · max 60 V Work telephone number.
party.contact emailWork string · max 60 V Work email address.
document.default refKey string · max 70 V Unique reference key assigned to an entity.
document.default fileExtension string V pdf | csv | txt Extension of the file under which the attachment can be saved. For example "pdf", "doc", etc.
document.default fileName string · max 60 V Name of the file under which the attachment can be saved.
party.pensionProvider organizationName string · max 60 V Name of professional or branch organization.
party.pensionProvider rsinNumber string · max 9 O Governmental identification number for legal entities and associations. (AFD 2.0 only)
party.pensionProvider puvCode string V AFDIDP Pension provider
pension.scheme refKey string · max 70 V Unique reference key assigned to an entity.
pension.scheme pensionSchemeName string · max 60 V Name of the pension scheme.
financialInformation.reportingPeriod projectionDate string · format date V Date of projection of pension benefits.
financialTransaction.payment refKey string · max 70 V Unique reference key assigned to an entity.
financialTransaction.payment hedgedExpectedPensionPaymentAmount number · multipleOf 0.01 V Amount of cash flows to be hedged per period.
financialTransaction.payment expectedPensionPaymentDate string · format date V Expected pension payment date (possibly per scheme).
financialTransaction.payment amount number · multipleOf 0.01 V An amount.
pension.cohort refKey string · max 70 V Unique reference key assigned to an entity.
pension.cohort description string · max 60 V Description.
pension.cohort reserveDescription string · max 60 O Description of the reserve.
pension.cohort reserveType string O AFDRES Reserve type
pension.cohort reserveIndicator boolean V Indication whether a reserve is available / applies.
pension.cohort startAge number · multipleOf 1 O Start age.
pension.cohort endAge number · multipleOf 1 O End age.
pension.cohort participationStatus string O ADNDNS Participation type
financialTransaction.payment refKey string · max 70 V Unique reference key assigned to an entity.
financialTransaction.payment hedgedExpectedPensionPaymentAmount number · multipleOf 0.01 O Amount of cash flows to be hedged per period.
financialTransaction.payment expectedPensionPaymentDate string · format date V Expected pension payment date (possibly per scheme).
financialTransaction.payment amount number · multipleOf 0.01 V An amount.

Sample message

✓ Validated against schema VBPUO-001.05 · 2026-09-05

Sample source: SIVI voorbeeldbericht (Voorbeeldbericht_3). Values are fictitious.

{
  "commonTechnical": [
    {
      "entityType": "default",
      "creationDateTime": "2023-12-29T12:30:00Z",
      "messageId": "msg987654",
      "testMessage": true,
      "party": [
        {
          "entityType": "sender",
          "refKey": "send001",
          "organizationName": "Insurance Company B",
          "rsinNumber": "987654321",
          "applicationSenderName": "InsurAppV3"
        },
        {
          "entityType": "receiver",
          "refKey": "recv001",
          "organizationName": "Pension Fund A",
          "rsinNumber": "123456789"
        }
      ]
    }
  ],
  "commonFunctional": [
    {
      "entityType": "default",
      "afdDefinitionName": "VBPUO-001.00-Bericht_3._Pensioenprojectie_(0001c)",
      "afdDefinitionVersion": "001.05",
      "function": "01",
      "originalMessageId": "orig123456"
    }
  ],
  "party": [
    {
      "entityType": "pensionProvider",
      "organizationName": "Pension Provider XYZ",
      "rsinNumber": "555666779",
      "puvCode": "U0003",
      "pension": [
        {
          "entityType": "scheme",
          "refKey": "scheme01",
          "pensionSchemeName": "Standard Retirement Plan",
          "financialInformation": [
            {
              "entityType": "reportingPeriod",
              "projectionDate": "2024-01-01"
            }
          ],
          "financialTransaction": [
            {
              "entityType": "payment",
              "refKey": "pay001",
              "hedgedExpectedPensionPaymentAmount": 150000,
              "expectedPensionPaymentDate": "2045-01-01",
              "amount": 300000
            }
          ]
        },
        {
          "entityType": "scheme",
          "refKey": "scheme02",
          "pensionSchemeName": "Advanced Retirement Plan",
          "financialInformation": [
            {
              "entityType": "reportingPeriod",
              "projectionDate": "2025-01-01"
            }
          ],
          "financialTransaction": [
            {
              "entityType": "payment",
              "refKey": "pay002",
              "hedgedExpectedPensionPaymentAmount": 200000,
              "expectedPensionPaymentDate": "2045-01-01",
              "amount": 400000
            }
          ],
          "pension": [
            {
              "entityType": "cohort",
              "refKey": "cohort2030",
              "description": "2030 Retirement Group",
              "participationStatus": "16",
              "reserveIndicator": false,
              "startAge": 360,
              "endAge": 840,
              "financialTransaction": [
                {
                  "entityType": "payment",
                  "refKey": "pay010",
                  "hedgedExpectedPensionPaymentAmount": 48000,
                  "expectedPensionPaymentDate": "2060-01-01",
                  "amount": 100000
                },
                {
                  "entityType": "payment",
                  "refKey": "pay020",
                  "hedgedExpectedPensionPaymentAmount": 135000,
                  "expectedPensionPaymentDate": "2050-01-01",
                  "amount": 300000
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

Rules and consistency checks

  • Per cohort an amount and a hedged amount (hedgedExpectedPensionPaymentAmount) are included per future payment date; the sum of the weighted projected benefits per cohort equals the total hedging cashflow per future period.
  • The number of payments per cohort is 0 to 9999 (since Release 2026); empty cohorts explicitly with 0 or omitted.
  • expectedPensionPaymentDate is the expected payment date (documentation update October 2025, issue #80); year cohorts are described with startAge and endAge (issue #88).
  • The projection covers the total population; partial projections per cohort follow the same time axis.

Pitfalls

  • Message 3 is the largest message in the chain: hundreds of cohorts times decades of payment dates. SIVI publishes chunking samples specifically for this message; use them.
  • A projection in nominal amounts without the hedged amount is useless to the LDI manager; fill both fields.

Errors and fixes

Frequently asked questions

Why is the pension projection a separate message?

Because the receiver differs: the interest-rate hedge is set up by the fiduciary or a specialised LDI manager, whereas capital and cashflow mainly feed the investment administration.

How far ahead do I project?

The standard does not fix a horizon; in practice it follows the interest-rate term structure and the fund's hedging policy, often 60 years or more.

Change history

  • v1.2.0 (November 2024): maximum 9999 payments per cohort.
  • v1.3.0 (Release 2026): cardinality 0 to 9999; chunking; documentation issues #80 and #88.
  • v1.4.0 (Release 2027): JSON Schema 2020-12.

Schema file: VBPUO-001.00-Bericht_3._Pensioenprojectie_(0001c)_v5.json · JSON-schema (001.05) · GitHub

Attribution. Source: SIVI – VB-PUO Standard. Schemas, attribute descriptions and code lists are taken unchanged from the VB-PUO Standard (owned by the Pensioenfederatie, managed by SIVI) and shown with their release and version. Explanations, examples, error descriptions and translations are by WTP Data Lab and are not part of the standard. GitHub Stichting-SIVI/VBPUOdsk · Manual · sivi.org