【问题标题】:Syncing another company's financial year to another company using EDGAR database使用 EDGAR 数据库将另一家公司的财政年度同步到另一家公司
【发布时间】:2022-06-17 08:44:24
【问题描述】:

我正在处理一个由上一个小组建立的学校项目,我的任务之一是根据重点公司的开始日期同步会计年度的开始日期。 这是用于使用他们的 API 从 EDGAR 获取 json 的代码。

d = requests.get(f"https://data.sec.gov/api/xbrl/companyconcept/CIK{cik}/us-gaap/{kpi}.json",
                             headers=self.HEADER).json()

然后使用 pandas 将其转换为数据框,然后打印出来

df = pd.DataFrame.from_dict(d)
print(df.to_string())

我使用他们的 CKI 获取公司的财政年度数据,对于某个 KPI,在本例中是 AccountsPayableCurrent,但是当我打印出数据时,我看不到与开始日期相关的列,只有结束日期和其他列。下面的示例输出:

cik分类标签标签描述实体名称 单位 USD 866787 us-gaap AccountsPayableCurrent Accounts Payable,截至资产负债表日的当前账面价值,就实体业务中使用的商品和服务所产生的负债(通常已收到发票)和应付给供应商的负债。用于反映负债的当期部分(一年内到期,如果更长,则在正常营业周期内到期)。 AUTOZONE INC [{'end': '2009-08-29', 'val': 2118746000, 'accn': '0000950123-09-071593', 'fy': 2010, 'fp': 'Q1', 'form ':'10-Q','归档':'2009-12-17'},{'end':'2009-08-29','val':2118746000,'accn':'0000950123-10-025907 ','fy':2010,'fp':'Q2','form':'10-Q','归档':'2010-03-18'},{'end':'2009-08-29 ','val':2118746000,'accn':'0000950123-10-058650','fy':2010,'fp':'Q3','form':'10-Q','filed':'2010 -06-16'},{'end':'2009-08-29','val':2118746000,'accn':'0000950123-10-095687','fy':2010,'fp':'FY ','表格':'10-K','归档':'2010-10-25','框架':'CY2009Q3I'},{'end':'2009-11-21','val': 2187347000,'accn':'0000950123-09-071593','fy':2010,'fp':'Q1','form':'10-Q','归档':'2009-12-17', 'frame': 'CY2009Q4I'}, {'end': '2010-02-13', 'val': 2144995000, 'accn': '0000950123-10-025907', 'fy': 2010, 'fp': 'Q2', 'form': '10-Q', 'filed': '2010-03-18'}, {'end': '2010-05-08', 'val': 2235766000, 'accn': '0000950123-10-058650','fy':2010,'fp':'Q3','form':'10-Q','归档': '2010-06-16', 'frame': 'CY2010Q1I'}, {'end': '2010-08-28', 'val': 2433050000, 'accn': '0000950123-10-095687', 'fy': 2010, 'fp': 'FY', 'form': '10-K', '归档': '2010-10-25'}

我有什么方法可以使用提供的数据来同步会计年度?我认为同步它的唯一方法是获取开始日期并告诉它根据另一家公司的开始日期打印出来,但我看不到开始日期。

【问题讨论】:

    标签: python pandas finance edgar


    【解决方案1】:

    您可以尝试以下方法。我根据通过backward search. 给出的名称选择了cik 我随机选择了kpi

    import requests
    import pandas as pd
    
    cik = "0000866787"
    kpi = "AccountsPayableCurrent"
    
    url = f"https://data.sec.gov/api/xbrl/companyconcept/CIK{cik}/us-gaap/{kpi}.json"
    response = requests.get(url, headers={"User-Agent":"Java-http-client/"})
    
    response = requests.get(url, headers=headers)
    json = response.json()
    
    df = pd.DataFrame(json['units']['USD'])
    

    输出:

    end val accn    fy  fp  form    filed   frame
    0   2009-08-29  2118746000  0000950123-09-071593    2010    Q1  10-Q    2009-12-17  NaN
    1   2009-08-29  2118746000  0000950123-10-025907    2010    Q2  10-Q    2010-03-18  NaN
    2   2009-08-29  2118746000  0000950123-10-058650    2010    Q3  10-Q    2010-06-16  NaN
    3   2009-08-29  2118746000  0000950123-10-095687    2010    FY  10-K    2010-10-25  CY2009Q3I
    4   2009-11-21  2187347000  0000950123-09-071593    2010    Q1  10-Q    2009-12-17  CY2009Q4I
    

    然后您可以使用df[['fy', 'fp','val']] 选择相关列。您还可以从 fyfp 列创建日期时间索引。

    【讨论】:

      【解决方案2】:

      我没有编程解决方案,但我确实对此有所了解,可以帮助您解决问题。

      您需要了解公司在一年中的哪一个月结束其会计年度。向 SEC 报告的大多数公司使用日历结束日期(12 月 31 日)作为其财政年度结束日期,但也有大量公司使用其他月份结束日期。 Autozone (AZO) 在每年的 8 月 31 日结束其财政年度。 Target (TGT) 在每年的 1/31 结束其财政年度。如果你允许,这会让你发疯。请记住,您需要做的就是确定财政年度结束的月份,确切的财政年度结束日期将是该月的最后一天。您可以据此计算季度结束日期。

      公司必须在其会计期结束后的 XX 天内提交报告,具体取决于其提交“状态”。状态时间框架在这里... https://www.sec.gov/corpfin/cf-manual/topic-1#:~:text=90%20days%20after%20the%20fiscal,summary%20of%20accelerated%20filer%20rule 向下滚动到第 1330.1 节以查看相关表格。

      如果您再仔细阅读,您会发现有关于周末和节假日、延期等的规定。这意味着“归档”日期对于确定实际的财政年度结束日期几乎没有用处,除非您知道公司的“状态”,是否发布了延期以及延期的时间、数量等。我认为 Facts 文件中没有任何此类信息。不过,一切都没有丢失。

      公司在申请成为上市公司时,必须指明其财政年度结束月份。如果他们想更改财政年度结束日期,他们还必须提交 8K。我不知道 EDGAR 中是否提供了这段数据(财政年度结束月份),但如果是这样,您需要同步日期。我从第三方供应商(Zack's Research)免费获得我的财政年度月底。我认为 Zack 是从 SEC 或财政部本身那里得到的。对不起,冗长的答复。希望对你有帮助!

      以下是 Zack 筛选器的链接。 https://www.zacks.com/screening/stock-screener 转到公司描述符类别,您将看到“财政年度结束月份”

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-18
        • 1970-01-01
        • 2011-02-17
        • 2013-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多