Strasmore Research
学习 Matt Connor作者: Matt Connor

如何查找股票财报发布日期

公司新闻稿和SEC 8-K文件才能确认财报日期。了解可靠查询位置,以及预估日期为何可能变动,避免错过业绩电话会。

股票的业绩发布日期由公司自行确定,只有两份文件可以确认这一日期:宣布日期的新闻稿,以及业绩发布时向美国证券交易委员会(SEC)提交的 8-K 文件。其他地方的任何日历,要么是在转载该公告,要么是在根据去年的规律推测。本页将说明如何区分这两种情况,以及申报截止日期的实际要求。

谁决定公司的财报发布日期?

没有任何交易所会指定日期。公司自行选择披露日、安排业绩电话会,并同时宣布这两项安排,通常会提前两至四周。SEC监管的是申报文件,而不是公告日期。大型加速申报公司是指公众持股市值至少达到7亿美元的公司。其财政季度结束后有40个日历日提交10-Q,财政年度结束后有60天提交10-K。加速申报公司的期限分别为40天和75天。其他公司则分别为45天和90天。

新闻稿通常最先发布,或与财报在同一天发布,其中包含关键数据。随后提交的10-Q或10-K则包含完整财务报表。常见的SEC申报文件指南将介绍各类表格编号。

公司通常在季度结束后多久公布业绩?

时间起点是公司自身的财季末日,而不一定是日历季度末日。统计截至2026年6月的三年期间内,文件中记录的每个损益表期间,业绩发布时间表的规律会立即显现。

查询财季实际结束时间:按日历月份列示的报表期间,2023年7月至2026年6月
每个数字背后的完整 SQL
SELECT formatDateTime(period_end, '%b') AS quarter_end_label,
       count() AS statement_periods,
       round(100 * count() / (SELECT count()
                              FROM global_markets.stocks_income_statements
                              WHERE period_end >= toDate('2023-07-01')
                                AND period_end <= toDate('2026-06-30')), 1) AS share_pct
FROM global_markets.stocks_income_statements
WHERE period_end >= toDate('2023-07-01')
  AND period_end <= toDate('2026-06-30')
GROUP BY quarter_end_label, toMonth(period_end)
ORDER BY toMonth(period_end)
Run this yourself

截止月份为Dec的期间占文件的33.1%,16.6%对应Mar16.5%对应Jun25.1%对应Sep。这四个月涵盖了文件中的大多数期间。剩余部分容易被忽略:1.2%的期间在Jan结束,1.7%的期间在Jul结束。Apple的财年在9月下旬结束。Walmart的财年在1月31日结束。两家公司第四季度的业绩报告会在这些日期之后几周发布,距离12月底相差很远。

在季度结束后的窗口内,大多数大型公司会在第三至第六周公布业绩,明显早于40天的申报期限。应将其视为一种规律,而不是硬性规定。公司可能在第12天或第39天公布业绩,这都不构成异常。

已确认日期与预计日期

已确认日期背后有正式文件。公司会发布简短公告,说明截至某一日期的季度业绩将在某一天公布,并注明是在开盘前还是收盘后发布,以及电话会议的具体时间。

预计日期背后没有正式文件。它是根据历史规律推断出来的:参考上一年的同一财务周、同一星期几,再根据节假日进行调整。数据供应商会发布这类日期,应用程序也会显示,但屏幕上通常很少明确标注其为预计日期。有两个可靠的判断依据。预计日期通常不会附带电话会议时间,也很少随着季度推进而调整。

预计日期因常见原因发生变化。董事会会议可能推迟一周,审计师可能需要更多时间,节假日也可能造成不便。确认日期公布后,预计日期就会被替换。如果某个日历条目自季度开始以来一直没有变化,说明还没有人找到其来源。

确认信息实际出现在哪里

有两个地方,按以下顺序查找。

  • 公司投资者关系网站。在“Events”“Events and Presentations”或“News Releases”等栏目下查找。日期公告是一份两段式新闻稿。
  • EDGAR,即美国证券交易委员会(SEC)的公开申报系统。输入公司名称,查看其 8-K 文件。业绩信息通常根据第 2.02 项“经营业绩和财务状况”提交,新闻稿作为附件 99.1 附在文件中。

8-K 是公司在季度报告之间发生重大事项时提交的当前报告。通常,公司须在事件发生后的四个工作日内提交。业绩公告是 8-K 最常见的用途。第三方日历最多只是该申报文件的复制品,最差则只是猜测。因此,它适合作为第一步,但不适合作为最终依据。

延迟申报的情形

当公司无法按时提交申报文件时,需提交12b-25表格。该表格会在EDGAR中显示为NT 10-Q或NT 10-K。NT代表通知。公司最迟须在错过截止日期后的一个工作日内提交,并以通俗语言说明原因。提交该表格后,10-Q可获得额外五个日历日,10-K可获得额外十五个日历日。在这段宽限期内提交的报告,仍被视为按时提交。

业绩电话会与申报文件是两个独立事件。申报延迟并不会自动导致电话会改期。两者经常同时发生变动,因此在依赖任何日期之前,值得先阅读NT通知。该通知提供的是事实信息,而不是预测:公司已告知SEC其将错过申报截止日期,并说明了原因。公司列出的原因可能包括会计系统迁移和财务报表重述。

What the tape shows around a print

Price history will not hand you a date in advance. It does show the rhythm you are looking for. Nvidia closes its fiscal quarters in late January, April, July and October, and reports roughly three weeks after each close. Below are its ten largest overnight moves across the two years to June 2026, each measured from the last price of one session to the first price of the next.

查询NVDA:隔夜波动最大的十个交易日,2024年7月至2026年6月
每个数字背后的完整 SQL
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMin(close, window_start) AS first_price,
           argMax(close, window_start) AS last_price
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'NVDA'
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2024-07-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY session
),
overnight AS (
    SELECT session,
           first_price,
           lagInFrame(last_price) OVER (ORDER BY session
                                        ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_close
    FROM daily
)
SELECT formatDateTime(session, '%a %b %e, %Y') AS gap_label,
       round((toFloat64(first_price) / toFloat64(prior_close) - 1) * 100, 2) AS gap_pct,
       round(abs(toFloat64(first_price) / toFloat64(prior_close) - 1) * 100, 2) AS abs_gap_pct
FROM overnight
WHERE toFloat64(prior_close) > 0
  AND abs(toFloat64(first_price) / toFloat64(prior_close) - 1) < 0.3
ORDER BY abs(toFloat64(first_price) / toFloat64(prior_close) - 1) DESC
LIMIT 10
Run this yourself

The largest of the ten moved -14.49% on Mon Aug 5, 2024, a size of 14.49%, against 5.46% for the tenth-placed session on Fri Aug 2, 2024. Watch the weekday at the front of each label. A company that keeps a stable reporting weekday puts its outsized sessions on the same weekday too, which is the single most useful clue in an estimated date. Overnight moves have plenty of other sources; why stocks gap overnight covers them.

One company is an anecdote. Widen it to seven household names and measure the calendar distance between their biggest overnight moves.

查询各股票八次最大隔夜波动之间的间隔,2024年7月至2026年6月
每个数字背后的完整 SQL
WITH daily AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMin(close, window_start) AS first_price,
           argMax(close, window_start) AS last_price
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'WMT', 'COST', 'KO', 'JNJ')
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2024-07-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY ticker, session
),
overnight AS (
    SELECT ticker,
           session,
           first_price,
           lagInFrame(last_price) OVER (PARTITION BY ticker ORDER BY session
                                        ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_close
    FROM daily
),
moves AS (
    SELECT ticker,
           session,
           abs(toFloat64(first_price) / toFloat64(prior_close) - 1) * 100 AS abs_gap_pct
    FROM overnight
    WHERE toFloat64(prior_close) > 0
      AND abs(toFloat64(first_price) / toFloat64(prior_close) - 1) < 0.3
),
biggest AS (
    SELECT ticker,
           session,
           abs_gap_pct,
           row_number() OVER (PARTITION BY ticker ORDER BY abs_gap_pct DESC) AS rk
    FROM moves
),
spacing AS (
    SELECT ticker,
           session,
           abs_gap_pct,
           dateDiff('day',
                    lagInFrame(session) OVER (PARTITION BY ticker ORDER BY session
                                              ROWS BETWEEN 1 PRECEDING AND CURRENT ROW),
                    session) AS days_between
    FROM biggest
    WHERE rk <= 8
)
SELECT ticker,
       round(quantileDeterministic(0.5)(toFloat64(days_between), cityHash64(session)), 0) AS median_days_between,
       min(days_between) AS closest_pair_days,
       max(days_between) AS widest_pair_days,
       round(quantileDeterministic(0.5)(abs_gap_pct, cityHash64(session)), 2) AS median_move_pct
FROM spacing
WHERE days_between BETWEEN 1 AND 400
GROUP BY ticker
ORDER BY median_days_between DESC
Run this yourself

For each name the eight largest overnight moves of the two years are kept, then the number of calendar days between each one and the previous one is measured. Two years hold eight scheduled reports, roughly one every three months. The median interval runs 93 days for WMT at the top of the panel and 8 days for NVDA at the bottom, and the typical move in that set measured 3.91% for WMT. Where a name's interval sits near three months, its largest sessions line up with a quarterly cadence. Where it sits far below, the biggest moves of the window include sessions outside any reporting week. That is the honest limit of the method: prices show a rhythm, never a date.

How these panels are built

The price panels read one-minute bars from the regular session, 9:30 to 15:59 New York time. An overnight move is the first minute's price of one session measured against the last minute's price of the session before, so it holds everything that happened while the market was closed, an after-close release included. Moves above 30% in absolute size are dropped: the bars are unadjusted, and a share-count change such as a split prints as a huge overnight move that nobody traded.

The fiscal-calendar panel counts income-statement periods on file for the three years to June 2026, at whatever length each filing covered, so it counts periods rather than companies. Vendor filing dates on those statements are unreliable, and none appears anywhere on this page.

No panel names a future reporting date. A date the company has not announced yet exists in no dataset, and one it has announced lives in a press release.

持有期权时,确切日期为何重要

隐含波动率是期权价格所隐含的标的价格变动幅度,以年化百分比表示。预定报告发布后到期的合约,其隐含波动率通常高于报告发布前到期的合约。数据公布后,这部分权利金会迅速从期权价格中消失,通常发生在开盘后的最初几分钟内。隐含波动率挤压介绍了其中的运作机制,财报如何影响期权希腊字母则跟踪事件前后vega和theta的变化。

这正是日期估计错误会带来高昂代价的地方。日期错开一周,头寸就可能处于财报公布方向的错误一侧:如果期权在报告发布前到期,就无法经历这一事件;如果在报告发布后到期,投资者则要为次日上午就会消失的权利金付费。预期变动是财报公布前用于估算该事件影响幅度的计算方法。

常见问题

公司会提前多久公布财报日期?

大型公司通常会提前两到四周通过简短新闻稿确认财报日期,且许多公司每个季度都会遵循固定节奏。小型公司通常只会提前一周或更短时间公布。在新闻稿发布前,屏幕上显示的任何日期都应视为估计日期。

我的券商应用中的财报日期是已确认日期还是估计日期?

除非条目显示了来源,否则应视为估计日期。已确认日期通常会附有新闻稿,而且几乎总会同时公布电话会议时间。如果某个条目没有具体时间,且整个季度都没有变动,那么该日期很可能是根据公司去年的财报日历推算的。

在 SEC 文件的什么位置可以找到财报新闻稿?

在 8-K 的第 2.02 项“经营业绩和财务状况”中,新闻稿通常作为附件 99.1 提交。完整财务报表会在 10-Q 中另行披露,第四季度则会在 10-K 中披露。

提交 NT 10-Q 文件意味着什么?

这指的是 12b-25 表格,公司预计无法在规定期限内提交文件时使用该表格。文件会说明原因,并为提交 10-Q 额外争取五个日历日,或为提交 10-K 额外争取十五个日历日。它涉及文件提交,而不是财报电话会议,但两者通常会同时调整。

公司是在开盘前还是收盘后公布财报?

两种情况都很常见,公告会说明具体时间。公布时间决定股价何时可以作出反应:如果公司在收盘后发布公告,下一次常规交易时段的价格就是次日早盘开盘价,中间还会经历 盘后交易和盘前交易


这里的每个面板都是一条附有 SQL 的存储查询。打开其中一条,替换 ticker,然后在 Strasmore 终端中运行。