是否可以通过编程方式确定SEC文件的最新情况?

问题描述

如果我正在尝试阅读SEC XBRL文件,是否有办法以编程方式确定最新上下文?还是上下文的命名遵循特定的模式?

例如,如果我尝试阅读AAPL Q2 2020 SEC文件,则存在许多不同的上下文。 FI2019Q4,FD2020Q2YTD,FI2020Q2,FD2019Q2YTD,FI2019Q4,FD2020Q2QTD等。

我只想要最近的季度数字,即。 FI2020Q2,但是我还希望有一种以编程方式确定此内容方法,这样我就不必手动确定每次提交SEC的文件我都对哪个上下文感兴趣。

是否有系统的方法来执行此操作,或者上下文的命名遵循某种模式?

解决方法

对于SEC备案,应该有一个dei:DocumentType事实。此事实的期限将与当前报告期限相对应。然后,您可以找到具有相同期限或相同结束日期的其他事实(对于即时事实)。

请参见Edgar Filer Manual Volume II的6.5.19节

上下文的名称只是唯一的标识符,以使事实可以引用它们。尽管某些工具在分配它们时可能会遵循约定,但您不应尝试从它们中推断出任何含义。

还请注意,并非同一时期的所有事实都在同一上下文中。有些事实可能具有其他维度,因此将使用不同的上下文。

,

与概念dei:DocumentPeriodEndDate相关的事实具有一个dateTime值,该值对应于上一个资产负债表日期。 dei:CurrentFiscalYearEndDate概念还有另一个事实,可以告诉您会计期间(天和月)的结束。

这两个值一起使您可以推断季度和年度周期。

例如,使用this filing,我们有:

文档期结束日期:2020-06-26

当前会计年度结束日期:-12-31

您可以推断:

  • 这是第二季度的季度
  • 带有资产负债表值的事实应具有即时期(日期)2020-06-26(还有其他具有即时期2019-12-31、2019-06-26 ...的...以前的期间会再次报告)
  • 载有第二季度损益表和现金流量表值的事实应具有大致持续时间2020-03-31至2020-06-26,年初至今2020-01-01至2020-06-26等。

请注意,您可能需要从开始和结束日期开始添加/删除几天,这需要一些试验和错误代码才能找到那些具有“有意义的”时期的事实,这些时期可归因于Q2,FY,YTD等

与事实相关的即时时间段和持续时间段的分辨率为间接,这意味着事实所携带的上下文ID(例如FI2019Q4)使您可以查找上下文并在其中找到时间段。我不建议您尝试理解上下文ID,因为每个文件管理器都可能使用不同的约定。相反,您需要取消引用上下文ID,并查看实际的XBRL周期。