从 XBRL 文档中获取特定值

Get specific value from XBRL document

我一直在使用 Gepsio 尝试通过他们的 EDGAR 系统处理标准的 SEC XBRL 文件,尽管我进行了无数次尝试来解决这个问题,但我似乎不知所措。

当您从任何文档中提取事实,并且您有兴趣根据特定的 US-GAAP 标准检索 "revenues," 时,可能有多达 200 个带有相关收入标签的事实。虽然每个人的 ID 都是唯一的,但要弄清楚哪个 ID 等同于您想要的特定收入类型似乎并不是很简单。我感兴趣的收入与合并运营报表中出现的收入相同——即净收入,而不是文件中一些模糊的其他类型的收入。然而,像 Arelle 这样的 XBRL 查看器每次都正确,尽管浏览了 Arelle 的源代码,我还是无法弄清楚他们使用的逻辑。

任何能引导我理解这一点的人都将不胜感激。

您需要找到具有正确概念、时期和实体的事实。

  • 找到这个概念并不像听起来那么简单。虽然理论上它应该是 us-gaap:Revenues,但许多申报者并不使用该概念,而是 "abuse" 另一个美国 GAAP 概念,或者(在最坏的情况下)在他们自己的命名空间中组成他们自己的概念。 Charles Hoffman 花了相当多的时间投资于此,并设计了 report frames to solve this issue and allow comparison across filers. Report frames include mappings, such as this one,您可以在其中看到不少于 77 个不同的概念(us-gaap:Revenuesus-gaap:SalesRevenueNet、...)用于报告收入。查理的方法是选择列表中第一个被报告的人。对于某些概念(我认为收入不会发生),事实甚至可能没有得到明确报告,因此需要进行计算。一些 XBRL 供应商已与 Charlie 合作,并将此报告框架功能集成到他们的产品中。

  • 实体是最简单的,因为在绝大多数情况下(它甚至可能是强制性的,但我找不到这方面的说明),一个文件中的所有事实都是相同的实体。对于 SEC 备案,它是公司的 CIK(使用 CIK 方案)。话虽如此,在美国证券交易委员会的备案文件中,还有一个额外的维度 (dei:LegalEntityAxis),您必须检查该维度是否存在或设置为默认值以过滤掉任何子公司。

  • 期间有点复杂。为此,您需要找到另一个在 dei:DocumentPeriodEndDate 上报告的事实,它为您提供了报告结束的时间段,即余额 sheet 日期。有了这个日期,您可以筛选候选事实并选择在该日期结束并且持续时间为一年、一个或几个季度的事实。

  • 还可以针对特定场景或分支报告收入。在这种情况下,只需过滤掉具有任何进一步维度的事实。

通常情况下,如果根据以上所有内容(概念、实体、时期、额外维度)过滤事实,则应该只剩下一个,因为碰撞很少见,而且往往是错误的。

另一种查找概念的不同方法是 look at the networks in each filing 以编程方式查找您提到的合并操作语句,但这也不是微不足道的,因为标签可能会有所不同。然后您可能能够推断出收入概念,并且(缺少)定义网络将确保维度(如果有)是正确的。这可能是 Arelle 发现它的方式。