美国证券交易委员会XBRL信息报送的基于XBRL的财务信息提供了许多提示,有助于了解如何构建自己的基于XBRL的系统。本博文将介绍其中的一些提示。美国证券交易委员会EDGAR系统的XBRL信息可以提供更多的提示。
之前的两篇博文提供了背景信息,值得一读。首先,思维实验(或参见XBRL傻瓜入门,第330页,第八章)帮助你了解财务导向信息的相关问题。其次,道琼斯工业指数模型的示例代码有助于创造你自己的模型。
先来看处理基于XBRL信息的若干步骤。
寻找XBRL实例:你要做的第一件事是找出包含这些信息的XBRL实例。关于美国证券交易委员会XBRL信息,美国证券交易委员会提供了订阅源(RSS feed)。但是这些订阅源仅包括美国证券交易委员会最近收到的100份报告。另一来源是由XBRL Cloud提供的Edgar Dashboard。Edgar Dashboard与XBRL报送的验证信息相关,有一个包含信息的XML文件,可以帮助你辨识报告。缺点是这不是官方源。在你的系统中,你会希望拿到所有需要用到的报告。注意,美国证券交易委员会订阅源及XBRL Cloud提供的Edgar Dashboard都不是标准的,也没有使用XBRL格式。
跨XBRL实例查询:试试道琼斯工业指数模型中的简单查询,你就会很快意识到直接使用XBRL实例的缺点:加载时间过长。试着跑跑示例代码,你会发现仅仅循环访问30个文件,不涉及XBRL相关处理,就要花5分钟。现在想象一下从上千的XBRL实例中收集信息,肯定会很慢。可能会有例外,但是在很多情况下你会想要把你的基于XBRL的信息载入某种数据库中。
XBRL格式:除了上述XBRL实例问题外,XBRL虽然是优秀的全球标准,但却不是进行查询的优秀格式。你会想要向上面说的一样,将你的信息放入数据库中,或者创造其他格式。这就是我制作的信息集格式。
抓取一系列信息:在处理信息时,经常需要抓取一系列信息。比如在处理财务信息时,你可能会需要资产负债表、损益表、现金收支一览表、会计政策或其他具体的披露材料。这在美国证券交易委员会XBRL报送中可能会很麻烦,因为没有抓取标准。这篇博文中讨论了这个问题。基本上,因为美国证券交易委员会报送公司创造自己的网络,而且[报表]有多种形态(可能不止一种意思),所以没有高级抓取标准。这个问题可以通过应用模型理论和通过组成部分确认组成部分解决。在建立自己的系统时,记住这一区别。
处理元数据不一致:美国通用会计准则分类标准的某些元数据问题可以帮助你了解因为元数据不一致造成的问题。这篇博文解释了四种不一致情况。测试和适当归档可以帮助你确认、排除这类问题。元数据不一致可能使信息查询变得异常困难。一般可以写出算法,纠正多种不一致。但是,你得到的信息越多,差异度越高,建立纠正机制的成本就越高。在一开始就消除不一致是较好的做法,还可以减少成本。
添加其他有用的元数据:添加其他元数据对于处理基于XBRL的信息非常有帮助。比如,在美国证券交易委员会报送材料中,SIC代码有助于将分行业实体分类纳入考虑范围。但是在许多情况下,SIC代码并不包含在美国证券交易委员会的实际报送材料中。你需要在系统中添加并维护这类有用的元数据。在许多情况下,最佳做法是不要分离系列元数据。比如,美国证券交易委员会可能只要求所有美国证券交易委员会XBRL财务报送材料中包含SIC代码。注意,美国证券交易委员会在一些地方包含这一信息,XBRL Cloud在Edgar Dashboard中包含这一信息。
处理周期:财务周期与日历周期之间的差异是需要注意的问题。首先,XML Schema数据类型没有“季度”概念,而财务报告大量涉及季度概念。其次,不是所有公司的财年都结束于12月31日。许多公司另设财年结束日期(即财年周期与日历周期不一致)。有些公司,特别是零售业公司,采取52/53周财年周期。
以上只是处理基于XBRL系列信息时会遇到的实际情况。你可以将美国证券交易委员会财务报送材料作为例子,进行试验,学习在执行自己的基于XBRL的系统时哪些是要做的,哪些是要回避的。每个系统遇到的挑战都各有不同。没有意识到这一点的话,就会造成本来可以避免的系统结构上的问题。 |