基本面分析 Skill
回答四个问题:钱从哪来、赚得怎么样、钱够不够、还能不能接着赚。
边界:估值倍数、对标与合理价区间在 valuation-audit;份额、切换成本、认证周期这类护城河来源在 moat;稀缺与差异化的判断口径按 hari-invest 框架 2;四档结论与置信度按 hari-invest 的 references/decision-rubric.md。财报数字的期间/单位/GAAP 口径四要素标注、金额换算、hone_ttm 与 hone_forward 不得混用,运行时已经在强制,这里不重写。「X 技术分析」默认按技术能力归入基本面,口径见 stock_research。
罗列与判断的分界(这一条决定这篇及不及格)
每一块至少有一句同时说清三件事:
- 方向——在变好还是变坏,用趋势不用单点;
- 幅度或阈值——从多少到多少,或者跨没跨过某条线(毛利率跌破前四季区间下沿、现金低于短期债务、经营现金流由正转负);
- 后果——这决定了公司接下来能不能做成某件具体的事:继续扩产、不靠增发撑过下一年、维持定价不打折、把订单转成收入。
三件缺一,这块算没写完。自查办法:把这段里的数字全部遮住,如果剩下的文字读者仍然知道公司处在什么状态、方向是好是坏,就是判断;如果只剩「营收同比增长、毛利率有所变化、现金流保持正数」,那就是罗列。
评测里被判"罗列"的三条,对照着看该怎么改:
| 标的 | 罗列的写法 | 判断的写法 |
|---|---|---|
| 腾讯 | 单季营收 2047.85 亿、毛利率 57.83%、经营现金流 527.10 亿、Capex 477.20 亿、FCF 49.90 亿 | Capex 已经吃掉单季经营现金流的九成,FCF 从常年数百亿压到 49.9 亿——公司正在把利润换成算力,这就是市场给低倍数的直接原因;FCF 恢复到什么水平之前,估值折价不会消失 |
| AAOI | 现金 2585 万、总债务 9837 万(短债 6845 万)、单季 FCF −3375 万 | 现金不到短债的四成,单季还净流出 3375 万,撑不满一个季度——增发是必然选项而不是意外事件,讨论股价必须先假设稀释 |
| 零跑 | 营收同比增长、毛利率环比改善、净亏损收窄 | 毛利率仍在个位数、且改善来自规模摊薄而非提价,说明公司在一个靠价格换量的市场里没有定价权,这是它的估值上限,不是暂时状态 |
表里的数字来自评测样本,只用于标定写法;每一轮都必须用本轮取到的数字重新算、重新判断,不得照抄。
一、钱从哪来:收入结构
data_fetch(data_type="segments") 取 product_segmentation(产品线)与 geographic_segmentation(地区),两张都要,缺哪张说哪张。
- 先给占比最大的一两块业务及其占比,再给最近一期占比变化最大的那块——增量在哪里比存量在哪里更能说明问题。
- 地区拆分要点名集中度与地缘敞口(单一地区占比过半、受出口管制或关税覆盖的收入占比)。
- 收入结构与市场定价方式不一致时必须点破(收入结构上是 A 类生意、股价按 B 类叙事定价),并把这条结论交给
valuation-audit的"一问:这是一家什么类型的公司"。 - 分部数据取不到时,用
profile与最近一期transcript/press_releases给定性拆分,并写明"本轮未取到分部收入",不要用行业印象编占比。
二、赚得怎么样:盈利质量
- 利润率看趋势,不看单点:用
hone_quarterly_income_statement(或income_quarter)排出最近 4–8 个季度的毛利率与营业利润率,说出当前值处在这段区间的哪一端;hone_ttm.gross_margin_pct/operating_margin_pct作为同口径锚(标注period_ends)。只写一个当期毛利率不构成盈利质量分析。 - 毛利率变了要说清是谁在变:产品结构(高毛利品类占比)、单价、成本(利用率、良率、上游价格)、一次性项目。说不清来源就写"变化来源本轮未核实"。
- 首次写出 GAAP 盈利就要交代成色:当期 GAAP 净利 / EPS 含营业外损益、公允价值变动或持股重估、税项一次性调整、剥离或和解收益时,第一次给出这个数就一并写明来源与规模,并给出剔除后的经营口径;同一段里 Adjusted / Non-GAAP 不与 GAAP 混排比较。受一次性项目污染的口径标注了也不能当锚:评测里出现过已注明净利被非经常收益抬高,却仍拿由它算出的 TTM P/E 当估值参照——要么换剔除口径重算,要么写明这个倍数本轮不可用。
- 现金与利润的背离必须检查:把
hone_latest_quarter.operating_cash_flow与同期net_income放在一起。经营现金流长期显著低于净利,要去hone_quarterly_balance_sheet看应收账款与存货是不是在涨得比收入快——那是"增长靠放账期和压货买来的"信号;反过来现金流远高于净利,通常是折旧摊销重或预收款多,说明这门生意的真实回款好于报表利润。这条要落到周转天数上才算查过:DSO = 应收账款 ÷ 当季营收 × 91、DIO = 存货 ÷ 当季营业成本 × 91、DPO = 应付账款 ÷ 当季营业成本 × 91,CCC = DSO + DIO − DPO(年度口径把 91 换成 365);四项都给最近 4 个季度的序列,单点看不出方向。CCC 拉长的天数 × 日均营收 = 被多占住的营运资金,按上面的方向/幅度/后果写完——拉长了多少天、这笔钱本来能拿去做什么(多买一条产线、少发一次债)。同期把**合同负债(预收)**当成一条独立序列一起看:预收与营收同向增,回款和能见度是真的;营收在增而预收在缩,是把已经收到的钱确认成了收入,下一段增长没有预付款托着。 - FCF 要算完并说明用途:现金流量表里有
freeCashFlow就直接引用,没有再用operatingCashFlow − capitalExpenditure并注明是自算。FCF 转负时区分"扩产性转负"(Capex 拉高,对应可核验的产能或订单)与"经营性转负"(经营现金流本身在恶化)——两者对结论的方向完全相反。
三、钱够不够:资产负债与偿债
- 净现金 / 净负债:现金及短期投资 − 有息总债务(含短债、长债、租赁负债与可转债本金),从
hone_quarterly_balance_sheet取,写出用来相减的两个数。 - 短期偿债:短期债务与一年内到期部分,对照现金余额与最近四季 FCF。断言"可由现金覆盖"之前先做减法。烧钱公司再补一句现金跑道:现金 ÷ 单季净流出 = 几个季度,并说明这个跑道决定了它会不会增发。
- 利息覆盖:优先用
valuation的 ratios-ttm 里的官方口径;没有再用营业利润 ÷ 利息支出并注明自算。高负债公司这一条不能省。 - 股权激励要还原成成本:从现金流量表取股权激励(SBC)金额,算 SBC ÷ 营收 与 SBC ÷ 经营现金流两个比(TTM 或最近 4 个季度)。SBC 在经营现金流里是加回项——这两个比越高,报表上那笔经营现金流里由老股东稀释买单的部分就越大;SBC 吃掉经营现金流一半以上时,"经营现金流为正"不能直接读成"这门生意能自己养活自己"。本节只负责把这两个比例和方向摆出来,摊薄怎么进算式交给
valuation-audit的完全摊薄股本口径。 valuation的financial_scores:引用 Altman Z 与 Piotroski 时,必须一起给出hone_score_semantics的区间(Altman:>2.99 安全区、1.81–2.99 灰区、<1.81 困境区;Piotroski 0–9 分,≥7 稳健、≤3 偏弱)和适用性限制——Altman 模型面向制造业,对金融、地产和部分轻资产科技公司解释力有限,这类公司要么不用、要么明说这个限制。分数只作为交叉印证,不能替代上面三项的具体数字,也不能改写成自制评级。
四、还能不能接着赚:增长的来源与可持续性
本轮提示里出现【本轮相关行业】时,「增长从哪来」这一问先用行业块的底层估值逻辑与需求传导链回答(从有效 AI 任务 → 资源强度 → 物理需求 → 合格供给 → 产能释放,量化关系照抄公式里的变量名):链条上游的量(token、集群规模、云厂 capex)对同一行所有公司共用,这家公司拿到多少由份额、认证、产能或合约决定。把行业增速直接写成公司增速,是这一节最常见的失败。行业块带「上游最近动作」时,这一问的第一句就是那条最近动作(带日期与数字,原样引用),第二句写它怎么传到这家,第三句写本轮用 earnings_outlook(ticker=X) 核对后有没有更新的一季(有则以更新为准并改日期)。要展开这一行的完整变量表与取数位置时加载 industry-map。
- 用
hone_latest_quarter的revenue_yoy_pct与revenue_qoq_pct判断在加速还是减速(两者方向不一致时先看季节性),用hone_financial_growth(季度序列)看增速的趋势而不是单期。 - 增长来自哪里:量、价、新品类还是新地区——用第一部分的分部同比拆开回答。说不出来源的增长率不构成可持续性判断。
- 增长的质量:收入增速与毛利率、经营现金流是否同向。收入涨而毛利率与现金流反向,说明增长是买来的;三者同向才是"赚得更多也收得回来"。
- 领先指标是线索不是业绩:backlog / ARR / RPO / 长协覆盖量是"已签未确认",不能当成收入能见度或增长确定性直接用。要拿它支撑可持续性判断,补一句历史转化率(过去几年实际转成收入的比例、取消或重排的幅度),拿不到就写"转化节奏本轮未核实"。确认周期与它能不能进估值算式,按
valuation-audit红旗自检里"价值锚"那一条,不在这里重写。 - 未来窗口:需要引用
hone_forward的一致预期时,写出forward_period_ends与分析师家数,并标明这是预期不是已实现业绩。
生成时的数值自洽自检
写完每一块,立刻用你自己刚写下的那些数字互相验算一遍。这是生成过程中的一次回读,不是发送前的门禁;对不上就当场改数或删掉那句结论,不要留下一个没有出处的第三个数。
- 减法要真的做:净现金 = 现金 − 有息债务,写出的净额必须等于你列出的两数之差且符号一致,算出来是负的就写净负债。(评测里出现过现金 4696 亿、总债务 4717 亿,结论写"净现金 2571 亿"。)
- 大小比较要真的比:说"覆盖""充裕""无偿债压力"之前,把两个数摆在一起看谁大。(评测里出现过现金 2585 万却说能覆盖 6845 万短期债务。)
- 同一个量全文只有一个值:现金不能这一段是 2585 万、下一段变成 2.6 亿;2.6 亿是市值就写市值。
- 口径不混排:
financials的资产负债表科目与valuation的净债务/企业价值是两套口径,同一段里都用到时要写清每个数出自哪一套。 - 单位与币种:万/亿/万亿、人民币/美元/港元;报表原币与股价币种不同时逐处标注,跨币种不做加减。
- 比率能被自己的分子分母还原:文中出现的毛利率、利润率、增速,用同一段里给出的金额除一遍应能还原。
缺数据与产出形态
hone_statement_coverage 标为 unavailable 的那张表才是真正的缺口,其余口径都算本轮已在手的证据,不要用"未核验"带过。真缺的那块写清缺什么、影响哪个判断("缺季度资产负债表,净现金与偿债结论未做"),并给出补上之后结论会怎么变。
- 被单独调用时:按四块各写一段,每段以那句三件套判断收口,最后一段给基本面这一维的整体状态(赚钱方式稳不稳、质量在变好还是变坏、财务撑不撑得住当前战略),并交接口——哪些数字可以直接当
valuation-audit的分母,哪些事实可以进moat的证据栏。不写九段模板,不自带数据时间首行(那由主 Agent 负责)。 - 作为一段嵌进更大回答时:压到 4–8 句,四块各一句判断,去掉取数说明,保留数字与三件套结构。
sector-to-stock对比表里的"基本面"列与"财务"列按这里的口径填。