Advisor brief · Factors → contracts
Tone、Tone surprise、发言人加权、Casting、非回答、Fog 拆解、快数字慢语言——这批文献对 AI 原生业绩会产品的贡献, 是分段、分人、相对基线、看结构、分窗验证这五条纪律;把任何一条压成一个标量卖出去,就退化成 RavenPack 已经卖了十年的东西。
对人读一场业绩会,先看相对 bar 的 Δ 与承诺账本,再看谁的哪个问题没被回答、主持人叫了谁,最后才把 tone 残差当脚注扫一眼。文献的价值是告诉你看哪里,不是替你下结论。
对 Agent每条文献变成对象上的一个带基线、带证据的字段:Section、Speaker.role、ToneSurprise{raw, baseline, numeric_control, residual}、Question.answer_status、Casting.bias、Ledger.delta。工具永远不返回没有分解的标量。
不是:全文 tone 分 · sentiment 因子 · call score · 跨公司 tone 排名 · 「AI 提了 47 次」 · 通用摘要
answer_status 与回答中数字个数| 文献线 | 发现(一句话) | 产品对象 / 字段 | 性质 | 误用 |
|---|---|---|---|---|
| Price et al. 2012 | 业绩会 tone 有增量信息;Q&A 段增量大于讲稿 | Section ∈ {press_release, prepared, qa};Q&A 为主对象,讲稿降权 |
结构契约 | 全文一个 tone 分 |
| Tips & Tells Druz–Wagner–Zeckhauser |
控制业绩与 CEO 习惯后的 Δnegativity 残差才预测分析师修正 | ToneBaseline{firm, speaker, n_calls}ToneSurprise{raw, baseline, numeric_control, residual} |
残差契约 | 跨公司比原始 tone;换 CEO 不重置 |
| FinBERT section-weight | 分析师问句 tone 权重大于管理层回答 | Speaker{role, name, firm, rating_on_stock} 挂每个 span;提问分布单列 |
结构契约 权重=回测参数 |
把系数当真理;「分析师更懂」 |
| Casting Conference Calls | 点名偏向看多分析师的会,后续基本面更差 | Casting{called_buy_share, coverage_buy_share, bias, firm_hist_bias, uncalled_bears[]} |
结构契约 | 写成「管理层撒谎」 |
| 非回答 taxonomy (约 11%) |
约一成问题得到非回答,可分类 | Question{answer_status, non_answer_type, numbers_in_answer, script_reuse};率 vs 自身基线 |
结构契约 | 一律标负;忽略合法回避 |
| Fog:information vs obfuscation | 复杂度可拆成信息成分与遮掩成分 | Complexity{info, obfuscation} 只作 hint,不进任何分 |
提示 · 低优先 | 原始 Fog 当清晰度 |
| Fast numbers / slow language | 数字 surprise 几分钟定价,文本要几天 | ValidationWindow{press_release, call, t1, t5};Target 配短窗,Path 配长窗 |
验证契约(内部) | 1h 股价校准文本 |
| Fed / ECB:Target × Path | 当期 vs 路径两维不可加;surprise 要相对预期 | Surprise{target[], path[]};Bar{version, locked_at} |
契约 | 合成一个分 |
| RavenPack 等产业线 | sentiment 因子已商品化;结构 / 承诺账本产品化不足 | 定位:不卖 tone,卖 Bar + Ledger + 结构字段 |
定位 | 再做一个 tone 因子 |
「性质」列是本页的核心判断:结构契约进 schema;回测故事进 README 与投资人 deck;提示只在人读页脚注出现,Agent 工具不返回。
虚构 AI 推理基础设施公司:卖机柜级推理系统 Nova Rack,同时运营托管推理云 NovaCloud。会议 2026-08-27 盘后。所有数字为模拟数据,仅用于展示每个文献对象在一场会里长什么样。
| 项目 | 公司指引 | 卖方共识 | 校正后 bar |
|---|---|---|---|
| FQ2 营收 | $2.05–2.15B | $2.12B | $2.17B |
| FQ2 毛利率 | 41–42% | 41.6% | 41.7% |
| RPO(期末) | — | ~$10.0B | $10.0B |
| FQ3 营收指引(预期) | — | $2.34B | $2.38B |
| FQ3 毛利率指引(预期) | — | 41.3% | 41.5% |
| 文本 / 结构基线 | 来源 | 基线值 |
|---|---|---|
| CEO 讲稿负面词占比 | 近 12 场,同一 CEO | 3.1% |
| 管理层 Q&A 回答负面词占比 | 近 12 场 | 4.4% |
| Δnegativity 对数字 surprise 的斜率 | 公司自身回归 | GM −100bp ≈ +0.45pt |
| 非回答率 | 近 12 场 / 全市场 | 9% / 11% |
| 被点名者 Buy 占比 vs 覆盖池 | 近 12 场 / 28 家覆盖 | 68% / 64%(偏离 +4pt) |
过去 12 季 9 次超指引中点(均值 +3.1%)→ 营收 bar = 中点 × 1.031。文本基线与数字基线一起版本化:CEO 换人、业务重分类都触发 bar 重建。
| 项目 | 实际 | vs 共识 | vs 校正 bar |
|---|---|---|---|
| FQ2 营收 | $2.21B | +4.2% | +1.8% |
| FQ2 毛利率 | 40.6% | −100bp | −110bp |
| Non-GAAP EPS | $1.12 | +6.7% | 经营线 −1.9% beat 来自 opex / 税率 |
| RPO | $9.6B | −4.0% | −4.0% |
| FQ3 营收指引 | $2.30–2.40B | 中点 +0.4% | −1.3% |
| FQ3 毛利率指引 | 39.5–40.5% | −130bp | −150bp |
「vs 共识」那一列会生成 beat and raise 的标题;「vs 校正 bar」那一列才是 Target surprise。两列都保留,但只有后者进 surprise 对象。
| # | 问题(摘) | 回答状态 | 回答中数字 | 讲稿复用 |
|---|---|---|---|---|
| Q1Buy · 大行 | “Can you quantify the NR-3 delay's impact on FY27 revenue?” | 非回答 · deflect_to_demand | 0 | 64% |
| Q2Hold · 中型 | “What's the hosted mix now, and when does GM get back to 43%?” | 部分 · refuse_timing | 1(mix 34%) | 22% |
| Q3Buy · 大行 | “Great quarter. Can you talk about the demand environment?” | 已回答(软球) | 2 | 71% |
| Q6Buy · 精品 | “Why move RPO to annual now?” | 非回答 · cite_policy | 0 | — |
| Q9Buy · 大行 | “Is the capex raise for hosted capacity or NR-3 tooling?” | 非回答 · both_without_split | 0 | — |
| Q11Buy · 中型 | “Any customer concentration change in the quarter?” | 合法回避 · legit_refusal(客户保密) | 0 | — |
Q11 是回避但不计入负面非回答——taxonomy 里必须有 legit_refusal,否则非回答率会被合规回避污染。Q1 才是信号:问的是量化,回的是需求叙事,零数字,讲稿复用 64%。
偏离 +23.5pt vs 覆盖池,+19.5pt vs 自身历史。4 家 Sell 中有 2 家在过去 3 场都提过问,本场未被点名。表述为「点名结构显著偏多头,历史上这类会后续基本面更弱」,不表述为「管理层回避空头」。
「NovaCompute beat on revenue and EPS($2.21B vs $2.12B;$1.12 vs $1.05)。管理层表示需求持续超过供给,对 FY27 $10B run-rate 保持信心,NR-3 平台按计划 FY27 推进。Tone 0.68 偏正面。Sentiment factor +0.4σ。」
每一句都能在原话里找到依据,却漏掉了延期、去日期化、停披露、casting 与非回答率。
名义「beat and raise」;相对校正 bar 只有营收一项小正。
Target 与 Path 分列,不加总。停披露没有数值,但在 Path 栏必须占一行。
读法:讲稿是排练过的,残差 ≈ 0(Price et al. 的「讲稿信息量小」在这里就是这一行)。Q&A 里管理层比数字该有的更负 1.2pt;分析师提问更负 2.1pt——需求侧先变脸。Agent 拿到的是三个数加 n_baseline,不是 6.1%。
读法:提问 32% 在 NR-3、18% 在 RPO,回答只给 12% / 6%,需求叙事从 7% 的问题里长出 33% 的回答。这是「发言人加权」文献的结构部分——三张分布图本身就是产品,权重系数留在回测里。
| # | 承诺(上季原话) | 本季状态 | 依据 |
|---|---|---|---|
| L1 | NR-3 ramp 1H FY27 | 延期 → 2H FY27 | 讲稿 “second half of fiscal 2027”;Q1 零数字 |
| L2 | GM 回到 43% by FQ4 FY26 | 去日期化 | “over time”;Q2 refuse_timing |
| L3 | 季度 RPO 披露 | 停披露 → 年度 | “on an annual basis”;Q6 cite_policy |
| L4 | $10B run-rate exiting FY27 | 重申 · 与 L1 矛盾 | “remain confident”;未解释 NR-3 延期如何兼容 |
| L5 | FY26 capex $1.1–1.2B | 上修 +25% | $1.4–1.5B;Q9 未拆分用途 |
| L6 | Hosted mix <30% exiting FY26 | 沉默 · 实际 34% | 讲稿未提;Q2 被动披露 |
六条里没有一条是 tone 能读出来的。沉默(L6)与矛盾(L4)是账本才有的状态——单场摘要器没有上季对象,结构上做不到。
若用 16:30 的 +1.9% 给文本打标签,会把整场会标成「正面」。数字窗校验 Target(混合偏正确认 EPS 标题效应),会后 + 漂移窗校验 Path(偏负,与账本一致)。窗只做方向校验,不训练、不评分。
Bar{version, locked_at, numeric[], text_baselines[]}Section → Span{speaker, role, text, topic}Surprise{target[], path[]}(相对 Bar)Question{answer_status, non_answer_type, numbers, script_reuse}Casting{bias, firm_hist_bias, uncalled_bears[]}ToneSurprise{raw, baseline, numeric_control, residual, n_baseline}Ledger[]{status, tension_with[], evidence}ValidationWindow{...}(内部)get_bar(ticker, fq, version?)get_readout(ticker, fq) → Surprise + Ledger.deltaget_qa(ticker, fq, filter=non_answer)get_casting(ticker, fq)get_tone_surprise(ticker, fq, section, speaker_role)get_ledger(ticker, open_only=true)diff_calls(ticker, fq_a, fq_b)(pairwise Δ)get_sentiment()、get_call_score()、summarize()。Agent 想要一句话,自己从对象里写,并附 evidence id。get_readout("NVCP", "FY26Q2")三个设计点:每个数值都带 baseline / n_baseline(Agent 可对 n=2 的新 CEO 基线自行降权);ledger 有 tension_with(L4 与 L1 的矛盾是对象级事实);do_not_render_as 把「容易误用」直接写进返回值。
legit_refusalsummarize() 或 get_sentiment()