MirrorMere®

Produit

Il ne s'arrête pas à vous dire que quelque chose ne va pas.

MirrorMere n'est pas un écran : c'est le moteur de validation XBRL qui tourne derrière. C'est un Validating Processor XBRL certifié, et il se loge directement dans le produit que vous vendez déjà.

Structure

What, Why et How — tous posés sur une seule ontologie.

La plupart des validateurs s'arrêtent au What. Ils disent que quelque chose ne va pas et laissent le pourquoi, et le que faire, à celui qui reçoit le message. MirrorMere produit les trois ensemble — ce qui n'est possible que parce que le XBRL est ici bâti comme une ontologie.

What — ce qui cloche
L'endroit exact dans le document, nommé. Pas un code d'erreur assorti d'une invitation à chercher.
Why — pourquoi c'est faux
Quelle règle l'a détecté, et quelle clause cette règle met en œuvre. Des mois plus tard, quand un auditeur pose la question, c'est la réponse.
How — que faire
Non pas ce qui est faux, mais ce qu'il faut changer. Écrit pour la personne qui tient le dépôt, pas pour celle qui a écrit le moteur.
Le fondement — l'ontologie XBRL
Les concepts, règles, erreurs et clauses du XBRL sont posés en ontologie. Les trois ci-dessus en sont inférés pendant que la validation tourne.

Ontologie et inférence

Le « pourquoi » est possible parce qu'ici le XBRL lui-même est une ontologie.

Un validateur qui ne fait qu'émettre des codes d'erreur ne peut pas dire pourquoi. Ici, les concepts, les règles, les erreurs et la clause qui fonde chacune tiennent ensemble dans une seule ontologie, et le verdict est ce que SHACL en infère. L'inférence est la raison.

Carte d'ensemble de tout ce que le moteur sait du XBRL : des milliers de petits points colorés reliés par des traits pâles, rassemblés en amas, un amas par spécification.
La même carte agrandie : les points deviennent des termes nommés — context, unit, period, Fact, Dimension, Hypercube — reliés par des liens étiquetés.
ixbrlo:illegalMultipleUseOfId
    a owl:Class ;
    rdfs:subClassOf ixbrlo:ValidationError ;
    rdfs:comment "id attribute reused across iXBRL elements that require uniqueness."@en ;
    skos:note "Inline XBRL 1.1, Section 3 — ixe:illegalMultipleUseOfId"@en ;
    skos:note "Inline XBRL 1.1, Section 4 — ixe:illegalMultipleUseOfId"@en ;
    owl:equivalentClass <http://www.xbrl.org/2013/inlineXBRL/errors#illegalMultipleUseOfId> .

Le vocabulaire est celui du standard W3C ; la dernière ligne pointe vers l'identifiant d'erreur publié par XBRL International. Aucun nom ici n'est de notre invention.

Why Path

Votre utilisateur voit la clause, pas seulement un code d'erreur.

Un code d'erreur dit que quelque chose ne va pas. Why Path dit quel objet, quelle règle et quelle clause — la personne qui tient le dépôt peut corriger, et vous pouvez montrer votre raisonnement si on vous le demande.

Moins de questions vous reviennent

Les utilisateurs cessent de demander ce que signifie un code d'erreur : la réponse est déjà dans le résultat.

Correction plus rapide

L'objet et la clause sont nommés : personne n'a à les chercher.

Vous pouvez défendre le verdict

Quand un auditeur ou un régulateur demande pourquoi, la trace est la réponse.

Entrée

Le fichier validé.

Règle

Les contrôles XBRL 2.1 §3–§5 qui se sont exécutés.

Clause

Deux violations, toutes deux rattachées à XBRL 2.1 §5.1.3.4.

Ce qu'il faut corriger

Le rôle http://xbrl.org/role/conformance ne peut pas être employé sur link:label.

C'est cette dernière ligne qui compte : elle nomme la correction, pas seulement l'échec.

Des résultats sur lesquels compter

Quand ce moteur dit que c'est bon, c'est bon.

Un résultat de validation finit par servir de fondement à un audit ou à un dépôt. Deux choses comptent donc : que la réponse ne vacille pas, et que « conforme » veuille bien dire conforme. Rien ici ne devine ni ne répond par probabilité : soumettez cent fois le même document, vous aurez cent fois la même réponse.

Il ne signale rien sans fondement

Chaque constat arrive avec la clause sur laquelle il repose. Si aucune clause n'est enfreinte, il le dit. Autant de temps que votre équipe ne passe pas à vérifier si une alerte était fondée.

Il n'appelle jamais « conforme » ce qu'il n'a pas vu

Un contrôle qu'il n'a pas pu exécuter est signalé comme non exécuté et compté à part des réussites. Rien ne passe en silence : un résultat propre peut être pris au pied de la lettre.

Une mise à jour ne changera pas vos résultats

Les suites de tests standards tournent à chaque build, et une modification qui en casse une seule ne sort jamais. Passer à une nouvelle version ne renverse pas ce que vous aviez conclu le mois dernier.

Version qui l'a produit
Rattache tout résultat au build exact qui l'a produit.
Environnement d'exécution
Indique si un écart vient de l'environnement plutôt que du document.
Quelles taxonomies ont été lues
Permet à deux parties de confirmer en une ligne qu'elles regardaient les mêmes taxonomies.
Fichiers introuvables
Si ce nombre n'est pas nul, c'est autant qui n'a pas été vérifié — et il le dit, au lieu de laisser passer en silence.

Relancez-le. Même réponse.

Cœur de validation

Un module par spécification.

Chaque spécification est un module distinct. Prenez le moteur entier, ou seulement ceux que vous traitez réellement.

Spécification Ce qu'il vérifie
XBRL 2.1 Core Si les montants, périodes, unités et définitions de concepts tiennent ensemble
XBRL Dimensions 1.0 Si les ventilations par segment ou par zone sont des combinaisons autorisées
XBRL Formula 1.0 Si les règles de calcul et de contrôle propres à l'entreprise ou au régulateur sont respectées
XBRL Table Linkbase 1.0 Si le rapport sort dans la présentation tabulaire imposée par le régulateur
Inline XBRL 1.1 Si ce que voit un lecteur et ce que lit une machine disent la même chose
Open Information Model 1.0 Si le même contenu garde son sens en XML, JSON et CSV
Extensible Enumerations 1.0 / 2.0 Si un champ censé être choisi dans une liste fermée contient bien une valeur de cette liste
Report Packages 1.0 Si le paquet de soumission est constitué comme l'exigent les règles
Taxonomy Packages 1.0 Si un paquet de taxonomie est correctement constitué et se résout sans accès Internet
Units Registry 1.0 Si les unités (devise, actions, pourcentages) suivent le registre standard
Link Role Registry 1.0 Si les rôles employés sont bien ceux publiés au registre standard
Transformation Rules Registry v3 / v4 / v5 Si « 1 234 » ou « mars 2025 » à l'écran se convertit en la valeur prescrite

Calculation 1.1 est fourni avec le cœur. Quel que soit l'ensemble retenu, les constats reviennent tous sous la même forme.

Java pur et performance

L'ensemble des tests standards s'achève en une vingtaine de secondes.

Pur Java : aucun code natif, rien de plus à installer. Et assez rapide pour faire tourner toute la suite dans votre build. Pas une fois par version : à chaque modification.

100%
du jeu de tests XBRL International réussi
~20s
pour exécuter l'ensemble
0
choses à installer à côté

Les temps varient selon la machine ; ce qui compte est l'ordre de grandeur, pas le chiffre exact. Les tests sont publiés : mesurez-le sur votre propre matériel.

Java 17 ou plus récent

Là où une JVM tourne, ceci tourne. Rien d'autre à installer, aucune bibliothèque native dans le paquet.

Pour évaluation

Commencez par vos propres dépôts.

Le moyen le plus rapide de juger un moteur est de le lancer sur des documents dont vous connaissez déjà la réponse.