模型预测:方法说明
FinancialMD 发布自有的前瞻预测。它们由公开且固定的方法,仅根据公司的 SEC 申报文件和公司自己发布的业绩指引计算得出。它们不是一致预期,不是分析师或华尔街预测,也不是投资建议。
它是什么,不是什么
GET /v1/company/estimates 针对一家公司返回四项内容:未来四个季度和两个财年的基线预测、公司自己给出的业绩指引、描述性信号,以及方法的历史准确度。对应的 MCP 工具是 company_estimates。
curl "https://api.financial.md/v1/company/estimates?company=ticker:AAPL&metric=revenue"- 它是模型输出。每条预测都标明
generated_by: model,写明方法版本fmd-baseline-1,并列出所读取的已披露数据的证明 id。 - 它不是一致预期。没有任何分析师、券商或数据商作为来源。我们不提供华尔街预测、评级或目标价,
GET /v1/company/estimates/consensus返回not_covered。 - 它只是基线。方法只知道公司自己的历史和自己的指引,不知道新闻、股价或行业观点。请根据随每个数字一同返回的历史准确度来判断它。
- 仅供参考,不构成投资建议。这里的任何内容都不表示应当如何处置某只证券。
输入
预测五个科目:营业收入、营业利润、净利润、稀释每股收益和自由现金流。输入是该科目的季度序列,取自标准化报表,而标准化报表来自公司在 SEC EDGAR 上的 XBRL 申报。第四季度等于全年减去前三个季度。
方法需要连续八个已披露的季度。不足时不给出预测,并在返回中说明原因。
每股类序列做两项修正,均只使用已申报的数值。缺失的第四季度数值按第四季度净利润乘以全年每股收益再除以全年净利润计算。当净利润与每股收益隐含的股数出现类似拆股的跳变时,此前各季度会换算到最新口径。
公式
记 y 为按时间从早到晚排列的已披露季度,n 为季度数。对于往后第 h 个季度的目标,k = ceil(h / 4) 是回到同一财季所需的年数,b = n - 1 + h - 4k 是该季度的下标。计算四个分量:
f1 = y[b]
f2 = y[b] + k * mean(d[-8:]) d[i] = y[i] - y[i-4]
f3 = y[b] * g^k g = clip(median(r[-4:]), 0.5, 2.0), r[i] = y[i] / y[i-4]
f4 = y[b] + k * s s = exponential smoothing of d, alpha from {0.2, 0.4, 0.6, 0.8}
estimate = median(f1, f2, f3, f4)
scale = mean(|y[-4:]|)f1,季节朴素法:一年前的同一季度。f2,季节漂移法:该季度加上最近八个季度的平均同比变动,每往后一年加一次。f3,季节增长法:该季度乘以最近四个季度同比比率的中位数,限制在 0.5 到 2 之间。仅当最近八个季度全部为正时使用。f4,平滑漂移法:与f2相同,但同比变动经过指数平滑;权重取四个候选值中在历史上一步误差最小的那个。
预测值是现有分量的中位数。有四个分量时即中间两个的平均,因此单个失控的分量不会带偏结果。所有分量的数值都在返回中。
财年预测等于已披露的季度加上其余季度的预测。对每股收益而言,四个季度之和只是全年数的近似,因为年内股数会变化。
公司指引
指引取自公司在 EDGAR 上的自有文件:8-K 表格所附的业绩新闻稿(附件 99),以及 10-Q 和 10-K 的正文。只有当同一句话同时包含前瞻用语、未来的财务期间、已知指标和数值时,才予以保留。每条指引都附带原句、其在文件中的字符位置、申报编号和文件链接。
句中写明时,指引标为 GAAP、调整后或固定汇率口径;否则标为未说明。未说明绝不当作 GAAP。同一次申报的两份文件说法不一致时,该指标该期间不发布任何数值。
部分句子由语言模型而非规则读取。这些行标明 generated_by: model 并写出模型名称。只有当引用的句子在文件中逐字存在、且每个数字都印在句中时,才保留模型的答案。
指引在三种情况下会移动预测:GAAP 或未说明口径的收入指引;同样口径的收入增速指引(作用于一年前的同一期间);以及公司标明为 GAAP 的营业利润、净利润或每股收益指引。此时预测取指引区间的中点,anchor 会注明,并同时给出统计值。调整后口径的指引只展示,不会移动 GAAP 预测。自由现金流从不移动。
区间
每条预测带有一个区间,目标是五次中有四次包含实际披露值。区间由同一方法过去的误差按分割保形规则构造:
scaled error e = (actual - estimate) / scale
w = r-th smallest |e| over the n past errors, r = ceil((n + 1) * 0.8)
interval = estimate ± scale * wcompany_history:使用该公司自己在相同预测期的历史误差,至少需要八个。pooled_history:不足时,使用所有公司在该预测期的误差。guidance_range、guidance_history、guidance_and_history:对于已移到指引的预测,区间为公司给出的范围,并按其实际结果偏离自身指引中点的幅度加宽;这类历史不足时按统计宽度加宽。
只使用在预测日期已经知道的误差。两类历史都没有时不给区间,并在返回中说明。
历史准确度
方法在每家公司的历史上回放。在每个季度首次披露的时刻做一次预测,对每个期间只读取当时已知的那个版本。之后才申报的数值或之后才申报的重述,都无法进入更早的预测。每条预测都与该期间首次披露的数值比较。
ape = |estimate - actual| / |actual|
median_ape = median(ape) mape = mean(ape)
wape = sum |estimate - actual| / sum |actual|
naive_wape = the same for f1, the same quarter one year earlier
bias = mean((estimate - actual) / |actual|)
interval_coverage = share of actuals inside the interval这些统计按公司和全部公司、按科目、按季度或年度、按预测期分别提供,并随每条预测一同返回。naive_wape 用来判断方法是否胜过最简单的基准。在利润类科目上往往胜出不多:依赖某个预测之前请先看这些数字。
实际值披露后,披露前生效的那条已存预测也会被评分,结果作为实时记录保留。按公司的记录遵循 as_of。全部公司的汇总表在每次运行时重建,并带有自己的日期。
信号
信号按固定规则描述已申报的事实,共四类:
guidance_change:公司当前说法的中点与其此前对同一期间、同一口径说法的比较:上调、下调、维持、收窄、放宽或首次给出。estimate_revision:我们自己的预测与自己上一版本的比较:上升、下降或不变。result_vs_guidance:首次披露值与公司指引区间的比较:高于、位于区间内或低于。result_vs_own_estimate:首次披露值与我们此前所做预测的比较:高于、相等或低于。
每条信号都写明规则及其依据的证明。没有评级,没有目标价,也没有任何推荐用语。
局限
- 方法只看一家公司自己的历史,看不到需求、价格、竞争对手、一次性项目或电话会上的任何内容。
- 利润类科目和自由现金流的波动远大于收入,误差也反映了这一点。
- 只印在表格中的指引,或期间写在前一句中的指引,目前还读不到。
- 未来期间的日期按财务日历推算,对 52 或 53 周的财年可能相差几天。
- 某科目没有连续八个标准化季度的公司,该科目没有预测。
如果某条预测或指引看起来有误,请告诉我们。
来源与法律依据
- 来源:仅 SEC EDGAR。申报文件是公开文件;我们遵守 SEC 的公平访问规则,声明用户代理并限速。
- 指引:发行人自己公布的事实,附一句简短引文和原文链接。我们不托管文件本身。
- 预测与信号:我们基于上述事实的自有计算,并标明为模型输出。
- 不使用:任何数据商的预测、分析师报告、一致预期数字、电话会纪要或新闻正文。
适用条款。本页描述方法版本 fmd-baseline-1;任何公式的变动都会更改版本号。