stock-analysis
对上市公司进行行业相对、多因子的基本面分析与估值,包含 A 股披露、财务取证和证伪检查。适用于分析 stock/ticker/上市公司、比较同行、判断商业质量和估值,或检查利润真实性、审计、关联交易与治理风险;不用于个性化投资建议、仓位分配或交易信号。
SKILL.mdstock-analysis/SKILL.md
GitHub上市公司领先证据、基本面与财务取证
产出有证据支撑的公司分析、同行相对评分卡和估值区间。
总原则
先用高时效证据判断正在发生什么,再用高确定性但低频的财报验证它是否进入经营结果。
时效性与可靠性是两个维度:新数据不因更新就自动可信,审计财报也只对其报告期和会计口径负责。不得依赖单一指标排序。综合评估业务证据、盈利能力、资本回报、现金转化、资产负债表、增长耐久性、治理和价格。只做同类比较。银行、保险、REIT、矿业等必须使用行业专用指标。
不可妥协的要求
1. 不得编造数字
- 每个财务数字都要标注来源、期间、币种、单位以及合并/单体口径。
- 找不到时写“暂无可靠数据”,并说明需要什么文件;不得凭记忆补数。
- 收入、净利润、债务、现金等关键数字尽可能双源核对,其中至少一个是一手文件。
- 当前股价和市值可以来自交易所或行情网站,但必须标明截至时间。
- 估值假设必须公开,并用区间和敏感性表示不确定性;不得用粗糙假设给出两位小数的目标价。
2. 按作用而非单一排名使用来源
默认研究顺序:
- 订单、成交价、物流、库存位置、有效产能、交付验收、客户使用、招聘和政策执行等高时效微观事实。
- 交易所事件公告、监管/法院决定、招投标和公司经营披露等点时一手材料。
- 季报、年报和审计报表:验证前述变化是否按一致口径进入收入、利润、营运资金、资本开支和现金流,并提供债务、现金、股本、治理与审计约束。
- 新闻、券商报告和聚合站只用于发现线索或交叉检查,不能作为未经追溯的估值事实。
不存在“公告永远覆盖其他来源”的规则。冲突时先对齐发生时间、公开时间、业务范围、合并口径、单位和修订版本。审计财报对其报告期会计数字优先,但不能覆盖报告期后的真实经营变化。详细编排见 references/01-evidence-sequencing.md。
3. 年报不只是三张表
必须同时检查:
- 商业模式、战略、客户、竞争优势和风险因素;
- 3–5 年 MD&A,拆分量、价、产品结构、产能、资本开支、订单和指引兑现;
- 审计意见、关键审计事项、强调事项及适用的 CARO 附件;
- 关联交易、或有负债、诉讼和资本承诺;
- 董事会与审计委员会独立性、股权/质押趋势、薪酬、审计师变更、股东异议和股权稀释;
- 分部收入、利润、资本占用和行业运营 KPI;
- 适用时检查 ESG/BRSR、秘书审计和子公司披露。
详细年报阅读顺序见 references/15-document-diligence.md。
4. 分析而非个性化建议
可以给出多空情景、估值区间、风险和证伪条件;不得替用户决定买卖数量、仓位或给出个性化交易指令。明确说明这是研究分析,不是持牌投资建议。
选择深度
| 模式 | 适用请求 | 范围 |
|---|---|---|
| 快速筛查 Screen | “快速看看”“是否值得研究” | 身份、数据、淘汰条件、估值常识检查 |
| 标准 Standard | 默认“分析这只股票” | 完整流程、中等深度、报告与评分卡 |
| 深度 Deep dive | “详细”“最大深度” | 全量尽调、取证、情景估值、强反方论证 |
| 财务取证 Forensic | “利润真实吗”“现金流为何跟不上利润” | 按 references/18-forensic-mode.md 执行 F0–F5,不先做估值 |
| IPO | 尚未交易、DRHP/RHP/S-1、申购分析 | 按 references/19-ipo-mode.md 执行 I0–I7 |
开始时说明采用哪种模式。严重审计或治理红旗出现时,应从标准模式切换到财务取证;报表不可信时继续估值没有意义。
标准工作流
阶段 0:确认分析对象
确认公司、交易所、代码、ISIN、证券类型、报告币种、财年截止日、合并/单体口径、市值、企业价值和自由流通股。未上市则转 IPO 模式。
阶段 1:时效优先的微观事实账本
先使用 $fundamental-signal-intake,按完整业务线建立点时账本。优先采集:
- 订单是否转成实际交付,渠道发货是否转成终端使用;
- 实际成交价格、折扣、库存位置与周转;
- 设备、人员、能源和利用率是否使规划产能成为有效产能;
- 客户使用、回款、招聘和政策实际执行;
- 报告期后可能改变旧财报解释的新事件。
每条记录映射到业务线和 quantity/price/cost/working_capital/capex/cash_flow 等驱动,保留 observed/published/vintage/available/collected 时间。运行采集 Skill 的 scripts/validate_ledger.py;不能把框架订单、渠道压货或规划产能直接写成收入、需求或有效产能。
若无法取得高时效证据,明确降低结论新鲜度并列缺口;不能退回旧财报后仍声称判断当前经营。
执行时效门:
- 公司实际披露的最新期间是什么?
- 最新数据之后是否发布过新季度、评级、监管/法院决定、并购进展、管理层变更或指引更新?
- 计划写成“未来风险”的事件是否已经发生?
报告中写明:“纳入的最新期间:……;检查后续事件截至:……”。
阶段 2:证据闸门与独立价值
然后使用 $evidence-driven-valuation,把事实转换为可复算的经营变量和现金流。先定义完整业务、重大性和来源/覆盖/时效阈值,再执行证据闸门;不能靠手填 pass 放行。
按经济实质选择已实现行业方法并做 SOTP、特殊价值和权益桥。缺少行业专用模型或关键证据时报告方法/数据缺口,不自动套通用倍数。正向价值不得用当前股价或同行倍数校准。
阶段 3:财报对账、财务取证与治理约束
取得最新年报/10-K、前 4 年年报、最近 4–8 期季度公告、业绩会、投资者演示和必要监管材料。对每个领先驱动形成“微观推断 → 财报科目/运营 KPI → 一致、尚未进入、口径差异或冲突”的对账表。
财报在这里用于:验证历史基准与现金转化;核对债务、现金、少数股东和股本;识别审计、关联交易、或有负债、重述、质押和治理红旗。财报没有披露某一微观变量,不等于该变量为零;微观证据与财报冲突也不能静默覆盖,必须回到时间、范围和因果链处理。
运行通用财报数据门:
python scripts/verify_data.py <intake.json>
修复缺来源、跨源冲突、合并/单体混用、单位错误和数据过期等 error 级问题。若财报否定估值链的关键前提,回到阶段 1–2 更新账本、区间和价值,而不是事后加免责声明。细节见 references/21-data-integrity-tools.md。
分析沪深北交易所 A 股时,额外读取 references/22-a-share.md,并以包含通用数据门的 A 股验证器替代上面的命令:
python scripts/verify_a_share.py <intake.json>
该分支要求显式记录交易所与板块、法定披露、审计意见、扣非口径、资金占用与关联交易、质押冻结、监管措施、研发资本化以及重大重组/商誉检查。非 A 股任务不要加载这份 reference。
行业与公司情形分类应在阶段 1 建业务图时开始,在本阶段根据财报和治理材料复核。详见 references/13-situations.md。
淘汰条件与红旗
优先筛查:
- 累计经营现金流长期显著低于累计利润;
- 应收账款持续快于收入;
- 保留/否定审计意见、强调事项或审计师辞任;
- 高位或上升的股权质押;
- 关联方利益输送、频繁“一次性”项目、重述报表;
- 不透明集团结构和不可持续杠杆。
严重红旗必须放在报告前部,不能被综合评分“平均掉”。参考 references/07-forensic-red-flags.md 和 references/08-governance.md。
阶段 4:核心基本面
按需读取:
references/02-core-factors.md:商业质量、护城河、行业、增长和再投资空间。references/03-earnings-quality.md:收入拆分、利润率、应计项、一次性项目、税率、股权激励和稀释。references/04-balance-sheet-and-cashflow.md:杠杆、偿债、到期墙、营运资金、OCF/利润和自由现金流。references/05-returns-and-dupont.md:ROIC/ROCE/ROE、杜邦、增量回报和正常化。references/15-document-diligence.md:把管理层叙事、承诺兑现、治理和分部回报与数字放在一起分析。
阶段 5:同行和历史比较
按 references/10-peer-set.md 构建同行集合。每个关键指标同时对比正确同行和公司自身 5–10 年历史。公司可以优于同行却正在自我恶化,两条基准都不能省略。
阶段 6:价值汇总与市场反向检查
以阶段 2 的独立价值为主结果。财报对账若改变关键输入,必须通过可追溯节点重算。references/06-valuation.md 和 scripts/valuation.py 中的传统倍数/DCF只可用于已支持口径的交叉检查,不能绕过 evidence-driven-valuation 的证据闸门或替换未实现的行业模型。
独立价值锁定后,再加入当前价格隐含怎样的增长和利润率:
python scripts/valuation.py <inputs.json>
反向估值不得回写或校准正向价值。报告并列展示“证据支持的经营区间”与“市场隐含条件”,不因两者不同而调整证据。
阶段 7:风险、熊市情景与证伪
根据 references/09-risk-and-macro.md 写出最可信的反方论证,而不是稻草人;列出能被观察、且会证明正向逻辑错误的具体事件。
阶段 8:评分与写作
使用 references/11-scoring-rubric.md 和 scripts/score.py 计算行业相对评分;按 references/12-report-template.md 写报告。example/ 仅用于学习呈现方式,示例数字是虚构的,不能当作证据。
阶段 9:挑战结论
标准模式建议执行,深度模式必须执行 references/20-challenge-pass.md:攻击真正支撑结论的关键主张,核验数字来源,并测试更换同行和权重后结论是否仍成立。允许挑战后改变结论;只增加几个无关痛痒的免责声明不算审查。
阶段 10:交付前质检
python scripts/lint_report.py <report.md>
检查时效声明、数据质量、口径单位、评分门槛、熊市情景、免责声明和数字附近是否有来源。error 级问题必须修复。默认文件名为 <TICKER>-analysis-<YYYY-MM-DD>.md。
行业路由
读取 references/sectors/_index.md,并选择匹配文件:
| 行业 | 参考文件 |
|---|---|
| 银行/吸收存款的贷款机构 | banks.md |
| NBFC、住房金融、非银贷款 | nbfc.md |
| 抵押 REIT、BDC、私募信贷、租赁 | mortgage-reit-specialty-finance.md |
| 寿险、财险、健康险 | insurance.md |
| 保险经纪、MGA、TPA | insurance-brokers-services.md |
| IT 服务、软件、SaaS、互联网平台 | it-saas.md |
| 人力、咨询、广告、专业服务 | people-businesses.md |
| 制药、CDMO、医院、诊断、器械 | pharma-healthcare.md |
| 临床阶段生物科技 | biotech-clinical.md |
| FMCG、必选消费、品牌、QSR | fmcg-consumer.md |
| 汽车、零部件、轮胎 | auto.md |
| 钢铁、有色、矿业 | metals-mining.md |
| 油气 | oil-gas.md |
| 电力、公用事业 | utilities-power.md |
| 环保、水务、废物处理 | waste-environmental.md |
| 地产、REIT、InvIT | realestate-reit.md |
| 基建、EPC、资本品、国防 | infra-capitalgoods.md |
| 电信、铁塔、媒体、OTT | telecom-media.md |
| 航空、酒店、旅行、餐饮 | aviation-hotels.md |
| 零售、电商、平台、即时零售 | retail-ecommerce.md |
| 化工、农化、化肥、水泥 | chemicals-cement.md |
| 控股公司、综合企业、资管 | holdco-assetmgr.md |
| 航运、港口、卡车、物流 | shipping-logistics.md |
| 铁路货运 | rail-freight.md |
| 交易所、清算、评级、支付网络 | exchanges-payments.md |
| 半导体、晶圆厂、设备、硬件 | semiconductors.md |
无匹配行业时使用通用框架,并明确说明没有专用行业手册;此时要额外检查通用指标是否真的适用。
内置脚本
scripts/ratios.py:比率、杜邦、应计项和现金转化。scripts/score.py:行业相对多因子评分,支持分部混合。scripts/valuation.py:EV 桥、倍数、反向 DCF、两阶段 DCF 和情景估值。scripts/verify_data.py:来源、口径、单位、跨源一致性和时效验证。scripts/verify_a_share.py:先运行通用数据门,再检查 A 股专属披露与治理底稿是否齐全。scripts/lint_report.py:报告完整性和数字引用检查。
脚本只使用 Python 标准库。scripts/benchmarks.json 是可编辑的默认基准,不是永恒事实;有更合适的市场和期间数据时应覆盖。
输出契约
始终交付:
- 报告:开头给结论和核心风险。
- 评分卡:展示分类得分、权重、总分和输入,便于读者质疑具体项目。
附数据质量说明:哪些数字已验证、哪些是估计、哪些缺失,以及截至日期。
另附证据时序和财报对账:最新微观事实截止时点、最新财报期间、报告期后事件、领先驱动是否进入财报,以及未解释冲突。
反模式
- 用通用指标评价银行、保险、REIT 或矿业。
- 找不到数字时插值或编造。
- 用综合分数掩盖一票否决的治理问题。
- 把聚合站当一手来源。
- 从五年财报直接外推当前经营,而不先检查报告期后的微观信号。
- 用财报汇总数静默覆盖更新、更细粒度但尚未进入报表的事实,或把“更新”误当作“可靠”。
- 在独立估值前查看市场价格并据此调假设。
- 不分重点地加载全部参考资料;多数公司真正决定结论的只有 3–4 个因素。
- 把研究输出包装成个性化买卖或仓位建议。
英文原文
上游完整英文入口已保存在 references/SKILL.en.md。仅在中文入口没有覆盖某项细节、核对升级差异或维护上游兼容性时读取;日常分析不要默认加载它。