# Analyst Coverage

> 把投行评级、目标价与研报覆盖单独做成一层：先用带日期的评级动作流摆出谁在什么时候把评级或目标价改到多少，再用带绝对日期的检索补那条研报的论点，最后把外部锚与自算区间对照并说明分歧来自哪个输入

- Skill: `b-m-capital-research/analyst-coverage` (Agent Skill)
- Install (CLI): `npx skillmds@latest add b-m-capital-research/analyst-coverage`
- Raw SKILL.md: https://api.skillmd.com/api/skills/b-m-capital-research/analyst-coverage/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: b-m-capital-research (https://skillmd.com/u/b-m-capital-research)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/b-m-capital-research/analyst-coverage

---


## 投行覆盖度（评级 / 目标价 / 研报）

本 skill 只负责**外部覆盖度这一层**：卖方怎么看、有多少家在看、看法往哪边迁移、和我们自己的判断差在哪。
公司好不好交给 `stock_research`，合理价自算交给 `valuation-audit`，四档结论与改变判断的条件按 `hari-invest`。
不要在这里再写一套九段个股模板。它既能被单独调用，也能作为一段嵌进更大的回答。

### 一、六个来源各自能证明什么（先把三处混淆掐掉）

| 取什么 | 回答哪个问题 | 越界写法 |
|---|---|---|
| `ratings_snapshot` | provider 的量化打分卡：`rating`（A+~F）、`overallScore`，及 DCF / ROE / ROA / 负债率 / PE / PB 各分项 1–5 | 写成「机构评级 A-」「获评 A- 级」是硬错误 |
| `grades_consensus` | 卖方分布：`strongBuy` / `buy` / `hold` / `sell` / `strongSell` 家数 + `consensus` | 不带日期，不能拿来说「最近上调」 |
| `price_target_consensus` | `targetLow` / `targetMedian` / `targetConsensus` / `targetHigh` | 只报 `targetConsensus` 等于把分歧丢了 |
| `price_target_summary` | `lastMonthCount` / `lastMonthAvgPriceTarget` 及 quarter / year / allTime 同族字段 + `publishers` | 这是迁移方向，不是当前共识本身 |
| `analyst_actions` | `grades` 逐条动作 + `grades_news` / `price_target_news`（含 `newsTitle` / `newsURL` / `priceWhenPosted`） | 最接近研报的结构化源，但**没有正文论点** |
| `analyst_estimates` | 未来若干季度一致预期，Forward 倍数的分母 | 不写预期窗口起止财季就不能用 |

三处必须分清：

1. `ratings_snapshot` 是 provider 按财务比率算出来的量化打分卡，**不是投行观点**。正文提到它必须带「量化打分卡」这类限定词，且不得与 `grades_consensus` 的结论并列在同一句里当成同一件事。
2. `consensus`（Buy / Hold）是家数汇总出来的标签，不是某一家投行的评级。
3. 单家机构的观点只能引 `analyst_actions` 里那条记录的 `gradingCompany`。把共识说成「高盛认为」是编造。
4. **「机构」指真正出研报的卖方**（投行、券商、独立研究所）。Seeking Alpha、Zacks、TipRanks、Motley Fool、MarketBeat 这类聚合站与撰稿平台只能算**来源**：正文点出背后的发行方才算一次机构评级，只查到转述就写「据 X（聚合转述），发行机构未核实」。专栏作者自己的看多 / 看空文章不是评级动作，不进评级家数、不进第一层的动作流。

### 二、「研报摘要」怎么答（评测 3/10 那条的修法）

结构化源里**没有研报全文**，所以答案分两层，版面上要分开、不许互相冒充。

**第一层：结构化记录（`analyst_actions`）。** 一条一行，五要素齐全：

```
日期 — 机构 — 动作（previousGrade → newGrade；目标价 A → B）— 发布时股价 priceWhenPosted — 标题 + 原文链接
```

按 `publishedDate` 倒序，只保留用户问的时间窗内的。用户说「今天」就按当日纽约日期筛；当日无动作就写「当日无评级动作，最近一条是 X 月 X 日」，不要把三天前的当成今天的。

**第二层：论点转述（`web_search`，必须带绝对日期）。** 从第一层里挑 3–5 条补论点，挑选判据是：评级跨档变动、目标价变动幅度约 ≥10%、首次覆盖、或当日股价反应最大的那几条。每条要补的是：他上调 / 下调的驱动是什么、他改了哪个假设、他的目标价对应什么倍数和什么分母。
转述必须写明是转述并给出检索到的出处；只搜到标题就写「仅有标题，正文未核验」，不要用记忆补一段听起来像研报的论述。

**无 ticker 的市场级问法（如「今天各大投行研报摘要」）：先定范围再取数。** 用当日 `gainers_losers` / `sector_performance` / 用户持仓与关注列表圈出 5–8 个标的，逐个取 `analyst_actions`（每个还要先 `search` 解析，再多就把本轮预算烧在取数上），把当日动作汇总成一张表，再按板块归并讲。
只用 `web_search` 拼四家大行对大盘点位的看法就交差，答的是**策略观点**不是研报覆盖——评测里 3/10 正是这么丢的。确实只搜到策略观点时，标题就写成「策略观点」，并同时说明个股评级动作本轮取到多少条、覆盖哪些标的。

### 三、目标价：区间、分布、迁移方向

- **一次写全四个数**：低 / 中位数 / 均值 / 高，外加覆盖家数（`grades_consensus` 五档相加）。只给一个中枢视为这一节没做。均值高于中位数说明少数高价把中枢拉高了，反之亦然，这句偏斜要写出来。
- **隐含空间对现价算**：(目标价 − 现价) ÷ 现价，低 / 中 / 高各一个；as-of 与现价口径沿用本轮行情。
- **迁移方向用 `price_target_summary`**，写成一句：「近一月均值 X（N 家）vs 近一年均值 Y（M 家），方向是上修 / 下修 Z%」。三种读法：一月高于一年且家数够 = 正在集体上修；一月高于一年但只有 1–2 家 = 个别机构而非共识；一月低于一年 = 下修。**近一月家数少于 3 时明确写「样本太小，仅作方向参考」。**
- **评级分布同理**：`strongBuy + buy` 占比、`hold` 占比、有没有 `sell`。「一致看多」只有在 `sell` + `strongSell` 为 0 且买入系占比明显过半时才成立，否则直接写家数。

### 四、外部锚 vs 自算区间（与 `valuation-audit` 的接口）

自算不在这里做——但这不等于本节零个自己的数：第 1 条的隐含倍数换算不挑场景，报了目标价就要跟着做，再和第三节那个现价对上；只有第 2 条要的完整自算区间才需要加载 `valuation-audit`。通篇全是目标价、没有一个现价和一个自己算的倍数可对照，是研报题最典型的失分。本 skill 只负责把外部锚摆在它旁边并解释差在哪：

1. **先换算成倍数再比**：机构目标价 ÷ 同一分母 = 隐含倍数。分母要写清是 FY1E 还是 FY2E 一致预期 EPS、GAAP 还是 Non-GAAP、对应哪段财季。口径不一致先对齐，不许直接比价。
2. **一句显式对照**：「自算基准 $A（分母 × 倍数）vs 机构中枢 $B，差 X%，差在 <哪个输入：分母口径 / 增长假设 / 倍数锚 / 时间窗口>」。归因必须落到具体输入，写「机构更乐观」不算完成。
3. 自算区间落在 `targetLow`–`targetHigh` 之外时，明说自己站在分布的哪一侧，以及要出现什么才承认对方对。
4. **目标价不是价值锚**：它只是倍数区间三个来源之一（另两个是公司自身历史倍数区间、同业中枢），不能反过来当结论。评测里 ARM 那条被夸就是因为引了卖方结论——但引的方式必须是区间与分布，报一个中枢数不算引用。

### 五、一致预期作 Forward 分母时

引 `analyst_estimates` 做 Forward PE / PS 的分母，必须同时写出：**预期窗口起止财季**（例：FY2027Q1–FY2027Q4，财年截止 3 月）、口径（GAAP / Non-GAAP）、性质（一致预期）、可得时的覆盖家数。窗口不是未来 12 个月就不能叫「未来一年」。
一致预期与公司最新指引差异超过约 5% 时，按 `valuation-audit` 的对账规则点名差异、说明采用哪个、为什么，本节不另立一套。

### 六、写出来的样子

- 机构名用 `gradingCompany` 原文，日期用绝对日期，链接给 `newsURL` 原文。内部字段名与数据类型名不出现在正文。
- 「多家机构看好」「华尔街普遍乐观」这类不可核验的话不写：要么给家数与分布，要么不提。
- **覆盖度本身就是信息**：覆盖家数少（约 <5）、近一月无任何动作、provider 无覆盖，都要明写出来。「几乎没人覆盖」是关于这家公司的真结论，不是数据缺口的借口。
- **结尾站一次队，并把外部锚接回自己的判断**：本轮判断相对卖方共识是更乐观、更谨慎还是一致，分歧落在哪一个可观察变量上（下季指引、产能、订单、某个价格）；再把 `targetLow` / `targetMedian` / `targetHigh` 三个数按第四节的口径各换成隐含倍数，逐个说清它对应多少收入增速或什么利润率水平、这个假设你认不认——这是卖方分布的三档假设，不是你自己的三情景（那一套按 `valuation-audit` 第四步做）。列完机构口径就收尾，等于把卖方结论当成了自己的结论——评测里研报题正是这么丢的：机构名、动作、日期都齐全，唯独没有一句自己的位置。

