Equity Valuation Framework
Use this skill as the "rules of the game" for valuation decisions and report standardization.
Scope and role
- - Purpose: transform already-fetched data into a professional valuation view.
- This skill does not fetch data.
- Upstream data should come from:
-
vnstock-free-expert for company/price/ratio inputs
-
nso-macro-monitor,
us-macro-news-monitor,
vn-market-news-monitor for macro/news context
When to trigger
- - User asks: "value this stock", "is it cheap/expensive", "best stock between A/B/C", "give me bull/base/bear", "build an investment memo".
- User requests a decision-ready report, not only raw metrics.
Required input contract
Accept an input bundle with these sections (missing fields allowed, but must be flagged):
CODEBLOCK0
Execution workflow (ordered)
- 1. Validate input bundle completeness and freshness.
- Run the data quality gate and assign initial confidence.
- Select valuation modules based on available data (
Multiples, DCF, sector adaptation). - Build bull/base/bear scenarios with explicit assumptions.
- Triangulate fair value, define safety zone, and list key risks.
- Apply confidence rubric and disclose gaps that can change conclusions.
- Return the report using the required section order.
Data quality gate (must run first)
- 1. Check freshness: state report periods and price cutoff date.
- Check completeness: identify missing key lines (revenue, EBIT, net income, CFO, debt, equity, shares).
- Check consistency: basic identity checks (assets = liabilities + equity if available).
- Mark confidence tier:
- -
High: complete + recent + internally consistent. - INLINECODE7 : minor gaps, valuation still usable.
- INLINECODE8 : major gaps; only directional view allowed.
Shared confidence rubric (required)
Use this standardized interpretation:
- -
High: valuation triangulation is valid (>= 2 robust methods), assumptions are explicit, and key inputs are complete. - INLINECODE10 : only one robust method is usable or moderate gaps require wider valuation ranges.
- INLINECODE11 : major input gaps/quality issues force directional valuation only (no precise fair-value claim).
Always report:
- 1. Confidence level.
- Which modules were actually run (
Multiples, DCF, sector adaptations). - Critical missing inputs that would most likely change fair value.
Valuation modules
Run modules based on available data. Prefer triangulation (2+ methods).
1) Relative valuation (Multiples)
Use when at least one of earnings/book/EBITDA is reliable.
-
P/E (earnings-based)
-
P/B (capital-intensive, banks/financials)
-
EV/EBITDA (operating comparison)
- Optional:
EV/Sales,
P/CF
- peer median / percentile
- company 3-5y own history
- - Normalize for one-off items when possible.
- Output:
- implied value range per multiple
- weighted relative-value estimate
2) DCF valuation
Use only when cash-flow visibility is acceptable.
- Forecast horizon: 5-10 years (default 5 if uncertain)
- Revenue growth path by scenario
- Margin path (EBIT/FCF margin)
- Reinvestment assumptions
- WACC with explicit inputs (risk-free, ERP, beta, debt cost)
- Terminal value: Gordon or exit multiple (state choice)
- - Mandatory sensitivity grid:
- WACC ±100 bps
- terminal growth ±50 bps
- base/bull/bear fair value
- sensitivity table
3) Sector-specific adaptation
Banks / Insurance / Financials
- - Prioritize:
P/B, ROE, asset quality proxies, capital adequacy proxies, funding cost/NIM proxies. - De-emphasize EV/EBITDA.
- Evaluate sustainability of ROE and provisioning pressure.
Cyclicals (steel, chemicals, commodities, shipping)
- - Use cycle-aware assumptions:
- normalized margin, not peak margin
- conservative terminal assumptions
- - Add cycle-risk note as first-class risk item.
Quality and business resilience checklist
Assess each item as
Strong / Neutral / Weak with one-line evidence:
- - Moat and pricing power
- Governance and capital allocation
- Earnings quality (cash conversion, accrual risk)
- Balance-sheet risk (leverage, maturity risk)
- Cyclicality and external dependency
- Execution track record
Scenario framework (required)
Always provide three scenarios:
- 1.
Bull: better macro + execution upside - INLINECODE23 : most likely path under current conditions
- INLINECODE24 : macro/industry shock + execution shortfall
For each scenario include:
- - Key assumptions
- Expected fundamental trajectory
- Implied fair value range
- Probability weight (optional but preferred)
Margin of safety rule
- - Define
Fair Value range from module triangulation. - Define
Safety Zone below fair value (default 15-30% depending on confidence and cyclicality). - Avoid absolute buy/sell commands.
- Use language: "appears undervalued / fairly valued / stretched" and "requires margin-of-safety discipline".
Decision policy (how to conclude)
Create an integrated view from:
- - valuation outputs (multiples + DCF if valid)
- business quality checklist
- macro/news constraints
If the user is managing a watchlist/portfolio, end with conditional action framing suitable for portfolio-risk-manager:
- -
Trigger to add risk (what would increase conviction) - INLINECODE29
- INLINECODE30 (what would make the thesis wrong)
- INLINECODE31 (ngắn/trung/dài)
Conclusion label:
- -
Attractive (valuation discount + acceptable quality/risk) - INLINECODE33 (mixed signals, wait for trigger)
- INLINECODE34 (valuation unsupported or risk too high)
Required report output template
Return exactly these sections in this order:
- 1. INLINECODE35
- - One paragraph: current valuation stance and why.
- 2. INLINECODE36
- - Source, as-of date, statement periods, peer set.
- 3. INLINECODE37
- - Key drivers by scenario.
- 4. INLINECODE38
- - Multiples table (current vs peer vs implied)
- DCF summary (if run)
- Sensitivity table
- 5. INLINECODE39
- - Checklist table with evidence lines.
- 6. INLINECODE40
- - Ranked risks with impact, probability, and monitoring trigger.
- 7. INLINECODE41
- - Fair value range and margin-of-safety zone with rationale.
- 8. INLINECODE42
- - Confidence level and exact missing data that could change the view.
- 9. INLINECODE43
- - Educational analysis only, not personalized investment advice.
Formatting standards
- - Use simple language and explain terms briefly.
- State all critical assumptions explicitly.
- Distinguish facts vs assumptions vs inference.
- Do not hide data gaps; surface them early.
- Keep numbers auditable and unit-consistent (VND bn/trn, %, x).
Minimal scoring rubric (optional but recommended)
If user asks for ranking within this framework:
- -
Valuation 40% - INLINECODE45 35%
- INLINECODE46 15%
- INLINECODE47 10%
Calibrate per sector and confidence.
Fail-safe behavior
If data quality is low:
- - downgrade confidence
- skip fragile modules (e.g., DCF)
- deliver directional valuation only
- list exact data needed for full valuation
Trigger examples
- - "Value HPG with bull/base/bear and margin of safety."
- "Compare VCB vs BID valuation and explain the thesis."
- "Prepare a structured valuation memo with sensitivity table and risk register."
股权估值框架
将此技能作为估值决策和报告标准化的游戏规则。
范围与角色
- - 目的:将已获取的数据转化为专业的估值观点。
- 此技能不获取数据。
- 上游数据应来自:
- vnstock-free-expert,用于公司/价格/比率输入
- nso-macro-monitor、us-macro-news-monitor、vn-market-news-monitor,用于宏观/新闻背景
触发时机
- - 用户询问:估值这只股票、它便宜/贵吗、A/B/C中最好的股票、给我看涨/基准/看跌情景、构建投资备忘录。
- 用户要求一份可供决策的报告,而不仅仅是原始指标。
所需输入合约
接受包含以下部分的输入包(允许缺失字段,但必须标记):
json
{
ticker: HPG,
asofdate: YYYY-MM-DD,
currency: VND,
financials: {
income_statement: {},
balance_sheet: {},
cash_flow: {},
ratios: {}
},
price_history: {
daily: [],
returns: {
1m: null,
3m: null,
6m: null,
12m: null
}
},
peer_set: [AAA, BBB],
macro_snapshot: {},
news_digest: {},
metadata: {
source: kbs|vci,
dataqualitynotes: []
}
}
执行工作流程(按顺序)
- 1. 验证输入包的完整性和时效性。
- 运行数据质量关卡并分配初始置信度。
- 根据可用数据选择估值模块(倍数法、DCF、行业调整)。
- 构建看涨/基准/看跌情景,并附上明确假设。
- 三角验证公允价值,定义安全区间,并列出关键风险。
- 应用置信度评分标准,并披露可能改变结论的差距。
- 按照要求的章节顺序返回报告。
数据质量关卡(必须首先运行)
- 1. 检查时效性:说明报告期和价格截止日期。
- 检查完整性:识别缺失的关键行项目(收入、EBIT、净利润、CFO、债务、权益、股份)。
- 检查一致性:基本的会计恒等式检查(如有,资产 = 负债 + 权益)。
- 标记置信度等级:
- - 高:完整 + 近期 + 内部一致。
- 中:微小差距,估值仍可使用。
- 低:重大差距;仅允许方向性观点。
共享置信度评分标准(必需)
使用此标准化解释:
- - 高:估值三角验证有效(>= 2 种稳健方法),假设明确,关键输入完整。
- 中:仅有一种稳健方法可用,或存在中等差距,需要更宽的估值范围。
- 低:主要输入差距/质量问题迫使仅进行方向性估值(无法声称精确公允价值)。
始终报告:
- 1. 置信度水平。
- 实际运行的模块(倍数法、DCF、行业调整)。
- 最可能改变公允价值的关键缺失输入。
估值模块
根据可用数据运行模块。优先进行三角验证(2种以上方法)。
1) 相对估值(倍数法)
当盈利/账面价值/EBITDA 中至少一项可靠时使用。
- P/E(基于盈利)
- P/B(资本密集型、银行/金融)
- EV/EBITDA(运营比较)
- 可选:EV/Sales、P/CF
- 同行中位数/百分位数
- 公司自身 3-5 年历史
- 每个倍数隐含的价值范围
- 加权相对价值估计
2) DCF 估值
仅在现金流可见性可接受时使用。
- 预测期:5-10 年(不确定时默认 5 年)
- 按情景划分的收入增长路径
- 利润率路径(EBIT/FCF 利润率)
- 再投资假设
- 带有明确输入的 WACC(无风险利率、ERP、Beta、债务成本)
- 终值:戈登模型或退出倍数(说明选择)
- WACC ±100 个基点
- 终值增长率 ±50 个基点
- 基准/看涨/看跌公允价值
- 敏感性表格
3) 特定行业调整
银行 / 保险 / 金融
- - 优先考虑:P/B、ROE、资产质量代理指标、资本充足率代理指标、资金成本/NIM 代理指标。
- 弱化 EV/EBITDA。
- 评估 ROE 的可持续性和拨备压力。
周期性行业(钢铁、化工、大宗商品、航运)
- 标准化利润率,而非峰值利润率
- 保守的终值假设
质量与业务韧性检查清单
对每项评估为强 / 中性 / 弱,并附一行证据:
- - 护城河与定价权
- 治理与资本配置
- 盈利质量(现金转化率、应计风险)
- 资产负债表风险(杠杆、期限风险)
- 周期性与外部依赖性
- 执行记录
情景框架(必需)
始终提供三种情景:
- 1. 看涨:更好的宏观 + 执行上行
- 基准:当前条件下最可能的路径
- 看跌:宏观/行业冲击 + 执行不力
每个情景包括:
- - 关键假设
- 预期基本面轨迹
- 隐含公允价值范围
- 概率权重(可选但优先)
安全边际规则
- - 从模块三角验证中定义公允价值范围。
- 定义公允价值下方的安全区间(默认 15-30%,取决于置信度和周期性)。
- 避免绝对的买入/卖出指令。
- 使用措辞:似乎被低估 / 估值合理 / 估值偏高,并需要安全边际纪律。
决策策略(如何得出结论)
从以下方面创建整合视图:
- - 估值输出(倍数法 + DCF,如有效)
- 业务质量检查清单
- 宏观/新闻约束
如果用户正在管理观察列表/投资组合,则以适合投资组合风险管理器的条件行动框架结束:
- - 增加风险触发因素(什么会增加信心)
- 降低风险触发因素
- 证伪条件(什么会使论点失效)
- 投资期限(短/中/长)
结论标签:
- - 有吸引力(估值折扣 + 可接受的质量/风险)
- 观察列表(信号混杂,等待触发)
- 谨慎(估值缺乏支撑或风险过高)
所需报告输出模板
按此顺序返回以下部分:
- 1. 执行摘要
- 2. 使用的数据
- 3. 核心论点(看涨 / 基准 / 看跌)
- 4. 估值工作
- - 倍数表格(当前 vs 同行 vs 隐含)
- DCF 摘要(如运行)
- 敏感性表格
- 5. 业务质量评估
- 6. 风险登记册
- 7. 公允价值与安全区间
- 8. 置信度与差距
- 9. 免责声明
格式标准
- - 使用简单语言并简要解释术语。
- 明确陈述所有关键假设。
- 区分事实、假设与推论。
- 不要隐藏数据差距;尽早揭示。
- 保持数字可审计且单位一致(VND 十亿/万亿、%、倍)。
最低评分标准(可选但推荐)
如果用户要求在此框架内排名:
- - 估值 40%
- 质量 35%
- 动量/修正 15%
- 风险惩罚 10%
根据行业和置信度进行调整。
故障安全行为
如果数据质量低:
- - 降低置信度
- 跳过脆弱模块(例如 DCF)
- 仅提供方向性估值
- 列出进行完整估值所需的确切数据
触发示例
- - 对 HPG 进行估值,包含看涨/基准/看跌情景和安全边际。
- 比较 VCB 与 BID 的估值并解释论点。
- 准备一份结构化的估值备忘录,包含敏感性表格和风险登记