QRT Tool BOE Tool

EIOPA validation errors: the ten that bounce filings most often and how to fix each

The ten validation classes that get Solvency II XBRL filings rejected, with the EIOPA rule behind each, an example message and the fix that clears it.

In this article

A Solvency II filing that comes back from the supervisor rarely fails on the numbers. It fails on a filing indicator that does not match S.01.01, a decimals attribute that claims the balance sheet is accurate to the cent, or an issuer LEI with a bad checksum. This article lists the ten classes of validation error that bounce XBRL filings most often, names the EIOPA rule behind each, shows what the message looks like and gives the fix. Everything in it comes from the EIOPA XBRL Filing Rules for taxonomy 2.8.2 and from the Solvency II List of validations, 2.8.2 Hotfix edition, last updated on 3 June 2026. It is written for the person who runs the quarterly package in QRT Tool, our Solvency II XBRL reporting software, or in any other tool, and wants to read the validator’s output without a translator.

Where the rules come from

Three documents decide whether a filing is accepted. The first is the EIOPA XBRL Filing Rules (document EIOPA-15-253; the edition for taxonomy 2.8.2 was last updated on 3 January 2025). It governs the instance file itself. A rule written as MUST makes the file invalid when broken; a rule written as SHOULD is tolerated.

The second is the Solvency II List of validations, the Excel workbook EIOPA publishes beside each taxonomy release. Rule codes start with BV for business validations, EV for the ECB add-on templates and TV for technical validations generated with the taxonomy. The 2.8.2 Hotfix edition holds 6,015 active rules: 4,372 carry error severity in at least one entry point and 1,643 are warnings everywhere they apply. The column “Severity and modules” gives the severity per entry point (ars for annual solo, qrs for quarterly solo, arg for annual group, and so on), so one rule can block an annual solo filing and only warn in another module.

The third is the taxonomy itself. Rule S.1.10.(a) requires the instance to satisfy the XBRL Formula assertions discoverable from the entry point. Validations run with two severity levels, sev_error and sev_warning: an error blocks the submission, a warning reports a possible discrepancy. National supervisors add their own checks on top, which is why a filing that passes EIOPA’s list can still be queried at home. Our article on what XBRL means for insurance reporting explains the instance, entry point and context vocabulary used below.

The ten classes that bounce filings

Rule identifiers are quoted as EIOPA prints them; BV and TV messages are the short labels from the List of validations.

# Class Rule behind it What the message says Blocks? Fix
1 Business rules inside one template (BV) BV320_1 and the other arithmetic rules “The item Total assets reported in S.02.01 must be equal to the sum of the different items reported above” Error Reconcile at source and map unrounded values; check each subtotal row against the rows that feed it before export
2 Taxonomy assertions and data types (TV, enumerations) S.1.9, S.1.10.(a); TV0_244 “There is a mismatch between entries in the Content template S.01.01.13.01 R0490 and the declared filing indicator for template S.25.04”; a value such as s2c_GA:EEA rejected because the member code is x14 Error Use member codes, never labels; derive S.01.01 and the template set from one list
3 Filing indicators 1.6.(a), 1.6.1, 1.7.(b), 1.7.1 missingPositiveFilingIndicator, duplicateFilingIndicator, positiveFilingIndicatorForNonReportedUnit, reportedFactAssociatedWithNoPositiveFilingIndicator Error Generate the indicators from the templates that hold data, one per template, and drop facts outside an indicated template
4 Units and decimals S.2.18.(c), S.2.18.(d), S.2.18.(e), 3.2.(a), 3.2.(b) inappropriateDecimalsValueForMonetaryFact, inappropriateDecimalsValueForIntegerFact, pureUnitNotUsedForNonMonetaryValue, useDecimalFractions Error Set decimals from the accuracy of the source figure per the S.2.18.(c) table; ratios as fractions (0.0931, not 9.31); integers with decimals 0 or INF; xbrli:pure for non-monetary numbers
5 Cross-template checks BV139, BV871, BV1493 “Subordinated liabilities in Basic Own Funds reported in S.02.01 must be equal to Subordinated liabilities total reported in S.23.01”; “The item SCR reported in S.23.01 must be equal to the same item reported in S.25.01” Error (BV1493 warns) Populate S.02.01, S.23.01, S.25.01 and S.28.01 from the same calculation run
6 LEI and identifier checks S.2.8.(a), S.2.8.(b), S.2.8.(c), 2.9; BV1235 unacceptableScheme, unacceptableIdentifier, inappropriateSchemeOrIdentifier, multipleIdentifiers; “dim:OV doesn’t follow ^LEI/[A-Z0-9]{20}$ or ^SC/.* pattern” Error Reporting entity under scheme http://standards.iso.org/iso/17442, registered with the supervisor beforehand, the same identifier on every context; issuer codes as LEI/ plus 20 characters with a valid checksum, or SC/ plus the national code
7 Currency and scale 3.1, 3.3, 2.18.(b); TV1000, TV1001, TV1002 inconsistencyInCurrencies; “There is at least one monetary fact reported in reporting currency not matching basic information data”; “Unit reported for notional amount of derivative does not match currency reported for that derivative” Error Every monetary fact in the currency declared in S.01.02; original-currency facts only in S.08.01, S.16.01 and S.19.01; never report in thousands
8 Sign conventions BV1189, BV773 “Value of premiums written and premiums earned should, in general, be positive or equal to zero”; “Total technical expenses reported in S.05.01 should be positive” Warning Correct the sign at source when it is a mapping slip; when a negative is genuine, keep it and write the explanation the supervisor will ask for
9 Taxonomy version and entry point S.1.5.(a) multipleSchemaRefsOrInapproriateSchemaRef (spelt that way in the rules) Error One schemaRef with the full absolute URL of the module for the reference date: taxonomy 2.8.2 up to the annual 2026 submission, 2.10.0 from the Q1 2027 reference date
10 Structure and contexts S.1.9, S.2.15, S.2.16, S.2.19, 2.13, 1.4 notValidXbrlDocument, scenarioContainsNonDimensionContent, duplicateFact, nilUsed, multiplePeriodsUsed, encodingNotUtf8; portal messages such as “is not dimensionally valid” Error Regenerate the file from the tool instead of editing XML by hand; one reference date on every context; no empty facts or scenarios; UTF-8 throughout

Filing indicators and S.01.01 have to tell the same story

Filing indicators are the first thing a validator reads. Rule 1.6.(a) says the instance must include a positive indicator for every template it intends to report, 1.6.1 allows only one indicator per template, and 1.7.1 forbids business facts that do not belong to any indicated template. Rule 1.7.(b) closes the other gap: a positive indicator for a template with no facts is also an error.

The second half of the check is the content template. S.01.01 carries one cell per template stating whether it is reported, not due, exempted or not reported for another reason, and the TV rules compare that cell with the filing indicator. TV0_244 is a typical member of the family: it fires when S.01.01 says a template is reported and the filing indicator says otherwise, or the reverse. The cause is almost always a process slip: someone dropped a template from the package after S.01.01 was filled in, or left a quarterly template in an annual package. The fix is to derive both the indicators and S.01.01 from the same list of populated templates at export time. Which templates belong in each package is covered in our list of Solvency II QRTs by frequency and filer.

Decimals describe accuracy, not formatting

The decimals attribute is the class that surprises people, because the value itself is right. Rule S.2.18.(c) turns the format requirements of Implementing Regulation (EU) 2023/894 into minimum decimals values. In S.06.02, S.08.01 and S.11.01 monetary facts need decimals of 2 or more, because the ITS asks for at least two decimals there. Everywhere else the minimum depends on the size of the amount: -4 for 100 million and above, -3 from 1 million, -2 from 1,000, and -1 below 1,000. INF is allowed everywhere and means the value is exact. Integers take decimals 0 or INF under S.2.18.(d). Ratios and percentages fall under S.2.18.(e) and 3.2.(b): a solvency ratio of 193.1 percent is reported as 1.931 with at least four decimals declared.

Two neighbouring rules matter as much. Rule 3.3 forbids any change of scale, so a balance sheet exported in thousands fails even when the decimals attribute agrees with it. And rule S.21 says a fact that does not apply to the undertaking must not be reported at all, neither as 0 nor as an empty string, because assertions that compare columns would fire on the zeros. Software that writes 0 into every empty cell creates errors that did not exist in the data.

Cross-template checks are the ones that need an actuary

Every other class is technical, and a good tool corrects most of them in bulk. Class 5 is different. BV139 requires the subordinated liabilities in basic own funds on the S.02.01 balance sheet to equal the subordinated liabilities total in S.23.01 own funds. BV871 requires the SCR in S.23.01 to equal the SCR in S.25.01 for standard formula undertakings. BV1493 asks the same of S.28.01 and S.23.01, but only as a warning. BV916 requires the MCR in S.28.01 to sit between 25 and 45 percent of the SCR, the corridor set by Article 129 of Directive 2009/138/EC.

These fail when the balance sheet, the own funds statement and the capital calculation come from three spreadsheets that were closed on three different days. Fixing the number takes a minute. Fixing the process means populating the package from a single calculation run, so that a late change to the SCR flows into S.23.01 and S.28.01 without anyone remembering to copy it. The walk-through of the standard formula SCR shows which figures S.25.01 draws from the other templates.

What changes for a Bank of England submission

UK filers meet the same rule set with a few additions. The Bank of England Solvency II XBRL filing manual (version 5.2) adopts the EIOPA Filing Rules and keeps the EIOPA rule references in square brackets, so S.2.8.(c) and S.2.18.(c) mean the same thing on both sides of the Channel, and a file breaking a MUST rule is rejected. A firm without an LEI identifies itself by FRN under the scheme http://www.fca.org.uk/register or the string SC. Footnotes, which EIOPA merely ignores, are rejected by the Bank. Files above 10 MB must be zipped. The manual also lists the faults its testers met most often (an unescaped ampersand in a company name, a label where the DPM expects a member code, ANSI encoding, empty scenario elements) and maps each BEEDS portal message to the fault behind it. How the UK regime differs in substance is covered in our article on Solvency UK versus Solvency II.

An order for clearing a bounced filing

Validators report everything at once, and the list can run to hundreds of lines. Work it in this order and most of them disappear on their own.

Start with classes 10 and 9: an invalid XML file or the wrong entry point makes every other message unreliable. Then class 3, because facts outside an indicated template are never validated, so fixing indicators can surface errors that were hidden. Then classes 6 and 7, identifiers and currency, which are usually one setting and clear dozens of messages each. Then class 4, decimals, which a tool can set from the source accuracy for the whole package at once. Only then look at the business rules: arithmetic within a template first, cross-template reconciliations second. Warnings come last, and each one gets either a source correction or a written explanation for the supervisor. Before resubmitting, run the full validation again, since a corrected total can trip a rule that passed on the wrong number.

Where this lands in the software

QRT Tool runs all three layers in one pass: the EIOPA XBRL Filing Rules, the taxonomy assertions and the List of validations for the taxonomy that applies to the reference date, plus the national validations that several supervisors have added. Resolvers correct whole classes automatically, so filing indicators, decimals, units and identifier schemes are fixed across the package in seconds instead of cell by cell. SmartData fills missing issuer and counterparty fields in S.06.02 from a repository of more than 13 million securities and the GLEIF LEI register, which removes the BV1235 class at source. Own funds, SCR and MCR figures can be pulled straight from SCR Tool, so the cross-template rules reconcile by construction. The planning tool locks a finished template and sends it for a second review, and BOE Tool applies the Bank of England rule set and taxonomy to UK submissions.

Sources

  1. Supervisory reporting - DPM and XBRLEIOPA
  2. EIOPA XBRL Filing Rules, taxonomy 2.8.2EIOPA
  3. Solvency II validations, taxonomy 2.8.2 hotfix (XLSX)EIOPA
  4. Solvency II XBRL filing manualBank of England
  5. Commission Implementing Regulation (EU) 2023/894EUR-Lex
  6. S.01.01: Content of the submission (Solo)SolvencyTool regulation library
  7. S.02.01: Balance sheet (Solo)SolvencyTool regulation library
  8. S.23.01: Own Funds (Solo)SolvencyTool regulation library

Frequently asked questions about EIOPA validation errors

What is the difference between a blocking and a non-blocking validation?
The EIOPA XBRL Filing Rules define two severity levels, sev_error and sev_warning. A rule with error severity blocks the submission until the filing passes it. A warning does not block the submission but flags a possible discrepancy, and supervisors do read the warning list, so a warning left unexplained usually comes back as a question. The List of validations gives the severity per entry point, so the same rule can be an error in the annual solo module and a warning in another.
Where does EIOPA publish the list of validations?
On the Supervisory reporting, DPM and XBRL page of the EIOPA website, next to each taxonomy release. For taxonomy 2.8.2 the file is an Excel workbook called Solvency II List of validations, with a Hotfix edition last updated on 3 June 2026. Each row carries the rule code, the templates involved, a simplified expression, the error message text, the severity per entry point and whether the rule is deactivated.
What does a filing indicator error mean?
A filing indicator is the flag in the instance file that says which templates the filing contains. Rule 1.6.(a) of the Filing Rules requires a positive indicator for every template reported, rule 1.6.1 forbids two indicators for the same template, and rule 1.7.1 forbids facts that belong to a template with no positive indicator. The fix is to generate the indicators from the set of templates that actually hold data, and to keep S.01.01 consistent with that set.
Why does my filing fail on decimals when the numbers are right?
The decimals attribute states how accurate a value is, and rule S.2.18.(c) sets a minimum by template and by size of the amount. Monetary facts in S.06.02, S.08.01 and S.11.01 must carry decimals of 2 or more, while amounts elsewhere must carry at least -4 for values of 100 million and above, -3 from 1 million, -2 from 1,000 and -1 below that. Ratios must be reported as fractions with at least four decimals and integers with decimals of 0 or INF. The value can be correct and the attribute still wrong.
Do the same validations apply to Bank of England submissions?
Largely yes. The Bank of England Solvency II XBRL filing manual adopts the EIOPA Filing Rules and applies the same severities, and files go through the BEEDS portal. There are UK-specific points: footnotes are rejected, a firm without an LEI uses its FRN under the FCA register scheme or the string SC, files above 10 MB must be zipped, and the Bank of England Insurance taxonomy adds its own templates and assertions on top of the EIOPA ones.
QRT Tool

See how QRT Tool handles this in practice