2 min readWarningEIOPA taxonomy 2.10.0Updated 11 November 2026

Open derivatives: a conditional check (S.08.01, EIOPA rule BV811)

A warning on the open derivatives template (S.08.01), in the quarterly solo (QRS), quarterly group (QRG), quarterly branch (QRB), annual solo (ARS), annual group (ARG) and annual branch (ARB) returns.

It applies to 2.8.2 returns too, the release for the 2026 returns, and Line4 Check runs it there as well.

The rule in plain words

Items "Counterparty group" (where applicable for OTC derivatives), "Portfolio", "Derivatives held in index linked and unit linked contracts", "Use of derivative", "Notional amount of the derivative", "Initial date", "Solvency II value", "Valuation method", "Counterparty Name", "Contract name", "Currency", "Unwind trigger of contract" and "Maturity date" in Open Derivatives (S.08.01) should be reported

The headline gives only the template and the kind of check, because the rule is too long to say in a headline. The plain words above say all of it.

EIOPA writes it out as separate checks, one for each table or return it covers. Line4 Check runs two of them (BV811-1 and BV811-2), and a failure names the one that failed.

What to do if your return fails it

  1. 01Open the tables below and find the cells the rule reads.
  2. 02The check applies only when its first part holds in your return. When it does, the second part must hold too: fix the second part, or correct the first.
  3. 03It runs only when your filing indicators mark S.08.01 as reported.
  4. 04This is a warning. It does not stop the return on its own, but your supervisor may ask you to explain it.

The cells it reads

Open derivatives: information on positions held (S.08.01.01.01)

Columns

  • C0060Portfolio
  • C0080Derivatives held in index-linked and unit-linked contracts
  • C0110Use of derivative
  • C0131Notional amount of the derivative
  • C0220Initial date
  • C0240Solvency II value
  • C0250Valuation method

Open derivatives: information on derivatives (S.08.01.01.02)

Columns

  • C0260Counterparty Name
  • C0330Counterparty Group
  • C0360Contract name
  • C0370Currency
  • C0380CIC
  • C0400Unwind trigger of contract
  • C0430Maturity date

Open derivatives: information on positions held (S.08.01.04.01)

Columns

  • C0060Portfolio
  • C0080Derivatives held in index-linked and unit-linked contracts
  • C0110Use of derivative
  • C0131Notional amount of the derivative
  • C0220Initial date
  • C0240Solvency II value
  • C0250Valuation method

Open derivatives: information on derivatives (S.08.01.04.02)

Columns

  • C0260Counterparty Name
  • C0330Counterparty Group
  • C0360Contract name
  • C0370Currency
  • C0380CIC
  • C0400Unwind trigger of contract
  • C0430Maturity date

Which returns it applies to

Line4 Check runs it on quarterly solo (QRS), quarterly group (QRG), quarterly branch (QRB), annual solo (ARS), annual group (ARG) and annual branch (ARB) returns on EIOPA taxonomy 2.10.0. EIOPA applies it to quarterly group (QRG), annual group (ARG), annual ECB solo (AES), quarterly ECB solo (QES), quarterly ECB branch (QEB), annual ECB branch (AEB), quarterly solo (QRS), quarterly branch (QRB), annual solo (ARS) and annual branch (ARB) returns, as a warning.

EIOPA’s own words and formula

In EIOPA’s list of validations, word for word:

Items "Counterparty group" (where applicable for OTC derivatives), "Portfolio", "Derivatives held in index linked and unit linked contracts", "Use of derivative", "Notional amount of the derivative", "Initial date", "Solvency II value", "Valuation method", "Counterparty Name", "Contract name", "Currency", "Unwind trigger of contract" and "Maturity date" in S.08.01 - Open Derivatives should be reported.
Show the formulaShow

EIOPA's formula, for BV811-2. Cells are written as {t: table, r: row, c: column}.

if matches({t: S.08.01.01.02, c: C0380, z: Z0001}, "^((XL)|(XT))..$") then (not(isNull({t: S.08.01.01.02, c: C0330, z: Z0001})) and not(isNull({t: S.08.01.01.01, c: C0060, z: Z0001})) and not(isNull({t: S.08.01.01.01, c: C0080, z: Z0001})) and not(isNull({t: S.08.01.01.01, c: C0110, z: Z0001})) and not(isNull({t: S.08.01.01.01, c: C0131, z: Z0001})) and not(isNull({t: S.08.01.01.01, c: C0220, z: Z0001})) and not(isNull({t: S.08.01.01.01, c: C0240, z: Z0001})) and not(isNull({t: S.08.01.01.01, c: C0250, z: Z0001})) and not(isNull({t: S.08.01.01.02, c: C0260, z: Z0001})) and not(isNull({t: S.08.01.01.02, c: C0360, z: Z0001})) and not(isNull({t: S.08.01.01.02, c: C0370, z: Z0001})) and not(isNull({t: S.08.01.01.02, c: C0400, z: Z0001})) and not(isNull({t: S.08.01.01.02, c: C0430, z: Z0001}))) else true()

BV811-1:

if matches({t: S.08.01.04.02, c: C0380, z: Z0001}, "^((XL)|(XT))..$") then (not(isNull({t: S.08.01.04.02, c: C0330, z: Z0001})) and not(isNull({t: S.08.01.04.01, c: C0060, z: Z0001})) and not(isNull({t: S.08.01.04.01, c: C0080, z: Z0001})) and not(isNull({t: S.08.01.04.01, c: C0110, z: Z0001})) and not(isNull({t: S.08.01.04.01, c: C0131, z: Z0001})) and not(isNull({t: S.08.01.04.01, c: C0220, z: Z0001})) and not(isNull({t: S.08.01.04.01, c: C0240, z: Z0001})) and not(isNull({t: S.08.01.04.01, c: C0250, z: Z0001})) and not(isNull({t: S.08.01.04.02, c: C0260, z: Z0001})) and not(isNull({t: S.08.01.04.02, c: C0360, z: Z0001})) and not(isNull({t: S.08.01.04.02, c: C0370, z: Z0001})) and not(isNull({t: S.08.01.04.02, c: C0400, z: Z0001})) and not(isNull({t: S.08.01.04.02, c: C0430, z: Z0001}))) else true()

Every Solvency II rule on S.08.01

Checks like this one, run at the point of submission, are the first step to real-time supervision. Line4 builds SupTech software for financial regulators that runs checks like these as each return arrives.