ESEF报告同一事实不同显示值触发duplicated_facts错误咨询
解决ESEF报告中Arelle报重复事实值矛盾的问题
问题本质
Arelle的tech_duplicated_facts1错误核心不是忽略了decimals属性,而是XBRL规则要求同一context下的同一概念(比如ifrs-full:Revenue)只能对应一个唯一的事实值。哪怕两个近似值的精度区间有交集,只要经过scale计算后的实际数值不同,就会被判定为矛盾的重复事实——因为XBRL的事实是用来精准代表业务数据的,不是用来承载不同可视化近似结果的。
具体解决方法
- 只保留一个权威XBRL事实:同一个会计概念+同一报告期间(context)只能生成一个
<ix:nonFraction>元素,所有报告文本/表格中的近似显示(比如~124 mio、123 mio),只在可视化层面做格式转换,不要生成对应的XBRL元素。 - 正确使用精度属性:如果需要在XBRL中体现数值精度,统一用一组
decimals和scale来定义,比如针对123569815,46 €,可以选择:
然后报告中的不同近似展示基于这个精确的XBRL值做渲染,比如四舍五入到124或123 mio,不需要额外生成XBRL事实。<ix:nonFraction contextRef="D-01012024-31122024" decimals="-6" format="ixt4:num-comma-decimal" id="esef-9696_2024_74477_1" name="ifrs-full:Revenue" scale="6" unitRef="euro">123,6</ix:nonFraction> - 避免跨scale的重复上报:像第二个案例中同时用
scale=6(百万级)和scale=3(千级)上报同一数值的做法,本身就违反了XBRL的事实唯一性原则,必须砍掉其中一个,只保留最能代表业务数据精度的那一个。 - 特殊场景处理:如果确实需要在报告中披露不同精度的同一项数据(比如不同维度的细分),要通过**XBRL维度(dimension)**来区分,而不是重复同一个概念的事实。比如给不同精度的数值添加不同的维度成员,让Arelle识别为不同的事实,而非重复矛盾项。
案例修正示例
针对你提到的61477652,16 €的情况,只保留一个权威事实:
<!-- 选择最精确的scale和decimals,比如千级精度 --> <ix:nonFraction contextRef="D-01012024-31122024" decimals="-4" format="ixt4:num-comma-decimal" id="esef-xxx_2024_xxxx_1" name="ifrs-full:Revenue" scale="3" unitRef="euro">61,478</ix:nonFraction>
然后报告中的"61,5 mio €"显示,直接基于这个值做单位转换和四舍五入渲染即可,不需要生成额外的XBRL元素。
内容的提问来源于stack exchange,提问作者CrazyEight
相关产品推荐
相关产品推荐

