Cai
2026-08-13 7298b027c9b59ca7a7d913b09ff760559c46f17a
股票估值:新增德业股份与思源电气评估
2 files modified
17 files added
2991 ■■■■■ changed files
ai-valuation-analyst/tools/generate_deye_sieyuan_20260813.py 592 ●●●●● patch | view | raw | blame | history
ai-valuation-analyst/worklog/2026-08-13-deye-sieyuan-valuation.md 29 ●●●●● patch | view | raw | blame | history
ana-data/cases/股票估值/ANA-STOCK-VALUATION-DEYE-SIEYUAN-20260813-001/评估任务清单.md 10 ●●●●● patch | view | raw | blame | history
ana-data/cases/股票估值/目录说明.md 1 ●●●● patch | view | raw | blame | history
ana-data/result/股票估值/20260813_deye_sieyuan_batch_valuation/batch_metrics.json 81 ●●●●● patch | view | raw | blame | history
ana-data/result/股票估值/20260813_deye_sieyuan_batch_valuation/德业股份与思源电气估值汇总_20260813.md 25 ●●●●● patch | view | raw | blame | history
ana-data/result/股票估值/20260813_deye_valuation/calculation/run_manifest.json 20 ●●●●● patch | view | raw | blame | history
ana-data/result/股票估值/20260813_deye_valuation/calculation/valuation_report.md 211 ●●●●● patch | view | raw | blame | history
ana-data/result/股票估值/20260813_deye_valuation/calculation/valuation_results.json 278 ●●●●● patch | view | raw | blame | history
ana-data/result/股票估值/20260813_deye_valuation/source_evidence_manifest.json 68 ●●●●● patch | view | raw | blame | history
ana-data/result/股票估值/20260813_deye_valuation/德业股份价格合理性评估_20260813.md 229 ●●●●● patch | view | raw | blame | history
ana-data/result/股票估值/20260813_deye_valuation/德业股份估值快照_20260813.json 316 ●●●●● patch | view | raw | blame | history
ana-data/result/股票估值/20260813_sieyuan_electric_valuation/calculation/run_manifest.json 20 ●●●●● patch | view | raw | blame | history
ana-data/result/股票估值/20260813_sieyuan_electric_valuation/calculation/valuation_report.md 211 ●●●●● patch | view | raw | blame | history
ana-data/result/股票估值/20260813_sieyuan_electric_valuation/calculation/valuation_results.json 278 ●●●●● patch | view | raw | blame | history
ana-data/result/股票估值/20260813_sieyuan_electric_valuation/source_evidence_manifest.json 68 ●●●●● patch | view | raw | blame | history
ana-data/result/股票估值/20260813_sieyuan_electric_valuation/思源电气价格合理性评估_20260813.md 229 ●●●●● patch | view | raw | blame | history
ana-data/result/股票估值/20260813_sieyuan_electric_valuation/思源电气估值快照_20260813.json 316 ●●●●● patch | view | raw | blame | history
ana-data/result/股票估值/目录说明.md 9 ●●●● patch | view | raw | blame | history
ai-valuation-analyst/tools/generate_deye_sieyuan_20260813.py
New file
@@ -0,0 +1,592 @@
#!/usr/bin/env python3
"""Generate the 2026-08-13 formal valuations for Deye and Sieyuan.
This is a task-specific analysis builder.  It reuses the frozen V1 arithmetic
core, the V2 evidence package and the local front-adjusted market contract; it
does not duplicate V1 valuation formulas or write external databases.
"""
from __future__ import annotations
import hashlib
import json
import os
import statistics
from dataclasses import dataclass
from datetime import date, timedelta
from pathlib import Path
from typing import Any
import pymysql
from stock_valuation_pipeline.core import run_pipeline
ROOT = Path(__file__).resolve().parents[2]
AS_OF = "2026-08-13"
AS_OF_STAMP = "20260813"
RESULT_ROOT = ROOT / "ana-data" / "result" / "股票估值"
CASE_ROOT = ROOT / "ana-data" / "cases" / "股票估值" / "ANA-STOCK-VALUATION-DEYE-SIEYUAN-20260813-001"
V2_ROOT = ROOT / "ai-valuation-analyst" / "tmp" / "valuation_20260813_deye_sieyuan_v2"
CACHE_ROOT = ROOT / "ai-valuation-analyst" / "tmp" / "v2_cache" / "blobs" / "sha256"
REGISTRY = ROOT / "dev" / "ana-dev" / "stock_valuation_pipeline" / "source_registry.json"
@dataclass(frozen=True)
class Company:
    ticker: str
    slug: str
    company: str
    market: str
    report_shares: float
    current_shares: float
    share_date: str
    share_title: str
    share_url: str
    share_publish_date: str
    business: str
    profit_sources: list[str]
    quality: list[str]
    risks: list[str]
    upgrade_triggers: list[str]
    downgrade_triggers: list[str]
    base_profit: tuple[float, float]
    base_multiple: tuple[float, float]
    pessimistic_profit: tuple[float, float]
    pessimistic_multiple: tuple[float, float]
    optimistic_profit: tuple[float, float]
    optimistic_multiple: tuple[float, float]
    latest_info_date: str
    latest_info_title: str
    latest_info_url: str
    latest_info_note: str
COMPANIES = (
    Company(
        ticker="605117.SH",
        slug="deye",
        company="德业股份",
        market="上海证券交易所",
        report_shares=909_332_542.0,
        current_shares=1_273_231_036.0,
        share_date="2026-07-02",
        share_title="关于2022年股票期权激励计划2026年第二季度自主行权结果暨股份变动的公告",
        share_url="https://static.sse.com.cn/disclosure/listedinfo/announcement/c/new/2026-07-02/605117_20260702_MIX1.pdf",
        share_publish_date="2026-07-02",
        business="户用及工商业储能逆变器、储能电池包与环境电器",
        profit_sources=[
            "2025年储能逆变器收入52.17亿元、毛利率51.10%,是毛利贡献的第一来源;储能电池包收入38.32亿元、毛利率31.81%,是增速最快的第二增长极。",
            "光伏逆变器收入10.54亿元,环境电器和热交换器合计约20.05亿元;2025年外销收入97.47亿元,占主营收入约80.0%,利润高度依赖海外储能需求和渠道。",
            "2026年上半年业绩预告归母净利润26.68至27.28亿元、扣非24.93至25.53亿元,增长主要来自欧洲、中东、东南亚户储及工商业储能销售放量。",
        ],
        quality=[
            "2025年经营现金流39.86亿元,高于归母净利润31.71亿元;TTM简化自由现金流约40.60亿元,现金转化较好。",
            "2025年储能电池包毛利率同比下降9.49个百分点,且逆变器、电池包期末库存分别同比增加52.55%和49.18%,高增长同时带来库存与价格压力。",
            "2025年合同负债4.80亿元、同比增长81.43%;2026Q1升至6.05亿元,预收增长对后续收入有一定支撑。",
        ],
        risks=[
            "外销约占主营收入80%,欧盟、美国及其他市场的关税、贸易限制、认证和补贴规则变化会直接影响订单和利润率。",
            "储能景气和能源价格具有周期性;机构2026年利润预期较2025年大幅增长,若下半年需求或毛利率回落,年度利润容易低于一致预期。",
            "储能电池包毛利率已显著下降,锂电池、IGBT、铜铝及其他元器件价格波动会侵蚀利润;库存高增长增加跌价与渠道去库存风险。",
            "汇率、海外应收与渠道回款、股权激励持续行权会影响归母利润和每股收益。",
        ],
        upgrade_triggers=[
            "2026年正式半年报达到预告中枢且经营现金流、库存周转同步改善。",
            "欧洲、中东、东南亚之外的新市场持续放量,储能电池包毛利率止跌回升。",
        ],
        downgrade_triggers=[
            "2026年归母净利润低于60亿元或扣非利润与现金流明显背离。",
            "贸易限制、补贴退坡、渠道去库存或产品降价使储能业务毛利率继续显著下滑。",
        ],
        base_profit=(6.0e9, 7.4e9),
        base_multiple=(18.0, 24.0),
        pessimistic_profit=(4.5e9, 5.5e9),
        pessimistic_multiple=(12.0, 17.0),
        optimistic_profit=(7.8e9, 9.0e9),
        optimistic_multiple=(24.0, 30.0),
        latest_info_date="2026-07-09",
        latest_info_title="2026年半年度业绩预增公告",
        latest_info_url="https://static.sse.com.cn/disclosure/listedinfo/announcement/c/new/2026-07-09/605117_20260709_IHEV.pdf",
        latest_info_note="预告口径:归母26.68至27.28亿元,扣非24.93至25.53亿元。",
    ),
    Company(
        ticker="002028.SZ",
        slug="sieyuan_electric",
        company="思源电气",
        market="深圳证券交易所",
        report_shares=782_451_182.0,
        current_shares=782_573_282.0,
        share_date="2026-06-30",
        share_title="2025年度权益分派实施公告(现有总股本证明)",
        share_url="https://disc.static.szse.cn/download/disc/disk03/finalpage/2026-07-01/d515dfa9-944e-45e0-adce-b7b4d6f678e0.PDF",
        share_publish_date="2026-07-01",
        business="输配电设备、保护自动化、电力电子、海外EPC与储能系统",
        profit_sources=[
            "2025年开关类收入89.35亿元、变压器类46.33亿元、保护及自动化25.42亿元,是利润的主体;三类毛利率分别为36.88%、36.39%和35.11%。",
            "电力电子、EPC和储能系统及元件收入分别15.25亿元、23.32亿元和15.31亿元;后两类增长快但毛利率仅约11.8%,对收入增长的贡献高于对利润的贡献。",
            "2025年海外收入58.03亿元、同比增长85.84%,占收入26.94%;新增订单288.91亿元、同比增长34.64%,订单与海外扩张是未来利润的主要驱动。",
        ],
        quality=[
            "2025年经营现金流22.34亿元、低于归母净利润31.50亿元;TTM经营现金流23.11亿元,简化自由现金流15.41亿元,现金流为正但转化率不算高。",
            "2025年末应收账款81.83亿元,占总资产27.42%;合同负债29.77亿元,2026Q1升至31.50亿元。较高预收支撑订单,但高应收和海外EPC拉长回款周期。",
            "2026年半年业绩快报归母14.87亿元、同比增长15.03%,明显慢于收入27.14%;汇兑损失及思源东芝持股比例变更压低归母利润增速。",
        ],
        risks=[
            "2026H1归母利润仅增长15.03%,低于当前一致预期隐含的全年约37%增速,下半年需要明显加速才能兑现43亿元左右的机构预测。",
            "应收账款规模高、海外EPC周期1至3年,存在回款、汇率、税务、施工、合同与分包风险。",
            "铜铝等大宗原料、半导体器件和国际物流价格上涨,以及低毛利EPC/储能占比提高,可能压制整体利润率。",
            "海外业务扩张带来汇兑与当地运营风险;2026H1已出现美元应收等外币资产的较大汇兑损失。",
        ],
        upgrade_triggers=[
            "新增订单持续接近公司2026年375亿元经营目标,合同负债与现金回款同步增长。",
            "下半年归母利润增速回升至25%以上,开关、变压器等高毛利业务占比稳定,汇兑损失收窄。",
        ],
        downgrade_triggers=[
            "2026年归母净利润低于38亿元,或收入增长继续快于利润而毛利率显著下行。",
            "应收账款和海外EPC风险上升、经营现金流转弱,或思源东芝少数股权变化持续稀释归母利润。",
        ],
        base_profit=(3.8e9, 4.5e9),
        base_multiple=(26.0, 32.0),
        pessimistic_profit=(3.3e9, 3.8e9),
        pessimistic_multiple=(20.0, 25.0),
        optimistic_profit=(4.6e9, 5.2e9),
        optimistic_multiple=(32.0, 38.0),
        latest_info_date="2026-07-11",
        latest_info_title="2026年半年度业绩快报",
        latest_info_url="https://file.finance.sina.com.cn/211.154.219.97%3A9494/MRGG/CNSESZ_STOCK/2026/2026-7/2026-07-11/12441232.PDF",
        latest_info_note="快报口径:收入108.03亿元、归母14.87亿元、扣非14.19亿元、经营现金流2.25亿元。",
    ),
)
def load_json(path: Path) -> dict[str, Any]:
    return json.loads(path.read_text(encoding="utf-8-sig"))
def failed_dir(ticker: str) -> Path:
    matches = sorted(V2_ROOT.glob(f"{ticker.replace('.', '_')}.failed-*"))
    if len(matches) != 1:
        raise RuntimeError(f"Expected one V2 failure package for {ticker}, got {len(matches)}")
    return matches[0]
def blob(raw_hash: str) -> bytes:
    path = CACHE_ROOT / raw_hash[:2] / f"{raw_hash}.bin"
    data = path.read_bytes()
    if hashlib.sha256(data).hexdigest() != raw_hash:
        raise RuntimeError(f"Cache hash mismatch: {raw_hash}")
    return data
def consensus(provider: dict[str, Any], shares: float) -> tuple[int, dict[str, dict[str, float]], dict[str, float]]:
    summary_row: dict[str, Any] | None = None
    summary_hash = ""
    for raw_hash in provider["forecast"]["raw_artifact_hashes"]:
        try:
            value = json.loads(blob(raw_hash).decode("utf-8"))
        except (UnicodeDecodeError, json.JSONDecodeError):
            continue
        rows = ((value.get("result") or {}).get("data") or [])
        if rows and "RATING_ORG_NUM" in rows[0]:
            summary_row = rows[0]
            summary_hash = raw_hash
            break
    if not summary_row:
        raise RuntimeError("No consensus summary")
    years: dict[str, dict[str, float]] = {}
    for idx in range(1, 5):
        year = summary_row.get(f"YEAR{idx}")
        eps = summary_row.get(f"EPS{idx}")
        if year and eps is not None and str(summary_row.get(f"YEAR_MARK{idx}")) == "E":
            years[str(year)] = {"eps": float(eps), "profit": float(eps) * shares}
    targets = {
        "min": float(summary_row["DEC_AIMPRICEMIN"]) if summary_row.get("DEC_AIMPRICEMIN") is not None else 0.0,
        "max": float(summary_row["DEC_AIMPRICEMAX"]) if summary_row.get("DEC_AIMPRICEMAX") is not None else 0.0,
        "raw_hash": summary_hash,
    }
    return int(summary_row.get("RATING_ORG_NUM") or 0), years, targets
def mysql_connection() -> pymysql.Connection:
    return pymysql.connect(
        host=os.environ.get("MYSQL_HOST", "127.0.0.1"),
        port=int(os.environ.get("MYSQL_PORT", "3306")),
        user=os.environ.get("MYSQL_USER", "root"),
        password=os.environ["MYSQL_PASSWORD"],
        database="trading_xuntou",
        charset="utf8mb4",
        autocommit=True,
        cursorclass=pymysql.cursors.DictCursor,
    )
def local_market(ticker: str) -> dict[str, Any]:
    start = date.fromisoformat(AS_OF) - timedelta(days=150)
    with mysql_connection() as connection, connection.cursor() as cursor:
        cursor.execute(
            "SELECT trade_date,close,amount,source,source_batch_id,updated_at "
            "FROM cn_stock_kline_1d_front WHERE symbol=%s AND trade_date BETWEEN %s AND %s "
            "AND close>0 AND source='xtquant' ORDER BY trade_date",
            (ticker, start, AS_OF),
        )
        rows = cursor.fetchall()
    if not rows or str(rows[-1]["trade_date"]) != AS_OF:
        raise RuntimeError(f"No complete {AS_OF} front-adjusted row for {ticker}")
    closes = [float(row["close"]) for row in rows]
    amounts = [float(row["amount"]) for row in rows]
    return {
        "price": closes[-1],
        "date": AS_OF,
        "amount": amounts[-1],
        "source": rows[-1]["source"],
        "source_batch_id": rows[-1]["source_batch_id"],
        "updated_at": str(rows[-1]["updated_at"]),
        "return_20d": closes[-1] / closes[-21] - 1,
        "return_60d": closes[-1] / closes[-61] - 1,
        "ma60": statistics.fmean(closes[-60:]),
        "distance_to_ma60": closes[-1] / statistics.fmean(closes[-60:]) - 1,
        "amount_ratio_5d_to_60d": statistics.fmean(amounts[-5:]) / statistics.fmean(amounts[-60:]),
        "sample_count": len(rows),
    }
def provider_data(company: Company) -> tuple[dict[str, Any], dict[str, Any]]:
    directory = failed_dir(company.ticker)
    provider = load_json(directory / "provider_results.json")
    failure = load_json(directory / "failure.json")
    if provider["announcements"]["identity"]["ticker"] != company.ticker:
        raise RuntimeError("Ticker mismatch")
    return provider, failure
def announcement(provider: dict[str, Any], title: str) -> dict[str, Any]:
    def normalized(value: str) -> str:
        return value.replace("第一季度", "一季度").replace(" ", "")
    rows = [row for row in provider["announcements"]["records"] if normalized(row["title"]) == normalized(title)]
    if len(rows) != 1:
        raise RuntimeError(f"Expected one announcement {title}, got {len(rows)}")
    return rows[0]
def scenario(name: str, role: str, profit: tuple[float, float], multiple: tuple[float, float], assumption: str) -> dict[str, Any]:
    return {
        "name": name,
        "role": role,
        "method": "pe",
        "profit_low": profit[0],
        "profit_high": profit[1],
        "multiple_low": multiple[0],
        "multiple_high": multiple[1],
        "assumption": assumption,
    }
def build(company: Company) -> dict[str, Any]:
    provider, failure = provider_data(company)
    financials = provider["finance"]["financials"]
    balance = dict(provider["finance"]["balance_sheet"])
    market = local_market(company.ticker)
    quote_obj = None
    quote_hash = ""
    for raw_hash in provider["market"]["raw_artifact_hashes"]:
        try:
            obj = json.loads(blob(raw_hash).decode("utf-8"))
        except (UnicodeDecodeError, json.JSONDecodeError):
            continue
        if (obj.get("data") or {}).get("f84"):
            quote_obj = obj["data"]
            quote_hash = raw_hash
            break
    if not quote_obj or float(quote_obj["f84"]) != company.current_shares:
        raise RuntimeError(f"Quote/share proof mismatch for {company.ticker}")
    if abs(market["price"] * company.current_shares - float(quote_obj["f116"])) > 1.0:
        raise RuntimeError(f"Market-cap cross-check failed for {company.ticker}")
    count, forecasts, targets = consensus(provider, company.current_shares)
    annual = announcement(provider, "2025年年度报告")
    current = announcement(provider, "2026年第一季度报告")
    annual_f = financials["annual"]
    current_f = financials["current_cumulative"]
    prior_f = financials["prior_year_same_period"]
    ttm_attr = annual_f["attributable_profit"] + current_f["attributable_profit"] - prior_f["attributable_profit"]
    ttm_deduct = annual_f["deduct_profit"] + current_f["deduct_profit"] - prior_f["deduct_profit"]
    ttm_cfo = annual_f["cfo"] + current_f["cfo"] - prior_f["cfo"]
    ttm_capex = annual_f["capex"] + current_f["capex"] - prior_f["capex"]
    # V2 finance equity is total equity.  V1 PB uses attributable equity.
    parent_equity = float(balance["equity"]) - float(balance["minority_interest"])
    balance["equity"] = parent_equity
    scenarios = [
        scenario("悲观", "pessimistic", company.pessimistic_profit, company.pessimistic_multiple, "需求、订单或毛利率低于预期,利润下修且估值回归行业低位。"),
        scenario("基准", "base", company.base_profit, company.base_multiple, "结合2026年最新业绩预告/快报、机构一致预期、订单与现金流,给予与增长持续性和风险相匹配的PE区间。"),
        scenario("乐观", "optimistic", company.optimistic_profit, company.optimistic_multiple, "订单、海外扩张、产品结构和利润率超预期,利润与估值中枢同步上移。"),
    ]
    base_low = company.base_profit[0] * company.base_multiple[0] / company.current_shares
    base_high = company.base_profit[1] * company.base_multiple[1] / company.current_shares
    optimistic_high = company.optimistic_profit[1] * company.optimistic_multiple[1] / company.current_shares
    if market["price"] < base_low:
        label = "偏低"
    elif market["price"] <= base_high:
        label = "基本合理"
    elif market["price"] <= optimistic_high:
        label = "偏贵"
    else:
        label = "明显偏贵"
    forecast_rows = [{
        "institution": f"东方财富公开一致预期汇总(覆盖池{count}家)",
        "report_date": AS_OF,
        "include": True,
        "core_assumption": "汇总快照不替代逐家研报;覆盖池数量不等于每个年度的有效样本数。",
        "source_id": "SRC-EM-CONSENSUS-20260813",
        "estimates": forecasts,
    }]
    sources = [
        {
            "id": "SRC-ANNUAL-2025", "source_type": "cninfo", "title": annual["title"],
            "publish_date": annual["publish_date"], "period_end": "2025-12-31", "url": annual["url"],
            "supports": ["financials.annual", "business", "profit_sources", "risks"], "revision_status": "current",
        },
        {
            "id": "SRC-CURRENT-2026Q1", "source_type": "cninfo", "title": current["title"],
            "publish_date": current["publish_date"], "period_end": "2026-03-31", "url": current["url"],
            "supports": ["financials.current_cumulative", "financials.prior_year_same_period", "balance_sheet", "balance_sheet.equity"], "revision_status": "current",
        },
        {
            "id": "SRC-LATEST-OPERATING", "source_type": "sse" if company.ticker.endswith(".SH") else "financial_mirror",
            "title": company.latest_info_title, "publish_date": company.latest_info_date, "period_end": "2026-06-30",
            "url": company.latest_info_url, "supports": ["latest_operating_information", "valuation.scenarios"], "revision_status": "current",
        },
        {
            "id": "SRC-SHARES-A1", "source_type": "sse" if company.ticker.endswith(".SH") else "szse",
            "title": company.share_title, "publish_date": company.share_publish_date, "period_end": company.share_date,
            "url": company.share_url, "supports": ["market.diluted_shares", "market.shares_date"], "revision_status": "current",
        },
        {
            "id": "SRC-LOCAL-FRONT-KLINE", "source_type": "quote_provider", "title": "trading_xuntou前复权日K完整收盘价",
            "publish_date": AS_OF, "period_end": AS_OF, "url": "mysql://trading_xuntou/cn_stock_kline_1d_front",
            "supports": ["market.price", "market.price_timestamp", "market.amount", "analysis.kline"], "revision_status": "current",
        },
        {
            "id": "SRC-EM-QUOTE-SHARES", "source_type": "quote_provider", "title": "东方财富当前总股本与总市值快照交叉核验",
            "publish_date": AS_OF, "period_end": AS_OF, "url": "https://push2delay.eastmoney.com/api/qt/stock/get",
            "supports": ["market.diluted_shares", "market.platform_market_cap"], "revision_status": "current",
        },
        {
            "id": "SRC-EM-CONSENSUS-20260813", "source_type": "institution_aggregator", "title": "东方财富盈利预测汇总",
            "publish_date": AS_OF, "period_end": AS_OF, "url": "https://datacenter-web.eastmoney.com/api/data/v1/get?reportName=RPT_WEB_RESPREDICT",
            "supports": ["institutions"], "revision_status": "current",
        },
    ]
    snapshot = {
        "snapshot_id": f"SNAPSHOT-{company.ticker[:6]}-{AS_OF_STAMP}-V1",
        "meta": {
            "company": company.company, "code": company.ticker, "market": company.market,
            "as_of_date": AS_OF, "currency": "CNY", "report_period_end": "2026-03-31",
            "latest_operating_info_date": company.latest_info_date,
        },
        "market": {
            "price": market["price"], "price_type": "最近完整交易日前复权收盘价",
            "price_timestamp": f"{AS_OF}T15:00:00+08:00", "diluted_shares": company.current_shares,
            "shares_date": company.share_date, "platform_market_cap": float(quote_obj["f116"]),
        },
        "financials": financials,
        "balance_sheet": {
            "cash_available": balance["cash_available"], "equity": balance["equity"],
            "interest_bearing_debt": balance["interest_bearing_debt"], "minority_interest": balance["minority_interest"],
            "non_operating_financial_assets": balance["non_operating_financial_assets"], "period_end": balance["period_end"],
        },
        "normalization": {
            "adjustments": [{
                "description": "以TTM扣非归母利润替代TTM归母利润作为核心盈利代理",
                "amount": ttm_deduct - ttm_attr,
                "basis": "2025年报加2026Q1减2025Q1;最新半年预告/快报仅用于情景利润,不混入TTM法定口径",
            }]
        },
        "valuation": {
            "scenarios": scenarios,
            "reverse_pe_multiples": [12, 15, 18, 20, 22, 25, 28, 30, 32, 35, 40],
            "exit_pe_multiples": [12, 15, 18, 20, 22, 25, 28, 30, 32, 35, 40],
            "holding_period": {"years": 5, "required_return": 0.10, "cumulative_dividend_per_share": 0},
        },
        "institutions": {"coverage_status": "available", "forecasts": forecast_rows},
        "sources": sources,
        "analysis": {
            "company_type": company.business,
            "primary_model": "2026年前瞻PE情景;TTM扣非、PB、现金流、最新半年预告/快报与反向利润交叉验证",
            "cross_checks": ["最新半年预告/快报", "机构一致预期", "PB/ROE", "经营现金流与资本开支", "订单/合同负债/应收", "前复权量价"],
            "profit_sources": company.profit_sources,
            "profit_source_quality": company.quality + [
                f"法定TTM归母{ttm_attr/1e8:.2f}亿元、TTM扣非{ttm_deduct/1e8:.2f}亿元;主模型以最新半年信息和机构预期构造2026全年情景。",
                f"TTM经营现金流{ttm_cfo/1e8:.2f}亿元、资本开支{ttm_capex/1e8:.2f}亿元、简化自由现金流{(ttm_cfo-ttm_capex)/1e8:.2f}亿元。",
            ],
            "risks": company.risks + ["机构汇总口径不是法定事实,且覆盖池数量不等于每个年度的有效样本数。"],
            "upgrade_triggers": company.upgrade_triggers,
            "downgrade_triggers": company.downgrade_triggers,
            "executive_conclusion": f"{market['price']:.2f}元位于基准合理区间{base_low:.2f}至{base_high:.2f}元内,判断为{label}。当前结论依赖2026年利润兑现,不构成目标价或交易指令。",
            "consensus_org_count": count,
            "consensus_coverage_note": f"东方财富公开汇总覆盖池{count}家;2026E EPS {forecasts['2026']['eps']:.4f}元,对应利润{forecasts['2026']['profit']/1e8:.2f}亿元。",
            "latest_operating_info_note": company.latest_info_note,
            "consensus_target_range": f"{targets['min']:.2f}至{targets['max']:.2f}元(仅作市场预期参照,不替代本报告合理区间)",
            "kline_return_20d": market["return_20d"], "kline_return_60d": market["return_60d"],
            "ma60": market["ma60"], "distance_to_ma60": market["distance_to_ma60"],
            "amount_ratio_5d_to_60d": market["amount_ratio_5d_to_60d"], "market_sample_count": market["sample_count"],
            "market_source_batch_id": market["source_batch_id"], "market_updated_at": market["updated_at"],
            "ttm_cfo": ttm_cfo, "ttm_capex": ttm_capex, "ttm_fcf": ttm_cfo - ttm_capex,
            "total_equity_original": provider["finance"]["balance_sheet"]["equity"],
            "attributable_equity_used": parent_equity, "minority_interest_original": balance["minority_interest"],
            "report_shares": company.report_shares, "share_proof_status": "MATCH_A1_CHANGE",
            "information_cutoff": f"{AS_OF}T23:59:00+08:00",
        },
    }
    out_dir = RESULT_ROOT / f"{AS_OF_STAMP}_{company.slug}_valuation"
    out_dir.mkdir(parents=True, exist_ok=True)
    snapshot_path = out_dir / f"{company.company}估值快照_{AS_OF_STAMP}.json"
    snapshot_path.write_text(json.dumps(snapshot, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
    calc_dir = out_dir / "calculation"
    run = run_pipeline(snapshot_path, calc_dir, REGISTRY)
    if run["status"] not in {"GENERATED", "REUSED"}:
        raise RuntimeError(f"Unexpected V1 status {run}")
    results = load_json(calc_dir / "valuation_results.json")
    calc_report_path = calc_dir / "valuation_report.md"
    calc_report_text = calc_report_path.read_text(encoding="utf-8")
    calc_report_text = "\n".join(line.rstrip() for line in calc_report_text.splitlines()) + "\n"
    calc_report_path.write_text(calc_report_text, encoding="utf-8")
    report_text = calc_report_text
    report_text = report_text.replace("价格合理性评估(流水线生成底稿)", "价格合理性评估", 1)
    report_text = report_text.replace(
        "本文是研究计算底稿,不构成交易指令或收益承诺。",
        "本文为按《股票价格合理性评估操作手册》形成的条件化研究结论,不构成交易指令或收益承诺。",
        1,
    )
    report_text = report_text.replace(
        "覆盖状态:`available`。早于最新经营信息日、或低于已实现累计利润的预测自动排除出当前一致预期。",
        f"覆盖状态:`available`。东方财富公开一致预期覆盖池为 **{count}家**;下表按一条汇总观测进入V1,因此“机构数”列显示1,不代表仅有1家机构。早于最新经营信息日、或低于已实现累计利润的预测自动排除出当前一致预期。",
        1,
    )
    market_note = (
        "\n\n### 1.1 前复权量价显影\n\n"
        f"- 20日涨跌:{market['return_20d']*100:.2f}%;60日涨跌:{market['return_60d']*100:.2f}%。\n"
        f"- 60日均线:{market['ma60']:.2f}元;当前价相对MA60:{market['distance_to_ma60']*100:.2f}%。\n"
        f"- 近5日/60日平均成交额比:{market['amount_ratio_5d_to_60d']:.2f}。量价用于显影情绪,不改变合理价值。\n"
    )
    report_text = report_text.replace("\n## 2. 信息来源与固定优先级", market_note + "\n## 2. 信息来源与固定优先级", 1)
    report_text = report_text.replace(
        "\n## 6. 利润质量、现金流与资产负债",
        f"\n### 5.1 最新半年经营信息\n\n- {company.latest_info_note}\n- 该信息用于调整2026全年情景利润,不与法定TTM公式重复相加。\n\n## 6. 利润质量、现金流与资产负债",
        1,
    )
    bubble_text = (
        "\n## 11.1 估值泡沫判定\n\n"
        f"- 当前价{market['price']:.2f}元未高于基准合理区间上沿{base_high:.2f}元,按手册规则**未识别估值泡沫**。\n"
        f"- 当前价相对基准上沿为{(market['price']/base_high-1)*100:.2f}%,相对乐观上沿为{(market['price']/optimistic_high-1)*100:.2f}%。\n"
        "- 这不等于没有经营风险;若利润情景下修,合理区间会同步下移,需要按下调触发器复评。\n"
    )
    report_text = report_text.replace("\n## 12. 风险、上调与下调触发器", bubble_text + "\n## 12. 风险、上调与下调触发器", 1)
    # V1 uses Markdown hard-break spaces in its header; formal project files keep
    # clean line endings and do not rely on trailing whitespace for rendering.
    report_text = "\n".join(line.rstrip() for line in report_text.splitlines()) + "\n"
    formal_path = out_dir / f"{company.company}价格合理性评估_{AS_OF_STAMP}.md"
    formal_path.write_text(report_text, encoding="utf-8")
    evidence = {
        "case_id": "ANA-STOCK-VALUATION-DEYE-SIEYUAN-20260813-001",
        "ticker": company.ticker, "company": company.company, "as_of": AS_OF,
        "v2_status": "BLOCKED", "v2_failure": failure,
        "v2_failure_package": str(failed_dir(company.ticker).relative_to(ROOT)).replace("\\", "/"),
        "v2_raw_artifact_hashes": sorted({h for section in provider.values() for h in section.get("raw_artifact_hashes", [])}),
        "quote_raw_hash": quote_hash, "consensus_raw_hash": targets["raw_hash"],
        "market_contract": {
            "table": "trading_xuntou.cn_stock_kline_1d_front", "source": market["source"],
            "source_batch_id": market["source_batch_id"], "updated_at": market["updated_at"], "trade_date": AS_OF,
        },
        "share_proof": {
            "current_shares": company.current_shares, "a1_title": company.share_title,
            "a1_publish_date": company.share_publish_date, "a1_url": company.share_url,
            "quote_shares": quote_obj["f84"], "quote_market_cap": quote_obj["f116"],
            "price_times_shares": market["price"] * company.current_shares,
        },
        "bounded_gaps": [
            "V2 quote f124=0,故端到端V2按历史股本时间戳门禁诚实阻断;正式估值由后续A1股本公告和估值日总股本/总市值快照补证。",
            "机构汇总覆盖池不是逐家研报原文;本报告披露机构数、EPS和推算利润,不将其写成法定事实。",
            "最新半年预告/快报提供利润锚,但资产负债表、现金流明细仍以2026Q1法定报告为最新完整结构口径。",
        ],
        "checks": {
            "v1_qa": results["qa"], "label": label, "base_low": base_low, "base_high": base_high,
            "optimistic_high": optimistic_high, "price": market["price"],
        },
    }
    (out_dir / "source_evidence_manifest.json").write_text(json.dumps(evidence, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
    return {
        "ticker": company.ticker, "company": company.company, "price": market["price"],
        "base_low": base_low, "base_high": base_high, "optimistic_high": optimistic_high,
        "label": label, "normalized_profit": float(results["metrics"]["normalized_profit"]),
        "normalized_pe": float(results["metrics"]["normalized_pe"]), "pb": float(results["metrics"]["pb"]),
        "consensus_count": count, "consensus_2026": forecasts["2026"]["profit"],
        "forward_pe": market["price"] / forecasts["2026"]["eps"],
        "market": market, "report_path": str(formal_path.relative_to(ROOT)).replace("\\", "/"),
        "snapshot_path": str(snapshot_path.relative_to(ROOT)).replace("\\", "/"),
        "qa": results["qa"],
    }
def render_summary(rows: list[dict[str, Any]]) -> str:
    lines = [
        "# 德业股份与思源电气价格合理性评估汇总(2026-08-13)", "",
        "- 价格基准:2026-08-13完整交易日前复权收盘价。",
        "- 信息上限:2026-08-13;最新经营信息分别为德业股份2026H1业绩预告、思源电气2026H1业绩快报。",
        "- 估值区间为条件化研究结论,不是目标价、交易指令或收益承诺。", "",
        "| 公司 | 收盘价 | TTM扣非利润 | TTM扣非PE | 2026机构利润 | 前瞻PE | 基准合理区间 | 乐观上沿 | 判定 |",
        "|---|---:|---:|---:|---:|---:|---:|---:|---|",
    ]
    for row in rows:
        lines.append(
            f"| [{row['company']}](../../../../{row['report_path']}) | {row['price']:.2f}元 | "
            f"{row['normalized_profit']/1e8:.2f}亿元 | {row['normalized_pe']:.2f}倍 | "
            f"{row['consensus_2026']/1e8:.2f}亿元({row['consensus_count']}家覆盖池) | {row['forward_pe']:.2f}倍 | "
            f"{row['base_low']:.2f}—{row['base_high']:.2f}元 | {row['optimistic_high']:.2f}元 | {row['label']} |"
        )
    lines += [
        "", "## 核心判断", "",
        "- 德业股份:当前价低于基准中枢,2026H1预告强、现金流好,估值看起来更便宜;但外销占比约80%,储能景气、贸易政策、汇率和电池包毛利率是主要折价来源。",
        "- 思源电气:当前价位于基准区间中上部,订单和海外扩张具备支撑;但2026H1利润增速明显慢于收入,应收与海外EPC风险使其不宜直接套用机构目标价。",
        "- 两家公司当前价均未高于各自基准合理区间上沿,因此按手册规则均未识别估值泡沫;若正式半年报或全年利润低于情景下限,必须下修合理区间。", "",
        "## 量价显影", "",
        "| 公司 | 20日涨跌 | 60日涨跌 | MA60 | 相对MA60 | 近5日/60日成交额比 |",
        "|---|---:|---:|---:|---:|---:|",
    ]
    for row in rows:
        market = row["market"]
        lines.append(
            f"| {row['company']} | {market['return_20d']*100:.2f}% | {market['return_60d']*100:.2f}% | "
            f"{market['ma60']:.2f}元 | {market['distance_to_ma60']*100:.2f}% | {market['amount_ratio_5d_to_60d']:.2f} |"
        )
    lines += ["", "量价只用于识别市场情绪和拥挤度,不反推企业价值。", ""]
    return "\n".join(lines)
def main() -> None:
    rows = [build(company) for company in COMPANIES]
    CASE_ROOT.mkdir(parents=True, exist_ok=True)
    (CASE_ROOT / "评估任务清单.md").write_text(
        "# 德业股份与思源电气估值任务清单\n\n"
        "- 案例:`ANA-STOCK-VALUATION-DEYE-SIEYUAN-20260813-001`\n"
        "- 方法:`ana-doc/股票估值/股票价格合理性评估操作手册.md`\n"
        "- 基准日:2026-08-13\n\n"
        "| 代码 | 公司 | 状态 | 正式报告 |\n|---|---|---|---|\n" +
        "\n".join(f"| {row['ticker']} | {row['company']} | {row['qa']['status']} | `{row['report_path']}` |" for row in rows) + "\n",
        encoding="utf-8",
    )
    summary_dir = RESULT_ROOT / f"{AS_OF_STAMP}_deye_sieyuan_batch_valuation"
    summary_dir.mkdir(parents=True, exist_ok=True)
    (summary_dir / f"德业股份与思源电气估值汇总_{AS_OF_STAMP}.md").write_text(render_summary(rows), encoding="utf-8")
    (summary_dir / "batch_metrics.json").write_text(json.dumps({"as_of": AS_OF, "rows": rows}, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
    print(json.dumps({"status": "PASS", "rows": rows}, ensure_ascii=False, indent=2))
if __name__ == "__main__":
    main()
ai-valuation-analyst/worklog/2026-08-13-deye-sieyuan-valuation.md
New file
@@ -0,0 +1,29 @@
# 2026-08-13 德业股份与思源电气估值执行记录
- 任务:按最新可得完整收盘价评估德业股份(605117.SH)和思源电气(002028.SZ)的价格合理性。
- 开始时间:2026-08-13 22:27:56 +08:00。
- 交付前核验时间:2026-08-13 23:53:40 +08:00;截至该时点整体会话墙钟约5145秒(85.7分钟),包含资料核验、估值、门禁测试、文档QA和Git交付准备,不是单个脚本运行时间。
- 价格基准:2026-08-13 `trading_xuntou.cn_stock_kline_1d_front` 前复权完整日K。
- 方法:`ana-doc/股票估值/股票价格合理性评估操作手册.md`,统一V1估值内核。
## 执行结果
- 德业股份:收盘90.71元,基准合理区间84.82—139.49元,判断为基本合理;2026年机构一致预期利润73.67亿元,覆盖池23家。
- 思源电气:收盘167.58元,基准合理区间126.25—184.01元,判断为基本合理;2026年机构一致预期利润43.09亿元,覆盖池17家。
- 两家公司当前价格均未超过基准合理区间上沿,按手册定义均未识别估值泡沫。
- 两份报告V1 QA均为PASS,错误0、警告0。
## 证据与边界
- V2采集分别在约1.1秒完成,但因行情字段无法证明历史股本而返回`E_HISTORICAL_SHARES_UNPROVEN`;失败包和原始哈希保留在角色私有临时目录,不作为成功结果冒充。
- 正式估值补充使用交易所/巨潮法定财报、交易所股本变动公告、最新半年业绩预告或快报、东方财富机构一致预期聚合和本地前复权日K。
- 两个估值版本已导入MySQL `stock_valuation`。尝试生成2026-08-13日更判定时,因权威交易日历资产未证明当日而按`E_MARKET_NO_PROVEN_ROW`整体失败关闭;没有写入当日价格或判断,没有覆盖固定latest文件。
- Darkline仅用于最新公告、经营风险和现实证据核验,未进行案例归档或写入`tianxia`。
## 产物
- `ana-data/result/股票估值/20260813_deye_valuation/`
- `ana-data/result/股票估值/20260813_sieyuan_electric_valuation/`
- `ana-data/result/股票估值/20260813_deye_sieyuan_batch_valuation/`
- `ana-data/cases/股票估值/ANA-STOCK-VALUATION-DEYE-SIEYUAN-20260813-001/评估任务清单.md`
- 生成工具:`ai-valuation-analyst/tools/generate_deye_sieyuan_20260813.py`
ana-data/cases/股票估值/ANA-STOCK-VALUATION-DEYE-SIEYUAN-20260813-001/评估任务清单.md
New file
@@ -0,0 +1,10 @@
# 德业股份与思源电气估值任务清单
- 案例:`ANA-STOCK-VALUATION-DEYE-SIEYUAN-20260813-001`
- 方法:`ana-doc/股票估值/股票价格合理性评估操作手册.md`
- 基准日:2026-08-13
| 代码 | 公司 | 状态 | 正式报告 |
|---|---|---|---|
| 605117.SH | 德业股份 | PASS | `ana-data/result/股票估值/20260813_deye_valuation/德业股份价格合理性评估_20260813.md` |
| 002028.SZ | 思源电气 | PASS | `ana-data/result/股票估值/20260813_sieyuan_electric_valuation/思源电气价格合理性评估_20260813.md` |
ana-data/cases/股票估值/目录说明.md
@@ -17,5 +17,6 @@
- `BATCH-STOCK-VALUATION-20260806-005/估值任务清单.md`:十张图片89个唯一证券代码的增量估值任务;其中58只已有估值按代码跳过,31只新增估值,含截图哈希、证券身份、逐股结论、QA和MySQL导入状态。
- `BATCH-STOCK-VALUATION-20260806-006/估值任务清单.md`:33批、528只军工调研企业的完整估值覆盖,以及盛达资源和追加截图标的;包含461份新数值估值、2份特殊结论、调研母表哈希、截图哈希、MySQL导入和2026-08-06前复权日更证据。
- `DEFENSE-PRIORITY-VALUATION-20260808-001/估值输入与证据索引.md`:对上游军工研究筛出的中无人机、航天南湖、国科军工、国睿科技、北方导航进行独立估值所使用的法定财报、行情、机构一致预期、订单代理字段和可比公司底稿。
- `ANA-STOCK-VALUATION-DEYE-SIEYUAN-20260813-001/评估任务清单.md`:德业股份、思源电气的2026-08-13增量估值范围、状态和正式结果入口;V2历史股本门禁失败如实保留,并以交易所股本变动公告、法定财报和本地前复权日K补足正式估值证据。
批次清单是任务范围和结果入口索引,不替代公司结果包中的来源证据。V2缓存、失败运行和其他可重建文件统一放入 `../../tmp/股票估值/`,不进入正式版本控制提交。
ana-data/result/股票估值/20260813_deye_sieyuan_batch_valuation/batch_metrics.json
New file
@@ -0,0 +1,81 @@
{
  "as_of": "2026-08-13",
  "rows": [
    {
      "ticker": "605117.SH",
      "company": "德业股份",
      "price": 90.71,
      "base_low": 84.82356850120013,
      "base_high": 139.4876459797513,
      "optimistic_high": 212.0589212530003,
      "label": "基本合理",
      "normalized_profit": 3569477849.19,
      "normalized_pe": 32.35621347300657,
      "pb": 9.988133078474247,
      "consensus_count": 23,
      "consensus_2026": 7366799026.019884,
      "forward_pe": 15.677743734779098,
      "market": {
        "price": 90.71,
        "date": "2026-08-13",
        "amount": 1706991635.0,
        "source": "xtquant",
        "source_batch_id": "FKL_20260813_161015_179d5321_1d_20260813_00016",
        "updated_at": "2026-08-13 16:21:17",
        "return_20d": 0.062177985948477676,
        "return_60d": -0.18506872697870813,
        "ma60": 97.408,
        "distance_to_ma60": -0.06876231931668864,
        "amount_ratio_5d_to_60d": 0.972624949983733,
        "sample_count": 103
      },
      "report_path": "ana-data/result/股票估值/20260813_deye_valuation/德业股份价格合理性评估_20260813.md",
      "snapshot_path": "ana-data/result/股票估值/20260813_deye_valuation/德业股份估值快照_20260813.json",
      "qa": {
        "error_count": 0,
        "info_count": 0,
        "issues": [],
        "status": "PASS",
        "warning_count": 0
      }
    },
    {
      "ticker": "002028.SZ",
      "company": "思源电气",
      "price": 167.58,
      "base_low": 126.25015736225966,
      "base_high": 184.00832651989262,
      "optimistic_high": 252.5003147245193,
      "label": "基本合理",
      "normalized_profit": 3007392556.91,
      "normalized_pe": 43.60708757366412,
      "pb": 8.136680284398523,
      "consensus_count": 17,
      "consensus_2026": 4309337598.99325,
      "forward_pe": 30.43243365945566,
      "market": {
        "price": 167.58,
        "date": "2026-08-13",
        "amount": 1858419916.0,
        "source": "xtquant",
        "source_batch_id": "FKL_20260813_161015_179d5321_1d_20260813_00002",
        "updated_at": "2026-08-13 16:17:25",
        "return_20d": 0.053432235353281454,
        "return_60d": -0.1405713113492999,
        "ma60": 174.2086666666667,
        "distance_to_ma60": -0.03805015441252446,
        "amount_ratio_5d_to_60d": 0.6901672033011779,
        "sample_count": 103
      },
      "report_path": "ana-data/result/股票估值/20260813_sieyuan_electric_valuation/思源电气价格合理性评估_20260813.md",
      "snapshot_path": "ana-data/result/股票估值/20260813_sieyuan_electric_valuation/思源电气估值快照_20260813.json",
      "qa": {
        "error_count": 0,
        "info_count": 0,
        "issues": [],
        "status": "PASS",
        "warning_count": 0
      }
    }
  ]
}
ana-data/result/股票估值/20260813_deye_sieyuan_batch_valuation/德业股份与思源电气估值汇总_20260813.md
New file
@@ -0,0 +1,25 @@
# 德业股份与思源电气价格合理性评估汇总(2026-08-13)
- 价格基准:2026-08-13完整交易日前复权收盘价。
- 信息上限:2026-08-13;最新经营信息分别为德业股份2026H1业绩预告、思源电气2026H1业绩快报。
- 估值区间为条件化研究结论,不是目标价、交易指令或收益承诺。
| 公司 | 收盘价 | TTM扣非利润 | TTM扣非PE | 2026机构利润 | 前瞻PE | 基准合理区间 | 乐观上沿 | 判定 |
|---|---:|---:|---:|---:|---:|---:|---:|---|
| [德业股份](../../../../ana-data/result/股票估值/20260813_deye_valuation/德业股份价格合理性评估_20260813.md) | 90.71元 | 35.69亿元 | 32.36倍 | 73.67亿元(23家覆盖池) | 15.68倍 | 84.82—139.49元 | 212.06元 | 基本合理 |
| [思源电气](../../../../ana-data/result/股票估值/20260813_sieyuan_electric_valuation/思源电气价格合理性评估_20260813.md) | 167.58元 | 30.07亿元 | 43.61倍 | 43.09亿元(17家覆盖池) | 30.43倍 | 126.25—184.01元 | 252.50元 | 基本合理 |
## 核心判断
- 德业股份:当前价低于基准中枢,2026H1预告强、现金流好,估值看起来更便宜;但外销占比约80%,储能景气、贸易政策、汇率和电池包毛利率是主要折价来源。
- 思源电气:当前价位于基准区间中上部,订单和海外扩张具备支撑;但2026H1利润增速明显慢于收入,应收与海外EPC风险使其不宜直接套用机构目标价。
- 两家公司当前价均未高于各自基准合理区间上沿,因此按手册规则均未识别估值泡沫;若正式半年报或全年利润低于情景下限,必须下修合理区间。
## 量价显影
| 公司 | 20日涨跌 | 60日涨跌 | MA60 | 相对MA60 | 近5日/60日成交额比 |
|---|---:|---:|---:|---:|---:|
| 德业股份 | 6.22% | -18.51% | 97.41元 | -6.88% | 0.97 |
| 思源电气 | 5.34% | -14.06% | 174.21元 | -3.81% | 0.69 |
量价只用于识别市场情绪和拥挤度,不反推企业价值。
ana-data/result/股票估值/20260813_deye_valuation/calculation/run_manifest.json
New file
@@ -0,0 +1,20 @@
{
  "artifacts": {
    "valuation_report.md": {
      "bytes": 12387,
      "sha256": "c698a9ce0737b48b54fbaa3aaaf0d5fb16e078f51c72ef0f0bf50641b00ef9ee"
    },
    "valuation_results.json": {
      "bytes": 9060,
      "sha256": "a0b6029297a52cfa91bff9c271986be619e3915f0d3af7a5a435e6f835380a9e"
    }
  },
  "engine_fingerprint": "adc4956be60736acd2804c0f4ec676f859b47506d8a418aefbc07444c7cc4b45",
  "engine_version": "1.0.0",
  "fingerprint": "a17a9670b30eafd1e042a043e2ce7468046fad270cf0fec8bc6357c92512d764",
  "manifest_version": "1.0.0",
  "qa_status": "PASS",
  "snapshot_path": "E:\\mb-ms-doc\\project-info\\ana-data\\result\\股票估值\\20260813_deye_valuation\\德业股份估值快照_20260813.json",
  "source_registry_path": "E:\\mb-ms-doc\\project-info\\dev\\ana-dev\\stock_valuation_pipeline\\source_registry.json",
  "status": "COMPLETE"
}
ana-data/result/股票估值/20260813_deye_valuation/calculation/valuation_report.md
New file
@@ -0,0 +1,211 @@
# 德业股份(605117.SH)价格合理性评估(流水线生成底稿)
> 估值基准日:2026-08-13
> 价格时点:2026-08-13T15:00:00+08:00
> 最新经营信息日:2026-07-09
> 货币:CNY;金额计算统一使用元,表格按亿元展示。
> 本文是研究计算底稿,不构成交易指令或收益承诺。
## 0. 结论摘要
**机械计算结论:当前价格处于基准合理区间。**
| 指标 | 结果 |
|---|---:|
| 当前价格 | 90.71 元/股 |
| 总市值 | 1154.95 亿元 |
| 企业价值 EV | 1083.27 亿元 |
| TTM 归母净利润 | 36.5312 亿元 |
| TTM 扣非净利润 | 35.6948 亿元 |
| TTM 收入 | 141.1686 亿元 |
| 报告 PE | 31.62 倍 |
| PB | 9.99 倍 |
| PS | 8.18 倍 |
| 自动质检 | PASS(错误 0 / 警告 0) |
> **人工判断:** 90.71元位于基准合理区间84.82至139.49元内,判断为基本合理。当前结论依赖2026年利润兑现,不构成目标价或交易指令。
## 1. 市场与资本结构快照
| 项目 | 数值 | 公式或口径 |
|---|---:|---|
| 股价 | 90.71 元 | 最近完整交易日前复权收盘价 |
| 完全摊薄股本 | 12.732310 亿股 | 股本日:2026-07-02 |
| 复算总市值 | 1154.9479 亿元 | 股价 × 完全摊薄股本 |
| 归母净资产 | 115.6320 亿元 | 截至 2026-03-31 |
| 每股净资产 | 9.0818 元 | 净资产 ÷ 摊薄股本 |
| 企业价值 | 1083.2744 亿元 | 市值 + 有息负债 + 少数股东权益 - 可用现金 - 非经营金融资产 |
## 2. 信息来源与固定优先级
本次使用信源注册表版本 `1.0.0`。来源身份和优先级沿用固定注册表;本次只检查公司、报告期、版本、修订状态和数据口径。
| ID | 等级 | 来源 | 发布日 | 支持字段 | 修订状态 |
|---|---|---|---|---|---|
| SRC-ANNUAL-2025 | A1 | [2025年年度报告](https://static.cninfo.com.cn/finalpage/2026-04-10/1225089135.PDF) | 2026-04-10 | financials.annual, business, profit_sources, risks | current |
| SRC-CURRENT-2026Q1 | A1 | [2026年第一季度报告](https://static.cninfo.com.cn/finalpage/2026-04-30/1225254498.PDF) | 2026-04-30 | financials.current_cumulative, financials.prior_year_same_period, balance_sheet, balance_sheet.equity | current |
| SRC-LATEST-OPERATING | A1 | [2026年半年度业绩预增公告](https://static.sse.com.cn/disclosure/listedinfo/announcement/c/new/2026-07-09/605117_20260709_IHEV.pdf) | 2026-07-09 | latest_operating_information, valuation.scenarios | current |
| SRC-SHARES-A1 | A1 | [关于2022年股票期权激励计划2026年第二季度自主行权结果暨股份变动的公告](https://static.sse.com.cn/disclosure/listedinfo/announcement/c/new/2026-07-02/605117_20260702_MIX1.pdf) | 2026-07-02 | market.diluted_shares, market.shares_date | current |
| SRC-LOCAL-FRONT-KLINE | B1 | [trading_xuntou前复权日K完整收盘价](mysql://trading_xuntou/cn_stock_kline_1d_front) | 2026-08-13 | market.price, market.price_timestamp, market.amount, analysis.kline | current |
| SRC-EM-QUOTE-SHARES | B1 | [东方财富当前总股本与总市值快照交叉核验](https://push2delay.eastmoney.com/api/qt/stock/get) | 2026-08-13 | market.diluted_shares, market.platform_market_cap | current |
| SRC-EM-CONSENSUS-20260813 | B2 | [东方财富盈利预测汇总](https://datacenter-web.eastmoney.com/api/data/v1/get?reportName=RPT_WEB_RESPREDICT) | 2026-08-13 | institutions | current |
停止搜索规则:取得法定披露或合规效率型来源、日期与口径明确、无修订、数字可勾稽且无数量级异常后,不再为同一数字寻找更多转载来源。
## 3. 业务与利润来源
- 2025年储能逆变器收入52.17亿元、毛利率51.10%,是毛利贡献的第一来源;储能电池包收入38.32亿元、毛利率31.81%,是增速最快的第二增长极。
- 光伏逆变器收入10.54亿元,环境电器和热交换器合计约20.05亿元;2025年外销收入97.47亿元,占主营收入约80.0%,利润高度依赖海外储能需求和渠道。
- 2026年上半年业绩预告归母净利润26.68至27.28亿元、扣非24.93至25.53亿元,增长主要来自欧洲、中东、东南亚户储及工商业储能销售放量。
### 3.1 利润来源可靠性
- 2025年经营现金流39.86亿元,高于归母净利润31.71亿元;TTM简化自由现金流约40.60亿元,现金转化较好。
- 2025年储能电池包毛利率同比下降9.49个百分点,且逆变器、电池包期末库存分别同比增加52.55%和49.18%,高增长同时带来库存与价格压力。
- 2025年合同负债4.80亿元、同比增长81.43%;2026Q1升至6.05亿元,预收增长对后续收入有一定支撑。
- 法定TTM归母36.53亿元、TTM扣非35.69亿元;主模型以最新半年信息和机构预期构造2026全年情景。
- TTM经营现金流53.40亿元、资本开支12.80亿元、简化自由现金流40.60亿元。
## 4. TTM 与归一化利润
```text
TTM = 最近完整年度 + 本期累计/预告 - 上年同期累计
TTM 收入 = 122.2374 亿元 + 44.5944 亿元 - 25.6632 亿元 = 141.1686 亿元
TTM 归母 = 31.7077 亿元 + 11.8789 亿元 - 7.0554 亿元 = 36.5312 亿元
TTM 扣非 = 30.3501 亿元 + 11.4705 亿元 - 6.1258 亿元 = 35.6948 亿元
```
| 归一化调整 | 对可持续利润的带符号影响 | 依据 |
|---|---:|---|
| 以TTM扣非归母利润替代TTM归母利润作为核心盈利代理 | -0.8364 亿元 | 2025年报加2026Q1减2025Q1;最新半年预告/快报仅用于情景利润,不混入TTM法定口径 |
归一化结果为 **35.6948 亿元**;只有调整项证据充分时才可用作主估值利润。
## 5. 机构盈利预期
覆盖状态:`available`。早于最新经营信息日、或低于已实现累计利润的预测自动排除出当前一致预期。
| 年度 | 机构数 | 利润最小值 | 利润均值 | 利润中位数 | 利润最大值 | EPS 均值 | 对应 PE |
|---|---:|---:|---:|---:|---:|---:|---:|
| 2026 | 1 | 73.67 亿元 | 73.67 亿元 | 73.67 亿元 | 73.67 亿元 | 5.786 | 15.68 倍 |
| 2027 | 1 | 91.78 亿元 | 91.78 亿元 | 91.78 亿元 | 91.78 亿元 | 7.209 | 12.58 倍 |
| 2028 | 1 | 109.76 亿元 | 109.76 亿元 | 109.76 亿元 | 109.76 亿元 | 8.620 | 10.52 倍 |
| 机构 | 研报日期 | 预测 | 核心假设 | 状态 | 纳入一致预期 |
|---|---|---|---|---|---|
| 东方财富公开一致预期汇总(覆盖池23家) | 2026-08-13 | 2026: 利润 73.67 亿元, EPS 5.786; 2027: 利润 91.78 亿元, EPS 7.209; 2028: 利润 109.76 亿元, EPS 8.620 | 汇总快照不替代逐家研报;覆盖池数量不等于每个年度的有效样本数。 | CURRENT | 是 |
## 6. 利润质量、现金流与资产负债
| 指标 | 结果 | 判断入口 |
|---|---:|---|
| 最近年度 CFO | 39.8627 亿元 | 与利润、营运资本对照 |
| 最近年度资本开支 | 12.8697 亿元 | 现金流出正数口径 |
| 最近年度简化 FCF | 26.9930 亿元 | CFO - 资本开支 |
| 本期累计简化 FCF | 15.7262 亿元 | 仅在 CFO 与资本开支均可得时计算 |
| 可用现金 | 64.0960 亿元 | 已排除受限或经营最低现金(由输入方确认) |
| 有息负债 | 26.6276 亿元 | 最新时点 |
- 需结合应收、存货、合同资产与回款补充人工解释
## 7. 模型选择
- 公司类型:户用及工商业储能逆变器、储能电池包与环境电器
- 主模型:2026年前瞻PE情景;TTM扣非、PB、现金流、最新半年预告/快报与反向利润交叉验证
- 交叉验证:最新半年预告/快报, 机构一致预期, PB/ROE, 经营现金流与资本开支, 订单/合同负债/应收, 前复权量价
## 8. 悲观、基准、乐观情景估值
| 情景 | 方法 | 核心假设 | 股权价值区间 | 每股价值区间 | 相对当前价 | 五年年化区间 |
|---|---|---|---:|---:|---:|---:|
| 悲观 | PE | 需求、订单或毛利率低于预期,利润下修且估值回归行业低位。 | 540.00 亿元~935.00 亿元 | 42.41~73.44 元 | -53.2%~-19.0% | -14.1%~-4.1% |
| 基准 | PE | 结合2026年最新业绩预告/快报、机构一致预期、订单与现金流,给予与增长持续性和风险相匹配的PE区间。 | 1080.00 亿元~1776.00 亿元 | 84.82~139.49 元 | -6.5%~53.8% | -1.3%~9.0% |
| 乐观 | PE | 订单、海外扩张、产品结构和利润率超预期,利润与估值中枢同步上移。 | 1872.00 亿元~2700.00 亿元 | 147.03~212.06 元 | 62.1%~133.8% | 10.1%~18.5% |
## 9. 当前价格反向隐含利润
| 假设 PE | 隐含 EPS | 隐含归母利润 | 占 TTM 收入 |
|---:|---:|---:|---:|
| 12 倍 | 7.559 元 | 96.25 亿元 | 68.2% |
| 15 倍 | 6.047 元 | 77.00 亿元 | 54.5% |
| 18 倍 | 5.039 元 | 64.16 亿元 | 45.5% |
| 20 倍 | 4.536 元 | 57.75 亿元 | 40.9% |
| 22 倍 | 4.123 元 | 52.50 亿元 | 37.2% |
| 25 倍 | 3.628 元 | 46.20 亿元 | 32.7% |
| 28 倍 | 3.240 元 | 41.25 亿元 | 29.2% |
| 30 倍 | 3.024 元 | 38.50 亿元 | 27.3% |
| 32 倍 | 2.835 元 | 36.09 亿元 | 25.6% |
| 35 倍 | 2.592 元 | 33.00 亿元 | 23.4% |
| 40 倍 | 2.268 元 | 28.87 亿元 | 20.5% |
## 10. 持有期回报压力测试
若要求 5 年年化回报 10.0%,并假设累计每股分红 0.00 元,则所需退出价格为 **146.09 元**。
| 退出 PE | 届时所需归母利润 |
|---:|---:|
| 12 倍 | 155.00 亿元 |
| 15 倍 | 124.00 亿元 |
| 18 倍 | 103.34 亿元 |
| 20 倍 | 93.00 亿元 |
| 22 倍 | 84.55 亿元 |
| 25 倍 | 74.40 亿元 |
| 28 倍 | 66.43 亿元 |
| 30 倍 | 62.00 亿元 |
| 32 倍 | 58.13 亿元 |
| 35 倍 | 53.14 亿元 |
| 40 倍 | 46.50 亿元 |
## 11. 自动质检与异常驱动复核
总体状态:`PASS`。ERROR 会阻止把底稿当作正式结论;WARNING 只要求局部补查,不应重跑全部流程。
| 异常 ID | 严重度 | 数据项 | 现象 | 需要补什么 | 修复后重算范围 |
|---|---|---|---|---|---|
| — | PASS | — | 未发现自动异常 | — | — |
## 12. 风险、上调与下调触发器
### 12.1 主要风险
- 外销约占主营收入80%,欧盟、美国及其他市场的关税、贸易限制、认证和补贴规则变化会直接影响订单和利润率。
- 储能景气和能源价格具有周期性;机构2026年利润预期较2025年大幅增长,若下半年需求或毛利率回落,年度利润容易低于一致预期。
- 储能电池包毛利率已显著下降,锂电池、IGBT、铜铝及其他元器件价格波动会侵蚀利润;库存高增长增加跌价与渠道去库存风险。
- 汇率、海外应收与渠道回款、股权激励持续行权会影响归母利润和每股收益。
- 机构汇总口径不是法定事实,且覆盖池数量不等于每个年度的有效样本数。
### 12.2 上调触发器
- 2026年正式半年报达到预告中枢且经营现金流、库存周转同步改善。
- 欧洲、中东、东南亚之外的新市场持续放量,储能电池包毛利率止跌回升。
### 12.3 下调或失效触发器
- 2026年归母净利润低于60亿元或扣非利润与现金流明显背离。
- 贸易限制、补贴退坡、渠道去库存或产品降价使储能业务毛利率继续显著下滑。
## 13. 复评增量清单
下次复评默认只更新:价格与市值、最新股本、最新财报/预告及修正、机构预测、现金债务、重大合同和公司行动。历史年报原文及已验证公式在没有重述触发器时直接复用。
## 14. 复算摘要
```text
总市值 = 90.71 × 1273231036.0 = 115494787275.560 元
TTM 收入 = 年度 + 本期累计 - 上年同期 = 14116857363.82 元
TTM 归母 = 年度 + 本期累计 - 上年同期 = 3653120245.42 元
TTM 扣非 = 年度 + 本期累计 - 上年同期 = 3569477849.19 元
PB = 市值 ÷ 归母净资产 = 9.988133078474246382722735733
PS = 市值 ÷ TTM 收入 = 8.181338402664662703783314877
```
## 15. 结论边界
- 自动引擎冻结算术、口径、机构时效和异常检查,不替代对利润持续性、订单真实性、竞争格局和治理风险的人工判断。
- 机构预测、公司预告和本报告情景已分开标记,不把预测写成事实。
- 情景价值不是目标价承诺;若自动质检存在 ERROR,必须先修复输入再形成正式判断。
- 未披露的资产注入、并购或政策收益不得计入基础价值。
---
生成器版本:`1.0.0`;输入快照:`SNAPSHOT-605117-20260813-V1`。
ana-data/result/股票估值/20260813_deye_valuation/calculation/valuation_results.json
New file
@@ -0,0 +1,278 @@
{
  "conclusion": {
    "base_midpoint": "112.1556072404757183440193803",
    "price_label": "当前价格处于基准合理区间",
    "price_position": "WITHIN_BASE_RANGE",
    "safety_margin_to_base_midpoint": "0.1912129742607843137254901960"
  },
  "engine_version": "1.0.0",
  "holding_period": {
    "cumulative_dividend_per_share": "0",
    "required_exit_price": "146.0893621",
    "required_profit_by_exit_pe": [
      {
        "exit_pe": "12",
        "required_profit": "15500459154.59684463333333333"
      },
      {
        "exit_pe": "15",
        "required_profit": "12400367323.67747570666666667"
      },
      {
        "exit_pe": "18",
        "required_profit": "10333639436.39789642222222222"
      },
      {
        "exit_pe": "20",
        "required_profit": "9300275492.75810678"
      },
      {
        "exit_pe": "22",
        "required_profit": "8454795902.50736980"
      },
      {
        "exit_pe": "25",
        "required_profit": "7440220394.206485424"
      },
      {
        "exit_pe": "28",
        "required_profit": "6643053923.39864770"
      },
      {
        "exit_pe": "30",
        "required_profit": "6200183661.838737853333333333"
      },
      {
        "exit_pe": "32",
        "required_profit": "5812672182.9738167375"
      },
      {
        "exit_pe": "35",
        "required_profit": "5314443138.71891816"
      },
      {
        "exit_pe": "40",
        "required_profit": "4650137746.37905339"
      }
    ],
    "required_return": "0.1",
    "years": 5
  },
  "institutions": {
    "coverage_status": "available",
    "detail": [
      {
        "core_assumption": "汇总快照不替代逐家研报;覆盖池数量不等于每个年度的有效样本数。",
        "estimates": {
          "2026": {
            "eps": "5.785909090909",
            "profit": "7366799026.019884"
          },
          "2027": {
            "eps": "7.208523809524",
            "profit": "9178116238.03091"
          },
          "2028": {
            "eps": "8.620285714286",
            "profit": "10975615310.616364"
          }
        },
        "included": true,
        "institution": "东方财富公开一致预期汇总(覆盖池23家)",
        "report_date": "2026-08-13",
        "source_id": "SRC-EM-CONSENSUS-20260813",
        "statuses": [
          "CURRENT"
        ]
      }
    ],
    "summary": {
      "2026": {
        "eps_mean": "5.785909090909",
        "eps_profit_reconciliation_gap": "0.00000000000000003417006478809845062165992777",
        "institution_count": 1,
        "pe_on_mean": "15.67774373477909830841334159",
        "profit_max": "7366799026.019884",
        "profit_mean": "7366799026.019884",
        "profit_median": "7366799026.019884",
        "profit_min": "7366799026.019884"
      },
      "2027": {
        "eps_mean": "7.208523809524",
        "eps_profit_reconciliation_gap": "0.00000000000000008859508628041212283054465945",
        "institution_count": 1,
        "pe_on_mean": "12.58371372515308924209721019",
        "profit_max": "9178116238.03091",
        "profit_mean": "9178116238.03091",
        "profit_median": "9178116238.03091",
        "profit_min": "9178116238.03091"
      },
      "2028": {
        "eps_mean": "8.620285714286",
        "eps_profit_reconciliation_gap": "0.00000000000000002001746542514908487082291967",
        "institution_count": 1,
        "pe_on_mean": "10.52285307082925560278691990",
        "profit_max": "10975615310.616364",
        "profit_mean": "10975615310.616364",
        "profit_median": "10975615310.616364",
        "profit_min": "10975615310.616364"
      }
    }
  },
  "meta": {
    "as_of_date": "2026-08-13",
    "code": "605117.SH",
    "company": "德业股份",
    "currency": "CNY",
    "latest_operating_info_date": "2026-07-09",
    "market": "上海证券交易所",
    "report_period_end": "2026-03-31"
  },
  "metrics": {
    "annual_cash_conversion": "1.257192844332407611854733803",
    "annual_fcf": "2699300570.02",
    "book_value_per_share": "9.081777273822282164350257010",
    "current_fcf": "1572617659.10",
    "deduct_pe": "32.35621347300657235150942976",
    "diluted_shares": "1273231036.0",
    "enterprise_value": "108327441923.060",
    "market_cap": "115494787275.560",
    "normalized_eps": "2.803480081984115237982621718",
    "normalized_pe": "32.35621347300657253280324830",
    "normalized_profit": "3569477849.18999998",
    "pb": "9.988133078474246382722735733",
    "price": "90.71",
    "ps": "8.181338402664662703783314877",
    "reported_pe": "31.61538069280868692265571770",
    "ttm_attributable_profit": "3653120245.42",
    "ttm_deduct_profit": "3569477849.19",
    "ttm_eps": "2.869173105375040512286098562",
    "ttm_revenue": "14116857363.82"
  },
  "normalization_adjustments": [
    {
      "amount": "-83642396.23000002",
      "basis": "2025年报加2026Q1减2025Q1;最新半年预告/快报仅用于情景利润,不混入TTM法定口径",
      "description": "以TTM扣非归母利润替代TTM归母利润作为核心盈利代理"
    }
  ],
  "qa": {
    "error_count": 0,
    "info_count": 0,
    "issues": [],
    "status": "PASS",
    "warning_count": 0
  },
  "reverse_pe": [
    {
      "implied_eps": "7.559166666666666666666666667",
      "implied_margin": "0.6817782002220552253152762398",
      "implied_profit": "9624565606.296666666666666667",
      "pe": "12"
    },
    {
      "implied_eps": "6.047333333333333333333333333",
      "implied_margin": "0.5454225601776441802522209918",
      "implied_profit": "7699652485.037333333333333333",
      "pe": "15"
    },
    {
      "implied_eps": "5.039444444444444444444444444",
      "implied_margin": "0.4545188001480368168768508265",
      "implied_profit": "6416377070.864444444444444444",
      "pe": "18"
    },
    {
      "implied_eps": "4.5355",
      "implied_margin": "0.4090669201332331351891657439",
      "implied_profit": "5774739363.778",
      "pe": "20"
    },
    {
      "implied_eps": "4.123181818181818181818181818",
      "implied_margin": "0.3718790183029392138083324944",
      "implied_profit": "5249763057.980",
      "pe": "22"
    },
    {
      "implied_eps": "3.6284",
      "implied_margin": "0.3272535361065865081513325951",
      "implied_profit": "4619791491.0224",
      "pe": "25"
    },
    {
      "implied_eps": "3.239642857142857142857142857",
      "implied_margin": "0.2921906572380236679922612456",
      "implied_profit": "4124813831.270",
      "pe": "28"
    },
    {
      "implied_eps": "3.023666666666666666666666667",
      "implied_margin": "0.2727112800888220901261104959",
      "implied_profit": "3849826242.518666666666666667",
      "pe": "30"
    },
    {
      "implied_eps": "2.8346875",
      "implied_margin": "0.2556668250832707094932285899",
      "implied_profit": "3609212102.36125",
      "pe": "32"
    },
    {
      "implied_eps": "2.591714285714285714285714286",
      "implied_margin": "0.2337525257904189343938089965",
      "implied_profit": "3299851065.016",
      "pe": "35"
    },
    {
      "implied_eps": "2.26775",
      "implied_margin": "0.2045334600666165675945828719",
      "implied_profit": "2887369681.889",
      "pe": "40"
    }
  ],
  "scenarios": [
    {
      "assumption": "需求、订单或毛利率低于预期,利润下修且估值回归行业低位。",
      "cagr_high": "-0.041372583562126364",
      "cagr_low": "-0.14105318171967884",
      "equity_value_high": "93500000000.00",
      "equity_value_low": "54000000000.00",
      "method": "pe",
      "name": "悲观",
      "price_high": "73.43521902650195843953649901",
      "price_low": "42.41178425060006155866279087",
      "role": "pessimistic",
      "upside_to_high": "-0.1904396535497524149538474368",
      "upside_to_low": "-0.5324464309271297369786926373"
    },
    {
      "assumption": "结合2026年最新业绩预告/快报、机构一致预期、订单与现金流,给予与增长持续性和风险相匹配的PE区间。",
      "cagr_high": "0.08987355691900722",
      "cagr_low": "-0.013329202811457996",
      "equity_value_high": "177600000000.00",
      "equity_value_low": "108000000000.00",
      "method": "pe",
      "name": "基准",
      "price_high": "139.4876459797513135707131789",
      "price_low": "84.82356850120012311732558175",
      "role": "base",
      "upside_to_high": "0.537731738284106642825633104",
      "upside_to_low": "-0.0648928618542594739573852745"
    },
    {
      "assumption": "订单、海外扩张、产品结构和利润率超预期,利润与估值中枢同步上移。",
      "cagr_high": "0.18511440279909497",
      "cagr_low": "0.10140918079810435",
      "equity_value_high": "270000000000.00",
      "equity_value_low": "187200000000.00",
      "method": "pe",
      "name": "乐观",
      "price_high": "212.0589212530003077933139544",
      "price_low": "147.0275187354135467366976750",
      "role": "optimistic",
      "upside_to_high": "1.337767845364351315106536814",
      "upside_to_low": "0.620852372785950245140532190"
    }
  ]
}
ana-data/result/股票估值/20260813_deye_valuation/source_evidence_manifest.json
New file
@@ -0,0 +1,68 @@
{
  "case_id": "ANA-STOCK-VALUATION-DEYE-SIEYUAN-20260813-001",
  "ticker": "605117.SH",
  "company": "德业股份",
  "as_of": "2026-08-13",
  "v2_status": "BLOCKED",
  "v2_failure": {
    "complete": false,
    "error": "ValueError: E_HISTORICAL_SHARES_UNPROVEN:quote f124 缺失或为 0",
    "error_code": "E_CORE_INPUT",
    "error_type": "CoreInputError",
    "recorded_at": "2026-08-13T22:29:09.017+08:00",
    "rollback_errors": [],
    "run_id": "7a9fe2cfb6774a06b3d321261e07a132",
    "schema_version": 2,
    "status": "BLOCKED"
  },
  "v2_failure_package": "ai-valuation-analyst/tmp/valuation_20260813_deye_sieyuan_v2/605117_SH.failed-7a9fe2cfb6774a06b3d321261e07a132",
  "v2_raw_artifact_hashes": [
    "1c6188170bb8165b068b41bab6269ebb265c8423c8b1eff123a8464768fd0633",
    "52c16423d8a546d87282df0465af2f7f541f9bc9a741b7c7fdeed8ddbc86933d",
    "6f8d3b646430876d01841239dc4d4d1f0ccffe5187aa76da8dcbe78f4b306525",
    "7cd0e96f4e30517828ddea6270f152cd54df434569f3c19603565a44b1a567fe",
    "9a3d7827fd92e1058ac340dd8a641bf1fffd40a3d17cf8d2abd3f6d729aabe0e",
    "a654d3bb0afcaa214a75fe8513ec396d5a1dfd364ea75898b814f954c7c41432",
    "d2438c15d3204c7433a822d1cf43680c3983c2776f87e8a40570f4e505c559a6",
    "db2c325ca21e22f43c55e8f823735d0cc904ab4a79ffb6df81085309f7421100",
    "e3d944eb4fda775138ef38843f5c5766df0fb536d18747a62f60084d393eb2c7",
    "e59514d6acc15e57a7fbd77a8f954975ee8a11f940a0e96c88535ea1c274bc33"
  ],
  "quote_raw_hash": "a654d3bb0afcaa214a75fe8513ec396d5a1dfd364ea75898b814f954c7c41432",
  "consensus_raw_hash": "1c6188170bb8165b068b41bab6269ebb265c8423c8b1eff123a8464768fd0633",
  "market_contract": {
    "table": "trading_xuntou.cn_stock_kline_1d_front",
    "source": "xtquant",
    "source_batch_id": "FKL_20260813_161015_179d5321_1d_20260813_00016",
    "updated_at": "2026-08-13 16:21:17",
    "trade_date": "2026-08-13"
  },
  "share_proof": {
    "current_shares": 1273231036.0,
    "a1_title": "关于2022年股票期权激励计划2026年第二季度自主行权结果暨股份变动的公告",
    "a1_publish_date": "2026-07-02",
    "a1_url": "https://static.sse.com.cn/disclosure/listedinfo/announcement/c/new/2026-07-02/605117_20260702_MIX1.pdf",
    "quote_shares": 1273231036.0,
    "quote_market_cap": 115494787275.56,
    "price_times_shares": 115494787275.56
  },
  "bounded_gaps": [
    "V2 quote f124=0,故端到端V2按历史股本时间戳门禁诚实阻断;正式估值由后续A1股本公告和估值日总股本/总市值快照补证。",
    "机构汇总覆盖池不是逐家研报原文;本报告披露机构数、EPS和推算利润,不将其写成法定事实。",
    "最新半年预告/快报提供利润锚,但资产负债表、现金流明细仍以2026Q1法定报告为最新完整结构口径。"
  ],
  "checks": {
    "v1_qa": {
      "error_count": 0,
      "info_count": 0,
      "issues": [],
      "status": "PASS",
      "warning_count": 0
    },
    "label": "基本合理",
    "base_low": 84.82356850120013,
    "base_high": 139.4876459797513,
    "optimistic_high": 212.0589212530003,
    "price": 90.71
  }
}
ana-data/result/股票估值/20260813_deye_valuation/德业股份价格合理性评估_20260813.md
New file
@@ -0,0 +1,229 @@
# 德业股份(605117.SH)价格合理性评估
> 估值基准日:2026-08-13
> 价格时点:2026-08-13T15:00:00+08:00
> 最新经营信息日:2026-07-09
> 货币:CNY;金额计算统一使用元,表格按亿元展示。
> 本文为按《股票价格合理性评估操作手册》形成的条件化研究结论,不构成交易指令或收益承诺。
## 0. 结论摘要
**机械计算结论:当前价格处于基准合理区间。**
| 指标 | 结果 |
|---|---:|
| 当前价格 | 90.71 元/股 |
| 总市值 | 1154.95 亿元 |
| 企业价值 EV | 1083.27 亿元 |
| TTM 归母净利润 | 36.5312 亿元 |
| TTM 扣非净利润 | 35.6948 亿元 |
| TTM 收入 | 141.1686 亿元 |
| 报告 PE | 31.62 倍 |
| PB | 9.99 倍 |
| PS | 8.18 倍 |
| 自动质检 | PASS(错误 0 / 警告 0) |
> **人工判断:** 90.71元位于基准合理区间84.82至139.49元内,判断为基本合理。当前结论依赖2026年利润兑现,不构成目标价或交易指令。
## 1. 市场与资本结构快照
| 项目 | 数值 | 公式或口径 |
|---|---:|---|
| 股价 | 90.71 元 | 最近完整交易日前复权收盘价 |
| 完全摊薄股本 | 12.732310 亿股 | 股本日:2026-07-02 |
| 复算总市值 | 1154.9479 亿元 | 股价 × 完全摊薄股本 |
| 归母净资产 | 115.6320 亿元 | 截至 2026-03-31 |
| 每股净资产 | 9.0818 元 | 净资产 ÷ 摊薄股本 |
| 企业价值 | 1083.2744 亿元 | 市值 + 有息负债 + 少数股东权益 - 可用现金 - 非经营金融资产 |
### 1.1 前复权量价显影
- 20日涨跌:6.22%;60日涨跌:-18.51%。
- 60日均线:97.41元;当前价相对MA60:-6.88%。
- 近5日/60日平均成交额比:0.97。量价用于显影情绪,不改变合理价值。
## 2. 信息来源与固定优先级
本次使用信源注册表版本 `1.0.0`。来源身份和优先级沿用固定注册表;本次只检查公司、报告期、版本、修订状态和数据口径。
| ID | 等级 | 来源 | 发布日 | 支持字段 | 修订状态 |
|---|---|---|---|---|---|
| SRC-ANNUAL-2025 | A1 | [2025年年度报告](https://static.cninfo.com.cn/finalpage/2026-04-10/1225089135.PDF) | 2026-04-10 | financials.annual, business, profit_sources, risks | current |
| SRC-CURRENT-2026Q1 | A1 | [2026年第一季度报告](https://static.cninfo.com.cn/finalpage/2026-04-30/1225254498.PDF) | 2026-04-30 | financials.current_cumulative, financials.prior_year_same_period, balance_sheet, balance_sheet.equity | current |
| SRC-LATEST-OPERATING | A1 | [2026年半年度业绩预增公告](https://static.sse.com.cn/disclosure/listedinfo/announcement/c/new/2026-07-09/605117_20260709_IHEV.pdf) | 2026-07-09 | latest_operating_information, valuation.scenarios | current |
| SRC-SHARES-A1 | A1 | [关于2022年股票期权激励计划2026年第二季度自主行权结果暨股份变动的公告](https://static.sse.com.cn/disclosure/listedinfo/announcement/c/new/2026-07-02/605117_20260702_MIX1.pdf) | 2026-07-02 | market.diluted_shares, market.shares_date | current |
| SRC-LOCAL-FRONT-KLINE | B1 | [trading_xuntou前复权日K完整收盘价](mysql://trading_xuntou/cn_stock_kline_1d_front) | 2026-08-13 | market.price, market.price_timestamp, market.amount, analysis.kline | current |
| SRC-EM-QUOTE-SHARES | B1 | [东方财富当前总股本与总市值快照交叉核验](https://push2delay.eastmoney.com/api/qt/stock/get) | 2026-08-13 | market.diluted_shares, market.platform_market_cap | current |
| SRC-EM-CONSENSUS-20260813 | B2 | [东方财富盈利预测汇总](https://datacenter-web.eastmoney.com/api/data/v1/get?reportName=RPT_WEB_RESPREDICT) | 2026-08-13 | institutions | current |
停止搜索规则:取得法定披露或合规效率型来源、日期与口径明确、无修订、数字可勾稽且无数量级异常后,不再为同一数字寻找更多转载来源。
## 3. 业务与利润来源
- 2025年储能逆变器收入52.17亿元、毛利率51.10%,是毛利贡献的第一来源;储能电池包收入38.32亿元、毛利率31.81%,是增速最快的第二增长极。
- 光伏逆变器收入10.54亿元,环境电器和热交换器合计约20.05亿元;2025年外销收入97.47亿元,占主营收入约80.0%,利润高度依赖海外储能需求和渠道。
- 2026年上半年业绩预告归母净利润26.68至27.28亿元、扣非24.93至25.53亿元,增长主要来自欧洲、中东、东南亚户储及工商业储能销售放量。
### 3.1 利润来源可靠性
- 2025年经营现金流39.86亿元,高于归母净利润31.71亿元;TTM简化自由现金流约40.60亿元,现金转化较好。
- 2025年储能电池包毛利率同比下降9.49个百分点,且逆变器、电池包期末库存分别同比增加52.55%和49.18%,高增长同时带来库存与价格压力。
- 2025年合同负债4.80亿元、同比增长81.43%;2026Q1升至6.05亿元,预收增长对后续收入有一定支撑。
- 法定TTM归母36.53亿元、TTM扣非35.69亿元;主模型以最新半年信息和机构预期构造2026全年情景。
- TTM经营现金流53.40亿元、资本开支12.80亿元、简化自由现金流40.60亿元。
## 4. TTM 与归一化利润
```text
TTM = 最近完整年度 + 本期累计/预告 - 上年同期累计
TTM 收入 = 122.2374 亿元 + 44.5944 亿元 - 25.6632 亿元 = 141.1686 亿元
TTM 归母 = 31.7077 亿元 + 11.8789 亿元 - 7.0554 亿元 = 36.5312 亿元
TTM 扣非 = 30.3501 亿元 + 11.4705 亿元 - 6.1258 亿元 = 35.6948 亿元
```
| 归一化调整 | 对可持续利润的带符号影响 | 依据 |
|---|---:|---|
| 以TTM扣非归母利润替代TTM归母利润作为核心盈利代理 | -0.8364 亿元 | 2025年报加2026Q1减2025Q1;最新半年预告/快报仅用于情景利润,不混入TTM法定口径 |
归一化结果为 **35.6948 亿元**;只有调整项证据充分时才可用作主估值利润。
## 5. 机构盈利预期
覆盖状态:`available`。东方财富公开一致预期覆盖池为 **23家**;下表按一条汇总观测进入V1,因此“机构数”列显示1,不代表仅有1家机构。早于最新经营信息日、或低于已实现累计利润的预测自动排除出当前一致预期。
| 年度 | 机构数 | 利润最小值 | 利润均值 | 利润中位数 | 利润最大值 | EPS 均值 | 对应 PE |
|---|---:|---:|---:|---:|---:|---:|---:|
| 2026 | 1 | 73.67 亿元 | 73.67 亿元 | 73.67 亿元 | 73.67 亿元 | 5.786 | 15.68 倍 |
| 2027 | 1 | 91.78 亿元 | 91.78 亿元 | 91.78 亿元 | 91.78 亿元 | 7.209 | 12.58 倍 |
| 2028 | 1 | 109.76 亿元 | 109.76 亿元 | 109.76 亿元 | 109.76 亿元 | 8.620 | 10.52 倍 |
| 机构 | 研报日期 | 预测 | 核心假设 | 状态 | 纳入一致预期 |
|---|---|---|---|---|---|
| 东方财富公开一致预期汇总(覆盖池23家) | 2026-08-13 | 2026: 利润 73.67 亿元, EPS 5.786; 2027: 利润 91.78 亿元, EPS 7.209; 2028: 利润 109.76 亿元, EPS 8.620 | 汇总快照不替代逐家研报;覆盖池数量不等于每个年度的有效样本数。 | CURRENT | 是 |
### 5.1 最新半年经营信息
- 预告口径:归母26.68至27.28亿元,扣非24.93至25.53亿元。
- 该信息用于调整2026全年情景利润,不与法定TTM公式重复相加。
## 6. 利润质量、现金流与资产负债
| 指标 | 结果 | 判断入口 |
|---|---:|---|
| 最近年度 CFO | 39.8627 亿元 | 与利润、营运资本对照 |
| 最近年度资本开支 | 12.8697 亿元 | 现金流出正数口径 |
| 最近年度简化 FCF | 26.9930 亿元 | CFO - 资本开支 |
| 本期累计简化 FCF | 15.7262 亿元 | 仅在 CFO 与资本开支均可得时计算 |
| 可用现金 | 64.0960 亿元 | 已排除受限或经营最低现金(由输入方确认) |
| 有息负债 | 26.6276 亿元 | 最新时点 |
- 需结合应收、存货、合同资产与回款补充人工解释
## 7. 模型选择
- 公司类型:户用及工商业储能逆变器、储能电池包与环境电器
- 主模型:2026年前瞻PE情景;TTM扣非、PB、现金流、最新半年预告/快报与反向利润交叉验证
- 交叉验证:最新半年预告/快报, 机构一致预期, PB/ROE, 经营现金流与资本开支, 订单/合同负债/应收, 前复权量价
## 8. 悲观、基准、乐观情景估值
| 情景 | 方法 | 核心假设 | 股权价值区间 | 每股价值区间 | 相对当前价 | 五年年化区间 |
|---|---|---|---:|---:|---:|---:|
| 悲观 | PE | 需求、订单或毛利率低于预期,利润下修且估值回归行业低位。 | 540.00 亿元~935.00 亿元 | 42.41~73.44 元 | -53.2%~-19.0% | -14.1%~-4.1% |
| 基准 | PE | 结合2026年最新业绩预告/快报、机构一致预期、订单与现金流,给予与增长持续性和风险相匹配的PE区间。 | 1080.00 亿元~1776.00 亿元 | 84.82~139.49 元 | -6.5%~53.8% | -1.3%~9.0% |
| 乐观 | PE | 订单、海外扩张、产品结构和利润率超预期,利润与估值中枢同步上移。 | 1872.00 亿元~2700.00 亿元 | 147.03~212.06 元 | 62.1%~133.8% | 10.1%~18.5% |
## 9. 当前价格反向隐含利润
| 假设 PE | 隐含 EPS | 隐含归母利润 | 占 TTM 收入 |
|---:|---:|---:|---:|
| 12 倍 | 7.559 元 | 96.25 亿元 | 68.2% |
| 15 倍 | 6.047 元 | 77.00 亿元 | 54.5% |
| 18 倍 | 5.039 元 | 64.16 亿元 | 45.5% |
| 20 倍 | 4.536 元 | 57.75 亿元 | 40.9% |
| 22 倍 | 4.123 元 | 52.50 亿元 | 37.2% |
| 25 倍 | 3.628 元 | 46.20 亿元 | 32.7% |
| 28 倍 | 3.240 元 | 41.25 亿元 | 29.2% |
| 30 倍 | 3.024 元 | 38.50 亿元 | 27.3% |
| 32 倍 | 2.835 元 | 36.09 亿元 | 25.6% |
| 35 倍 | 2.592 元 | 33.00 亿元 | 23.4% |
| 40 倍 | 2.268 元 | 28.87 亿元 | 20.5% |
## 10. 持有期回报压力测试
若要求 5 年年化回报 10.0%,并假设累计每股分红 0.00 元,则所需退出价格为 **146.09 元**。
| 退出 PE | 届时所需归母利润 |
|---:|---:|
| 12 倍 | 155.00 亿元 |
| 15 倍 | 124.00 亿元 |
| 18 倍 | 103.34 亿元 |
| 20 倍 | 93.00 亿元 |
| 22 倍 | 84.55 亿元 |
| 25 倍 | 74.40 亿元 |
| 28 倍 | 66.43 亿元 |
| 30 倍 | 62.00 亿元 |
| 32 倍 | 58.13 亿元 |
| 35 倍 | 53.14 亿元 |
| 40 倍 | 46.50 亿元 |
## 11. 自动质检与异常驱动复核
总体状态:`PASS`。ERROR 会阻止把底稿当作正式结论;WARNING 只要求局部补查,不应重跑全部流程。
| 异常 ID | 严重度 | 数据项 | 现象 | 需要补什么 | 修复后重算范围 |
|---|---|---|---|---|---|
| — | PASS | — | 未发现自动异常 | — | — |
## 11.1 估值泡沫判定
- 当前价90.71元未高于基准合理区间上沿139.49元,按手册规则**未识别估值泡沫**。
- 当前价相对基准上沿为-34.97%,相对乐观上沿为-57.22%。
- 这不等于没有经营风险;若利润情景下修,合理区间会同步下移,需要按下调触发器复评。
## 12. 风险、上调与下调触发器
### 12.1 主要风险
- 外销约占主营收入80%,欧盟、美国及其他市场的关税、贸易限制、认证和补贴规则变化会直接影响订单和利润率。
- 储能景气和能源价格具有周期性;机构2026年利润预期较2025年大幅增长,若下半年需求或毛利率回落,年度利润容易低于一致预期。
- 储能电池包毛利率已显著下降,锂电池、IGBT、铜铝及其他元器件价格波动会侵蚀利润;库存高增长增加跌价与渠道去库存风险。
- 汇率、海外应收与渠道回款、股权激励持续行权会影响归母利润和每股收益。
- 机构汇总口径不是法定事实,且覆盖池数量不等于每个年度的有效样本数。
### 12.2 上调触发器
- 2026年正式半年报达到预告中枢且经营现金流、库存周转同步改善。
- 欧洲、中东、东南亚之外的新市场持续放量,储能电池包毛利率止跌回升。
### 12.3 下调或失效触发器
- 2026年归母净利润低于60亿元或扣非利润与现金流明显背离。
- 贸易限制、补贴退坡、渠道去库存或产品降价使储能业务毛利率继续显著下滑。
## 13. 复评增量清单
下次复评默认只更新:价格与市值、最新股本、最新财报/预告及修正、机构预测、现金债务、重大合同和公司行动。历史年报原文及已验证公式在没有重述触发器时直接复用。
## 14. 复算摘要
```text
总市值 = 90.71 × 1273231036.0 = 115494787275.560 元
TTM 收入 = 年度 + 本期累计 - 上年同期 = 14116857363.82 元
TTM 归母 = 年度 + 本期累计 - 上年同期 = 3653120245.42 元
TTM 扣非 = 年度 + 本期累计 - 上年同期 = 3569477849.19 元
PB = 市值 ÷ 归母净资产 = 9.988133078474246382722735733
PS = 市值 ÷ TTM 收入 = 8.181338402664662703783314877
```
## 15. 结论边界
- 自动引擎冻结算术、口径、机构时效和异常检查,不替代对利润持续性、订单真实性、竞争格局和治理风险的人工判断。
- 机构预测、公司预告和本报告情景已分开标记,不把预测写成事实。
- 情景价值不是目标价承诺;若自动质检存在 ERROR,必须先修复输入再形成正式判断。
- 未披露的资产注入、并购或政策收益不得计入基础价值。
---
生成器版本:`1.0.0`;输入快照:`SNAPSHOT-605117-20260813-V1`。
ana-data/result/股票估值/20260813_deye_valuation/德业股份估值快照_20260813.json
New file
@@ -0,0 +1,316 @@
{
  "snapshot_id": "SNAPSHOT-605117-20260813-V1",
  "meta": {
    "company": "德业股份",
    "code": "605117.SH",
    "market": "上海证券交易所",
    "as_of_date": "2026-08-13",
    "currency": "CNY",
    "report_period_end": "2026-03-31",
    "latest_operating_info_date": "2026-07-09"
  },
  "market": {
    "price": 90.71,
    "price_type": "最近完整交易日前复权收盘价",
    "price_timestamp": "2026-08-13T15:00:00+08:00",
    "diluted_shares": 1273231036.0,
    "shares_date": "2026-07-02",
    "platform_market_cap": 115494787275.56
  },
  "financials": {
    "annual": {
      "attributable_profit": 3170769705.42,
      "basis": "audited",
      "capex": 1286968414.66,
      "cfo": 3986268984.68,
      "deduct_profit": 3035007811.1,
      "period_end": "2025-12-31",
      "revenue": 12223743462.54
    },
    "current_cumulative": {
      "attributable_profit": 1187894272.36,
      "basis": "quarterly_report_unaudited",
      "capex": 258034896.74,
      "cfo": 1830652555.84,
      "deduct_profit": 1147046203.37,
      "period_end": "2026-03-31",
      "revenue": 4459437239.86
    },
    "prior_year_same_period": {
      "attributable_profit": 705543732.36,
      "basis": "reported_comparative",
      "capex": 264694812.57,
      "cfo": 476602669.67,
      "deduct_profit": 612576165.28,
      "period_end": "2025-03-31",
      "revenue": 2566323338.58
    }
  },
  "balance_sheet": {
    "cash_available": 6409600661.72,
    "equity": 11563200687.07,
    "interest_bearing_debt": 2662760570.52,
    "minority_interest": 17608857.03,
    "non_operating_financial_assets": 3438114118.33,
    "period_end": "2026-03-31"
  },
  "normalization": {
    "adjustments": [
      {
        "description": "以TTM扣非归母利润替代TTM归母利润作为核心盈利代理",
        "amount": -83642396.23000002,
        "basis": "2025年报加2026Q1减2025Q1;最新半年预告/快报仅用于情景利润,不混入TTM法定口径"
      }
    ]
  },
  "valuation": {
    "scenarios": [
      {
        "name": "悲观",
        "role": "pessimistic",
        "method": "pe",
        "profit_low": 4500000000.0,
        "profit_high": 5500000000.0,
        "multiple_low": 12.0,
        "multiple_high": 17.0,
        "assumption": "需求、订单或毛利率低于预期,利润下修且估值回归行业低位。"
      },
      {
        "name": "基准",
        "role": "base",
        "method": "pe",
        "profit_low": 6000000000.0,
        "profit_high": 7400000000.0,
        "multiple_low": 18.0,
        "multiple_high": 24.0,
        "assumption": "结合2026年最新业绩预告/快报、机构一致预期、订单与现金流,给予与增长持续性和风险相匹配的PE区间。"
      },
      {
        "name": "乐观",
        "role": "optimistic",
        "method": "pe",
        "profit_low": 7800000000.0,
        "profit_high": 9000000000.0,
        "multiple_low": 24.0,
        "multiple_high": 30.0,
        "assumption": "订单、海外扩张、产品结构和利润率超预期,利润与估值中枢同步上移。"
      }
    ],
    "reverse_pe_multiples": [
      12,
      15,
      18,
      20,
      22,
      25,
      28,
      30,
      32,
      35,
      40
    ],
    "exit_pe_multiples": [
      12,
      15,
      18,
      20,
      22,
      25,
      28,
      30,
      32,
      35,
      40
    ],
    "holding_period": {
      "years": 5,
      "required_return": 0.1,
      "cumulative_dividend_per_share": 0
    }
  },
  "institutions": {
    "coverage_status": "available",
    "forecasts": [
      {
        "institution": "东方财富公开一致预期汇总(覆盖池23家)",
        "report_date": "2026-08-13",
        "include": true,
        "core_assumption": "汇总快照不替代逐家研报;覆盖池数量不等于每个年度的有效样本数。",
        "source_id": "SRC-EM-CONSENSUS-20260813",
        "estimates": {
          "2026": {
            "eps": 5.785909090909,
            "profit": 7366799026.019884
          },
          "2027": {
            "eps": 7.208523809524,
            "profit": 9178116238.03091
          },
          "2028": {
            "eps": 8.620285714286,
            "profit": 10975615310.616364
          }
        }
      }
    ]
  },
  "sources": [
    {
      "id": "SRC-ANNUAL-2025",
      "source_type": "cninfo",
      "title": "2025年年度报告",
      "publish_date": "2026-04-10",
      "period_end": "2025-12-31",
      "url": "https://static.cninfo.com.cn/finalpage/2026-04-10/1225089135.PDF",
      "supports": [
        "financials.annual",
        "business",
        "profit_sources",
        "risks"
      ],
      "revision_status": "current"
    },
    {
      "id": "SRC-CURRENT-2026Q1",
      "source_type": "cninfo",
      "title": "2026年第一季度报告",
      "publish_date": "2026-04-30",
      "period_end": "2026-03-31",
      "url": "https://static.cninfo.com.cn/finalpage/2026-04-30/1225254498.PDF",
      "supports": [
        "financials.current_cumulative",
        "financials.prior_year_same_period",
        "balance_sheet",
        "balance_sheet.equity"
      ],
      "revision_status": "current"
    },
    {
      "id": "SRC-LATEST-OPERATING",
      "source_type": "sse",
      "title": "2026年半年度业绩预增公告",
      "publish_date": "2026-07-09",
      "period_end": "2026-06-30",
      "url": "https://static.sse.com.cn/disclosure/listedinfo/announcement/c/new/2026-07-09/605117_20260709_IHEV.pdf",
      "supports": [
        "latest_operating_information",
        "valuation.scenarios"
      ],
      "revision_status": "current"
    },
    {
      "id": "SRC-SHARES-A1",
      "source_type": "sse",
      "title": "关于2022年股票期权激励计划2026年第二季度自主行权结果暨股份变动的公告",
      "publish_date": "2026-07-02",
      "period_end": "2026-07-02",
      "url": "https://static.sse.com.cn/disclosure/listedinfo/announcement/c/new/2026-07-02/605117_20260702_MIX1.pdf",
      "supports": [
        "market.diluted_shares",
        "market.shares_date"
      ],
      "revision_status": "current"
    },
    {
      "id": "SRC-LOCAL-FRONT-KLINE",
      "source_type": "quote_provider",
      "title": "trading_xuntou前复权日K完整收盘价",
      "publish_date": "2026-08-13",
      "period_end": "2026-08-13",
      "url": "mysql://trading_xuntou/cn_stock_kline_1d_front",
      "supports": [
        "market.price",
        "market.price_timestamp",
        "market.amount",
        "analysis.kline"
      ],
      "revision_status": "current"
    },
    {
      "id": "SRC-EM-QUOTE-SHARES",
      "source_type": "quote_provider",
      "title": "东方财富当前总股本与总市值快照交叉核验",
      "publish_date": "2026-08-13",
      "period_end": "2026-08-13",
      "url": "https://push2delay.eastmoney.com/api/qt/stock/get",
      "supports": [
        "market.diluted_shares",
        "market.platform_market_cap"
      ],
      "revision_status": "current"
    },
    {
      "id": "SRC-EM-CONSENSUS-20260813",
      "source_type": "institution_aggregator",
      "title": "东方财富盈利预测汇总",
      "publish_date": "2026-08-13",
      "period_end": "2026-08-13",
      "url": "https://datacenter-web.eastmoney.com/api/data/v1/get?reportName=RPT_WEB_RESPREDICT",
      "supports": [
        "institutions"
      ],
      "revision_status": "current"
    }
  ],
  "analysis": {
    "company_type": "户用及工商业储能逆变器、储能电池包与环境电器",
    "primary_model": "2026年前瞻PE情景;TTM扣非、PB、现金流、最新半年预告/快报与反向利润交叉验证",
    "cross_checks": [
      "最新半年预告/快报",
      "机构一致预期",
      "PB/ROE",
      "经营现金流与资本开支",
      "订单/合同负债/应收",
      "前复权量价"
    ],
    "profit_sources": [
      "2025年储能逆变器收入52.17亿元、毛利率51.10%,是毛利贡献的第一来源;储能电池包收入38.32亿元、毛利率31.81%,是增速最快的第二增长极。",
      "光伏逆变器收入10.54亿元,环境电器和热交换器合计约20.05亿元;2025年外销收入97.47亿元,占主营收入约80.0%,利润高度依赖海外储能需求和渠道。",
      "2026年上半年业绩预告归母净利润26.68至27.28亿元、扣非24.93至25.53亿元,增长主要来自欧洲、中东、东南亚户储及工商业储能销售放量。"
    ],
    "profit_source_quality": [
      "2025年经营现金流39.86亿元,高于归母净利润31.71亿元;TTM简化自由现金流约40.60亿元,现金转化较好。",
      "2025年储能电池包毛利率同比下降9.49个百分点,且逆变器、电池包期末库存分别同比增加52.55%和49.18%,高增长同时带来库存与价格压力。",
      "2025年合同负债4.80亿元、同比增长81.43%;2026Q1升至6.05亿元,预收增长对后续收入有一定支撑。",
      "法定TTM归母36.53亿元、TTM扣非35.69亿元;主模型以最新半年信息和机构预期构造2026全年情景。",
      "TTM经营现金流53.40亿元、资本开支12.80亿元、简化自由现金流40.60亿元。"
    ],
    "risks": [
      "外销约占主营收入80%,欧盟、美国及其他市场的关税、贸易限制、认证和补贴规则变化会直接影响订单和利润率。",
      "储能景气和能源价格具有周期性;机构2026年利润预期较2025年大幅增长,若下半年需求或毛利率回落,年度利润容易低于一致预期。",
      "储能电池包毛利率已显著下降,锂电池、IGBT、铜铝及其他元器件价格波动会侵蚀利润;库存高增长增加跌价与渠道去库存风险。",
      "汇率、海外应收与渠道回款、股权激励持续行权会影响归母利润和每股收益。",
      "机构汇总口径不是法定事实,且覆盖池数量不等于每个年度的有效样本数。"
    ],
    "upgrade_triggers": [
      "2026年正式半年报达到预告中枢且经营现金流、库存周转同步改善。",
      "欧洲、中东、东南亚之外的新市场持续放量,储能电池包毛利率止跌回升。"
    ],
    "downgrade_triggers": [
      "2026年归母净利润低于60亿元或扣非利润与现金流明显背离。",
      "贸易限制、补贴退坡、渠道去库存或产品降价使储能业务毛利率继续显著下滑。"
    ],
    "executive_conclusion": "90.71元位于基准合理区间84.82至139.49元内,判断为基本合理。当前结论依赖2026年利润兑现,不构成目标价或交易指令。",
    "consensus_org_count": 23,
    "consensus_coverage_note": "东方财富公开汇总覆盖池23家;2026E EPS 5.7859元,对应利润73.67亿元。",
    "latest_operating_info_note": "预告口径:归母26.68至27.28亿元,扣非24.93至25.53亿元。",
    "consensus_target_range": "130.00至178.56元(仅作市场预期参照,不替代本报告合理区间)",
    "kline_return_20d": 0.062177985948477676,
    "kline_return_60d": -0.18506872697870813,
    "ma60": 97.408,
    "distance_to_ma60": -0.06876231931668864,
    "amount_ratio_5d_to_60d": 0.972624949983733,
    "market_sample_count": 103,
    "market_source_batch_id": "FKL_20260813_161015_179d5321_1d_20260813_00016",
    "market_updated_at": "2026-08-13 16:21:17",
    "ttm_cfo": 5340318870.849999,
    "ttm_capex": 1280308498.8300002,
    "ttm_fcf": 4060010372.0199995,
    "total_equity_original": 11580809544.1,
    "attributable_equity_used": 11563200687.07,
    "minority_interest_original": 17608857.03,
    "report_shares": 909332542.0,
    "share_proof_status": "MATCH_A1_CHANGE",
    "information_cutoff": "2026-08-13T23:59:00+08:00"
  }
}
ana-data/result/股票估值/20260813_sieyuan_electric_valuation/calculation/run_manifest.json
New file
@@ -0,0 +1,20 @@
{
  "artifacts": {
    "valuation_report.md": {
      "bytes": 12447,
      "sha256": "57a2377f25e0b378234890fb2755ae765eb49c4ebdae8b3584c11ae6f324eeee"
    },
    "valuation_results.json": {
      "bytes": 8774,
      "sha256": "e200d8fac488ca5b56d8e70dabb778f2fab2c38a66e1b535528048aa7285176f"
    }
  },
  "engine_fingerprint": "adc4956be60736acd2804c0f4ec676f859b47506d8a418aefbc07444c7cc4b45",
  "engine_version": "1.0.0",
  "fingerprint": "9085fc98cf02f80769236054e167fa2d557d129c34b323b9ac0eba6bb45f283b",
  "manifest_version": "1.0.0",
  "qa_status": "PASS",
  "snapshot_path": "E:\\mb-ms-doc\\project-info\\ana-data\\result\\股票估值\\20260813_sieyuan_electric_valuation\\思源电气估值快照_20260813.json",
  "source_registry_path": "E:\\mb-ms-doc\\project-info\\dev\\ana-dev\\stock_valuation_pipeline\\source_registry.json",
  "status": "COMPLETE"
}
ana-data/result/股票估值/20260813_sieyuan_electric_valuation/calculation/valuation_report.md
New file
@@ -0,0 +1,211 @@
# 思源电气(002028.SZ)价格合理性评估(流水线生成底稿)
> 估值基准日:2026-08-13
> 价格时点:2026-08-13T15:00:00+08:00
> 最新经营信息日:2026-07-11
> 货币:CNY;金额计算统一使用元,表格按亿元展示。
> 本文是研究计算底稿,不构成交易指令或收益承诺。
## 0. 结论摘要
**机械计算结论:当前价格处于基准合理区间。**
| 指标 | 结果 |
|---|---:|
| 当前价格 | 167.58 元/股 |
| 总市值 | 1311.44 亿元 |
| 企业价值 EV | 1249.43 亿元 |
| TTM 归母净利润 | 32.5360 亿元 |
| TTM 扣非净利润 | 30.0739 亿元 |
| TTM 收入 | 228.8114 亿元 |
| 报告 PE | 40.31 倍 |
| PB | 8.14 倍 |
| PS | 5.73 倍 |
| 自动质检 | PASS(错误 0 / 警告 0) |
> **人工判断:** 167.58元位于基准合理区间126.25至184.01元内,判断为基本合理。当前结论依赖2026年利润兑现,不构成目标价或交易指令。
## 1. 市场与资本结构快照
| 项目 | 数值 | 公式或口径 |
|---|---:|---|
| 股价 | 167.58 元 | 最近完整交易日前复权收盘价 |
| 完全摊薄股本 | 7.825733 亿股 | 股本日:2026-06-30 |
| 复算总市值 | 1311.4363 亿元 | 股价 × 完全摊薄股本 |
| 归母净资产 | 161.1758 亿元 | 截至 2026-03-31 |
| 每股净资产 | 20.5956 元 | 净资产 ÷ 摊薄股本 |
| 企业价值 | 1249.4325 亿元 | 市值 + 有息负债 + 少数股东权益 - 可用现金 - 非经营金融资产 |
## 2. 信息来源与固定优先级
本次使用信源注册表版本 `1.0.0`。来源身份和优先级沿用固定注册表;本次只检查公司、报告期、版本、修订状态和数据口径。
| ID | 等级 | 来源 | 发布日 | 支持字段 | 修订状态 |
|---|---|---|---|---|---|
| SRC-ANNUAL-2025 | A1 | [2025年年度报告](https://static.cninfo.com.cn/finalpage/2026-04-18/1225117829.PDF) | 2026-04-18 | financials.annual, business, profit_sources, risks | current |
| SRC-CURRENT-2026Q1 | A1 | [2026年一季度报告](https://static.cninfo.com.cn/finalpage/2026-04-25/1225177123.PDF) | 2026-04-25 | financials.current_cumulative, financials.prior_year_same_period, balance_sheet, balance_sheet.equity | current |
| SRC-LATEST-OPERATING | C1 | [2026年半年度业绩快报](https://file.finance.sina.com.cn/211.154.219.97%3A9494/MRGG/CNSESZ_STOCK/2026/2026-7/2026-07-11/12441232.PDF) | 2026-07-11 | latest_operating_information, valuation.scenarios | current |
| SRC-SHARES-A1 | A1 | [2025年度权益分派实施公告(现有总股本证明)](https://disc.static.szse.cn/download/disc/disk03/finalpage/2026-07-01/d515dfa9-944e-45e0-adce-b7b4d6f678e0.PDF) | 2026-07-01 | market.diluted_shares, market.shares_date | current |
| SRC-LOCAL-FRONT-KLINE | B1 | [trading_xuntou前复权日K完整收盘价](mysql://trading_xuntou/cn_stock_kline_1d_front) | 2026-08-13 | market.price, market.price_timestamp, market.amount, analysis.kline | current |
| SRC-EM-QUOTE-SHARES | B1 | [东方财富当前总股本与总市值快照交叉核验](https://push2delay.eastmoney.com/api/qt/stock/get) | 2026-08-13 | market.diluted_shares, market.platform_market_cap | current |
| SRC-EM-CONSENSUS-20260813 | B2 | [东方财富盈利预测汇总](https://datacenter-web.eastmoney.com/api/data/v1/get?reportName=RPT_WEB_RESPREDICT) | 2026-08-13 | institutions | current |
停止搜索规则:取得法定披露或合规效率型来源、日期与口径明确、无修订、数字可勾稽且无数量级异常后,不再为同一数字寻找更多转载来源。
## 3. 业务与利润来源
- 2025年开关类收入89.35亿元、变压器类46.33亿元、保护及自动化25.42亿元,是利润的主体;三类毛利率分别为36.88%、36.39%和35.11%。
- 电力电子、EPC和储能系统及元件收入分别15.25亿元、23.32亿元和15.31亿元;后两类增长快但毛利率仅约11.8%,对收入增长的贡献高于对利润的贡献。
- 2025年海外收入58.03亿元、同比增长85.84%,占收入26.94%;新增订单288.91亿元、同比增长34.64%,订单与海外扩张是未来利润的主要驱动。
### 3.1 利润来源可靠性
- 2025年经营现金流22.34亿元、低于归母净利润31.50亿元;TTM经营现金流23.11亿元,简化自由现金流15.41亿元,现金流为正但转化率不算高。
- 2025年末应收账款81.83亿元,占总资产27.42%;合同负债29.77亿元,2026Q1升至31.50亿元。较高预收支撑订单,但高应收和海外EPC拉长回款周期。
- 2026年半年业绩快报归母14.87亿元、同比增长15.03%,明显慢于收入27.14%;汇兑损失及思源东芝持股比例变更压低归母利润增速。
- 法定TTM归母32.54亿元、TTM扣非30.07亿元;主模型以最新半年信息和机构预期构造2026全年情景。
- TTM经营现金流23.11亿元、资本开支7.70亿元、简化自由现金流15.41亿元。
## 4. TTM 与归一化利润
```text
TTM = 最近完整年度 + 本期累计/预告 - 上年同期累计
TTM 收入 = 215.3903 亿元 + 45.6866 亿元 - 32.2656 亿元 = 228.8114 亿元
TTM 归母 = 31.5014 亿元 + 5.4995 亿元 - 4.4650 亿元 = 32.5360 亿元
TTM 扣非 = 29.5156 亿元 + 4.9252 亿元 - 4.3669 亿元 = 30.0739 亿元
```
| 归一化调整 | 对可持续利润的带符号影响 | 依据 |
|---|---:|---|
| 以TTM扣非归母利润替代TTM归母利润作为核心盈利代理 | -2.4620 亿元 | 2025年报加2026Q1减2025Q1;最新半年预告/快报仅用于情景利润,不混入TTM法定口径 |
归一化结果为 **30.0739 亿元**;只有调整项证据充分时才可用作主估值利润。
## 5. 机构盈利预期
覆盖状态:`available`。早于最新经营信息日、或低于已实现累计利润的预测自动排除出当前一致预期。
| 年度 | 机构数 | 利润最小值 | 利润均值 | 利润中位数 | 利润最大值 | EPS 均值 | 对应 PE |
|---|---:|---:|---:|---:|---:|---:|---:|
| 2026 | 1 | 43.09 亿元 | 43.09 亿元 | 43.09 亿元 | 43.09 亿元 | 5.507 | 30.43 倍 |
| 2027 | 1 | 58.78 亿元 | 58.78 亿元 | 58.78 亿元 | 58.78 亿元 | 7.511 | 22.31 倍 |
| 2028 | 1 | 78.50 亿元 | 78.50 亿元 | 78.50 亿元 | 78.50 亿元 | 10.031 | 16.71 倍 |
| 机构 | 研报日期 | 预测 | 核心假设 | 状态 | 纳入一致预期 |
|---|---|---|---|---|---|
| 东方财富公开一致预期汇总(覆盖池17家) | 2026-08-13 | 2026: 利润 43.09 亿元, EPS 5.507; 2027: 利润 58.78 亿元, EPS 7.511; 2028: 利润 78.50 亿元, EPS 10.031 | 汇总快照不替代逐家研报;覆盖池数量不等于每个年度的有效样本数。 | CURRENT | 是 |
## 6. 利润质量、现金流与资产负债
| 指标 | 结果 | 判断入口 |
|---|---:|---|
| 最近年度 CFO | 22.3428 亿元 | 与利润、营运资本对照 |
| 最近年度资本开支 | 8.2054 亿元 | 现金流出正数口径 |
| 最近年度简化 FCF | 14.1374 亿元 | CFO - 资本开支 |
| 本期累计简化 FCF | -6.9008 亿元 | 仅在 CFO 与资本开支均可得时计算 |
| 可用现金 | 34.8866 亿元 | 已排除受限或经营最低现金(由输入方确认) |
| 有息负债 | 7.9806 亿元 | 最新时点 |
- 需结合应收、存货、合同资产与回款补充人工解释
## 7. 模型选择
- 公司类型:输配电设备、保护自动化、电力电子、海外EPC与储能系统
- 主模型:2026年前瞻PE情景;TTM扣非、PB、现金流、最新半年预告/快报与反向利润交叉验证
- 交叉验证:最新半年预告/快报, 机构一致预期, PB/ROE, 经营现金流与资本开支, 订单/合同负债/应收, 前复权量价
## 8. 悲观、基准、乐观情景估值
| 情景 | 方法 | 核心假设 | 股权价值区间 | 每股价值区间 | 相对当前价 | 五年年化区间 |
|---|---|---|---:|---:|---:|---:|
| 悲观 | PE | 需求、订单或毛利率低于预期,利润下修且估值回归行业低位。 | 660.00 亿元~950.00 亿元 | 84.34~121.39 元 | -49.7%~-27.6% | -12.8%~-6.2% |
| 基准 | PE | 结合2026年最新业绩预告/快报、机构一致预期、订单与现金流,给予与增长持续性和风险相匹配的PE区间。 | 988.00 亿元~1440.00 亿元 | 126.25~184.01 元 | -24.7%~9.8% | -5.5%~1.9% |
| 乐观 | PE | 订单、海外扩张、产品结构和利润率超预期,利润与估值中枢同步上移。 | 1472.00 亿元~1976.00 亿元 | 188.10~252.50 元 | 12.2%~50.7% | 2.3%~8.5% |
## 9. 当前价格反向隐含利润
| 假设 PE | 隐含 EPS | 隐含归母利润 | 占 TTM 收入 |
|---:|---:|---:|---:|
| 12 倍 | 13.965 元 | 109.29 亿元 | 47.8% |
| 15 倍 | 11.172 元 | 87.43 亿元 | 38.2% |
| 18 倍 | 9.310 元 | 72.86 亿元 | 31.8% |
| 20 倍 | 8.379 元 | 65.57 亿元 | 28.7% |
| 22 倍 | 7.617 元 | 59.61 亿元 | 26.1% |
| 25 倍 | 6.703 元 | 52.46 亿元 | 22.9% |
| 28 倍 | 5.985 元 | 46.84 亿元 | 20.5% |
| 30 倍 | 5.586 元 | 43.71 亿元 | 19.1% |
| 32 倍 | 5.237 元 | 40.98 亿元 | 17.9% |
| 35 倍 | 4.788 元 | 37.47 亿元 | 16.4% |
| 40 倍 | 4.190 元 | 32.79 亿元 | 14.3% |
## 10. 持有期回报压力测试
若要求 5 年年化回报 10.0%,并假设累计每股分红 0.00 元,则所需退出价格为 **269.89 元**。
| 退出 PE | 届时所需归母利润 |
|---:|---:|
| 12 倍 | 176.01 亿元 |
| 15 倍 | 140.81 亿元 |
| 18 倍 | 117.34 亿元 |
| 20 倍 | 105.60 亿元 |
| 22 倍 | 96.00 亿元 |
| 25 倍 | 84.48 亿元 |
| 28 倍 | 75.43 亿元 |
| 30 倍 | 70.40 亿元 |
| 32 倍 | 66.00 亿元 |
| 35 倍 | 60.35 亿元 |
| 40 倍 | 52.80 亿元 |
## 11. 自动质检与异常驱动复核
总体状态:`PASS`。ERROR 会阻止把底稿当作正式结论;WARNING 只要求局部补查,不应重跑全部流程。
| 异常 ID | 严重度 | 数据项 | 现象 | 需要补什么 | 修复后重算范围 |
|---|---|---|---|---|---|
| — | PASS | — | 未发现自动异常 | — | — |
## 12. 风险、上调与下调触发器
### 12.1 主要风险
- 2026H1归母利润仅增长15.03%,低于当前一致预期隐含的全年约37%增速,下半年需要明显加速才能兑现43亿元左右的机构预测。
- 应收账款规模高、海外EPC周期1至3年,存在回款、汇率、税务、施工、合同与分包风险。
- 铜铝等大宗原料、半导体器件和国际物流价格上涨,以及低毛利EPC/储能占比提高,可能压制整体利润率。
- 海外业务扩张带来汇兑与当地运营风险;2026H1已出现美元应收等外币资产的较大汇兑损失。
- 机构汇总口径不是法定事实,且覆盖池数量不等于每个年度的有效样本数。
### 12.2 上调触发器
- 新增订单持续接近公司2026年375亿元经营目标,合同负债与现金回款同步增长。
- 下半年归母利润增速回升至25%以上,开关、变压器等高毛利业务占比稳定,汇兑损失收窄。
### 12.3 下调或失效触发器
- 2026年归母净利润低于38亿元,或收入增长继续快于利润而毛利率显著下行。
- 应收账款和海外EPC风险上升、经营现金流转弱,或思源东芝少数股权变化持续稀释归母利润。
## 13. 复评增量清单
下次复评默认只更新:价格与市值、最新股本、最新财报/预告及修正、机构预测、现金债务、重大合同和公司行动。历史年报原文及已验证公式在没有重述触发器时直接复用。
## 14. 复算摘要
```text
总市值 = 167.58 × 782573282.0 = 131143630597.560 元
TTM 收入 = 年度 + 本期累计 - 上年同期 = 22881137303.76 元
TTM 归母 = 年度 + 本期累计 - 上年同期 = 3253596015.96 元
TTM 扣非 = 年度 + 本期累计 - 上年同期 = 3007392556.91 元
PB = 市值 ÷ 归母净资产 = 8.136680284398523118984679122
PS = 市值 ÷ TTM 收入 = 5.731517138180430199177275268
```
## 15. 结论边界
- 自动引擎冻结算术、口径、机构时效和异常检查,不替代对利润持续性、订单真实性、竞争格局和治理风险的人工判断。
- 机构预测、公司预告和本报告情景已分开标记,不把预测写成事实。
- 情景价值不是目标价承诺;若自动质检存在 ERROR,必须先修复输入再形成正式判断。
- 未披露的资产注入、并购或政策收益不得计入基础价值。
---
生成器版本:`1.0.0`;输入快照:`SNAPSHOT-002028-20260813-V1`。
ana-data/result/股票估值/20260813_sieyuan_electric_valuation/calculation/valuation_results.json
New file
@@ -0,0 +1,278 @@
{
  "conclusion": {
    "base_midpoint": "155.1292419410761329825211181",
    "price_label": "当前价格处于基准合理区间",
    "price_position": "WITHIN_BASE_RANGE",
    "safety_margin_to_base_midpoint": "-0.08026054857957166392092256979"
  },
  "engine_version": "1.0.0",
  "holding_period": {
    "cumulative_dividend_per_share": "0",
    "required_exit_price": "269.8892658",
    "required_profit_by_exit_pe": [
      {
        "exit_pe": "12",
        "required_profit": "17600677376.13969630"
      },
      {
        "exit_pe": "15",
        "required_profit": "14080541900.91175704"
      },
      {
        "exit_pe": "18",
        "required_profit": "11733784917.42646420"
      },
      {
        "exit_pe": "20",
        "required_profit": "10560406425.68381778"
      },
      {
        "exit_pe": "22",
        "required_profit": "9600369477.89437980"
      },
      {
        "exit_pe": "25",
        "required_profit": "8448325140.547054224"
      },
      {
        "exit_pe": "28",
        "required_profit": "7543147446.91701270"
      },
      {
        "exit_pe": "30",
        "required_profit": "7040270950.45587852"
      },
      {
        "exit_pe": "32",
        "required_profit": "6600254016.0523861125"
      },
      {
        "exit_pe": "35",
        "required_profit": "6034517957.53361016"
      },
      {
        "exit_pe": "40",
        "required_profit": "5280203212.84190889"
      }
    ],
    "required_return": "0.1",
    "years": 5
  },
  "institutions": {
    "coverage_status": "available",
    "detail": [
      {
        "core_assumption": "汇总快照不替代逐家研报;覆盖池数量不等于每个年度的有效样本数。",
        "estimates": {
          "2026": {
            "eps": "5.506625",
            "profit": "4309337598.99325"
          },
          "2027": {
            "eps": "7.5113125",
            "profit": "5878152475.2526245"
          },
          "2028": {
            "eps": "10.031071428571",
            "profit": "7850048489.833236"
          }
        },
        "included": true,
        "institution": "东方财富公开一致预期汇总(覆盖池17家)",
        "report_date": "2026-08-13",
        "source_id": "SRC-EM-CONSENSUS-20260813",
        "statuses": [
          "CURRENT"
        ]
      }
    ],
    "summary": {
      "2026": {
        "eps_mean": "5.506625",
        "eps_profit_reconciliation_gap": "0.00",
        "institution_count": 1,
        "pe_on_mean": "30.43243365945565568746736885",
        "profit_max": "4309337598.99325",
        "profit_mean": "4309337598.99325",
        "profit_median": "4309337598.99325",
        "profit_min": "4309337598.99325"
      },
      "2027": {
        "eps_mean": "7.5113125",
        "eps_profit_reconciliation_gap": "0.00000000000000008506074010584619499192740112",
        "institution_count": 1,
        "pe_on_mean": "22.31034855759230018115726472",
        "profit_max": "5878152475.2526245",
        "profit_mean": "5878152475.2526245",
        "profit_median": "5878152475.2526245",
        "profit_min": "5878152475.2526245"
      },
      "2028": {
        "eps_mean": "10.031071428571",
        "eps_profit_reconciliation_gap": "0.000000000000000005098312456519643100764979066",
        "institution_count": 1,
        "pe_on_mean": "16.70609178623633886504055427",
        "profit_max": "7850048489.833236",
        "profit_mean": "7850048489.833236",
        "profit_median": "7850048489.833236",
        "profit_min": "7850048489.833236"
      }
    }
  },
  "meta": {
    "as_of_date": "2026-08-13",
    "code": "002028.SZ",
    "company": "思源电气",
    "currency": "CNY",
    "latest_operating_info_date": "2026-07-11",
    "market": "深圳证券交易所",
    "report_period_end": "2026-03-31"
  },
  "metrics": {
    "annual_cash_conversion": "0.7092626432560728148068675129",
    "annual_fcf": "1413735491.04",
    "book_value_per_share": "20.59562304805341028752371845",
    "current_fcf": "-690080063.90",
    "deduct_pe": "43.60708757366411141305147881",
    "diluted_shares": "782573282.0",
    "enterprise_value": "124943250464.160",
    "market_cap": "131143630597.560",
    "normalized_eps": "3.842953274898541450588393586",
    "normalized_pe": "43.60708757366411431304452917",
    "normalized_profit": "3007392556.9099998",
    "pb": "8.136680284398523118984679122",
    "price": "167.58",
    "ps": "5.731517138180430199177275268",
    "reported_pe": "40.30728767623751955905072045",
    "ttm_attributable_profit": "3253596015.96",
    "ttm_deduct_profit": "3007392556.91",
    "ttm_eps": "4.157560819920759829876226211",
    "ttm_revenue": "22881137303.76"
  },
  "normalization_adjustments": [
    {
      "amount": "-246203459.0500002",
      "basis": "2025年报加2026Q1减2025Q1;最新半年预告/快报仅用于情景利润,不混入TTM法定口径",
      "description": "以TTM扣非归母利润替代TTM归母利润作为核心盈利代理"
    }
  ],
  "qa": {
    "error_count": 0,
    "info_count": 0,
    "issues": [],
    "status": "PASS",
    "warning_count": 0
  },
  "reverse_pe": [
    {
      "implied_eps": "13.965",
      "implied_margin": "0.4776264281817025165981062723",
      "implied_profit": "10928635883.130",
      "pe": "12"
    },
    {
      "implied_eps": "11.172",
      "implied_margin": "0.3821011425453620132784850179",
      "implied_profit": "8742908706.504",
      "pe": "15"
    },
    {
      "implied_eps": "9.31",
      "implied_margin": "0.3184176187878016777320708482",
      "implied_profit": "7285757255.420",
      "pe": "18"
    },
    {
      "implied_eps": "8.379",
      "implied_margin": "0.2865758569090215099588637634",
      "implied_profit": "6557181529.878",
      "pe": "20"
    },
    {
      "implied_eps": "7.617272727272727272727272727",
      "implied_margin": "0.2605235062809286454171488758",
      "implied_profit": "5961074118.070909090909090909",
      "pe": "22"
    },
    {
      "implied_eps": "6.7032",
      "implied_margin": "0.2292606855272172079670910107",
      "implied_profit": "5245745223.9024",
      "pe": "25"
    },
    {
      "implied_eps": "5.985",
      "implied_margin": "0.2046970406493010785420455453",
      "implied_profit": "4683701092.770",
      "pe": "28"
    },
    {
      "implied_eps": "5.586",
      "implied_margin": "0.1910505712726810066392425089",
      "implied_profit": "4371454353.252",
      "pe": "30"
    },
    {
      "implied_eps": "5.236875",
      "implied_margin": "0.1791099105681384437242898521",
      "implied_profit": "4098238456.17375",
      "pe": "32"
    },
    {
      "implied_eps": "4.788",
      "implied_margin": "0.1637576325194408628336364362",
      "implied_profit": "3746960874.216",
      "pe": "35"
    },
    {
      "implied_eps": "4.1895",
      "implied_margin": "0.1432879284545107549794318817",
      "implied_profit": "3278590764.939",
      "pe": "40"
    }
  ],
  "scenarios": [
    {
      "assumption": "需求、订单或毛利率低于预期,利润下修且估值回归行业低位。",
      "cagr_high": "-0.062448181454616614",
      "cagr_low": "-0.1283154537966501",
      "equity_value_high": "95000000000.00",
      "equity_value_low": "66000000000.00",
      "method": "pe",
      "name": "悲观",
      "price_high": "121.3943820790958207029613362",
      "price_low": "84.33714965495078069889945463",
      "role": "pessimistic",
      "upside_to_high": "-0.2756034008885557900527429514",
      "upside_to_low": "-0.4967349943015229699313793136"
    },
    {
      "assumption": "结合2026年最新业绩预告/快报、机构一致预期、订单与现金流,给予与增长持续性和风险相匹配的PE区间。",
      "cagr_high": "0.018880048143428363",
      "cagr_low": "-0.05506497164864277",
      "equity_value_high": "144000000000.00",
      "equity_value_low": "98800000000.00",
      "method": "pe",
      "name": "基准",
      "price_high": "184.0083265198926124339624465",
      "price_low": "126.2501573622596535310797897",
      "role": "base",
      "upside_to_high": "0.098032739705768065604263316",
      "upside_to_low": "-0.2466275369240980216548526692"
    },
    {
      "assumption": "订单、海外扩张、产品结构和利润率超预期,利润与估值中枢同步上移。",
      "cagr_high": "0.08544531264628064",
      "cagr_low": "0.023368680345650317",
      "equity_value_high": "197600000000.00",
      "equity_value_low": "147200000000.00",
      "method": "pe",
      "name": "乐观",
      "price_high": "252.5003147245193070621595793",
      "price_low": "188.0974004425568927102727231",
      "role": "optimistic",
      "upside_to_high": "0.506744926151803956690294661",
      "upside_to_low": "0.122433467254785133728802501"
    }
  ]
}
ana-data/result/股票估值/20260813_sieyuan_electric_valuation/source_evidence_manifest.json
New file
@@ -0,0 +1,68 @@
{
  "case_id": "ANA-STOCK-VALUATION-DEYE-SIEYUAN-20260813-001",
  "ticker": "002028.SZ",
  "company": "思源电气",
  "as_of": "2026-08-13",
  "v2_status": "BLOCKED",
  "v2_failure": {
    "complete": false,
    "error": "ValueError: E_HISTORICAL_SHARES_UNPROVEN:quote f124 缺失或为 0",
    "error_code": "E_CORE_INPUT",
    "error_type": "CoreInputError",
    "recorded_at": "2026-08-13T22:29:09.100+08:00",
    "rollback_errors": [],
    "run_id": "631e4ffa1b9c4931b6ec1481cb8c91b4",
    "schema_version": 2,
    "status": "BLOCKED"
  },
  "v2_failure_package": "ai-valuation-analyst/tmp/valuation_20260813_deye_sieyuan_v2/002028_SZ.failed-631e4ffa1b9c4931b6ec1481cb8c91b4",
  "v2_raw_artifact_hashes": [
    "29108ecb9b6f0216da54ff022096eb43e17c77d088983290211045a11c16c90c",
    "3af72fa488cbbdfacd72605bda284a567d9fa01d410f775f93c1237683a729e0",
    "51b2a208f1055fe7a7fe148ad4ead13dc5c8c0f87c463c3b479ec674044c75b8",
    "6a80717ab9b751ba0cb4707d0d21600fd4081b0b75e0713d65edd79d130576db",
    "94d5fdc2e1fac20e1338bccb32a3fed7540c9a821bada7531d8100f9b366d011",
    "9c3cb20987d93103b77cd57e8b44a81725c1780bf9a494095d0278c0e6a7db10",
    "c003727625a6659324e14f1f6d6746117ca0771f4dc34724b346ca3070eff005",
    "d2438c15d3204c7433a822d1cf43680c3983c2776f87e8a40570f4e505c559a6",
    "dc4f974e5a115c573b7b7f6e54aa6245e46d4165091785aec555bce6e761f9e4",
    "dcb7f40dda3a20dac5a409aad64d721785fbf9028b11174dc1a1e02dcd6581f3"
  ],
  "quote_raw_hash": "dc4f974e5a115c573b7b7f6e54aa6245e46d4165091785aec555bce6e761f9e4",
  "consensus_raw_hash": "c003727625a6659324e14f1f6d6746117ca0771f4dc34724b346ca3070eff005",
  "market_contract": {
    "table": "trading_xuntou.cn_stock_kline_1d_front",
    "source": "xtquant",
    "source_batch_id": "FKL_20260813_161015_179d5321_1d_20260813_00002",
    "updated_at": "2026-08-13 16:17:25",
    "trade_date": "2026-08-13"
  },
  "share_proof": {
    "current_shares": 782573282.0,
    "a1_title": "2025年度权益分派实施公告(现有总股本证明)",
    "a1_publish_date": "2026-07-01",
    "a1_url": "https://disc.static.szse.cn/download/disc/disk03/finalpage/2026-07-01/d515dfa9-944e-45e0-adce-b7b4d6f678e0.PDF",
    "quote_shares": 782573282.0,
    "quote_market_cap": 131143630597.56001,
    "price_times_shares": 131143630597.56001
  },
  "bounded_gaps": [
    "V2 quote f124=0,故端到端V2按历史股本时间戳门禁诚实阻断;正式估值由后续A1股本公告和估值日总股本/总市值快照补证。",
    "机构汇总覆盖池不是逐家研报原文;本报告披露机构数、EPS和推算利润,不将其写成法定事实。",
    "最新半年预告/快报提供利润锚,但资产负债表、现金流明细仍以2026Q1法定报告为最新完整结构口径。"
  ],
  "checks": {
    "v1_qa": {
      "error_count": 0,
      "info_count": 0,
      "issues": [],
      "status": "PASS",
      "warning_count": 0
    },
    "label": "基本合理",
    "base_low": 126.25015736225966,
    "base_high": 184.00832651989262,
    "optimistic_high": 252.5003147245193,
    "price": 167.58
  }
}
ana-data/result/股票估值/20260813_sieyuan_electric_valuation/思源电气价格合理性评估_20260813.md
New file
@@ -0,0 +1,229 @@
# 思源电气(002028.SZ)价格合理性评估
> 估值基准日:2026-08-13
> 价格时点:2026-08-13T15:00:00+08:00
> 最新经营信息日:2026-07-11
> 货币:CNY;金额计算统一使用元,表格按亿元展示。
> 本文为按《股票价格合理性评估操作手册》形成的条件化研究结论,不构成交易指令或收益承诺。
## 0. 结论摘要
**机械计算结论:当前价格处于基准合理区间。**
| 指标 | 结果 |
|---|---:|
| 当前价格 | 167.58 元/股 |
| 总市值 | 1311.44 亿元 |
| 企业价值 EV | 1249.43 亿元 |
| TTM 归母净利润 | 32.5360 亿元 |
| TTM 扣非净利润 | 30.0739 亿元 |
| TTM 收入 | 228.8114 亿元 |
| 报告 PE | 40.31 倍 |
| PB | 8.14 倍 |
| PS | 5.73 倍 |
| 自动质检 | PASS(错误 0 / 警告 0) |
> **人工判断:** 167.58元位于基准合理区间126.25至184.01元内,判断为基本合理。当前结论依赖2026年利润兑现,不构成目标价或交易指令。
## 1. 市场与资本结构快照
| 项目 | 数值 | 公式或口径 |
|---|---:|---|
| 股价 | 167.58 元 | 最近完整交易日前复权收盘价 |
| 完全摊薄股本 | 7.825733 亿股 | 股本日:2026-06-30 |
| 复算总市值 | 1311.4363 亿元 | 股价 × 完全摊薄股本 |
| 归母净资产 | 161.1758 亿元 | 截至 2026-03-31 |
| 每股净资产 | 20.5956 元 | 净资产 ÷ 摊薄股本 |
| 企业价值 | 1249.4325 亿元 | 市值 + 有息负债 + 少数股东权益 - 可用现金 - 非经营金融资产 |
### 1.1 前复权量价显影
- 20日涨跌:5.34%;60日涨跌:-14.06%。
- 60日均线:174.21元;当前价相对MA60:-3.81%。
- 近5日/60日平均成交额比:0.69。量价用于显影情绪,不改变合理价值。
## 2. 信息来源与固定优先级
本次使用信源注册表版本 `1.0.0`。来源身份和优先级沿用固定注册表;本次只检查公司、报告期、版本、修订状态和数据口径。
| ID | 等级 | 来源 | 发布日 | 支持字段 | 修订状态 |
|---|---|---|---|---|---|
| SRC-ANNUAL-2025 | A1 | [2025年年度报告](https://static.cninfo.com.cn/finalpage/2026-04-18/1225117829.PDF) | 2026-04-18 | financials.annual, business, profit_sources, risks | current |
| SRC-CURRENT-2026Q1 | A1 | [2026年一季度报告](https://static.cninfo.com.cn/finalpage/2026-04-25/1225177123.PDF) | 2026-04-25 | financials.current_cumulative, financials.prior_year_same_period, balance_sheet, balance_sheet.equity | current |
| SRC-LATEST-OPERATING | C1 | [2026年半年度业绩快报](https://file.finance.sina.com.cn/211.154.219.97%3A9494/MRGG/CNSESZ_STOCK/2026/2026-7/2026-07-11/12441232.PDF) | 2026-07-11 | latest_operating_information, valuation.scenarios | current |
| SRC-SHARES-A1 | A1 | [2025年度权益分派实施公告(现有总股本证明)](https://disc.static.szse.cn/download/disc/disk03/finalpage/2026-07-01/d515dfa9-944e-45e0-adce-b7b4d6f678e0.PDF) | 2026-07-01 | market.diluted_shares, market.shares_date | current |
| SRC-LOCAL-FRONT-KLINE | B1 | [trading_xuntou前复权日K完整收盘价](mysql://trading_xuntou/cn_stock_kline_1d_front) | 2026-08-13 | market.price, market.price_timestamp, market.amount, analysis.kline | current |
| SRC-EM-QUOTE-SHARES | B1 | [东方财富当前总股本与总市值快照交叉核验](https://push2delay.eastmoney.com/api/qt/stock/get) | 2026-08-13 | market.diluted_shares, market.platform_market_cap | current |
| SRC-EM-CONSENSUS-20260813 | B2 | [东方财富盈利预测汇总](https://datacenter-web.eastmoney.com/api/data/v1/get?reportName=RPT_WEB_RESPREDICT) | 2026-08-13 | institutions | current |
停止搜索规则:取得法定披露或合规效率型来源、日期与口径明确、无修订、数字可勾稽且无数量级异常后,不再为同一数字寻找更多转载来源。
## 3. 业务与利润来源
- 2025年开关类收入89.35亿元、变压器类46.33亿元、保护及自动化25.42亿元,是利润的主体;三类毛利率分别为36.88%、36.39%和35.11%。
- 电力电子、EPC和储能系统及元件收入分别15.25亿元、23.32亿元和15.31亿元;后两类增长快但毛利率仅约11.8%,对收入增长的贡献高于对利润的贡献。
- 2025年海外收入58.03亿元、同比增长85.84%,占收入26.94%;新增订单288.91亿元、同比增长34.64%,订单与海外扩张是未来利润的主要驱动。
### 3.1 利润来源可靠性
- 2025年经营现金流22.34亿元、低于归母净利润31.50亿元;TTM经营现金流23.11亿元,简化自由现金流15.41亿元,现金流为正但转化率不算高。
- 2025年末应收账款81.83亿元,占总资产27.42%;合同负债29.77亿元,2026Q1升至31.50亿元。较高预收支撑订单,但高应收和海外EPC拉长回款周期。
- 2026年半年业绩快报归母14.87亿元、同比增长15.03%,明显慢于收入27.14%;汇兑损失及思源东芝持股比例变更压低归母利润增速。
- 法定TTM归母32.54亿元、TTM扣非30.07亿元;主模型以最新半年信息和机构预期构造2026全年情景。
- TTM经营现金流23.11亿元、资本开支7.70亿元、简化自由现金流15.41亿元。
## 4. TTM 与归一化利润
```text
TTM = 最近完整年度 + 本期累计/预告 - 上年同期累计
TTM 收入 = 215.3903 亿元 + 45.6866 亿元 - 32.2656 亿元 = 228.8114 亿元
TTM 归母 = 31.5014 亿元 + 5.4995 亿元 - 4.4650 亿元 = 32.5360 亿元
TTM 扣非 = 29.5156 亿元 + 4.9252 亿元 - 4.3669 亿元 = 30.0739 亿元
```
| 归一化调整 | 对可持续利润的带符号影响 | 依据 |
|---|---:|---|
| 以TTM扣非归母利润替代TTM归母利润作为核心盈利代理 | -2.4620 亿元 | 2025年报加2026Q1减2025Q1;最新半年预告/快报仅用于情景利润,不混入TTM法定口径 |
归一化结果为 **30.0739 亿元**;只有调整项证据充分时才可用作主估值利润。
## 5. 机构盈利预期
覆盖状态:`available`。东方财富公开一致预期覆盖池为 **17家**;下表按一条汇总观测进入V1,因此“机构数”列显示1,不代表仅有1家机构。早于最新经营信息日、或低于已实现累计利润的预测自动排除出当前一致预期。
| 年度 | 机构数 | 利润最小值 | 利润均值 | 利润中位数 | 利润最大值 | EPS 均值 | 对应 PE |
|---|---:|---:|---:|---:|---:|---:|---:|
| 2026 | 1 | 43.09 亿元 | 43.09 亿元 | 43.09 亿元 | 43.09 亿元 | 5.507 | 30.43 倍 |
| 2027 | 1 | 58.78 亿元 | 58.78 亿元 | 58.78 亿元 | 58.78 亿元 | 7.511 | 22.31 倍 |
| 2028 | 1 | 78.50 亿元 | 78.50 亿元 | 78.50 亿元 | 78.50 亿元 | 10.031 | 16.71 倍 |
| 机构 | 研报日期 | 预测 | 核心假设 | 状态 | 纳入一致预期 |
|---|---|---|---|---|---|
| 东方财富公开一致预期汇总(覆盖池17家) | 2026-08-13 | 2026: 利润 43.09 亿元, EPS 5.507; 2027: 利润 58.78 亿元, EPS 7.511; 2028: 利润 78.50 亿元, EPS 10.031 | 汇总快照不替代逐家研报;覆盖池数量不等于每个年度的有效样本数。 | CURRENT | 是 |
### 5.1 最新半年经营信息
- 快报口径:收入108.03亿元、归母14.87亿元、扣非14.19亿元、经营现金流2.25亿元。
- 该信息用于调整2026全年情景利润,不与法定TTM公式重复相加。
## 6. 利润质量、现金流与资产负债
| 指标 | 结果 | 判断入口 |
|---|---:|---|
| 最近年度 CFO | 22.3428 亿元 | 与利润、营运资本对照 |
| 最近年度资本开支 | 8.2054 亿元 | 现金流出正数口径 |
| 最近年度简化 FCF | 14.1374 亿元 | CFO - 资本开支 |
| 本期累计简化 FCF | -6.9008 亿元 | 仅在 CFO 与资本开支均可得时计算 |
| 可用现金 | 34.8866 亿元 | 已排除受限或经营最低现金(由输入方确认) |
| 有息负债 | 7.9806 亿元 | 最新时点 |
- 需结合应收、存货、合同资产与回款补充人工解释
## 7. 模型选择
- 公司类型:输配电设备、保护自动化、电力电子、海外EPC与储能系统
- 主模型:2026年前瞻PE情景;TTM扣非、PB、现金流、最新半年预告/快报与反向利润交叉验证
- 交叉验证:最新半年预告/快报, 机构一致预期, PB/ROE, 经营现金流与资本开支, 订单/合同负债/应收, 前复权量价
## 8. 悲观、基准、乐观情景估值
| 情景 | 方法 | 核心假设 | 股权价值区间 | 每股价值区间 | 相对当前价 | 五年年化区间 |
|---|---|---|---:|---:|---:|---:|
| 悲观 | PE | 需求、订单或毛利率低于预期,利润下修且估值回归行业低位。 | 660.00 亿元~950.00 亿元 | 84.34~121.39 元 | -49.7%~-27.6% | -12.8%~-6.2% |
| 基准 | PE | 结合2026年最新业绩预告/快报、机构一致预期、订单与现金流,给予与增长持续性和风险相匹配的PE区间。 | 988.00 亿元~1440.00 亿元 | 126.25~184.01 元 | -24.7%~9.8% | -5.5%~1.9% |
| 乐观 | PE | 订单、海外扩张、产品结构和利润率超预期,利润与估值中枢同步上移。 | 1472.00 亿元~1976.00 亿元 | 188.10~252.50 元 | 12.2%~50.7% | 2.3%~8.5% |
## 9. 当前价格反向隐含利润
| 假设 PE | 隐含 EPS | 隐含归母利润 | 占 TTM 收入 |
|---:|---:|---:|---:|
| 12 倍 | 13.965 元 | 109.29 亿元 | 47.8% |
| 15 倍 | 11.172 元 | 87.43 亿元 | 38.2% |
| 18 倍 | 9.310 元 | 72.86 亿元 | 31.8% |
| 20 倍 | 8.379 元 | 65.57 亿元 | 28.7% |
| 22 倍 | 7.617 元 | 59.61 亿元 | 26.1% |
| 25 倍 | 6.703 元 | 52.46 亿元 | 22.9% |
| 28 倍 | 5.985 元 | 46.84 亿元 | 20.5% |
| 30 倍 | 5.586 元 | 43.71 亿元 | 19.1% |
| 32 倍 | 5.237 元 | 40.98 亿元 | 17.9% |
| 35 倍 | 4.788 元 | 37.47 亿元 | 16.4% |
| 40 倍 | 4.190 元 | 32.79 亿元 | 14.3% |
## 10. 持有期回报压力测试
若要求 5 年年化回报 10.0%,并假设累计每股分红 0.00 元,则所需退出价格为 **269.89 元**。
| 退出 PE | 届时所需归母利润 |
|---:|---:|
| 12 倍 | 176.01 亿元 |
| 15 倍 | 140.81 亿元 |
| 18 倍 | 117.34 亿元 |
| 20 倍 | 105.60 亿元 |
| 22 倍 | 96.00 亿元 |
| 25 倍 | 84.48 亿元 |
| 28 倍 | 75.43 亿元 |
| 30 倍 | 70.40 亿元 |
| 32 倍 | 66.00 亿元 |
| 35 倍 | 60.35 亿元 |
| 40 倍 | 52.80 亿元 |
## 11. 自动质检与异常驱动复核
总体状态:`PASS`。ERROR 会阻止把底稿当作正式结论;WARNING 只要求局部补查,不应重跑全部流程。
| 异常 ID | 严重度 | 数据项 | 现象 | 需要补什么 | 修复后重算范围 |
|---|---|---|---|---|---|
| — | PASS | — | 未发现自动异常 | — | — |
## 11.1 估值泡沫判定
- 当前价167.58元未高于基准合理区间上沿184.01元,按手册规则**未识别估值泡沫**。
- 当前价相对基准上沿为-8.93%,相对乐观上沿为-33.63%。
- 这不等于没有经营风险;若利润情景下修,合理区间会同步下移,需要按下调触发器复评。
## 12. 风险、上调与下调触发器
### 12.1 主要风险
- 2026H1归母利润仅增长15.03%,低于当前一致预期隐含的全年约37%增速,下半年需要明显加速才能兑现43亿元左右的机构预测。
- 应收账款规模高、海外EPC周期1至3年,存在回款、汇率、税务、施工、合同与分包风险。
- 铜铝等大宗原料、半导体器件和国际物流价格上涨,以及低毛利EPC/储能占比提高,可能压制整体利润率。
- 海外业务扩张带来汇兑与当地运营风险;2026H1已出现美元应收等外币资产的较大汇兑损失。
- 机构汇总口径不是法定事实,且覆盖池数量不等于每个年度的有效样本数。
### 12.2 上调触发器
- 新增订单持续接近公司2026年375亿元经营目标,合同负债与现金回款同步增长。
- 下半年归母利润增速回升至25%以上,开关、变压器等高毛利业务占比稳定,汇兑损失收窄。
### 12.3 下调或失效触发器
- 2026年归母净利润低于38亿元,或收入增长继续快于利润而毛利率显著下行。
- 应收账款和海外EPC风险上升、经营现金流转弱,或思源东芝少数股权变化持续稀释归母利润。
## 13. 复评增量清单
下次复评默认只更新:价格与市值、最新股本、最新财报/预告及修正、机构预测、现金债务、重大合同和公司行动。历史年报原文及已验证公式在没有重述触发器时直接复用。
## 14. 复算摘要
```text
总市值 = 167.58 × 782573282.0 = 131143630597.560 元
TTM 收入 = 年度 + 本期累计 - 上年同期 = 22881137303.76 元
TTM 归母 = 年度 + 本期累计 - 上年同期 = 3253596015.96 元
TTM 扣非 = 年度 + 本期累计 - 上年同期 = 3007392556.91 元
PB = 市值 ÷ 归母净资产 = 8.136680284398523118984679122
PS = 市值 ÷ TTM 收入 = 5.731517138180430199177275268
```
## 15. 结论边界
- 自动引擎冻结算术、口径、机构时效和异常检查,不替代对利润持续性、订单真实性、竞争格局和治理风险的人工判断。
- 机构预测、公司预告和本报告情景已分开标记,不把预测写成事实。
- 情景价值不是目标价承诺;若自动质检存在 ERROR,必须先修复输入再形成正式判断。
- 未披露的资产注入、并购或政策收益不得计入基础价值。
---
生成器版本:`1.0.0`;输入快照:`SNAPSHOT-002028-20260813-V1`。
ana-data/result/股票估值/20260813_sieyuan_electric_valuation/思源电气估值快照_20260813.json
New file
@@ -0,0 +1,316 @@
{
  "snapshot_id": "SNAPSHOT-002028-20260813-V1",
  "meta": {
    "company": "思源电气",
    "code": "002028.SZ",
    "market": "深圳证券交易所",
    "as_of_date": "2026-08-13",
    "currency": "CNY",
    "report_period_end": "2026-03-31",
    "latest_operating_info_date": "2026-07-11"
  },
  "market": {
    "price": 167.58,
    "price_type": "最近完整交易日前复权收盘价",
    "price_timestamp": "2026-08-13T15:00:00+08:00",
    "diluted_shares": 782573282.0,
    "shares_date": "2026-06-30",
    "platform_market_cap": 131143630597.56001
  },
  "financials": {
    "annual": {
      "attributable_profit": 3150142665.04,
      "basis": "audited",
      "capex": 820543022.2,
      "cfo": 2234278513.24,
      "deduct_profit": 2951560243.9,
      "period_end": "2025-12-31",
      "revenue": 21539031405.33
    },
    "current_cumulative": {
      "attributable_profit": 549952870.75,
      "basis": "quarterly_report_unaudited",
      "capex": 207575929.39,
      "cfo": -482504134.51,
      "deduct_profit": 492523178.25,
      "period_end": "2026-03-31",
      "revenue": 4568663867.62
    },
    "prior_year_same_period": {
      "attributable_profit": 446499519.83,
      "basis": "reported_comparative",
      "capex": 258227752.57,
      "cfo": -558761573.91,
      "deduct_profit": 436690865.24,
      "period_end": "2025-03-31",
      "revenue": 3226557969.19
    }
  },
  "balance_sheet": {
    "cash_available": 3488664441.56,
    "equity": 16117584323.550001,
    "interest_bearing_debt": 798062766.64,
    "minority_interest": 329349663.48,
    "non_operating_financial_assets": 3839128121.96,
    "period_end": "2026-03-31"
  },
  "normalization": {
    "adjustments": [
      {
        "description": "以TTM扣非归母利润替代TTM归母利润作为核心盈利代理",
        "amount": -246203459.0500002,
        "basis": "2025年报加2026Q1减2025Q1;最新半年预告/快报仅用于情景利润,不混入TTM法定口径"
      }
    ]
  },
  "valuation": {
    "scenarios": [
      {
        "name": "悲观",
        "role": "pessimistic",
        "method": "pe",
        "profit_low": 3300000000.0,
        "profit_high": 3800000000.0,
        "multiple_low": 20.0,
        "multiple_high": 25.0,
        "assumption": "需求、订单或毛利率低于预期,利润下修且估值回归行业低位。"
      },
      {
        "name": "基准",
        "role": "base",
        "method": "pe",
        "profit_low": 3800000000.0,
        "profit_high": 4500000000.0,
        "multiple_low": 26.0,
        "multiple_high": 32.0,
        "assumption": "结合2026年最新业绩预告/快报、机构一致预期、订单与现金流,给予与增长持续性和风险相匹配的PE区间。"
      },
      {
        "name": "乐观",
        "role": "optimistic",
        "method": "pe",
        "profit_low": 4600000000.0,
        "profit_high": 5200000000.0,
        "multiple_low": 32.0,
        "multiple_high": 38.0,
        "assumption": "订单、海外扩张、产品结构和利润率超预期,利润与估值中枢同步上移。"
      }
    ],
    "reverse_pe_multiples": [
      12,
      15,
      18,
      20,
      22,
      25,
      28,
      30,
      32,
      35,
      40
    ],
    "exit_pe_multiples": [
      12,
      15,
      18,
      20,
      22,
      25,
      28,
      30,
      32,
      35,
      40
    ],
    "holding_period": {
      "years": 5,
      "required_return": 0.1,
      "cumulative_dividend_per_share": 0
    }
  },
  "institutions": {
    "coverage_status": "available",
    "forecasts": [
      {
        "institution": "东方财富公开一致预期汇总(覆盖池17家)",
        "report_date": "2026-08-13",
        "include": true,
        "core_assumption": "汇总快照不替代逐家研报;覆盖池数量不等于每个年度的有效样本数。",
        "source_id": "SRC-EM-CONSENSUS-20260813",
        "estimates": {
          "2026": {
            "eps": 5.506625,
            "profit": 4309337598.99325
          },
          "2027": {
            "eps": 7.5113125,
            "profit": 5878152475.2526245
          },
          "2028": {
            "eps": 10.031071428571,
            "profit": 7850048489.833236
          }
        }
      }
    ]
  },
  "sources": [
    {
      "id": "SRC-ANNUAL-2025",
      "source_type": "cninfo",
      "title": "2025年年度报告",
      "publish_date": "2026-04-18",
      "period_end": "2025-12-31",
      "url": "https://static.cninfo.com.cn/finalpage/2026-04-18/1225117829.PDF",
      "supports": [
        "financials.annual",
        "business",
        "profit_sources",
        "risks"
      ],
      "revision_status": "current"
    },
    {
      "id": "SRC-CURRENT-2026Q1",
      "source_type": "cninfo",
      "title": "2026年一季度报告",
      "publish_date": "2026-04-25",
      "period_end": "2026-03-31",
      "url": "https://static.cninfo.com.cn/finalpage/2026-04-25/1225177123.PDF",
      "supports": [
        "financials.current_cumulative",
        "financials.prior_year_same_period",
        "balance_sheet",
        "balance_sheet.equity"
      ],
      "revision_status": "current"
    },
    {
      "id": "SRC-LATEST-OPERATING",
      "source_type": "financial_mirror",
      "title": "2026年半年度业绩快报",
      "publish_date": "2026-07-11",
      "period_end": "2026-06-30",
      "url": "https://file.finance.sina.com.cn/211.154.219.97%3A9494/MRGG/CNSESZ_STOCK/2026/2026-7/2026-07-11/12441232.PDF",
      "supports": [
        "latest_operating_information",
        "valuation.scenarios"
      ],
      "revision_status": "current"
    },
    {
      "id": "SRC-SHARES-A1",
      "source_type": "szse",
      "title": "2025年度权益分派实施公告(现有总股本证明)",
      "publish_date": "2026-07-01",
      "period_end": "2026-06-30",
      "url": "https://disc.static.szse.cn/download/disc/disk03/finalpage/2026-07-01/d515dfa9-944e-45e0-adce-b7b4d6f678e0.PDF",
      "supports": [
        "market.diluted_shares",
        "market.shares_date"
      ],
      "revision_status": "current"
    },
    {
      "id": "SRC-LOCAL-FRONT-KLINE",
      "source_type": "quote_provider",
      "title": "trading_xuntou前复权日K完整收盘价",
      "publish_date": "2026-08-13",
      "period_end": "2026-08-13",
      "url": "mysql://trading_xuntou/cn_stock_kline_1d_front",
      "supports": [
        "market.price",
        "market.price_timestamp",
        "market.amount",
        "analysis.kline"
      ],
      "revision_status": "current"
    },
    {
      "id": "SRC-EM-QUOTE-SHARES",
      "source_type": "quote_provider",
      "title": "东方财富当前总股本与总市值快照交叉核验",
      "publish_date": "2026-08-13",
      "period_end": "2026-08-13",
      "url": "https://push2delay.eastmoney.com/api/qt/stock/get",
      "supports": [
        "market.diluted_shares",
        "market.platform_market_cap"
      ],
      "revision_status": "current"
    },
    {
      "id": "SRC-EM-CONSENSUS-20260813",
      "source_type": "institution_aggregator",
      "title": "东方财富盈利预测汇总",
      "publish_date": "2026-08-13",
      "period_end": "2026-08-13",
      "url": "https://datacenter-web.eastmoney.com/api/data/v1/get?reportName=RPT_WEB_RESPREDICT",
      "supports": [
        "institutions"
      ],
      "revision_status": "current"
    }
  ],
  "analysis": {
    "company_type": "输配电设备、保护自动化、电力电子、海外EPC与储能系统",
    "primary_model": "2026年前瞻PE情景;TTM扣非、PB、现金流、最新半年预告/快报与反向利润交叉验证",
    "cross_checks": [
      "最新半年预告/快报",
      "机构一致预期",
      "PB/ROE",
      "经营现金流与资本开支",
      "订单/合同负债/应收",
      "前复权量价"
    ],
    "profit_sources": [
      "2025年开关类收入89.35亿元、变压器类46.33亿元、保护及自动化25.42亿元,是利润的主体;三类毛利率分别为36.88%、36.39%和35.11%。",
      "电力电子、EPC和储能系统及元件收入分别15.25亿元、23.32亿元和15.31亿元;后两类增长快但毛利率仅约11.8%,对收入增长的贡献高于对利润的贡献。",
      "2025年海外收入58.03亿元、同比增长85.84%,占收入26.94%;新增订单288.91亿元、同比增长34.64%,订单与海外扩张是未来利润的主要驱动。"
    ],
    "profit_source_quality": [
      "2025年经营现金流22.34亿元、低于归母净利润31.50亿元;TTM经营现金流23.11亿元,简化自由现金流15.41亿元,现金流为正但转化率不算高。",
      "2025年末应收账款81.83亿元,占总资产27.42%;合同负债29.77亿元,2026Q1升至31.50亿元。较高预收支撑订单,但高应收和海外EPC拉长回款周期。",
      "2026年半年业绩快报归母14.87亿元、同比增长15.03%,明显慢于收入27.14%;汇兑损失及思源东芝持股比例变更压低归母利润增速。",
      "法定TTM归母32.54亿元、TTM扣非30.07亿元;主模型以最新半年信息和机构预期构造2026全年情景。",
      "TTM经营现金流23.11亿元、资本开支7.70亿元、简化自由现金流15.41亿元。"
    ],
    "risks": [
      "2026H1归母利润仅增长15.03%,低于当前一致预期隐含的全年约37%增速,下半年需要明显加速才能兑现43亿元左右的机构预测。",
      "应收账款规模高、海外EPC周期1至3年,存在回款、汇率、税务、施工、合同与分包风险。",
      "铜铝等大宗原料、半导体器件和国际物流价格上涨,以及低毛利EPC/储能占比提高,可能压制整体利润率。",
      "海外业务扩张带来汇兑与当地运营风险;2026H1已出现美元应收等外币资产的较大汇兑损失。",
      "机构汇总口径不是法定事实,且覆盖池数量不等于每个年度的有效样本数。"
    ],
    "upgrade_triggers": [
      "新增订单持续接近公司2026年375亿元经营目标,合同负债与现金回款同步增长。",
      "下半年归母利润增速回升至25%以上,开关、变压器等高毛利业务占比稳定,汇兑损失收窄。"
    ],
    "downgrade_triggers": [
      "2026年归母净利润低于38亿元,或收入增长继续快于利润而毛利率显著下行。",
      "应收账款和海外EPC风险上升、经营现金流转弱,或思源东芝少数股权变化持续稀释归母利润。"
    ],
    "executive_conclusion": "167.58元位于基准合理区间126.25至184.01元内,判断为基本合理。当前结论依赖2026年利润兑现,不构成目标价或交易指令。",
    "consensus_org_count": 17,
    "consensus_coverage_note": "东方财富公开汇总覆盖池17家;2026E EPS 5.5066元,对应利润43.09亿元。",
    "latest_operating_info_note": "快报口径:收入108.03亿元、归母14.87亿元、扣非14.19亿元、经营现金流2.25亿元。",
    "consensus_target_range": "209.20至273.00元(仅作市场预期参照,不替代本报告合理区间)",
    "kline_return_20d": 0.053432235353281454,
    "kline_return_60d": -0.1405713113492999,
    "ma60": 174.2086666666667,
    "distance_to_ma60": -0.03805015441252446,
    "amount_ratio_5d_to_60d": 0.6901672033011779,
    "market_sample_count": 103,
    "market_source_batch_id": "FKL_20260813_161015_179d5321_1d_20260813_00002",
    "market_updated_at": "2026-08-13 16:17:25",
    "ttm_cfo": 2310535952.64,
    "ttm_capex": 769891199.02,
    "ttm_fcf": 1540644753.62,
    "total_equity_original": 16446933987.03,
    "attributable_equity_used": 16117584323.550001,
    "minority_interest_original": 329349663.48,
    "report_shares": 782451182.0,
    "share_proof_status": "MATCH_A1_CHANGE",
    "information_cutoff": "2026-08-13T23:59:00+08:00"
  }
}
ana-data/result/股票估值/目录说明.md
@@ -78,6 +78,13 @@
- 综合优先级为国科军工、国睿科技、中无人机、北方导航、航天南湖;前三者中,中无人机仅列为高战略弹性的条件型观察,不代表当前价格便宜。
- 8月7日日K齐全,但权威交易日历当前资产仅覆盖到8月6日;本批按正式交接授权的市场截止日保留8月7日实际行情和有界缺口,不写入每日估值台账。
2026-08-13 德业股份与思源电气增量估值:
- `20260813_deye_valuation/`:德业股份,使用2026-08-13前复权收盘价、2025年报、2026年一季报、2026年半年度业绩预告和23家机构覆盖池形成三情景估值。
- `20260813_sieyuan_electric_valuation/`:思源电气,使用2026-08-13前复权收盘价、2025年报、2026年一季报、2026年半年度业绩快报和17家机构覆盖池形成三情景估值。
- `20260813_deye_sieyuan_batch_valuation/`:两家公司估值、机构利润、量价位置和风险差异的横向汇总;两份统一内核QA均为PASS、错误0、警告0。
- 两个正式估值版本已导入MySQL `stock_valuation`。因权威交易日历证据尚不能证明2026-08-13为可发布交易日,当日价格判定按门禁未写入,固定`latest.md/latest.csv/latest_gaps.csv`保持原有最新版本,未绕过或伪造日更结果。
标准公司结果包包含人工可读报告、估值快照、来源证据manifest以及`calculation/`下的V1底稿、结果和运行manifest。高德红外、长城军工属于历史人工报告;铖昌科技和晶品特装按形成时实际产物保留,不倒填后续标准包字段。
2026-08-05 新增 MySQL 每日台账及本地导出目录:
@@ -87,7 +94,7 @@
- `估值台账/latest.md`、`估值台账/latest.csv`:使用只读 `trading_xuntou.cn_stock_kline_1d_front` 的显式前复权完整日K生成;当前唯一版本为2026-08-07收盘后672只A股正式判定。合理区间未重估,仅选用各公司当日有效的最近正式估值版本刷新价格和判定。
- `估值台账/latest_gaps.csv`:当前记录5只未进入当日数值判定的已评估主体:`03888.HK 金山软件`、`09880.HK 优必选`两只港股不在A股行情合同内,`300862.SZ 蓝盾光电`没有2026-08-07证据完整前复权日K,`688066.SH 航天宏图`无法形成常规估值区间,`688287.SH 观典防务`已经退市。
- 2026-08-07判定分布:偏低53只、基本合理200只、偏贵161只、明显偏贵258只;672只A股价格、估值版本与标签公式一致,复算差异为0。MySQL当前为675只证券、686个估值版本,累计`daily_price=1468`、`daily_judgement=1468`。
- 当前全量口径为677个已评估主体:672只在`latest.md/latest.csv`形成2026-08-07数值判定,5只在`latest_gaps.csv`保留明确状态和最近可用价格证据,无静默漏项。
- 截至2026-08-13,全量口径为679个已评估主体:原677个主体加德业股份、思源电气;其中674个主体已形成数值合理区间,另2个特殊主体不能形成常规区间。固定日更文件仍是2026-08-07的672只数值判定和5只明确缺口,等待权威交易日历更新后再整体覆盖,无静默补写。
- 按“当前价高于基准合理区间上沿即存在估值泡沫”的统一定义,当前672只数值标的中419只触发泡沫、253只未触发;419只分为轻度36只、中度69只、高度56只、超过乐观上沿的极端泡沫258只。逐股主要原因、次要放大因素、推断性质、置信度、量价显影和复核触发器已经写入固定`latest.md/latest.csv`。
- 泡沫原因通过`../../../ai-valuation-analyst/tools/enrich_valuation_bubbles.py`逐份读取672份正式报告并结合前复权20/60日量价生成。除价格位置外,原因是“最可能解释”而非已证实资金流因果;完整定义和质量门见操作手册第三十三节。
- 用户可见的日更估值判定只维护固定的`latest.md`、`latest.csv`和`latest_gaps.csv`,后续完整交易日直接覆盖这组三个稳定文件,不创建日期版、批次版或并列历史日更文档;数据库历史行和基础估值证据继续用于追溯。