Back to Blog

research

Triangulate A-Share Valuations Without Target Prices

An A-share valuation skill that runs multiple methods in parallel, shows assumptions and sensitivity, and avoids target-price bias.

OpenAgentSkillPublished:

Where this fits

You're building an agent that generates equity research notes for A-share companies. The user asks "What's a fair value for this stock?" A naive agent might output a single target price from one DCF. This skill forces a disciplined workflow: pick the right valuation methods for the company type, run them in parallel with shared assumptions, and present a range with sensitivity and method disagreement. It fits the gap between raw market data and a defensible valuation section.

Why agents benefit

  • Locks the valuation date, share count, net debt, and financial forecast version before any method runs, so all outputs are comparable.
  • Automatically selects among DCF, comparable companies, historical range, PB-ROE/residual income, SOTP, and mid-cycle earnings based on company characteristics.
  • Generates sensitivity grids (WACC × growth) and reverse-engineers what the current price implies about growth, margins, or ROE.
  • Tracks auditability: each risk-free rate, beta, and debt cost carries a date and source; formula recalculation status is explicit.
  • Prevents mechanical weighting of methods, avoiding false precision and unsupported target prices.

Practical scenarios

Cyclical stock mid-cycle normalization

A steel company in a cyclical downturn. The skill selects mid-cycle earnings instead of trailing depressed numbers, applies a historical P/E range, and shows a DCF with mid-cycle EBIT margins. The output highlights how much of the valuation depends on cycle normalization.

Multi-business conglomerate SOTP

A holding company with a bank, a real estate unit, and a tech subsidiary. The skill runs a sum-of-the-parts valuation, using PB-ROE for the bank and DCF for the tech arm, and clearly separates the net asset value bridge. It shows where the market's current price sits relative to each segment.

Financial institution residual income

For a bank, the skill skips DCF and uses PB-ROE and residual income models. It compares implied ROE against historical range and explains why DCF is not appropriate. The sensitivity table shows how the valuation changes with cost of equity and terminal ROE.

Add it to your agent workflow

Install the skill via:

npx skills add cyijun/china-financial-services --skill a-share-valuation-triangulation

Then in your agent's tool list, expose it as a research step. A simple usage:

from skills import a_share_valuation_triangulation as val

result = val.run(
    ticker="600519.SH",
    valuation_date="2025-06-30",
    scenario="base",
    methods=["dcf", "comparable", "historical"]
)

The result includes a structured output with method results, sensitivity, and implied expectations.

Compare before adopting

Check if the skill's dependencies (a-share-research-evidence, china-market-data) are maintained and cover your data sources. Look at the GitHub repo for recent commits and open issues. Compare with writing your own valuation scripts – the skill enforces auditability and method selection logic that you'd otherwise have to build. Ensure it fits your agent's existing data pipeline, especially the PIT (point-in-time) data requirements.

Why it is worth tracking

The skill has 18 stars and a focused README that emphasizes discipline over hype. Its design – no mechanical target prices, explicit assumptions, and reverse-implied expectations – aligns with how professional research works. Watch for updates to the DCF model and method selection reference. Evaluate it when you need a valuation module that produces defensible ranges, not just numbers. See the skill page at https://www.openagentskill.com/skills/cyijun-a-share-valuation-triangulation for version history and adoption signals.

Featured Skill

a-share-valuation-triangulation

Skill by cyijun