低估值研究:年度比较、口径与收益证据
本页是供本地审阅的未发布草稿。 第一层已完成,原有 130 期、556,948 行面板的全部旧值经过精确复核,扩展为 6,500 条日期、分组、指标和样本口径统计。第二层实际计算 720 条条件样本因子期间诊断,尚不足以提供完整全市场分组收益或实盘可执行结论。
财务历史和重建 ST 历史均为 revision_safe=false。本研究使用已参与探索的回溯历史,不能称为严格样本外。既有研究产物、原始数据及共享发布别名均予保留。
专题怎么读
沿用 /research/valuation-groups/ 作为低估值研究主入口,把年度比较、五种会计口径、历史状态分组、较早的普通估值组合档案、本次条件因子诊断与解释放在同一页。原有分布与因子筛选明细保留在叙事下方,不另建重复入口。
年度比较默认非 ST 普通 PB。主表每行取该年最后一个采样截面,列最低值、P1、P5、有效/报价数及排除数。P1、P5 是每只有效股票一个观测、线性插值的百分位,不按市值加权。另一个折叠表才列年内采样截面之间的极小值,保留并列日期和各极值日有效数,不把年内低点与各年最后采样截面的分位数混用。图表纵轴取对数,在空值或缺失年份处断线。2026 最后一行是 10 月 16 日,并非全年终点。2016—2025 每年 12 期,2026 共 10 期,都不是每日历史最低。
覆盖变化必须与估值一起看。2016-01-29 普通 PE 只有 10/2,558 个有效观测,金融模板历史缺口仍在。最新 *ST 扣非 PE 只有 4/88 个有效样本,描述的是可用正盈利子集。非 ST 必须有带日期的历史正常名称及上市区间证据,不能取重建 ST 正样本的补集。
2026-10-16 五口径均为正且报告期一致的共同样本为 1,743/5,567。普通 PE 与 PB 的排名相关为 0.5066,便宜五分位 Jaccard 为 28.07%;普通与扣非 PE 分别为 0.9466、75.38%;普通与扣商誉及无形资产 PB 分别为 0.9343、75.82%。Jaccard 是名单交集除以并集,不是某一名单保留了多少比例。这些比较同日估值排名,不是未来收益 IC,也不能证明哪种口径更赚钱。
收益证据分开读,解释仍需补证
专题引用仓库现有已公开的 style-factors/weekly-20260904 普通估值档案,期间为 2008-02-01 至 2026-09-04,PB 价值、PE 盈利收益率和 PS 价值各 4,518 个日观测。理想化多空差几何年化分别为 10.64%、5.24%、6.04%。按月五组比较两端,初始等权,调仓之间固定份额。留存历史实现采用 missing_holding_return=zero,与本次严格保留原成员、缺一即空的规则不同。32 项收据中 31 项匹配,meta.json 有差异,精确生成修订尚未恢复。因子字典和来源清单中的公式对应与 PIT 限制继续有效;此处没有替换成 Linux 较新的结果包。
本次新增研究采用 36 个单月前瞻收益期间,IC 以端点可解决为条件。正的条件相关不能直接证明无条件全股票效应、完整可交易五组收益或真实账户收益。页面缺口条形图展示原成员审计的互斥首次失败计数,不是收益;未把缺失收益画成零。精确计数与收益定义保留在下文。
一次性利润、周期高峰、减值预期、资产难变现和经营困境,都是需要调查的机制,本研究没有完成因果验证。归母盈利与扣非亏损可以同时出现,普通 PE 很低并不等于可持续的短回本期。扣除商誉、无形资产也不能认证清算可收回金额。存在 IC 关系时,组合仍可能无法按假定成交。讨论采用聚合或匿名解释,不公开私有单股身份及供应商金额。
专题证据只整理现有公开估值面板、历史风格摘要、公开来源 manifest 和既有端点缺口审计,不重跑研究。公开投影只保留聚合计数、排名相关、旧因子摘要和来源哈希;实际输入路径在仓库外准备收据中。复现命令为:
cd web
node --import tsx scripts/prepare-low-valuation-topic.mjs \
--gap-audit "$FROZEN_ENDPOINT_GAP_AUDIT" \
--output "$NEW_PUBLIC_AGGREGATE" \
--receipt "$NEW_EXTERNAL_RECEIPT"
两个输出目标都必须尚不存在。年度视图直接从原分组公开分布导出,验收时逐项对照既有私有年度摘要覆盖的全部行。没有把供应商原始数据或证券名单复制进专题。
第一层已确认的结果
形成日期为 2016-01-29 至 2026-10-16,最后一个月并未完成。2026-10-16 的 5,567 个有效市值报价样本,分为非 ST 5,333、ST 108、*ST 88、未知 38。未知包括名称未知或歧义 28、证券区间资料不足 8、名称与正状态冲突 1、退市整理期 1。全部报价口径包含未知证券,尚未独立认证完整交易所股票池。
下表均采用各指标自己的正分母可用样本。不同指标不一定是同一批证券。同一行中的算术均值和总市值/总分母则严格使用相同证券。
| 分组/口径 | 有效数 | 等权算术均值 | 总市值/总分母 | 中位数 | 最小有效正值 |
|---|---|---|---|---|---|
| 全部报价/扣非 PE TTM proxy | 3,703 | 210.8240 | 16.6107 | 41.3059 | 3.8897 |
| 非 ST/扣非 PE TTM proxy | 3,646 | 210.6871 | 16.5596 | 41.3554 | 3.8897 |
| ST/扣非 PE TTM proxy | 23 | 447.1766 | 36.0351 | 76.3380 | 16.0515 |
| *ST/扣非 PE TTM proxy | 4 | 121.7066 | 83.3040 | 106.4400 | 56.9525 |
| 全部报价/归母权益 PB | 5,447 | 5.3773 | 2.0431 | 2.5310 | 0.0496 |
| 非 ST/归母权益 PB | 5,252 | 5.0042 | 2.0593 | 2.5261 | 0.2253 |
| ST/归母权益 PB | 101 | 22.1442 | 2.1080 | 2.8792 | 0.3435 |
| *ST/归母权益 PB | 56 | 10.1351 | 1.9441 | 3.2765 | 0.0863 |
| 全部报价/扣商誉及无形资产 PB proxy | 2,601 | 47.8525 | 2.1790 | 2.7675 | 0.1091 |
| 非 ST/调整 PB proxy | 2,524 | 48.9953 | 2.2064 | 2.7690 | 0.2445 |
| ST/调整 PB proxy | 43 | 11.9691 | 2.2681 | 2.9448 | 0.3538 |
| *ST/调整 PB proxy | 14 | 13.9775 | 1.2915 | 2.6231 | 0.1091 |
88 个 *ST 样本中,只有四个具有正且可用的扣非利润。因此,扣非 PE 分布只代表一个很小的正利润子样本,不能概括整个 *ST 群体。极小正分母及右侧极端值也使算术均值特别敏感。全部报价的普通 PB 最小值来自未知状态,这进一步说明最小值不能直接当作正常股低估值名单。
私有核查表保留每个最小值的全部并列证券、实际分母和市值、报告期、有效样本数与风险标记,并为每个日期、组别、指标、样本口径保留最便宜十个证券,边界并列时扩展名单。网页只准备聚合结果,不包含供应商金额或逐证券名单。
指标和统计定义
市值 M 采用 daily_basic.total_mv × 10,000,单位元。普通 PE 为 M / TTM(n_income_attr_p),扣非 PE 为 M / TTM(profit_dedt)。中期 TTM 使用本期累计加上年全年、减上年同期累计;年报直接取全年。缺任一腿则不可用。供应商扣非字段未逐家公司认证归母普通股范围,继续保留 proxy。
普通 PB 的分母为 total_hldr_eqy_exc_min_int。两个调整 PB 分别再扣 goodwill 和 goodwill + intan_assets。商誉及无形资产是集团合并口径,未按归母和少数股东分配,且未额外扣资本化开发支出或税项。优先股、多股类市值的权益范围也尚未认证,不能改称严格归母有形净资产 PB。
metric_available 使用各指标最新合格财报及正分母可用样本;common_five 额外要求五种指标都可用且三表报告期相同。零和负分母单独计数,估值不可用;缺资产不填零,负资产值也不可用。分布统计不截断正估值,报告 P01、P05、P10、P25、中位数、P75、P90、P95、P99,使用 pandas 线性插值。
等权均值逐证券平均估值倍数。总市值/总分母使用完全相同的正分母样本,对应 sum(M) / sum(D)。它不等于算术均值或市值加权均值,在该样本内可解释为按分母加权的倍数。中位数和最小值均单列。
历史状态和来源
证券名称须在起止区间有效,公告日期严格早于形成日,同一最新起点不能存在名称歧义;上市日期必须已知且不晚于形成日,退市日期不能早于形成日。ST 名称须与重建正状态的类型和模拟可得日期一致,优先识别 *ST,再识别 ST。缺失日期、冲突、尚不可得的正状态、退市整理期均归未知。非 ST 须有有效的历史正常名称和无冲突正状态,不能只取 ST 正样本补集。
输入固定为原 valuation-panel-20261018/run03 面板及公开摘要、密封的 vintage=20261018 三类财报、原形成日市值分区哈希、20260928 版本名称变更与证券主表,以及 20261020 ST 重建表。ST 文件哈希为 d5ad218d558e31452e28d0d0f184ec31069b7213f4a60b63b3dd67f84c72dbee。130 期旧值逐项精确匹配,只允许拼接后整数年龄列扩宽为浮点数的存储类型差异。
财务部分沿用披露早于形成日、合并 report_type=1、各表独立 550 日新鲜度门槛,以及原有留存版本重建。它没有认证历史原始修订版本。本版刻意保留原金融模板覆盖缺口,未把单日修复冒充全历史修复。
价格端点采用此前 ST 配对研究记录的、截至 2026-10-16 的固定清洗资产,未改读移动中的清洗别名。运行收据记录其位置及 manifest、日历、全部形成日分区、财报、代码和产物哈希,并在完成前重新核对顶层输入。此项不构成全部价格文件供应商历史的独立再认证。
第二层已算内容与真实缺口
窗口固定为 36 个单月期间,形成日从 2022-12-30 至 2025-11-28,首个入场日 2023-01-03,最后入场日 2025-12-01,最终端点 2026-01-05。低正估值赋高分,按平均排名分五组,精确并列值留在同组。形成时至少 25 个有效信号;Rank IC 还须有至少十个可核实收益和非常数排名。没有根据跑出结果再降低门槛。因子诊断固定使用 metric_available,不随分布样本选择器切换。
入场采用形成后下一 SSE 交易日复权收盘,端点为下一形成日后交易日收盘。两端须价格有限且为正、成交额为正、非停牌;入场涨停、退出跌停、标志缺失或端点前退市均不可用。分组先于未来资料核对,任一原成员缺失则整组收益不可用,不补零、不将剩余成员重新归一。
个股前瞻收益为 adj_close(端点) / adj_close(入场) - 1,每组月内采用初始等权。复权价格只是收益代理,尚未建立原始股份、公司行动和现金权利账本。
Rank IC 是负估值倍数与可用端点收益的 Spearman 相关,受端点可核实样本选择约束。月度 IC 等权平均;至少六个月才按样本标准差与 sqrt(12) 计算 ICIR,它不构成显著性或稳健性结论。
| 分组 | 扣非 PE IC/月份 | 普通 PB IC/月份 | 调整 PB IC/月份 |
|---|---|---|---|
| 全部报价,收益另须上市区间 | 0.03374/36 | 0.07157/36 | 0.06339/36 |
| 非 ST | 0.03381/36 | 0.07207/36 | 0.06352/36 |
| ST | 不计算/0 | 0.03590/36 | 0.02405/35 |
| *ST | 不计算/0 | 0.02793/35 | −0.02858/6 |
完整五分组收益的支持远弱于 IC。 全部报价的普通 PB 和扣非 PE,五组各自均没有完整月份。全部报价调整 PB 最便宜一组只有一个完整月,低减高配对月份为零,因此不能提供全市场完整收益差或成本后业绩。
对既有成员审计表的事后核对解释了零月份的来源,没有重算收益。普通 PB 共 189,797 个股票月份,其中可核实 185,237、未解决 4,560;扣非 PE 共 133,275,可核实 131,115、未解决 2,160。下表按首次失败原因互斥归类,检查顺序为入场价格、入场成交额、入场停牌、入场涨停、终止事件、端点价格、端点成交额、端点停牌、端点跌停;省略零计数检查。这些数可相加,不是相互重叠的原始标志总数。
| 首次失败原因 | 普通 PB | 扣非 PE TTM proxy |
|---|---|---|
| 入场价格缺失或无效 | 125 | 37 |
| 前序检查通过后,入场涨停 | 3,373 | 1,785 |
| 入场检查通过后,端点前或当日退市 | 25 | 2 |
| 前序检查通过后,端点价格缺失或无效 | 351 | 140 |
| 前序检查通过后,端点跌停 | 686 | 196 |
| 未解决合计 | 4,560 | 2,160 |
36 个月中,每个月的每一个原始五分组都有未解决成员。普通 PB 第一至第五组的单月最小缺口分别为 3、4、4、6、10;扣非 PE 为 1、1、1、1、4。缺端点报价不等于已证实停牌,本版也不虚构月内成交。私有端点缺口收据保存成员表与运行收据哈希。完整组合缺失反映当前资料和执行模型的边界,不能据此推断其他地方没有价格,也不能解释为因子收益为零。
ST 普通 PB 最便宜组完整八个月,低减高可配对三个月;调整 PB 分别为十五和八个月。*ST 普通 PB 分别为八和三个月,调整 PB 为二和一个月。各项样本少且不同,不能据此认定哪种估值更赚钱。ST 与 *ST 扣非 PE 在本窗口均未达到固定 25 个信号门槛,留空处理。
换手比较等初始目标权重与上期完整组合漂移后的端点权重,按 L1 交易名义额计;只在首次计现金入场,末期计清算。上期持仓无法计价时,换手和净收益情景不可用,不把缺失历史重置成现金。0、10、30 基点成本按交易名义额作加法扣除,只是条件组合的假设敏感性,不是费用精确的再投资财富或实际成交。
毛收益和成本情景各自显示月份数;0、10、30 基点比较采用相同支持。不跨缺失月份拼接 CAGR。下一步应逐笔调查保留的缺失成员,重建真实股份和现金权益、公司行动、原始公告可得性及终止结算,再接入明确的交易与计价规则。仅有端点标志还不能支持持有期成交、冲击、实盘容量或融券结论,不能为了得到完整净值而填零或取最后价格。
例如,ST 普通 PB 最便宜组有八个月毛收益,却只有两个月交易名义额及成本情景。页面分别标示月份,并增加与 10、30 基点相同支持的 0 基点结果,避免把八个月毛收益均值当作两个月成本情景的基准。
复现和产物
由本机配置解析 owner 路径,复用现有锁定环境,设置 PYTHONPATH=src、OPENBLAS_NUM_THREADS=1、OMP_NUM_THREADS=1,共享主机可用较低 CPU 优先级。脚本不联网、不采集。DuckDB 固定两线程和 512MB;pandas 处理 130 个形成日及 37 个价格端点,并非每日全市场回测。512MB 不是整个 Python 进程的内存上限。
python scripts/analyze_grouped_valuation.py \
--baseline-panel "$QMR_DATA/task_outputs/valuation-panel-20261018/run03/reconstructed_panel.parquet" \
--baseline-summary web/public/data/valuation_panel_reviewed.json \
--vintage "$MDP_DATA/assets/tushare/a_share/fundamentals_vintages/vintage=20261018" \
--daily-basic "$FROZEN_DAILY_BASIC_LOCATOR" \
--namechange "$FROZEN_NAMECHANGE_20260928" \
--instruments "$FROZEN_INSTRUMENTS_20260928" \
--st-history "$FROZEN_ST_HISTORY_20261020" \
--daily-clean "$FROZEN_CLEAN_20261016" --calendar "$EXCHANGE_CALENDAR" \
--factor-start 20230101 --factor-end 20251231 \
--output "$NEW_RESEARCH_OUTPUT"
输出目录必须不存在并位于仓库外。私有面板、最小值核查表、低估值尾部表和因子成员审计保留在外部研究目录。分布 CSV、期间诊断 JSON 和草稿聚合 JSON 记录派生统计。第一层收据确保第二层失败时仍有具体交付,最终 receipt.json 记录输入、代码和所有产物哈希。工作树公开数据目录仅准备聚合草稿,不部署、不晋级。
Low-valuation research: annual comparisons, definitions and return evidence
Unpublished draft, prepared for local review. The first layer is complete. The frozen 130-date, 556,948-record baseline was reproduced with every stored value equal, then extended into 6,500 date/group/metric/sample-basis distribution rows. The second layer contains 720 conditional factor-period diagnostics. It does not establish a complete or executable return history.
Financial histories and reconstructed ST histories both have revision_safe=false. These historical observations are not untouched out-of-sample evidence. Existing results, source assets and published aliases were preserved.
Reading the topic
The existing /research/valuation-groups/ URL is the low-valuation topic. It combines annual comparisons, five accounting definitions, historical status groups, the older ordinary valuation portfolio archive, conditional factor diagnostics and interpretation. Detailed distribution and factor controls remain below the narrative.
Annual comparisons default to non-ST parent-equity PB. Each main row is the last sampled date in that year, with minimum, P1, P5, valid/quoted counts and exclusions. P1 and P5 give every valid stock one observation with linear interpolation, without market-cap weighting. A separate foldout reports the minimum across that year’s sampled cross-sections, including every tied date and its valid sample count. It does not mix extreme dates with last-sampled-date percentiles. The chart uses a logarithmic vertical scale and breaks at unavailable values or missing years. The latest row is 2026-10-16, not a full-year endpoint. There are 12 samples per year in 2016–2025 and ten in 2026; none claim daily historical lows.
Coverage changes are visible. Ordinary PE on 2016-01-29 has just 10 valid observations out of 2,558 quotes. The financial-template gap remains. Latest *ST deducted PE covers only 4/88 quotes, describing an available positive-profit subset. A dated historical normal name and listing interval are required for non-ST; absence from the reconstructed positive ST file is insufficient.
The 2026-10-16 common positive, same-period sample contains 1,743/5,567 quotes. PE versus PB rank correlation is 0.5066, with cheapest-quintile Jaccard 28.07%; ordinary versus deducted PE is 0.9466 and 75.38%; PB versus PB excluding goodwill and intangibles is 0.9343 and 75.82%. Jaccard is intersection/union, not the fraction of one selected list retained. These compare same-date valuation ranks, not forward-return IC or which definition earns more.
Separate return experiments and interpretation
The topic retains the existing published style-factors/weekly-20260904 ordinary valuation archive: 2008-02-01 to 2026-09-04, with 4,518 daily observations each for PB value, PE earnings yield and PS value. Their geometric annualized idealized long-short spreads are 10.64%, 5.24% and 6.04%. Monthly quintiles use equal initial endpoint weights and fixed shares between rebalances. The retained historical implementation uses missing_holding_return=zero, materially different from the new complete-original-basket rule below. Of 32 receipts, 31 match, with a meta.json difference and unrecovered exact generating revision. Source/formula and PIT limitations in the factor dictionary and source inventory remain. A newer Linux package is not substituted here.
The new study uses 36 monthly forward-return periods and conditions IC on resolvable endpoints. A positive conditional correlation does not establish an unconditional all-stock result, a full executable quintile history or a live account. Gap bars show first-failing-check counts from the retained member audit, not returns; missing returns are never plotted as zero. Exact counts and definitions remain below.
One-off earnings, cyclical profit peaks, expected impairment, weak asset realization and distress are mechanisms to investigate, not causal findings here. Positive parent profit can coexist with a deducted loss, so very low ordinary PE need not mean a sustainable short payback period. Deducting goodwill and intangibles does not prove liquidation proceeds. An IC relationship can coexist with an untradeable basket. Discussion is aggregate or anonymous; private security identities and supplier amounts are not published.
Topic evidence is prepared without rerunning research from the existing public valuation panel, historical factor summary, public source manifest and retained endpoint-gap audit. Its public projection includes only aggregate counts, correlations, old factor summaries and source hashes; the external receipt retains exact input paths. To reproduce into new destinations:
cd web
node --import tsx scripts/prepare-low-valuation-topic.mjs \
--gap-audit "$FROZEN_ENDPOINT_GAP_AUDIT" \
--output "$NEW_PUBLIC_AGGREGATE" \
--receipt "$NEW_EXTERNAL_RECEIPT"
Both destinations must not exist. Annual views derive directly from the original grouped public distributions; all annual rows covered by the private annual summary are checked against it at acceptance. No raw vendor data or security list is copied to the topic.
Scope and first findings
Formations run from 2016-01-29 through 2026-10-16. October is partial. Four status groups and an unknown category are retained. “All quoted” includes unknown status; it is not independently certified complete exchange membership.
The latest 5,567 quoted names comprise 5,333 non-ST, 108 ST, 88 *ST and 38 unknown. Unknown reasons are 28 unknown/ambiguous names, eight unavailable instrument intervals, one name/positive-state conflict and one delisting-period record. A missing positive ST row alone never establishes normal status.
The following are metric-specific positive-denominator samples on 2026-10-16. They are not the same stocks across definitions. Equal-weight arithmetic mean and ratio of totals use the identical valid sample within each row.
| Group / definition | Valid names | Equal-weight mean | Total M / total D | Median | Minimum positive |
|---|---|---|---|---|---|
| All quoted / deducted PE TTM proxy | 3,703 | 210.8240 | 16.6107 | 41.3059 | 3.8897 |
| Non-ST / deducted PE TTM proxy | 3,646 | 210.6871 | 16.5596 | 41.3554 | 3.8897 |
| ST / deducted PE TTM proxy | 23 | 447.1766 | 36.0351 | 76.3380 | 16.0515 |
| *ST / deducted PE TTM proxy | 4 | 121.7066 | 83.3040 | 106.4400 | 56.9525 |
| All quoted / parent-equity PB | 5,447 | 5.3773 | 2.0431 | 2.5310 | 0.0496 |
| Non-ST / parent-equity PB | 5,252 | 5.0042 | 2.0593 | 2.5261 | 0.2253 |
| ST / parent-equity PB | 101 | 22.1442 | 2.1080 | 2.8792 | 0.3435 |
| *ST / parent-equity PB | 56 | 10.1351 | 1.9441 | 3.2765 | 0.0863 |
| All quoted / PB excluding goodwill and intangibles proxy | 2,601 | 47.8525 | 2.1790 | 2.7675 | 0.1091 |
| Non-ST / adjusted PB proxy | 2,524 | 48.9953 | 2.2064 | 2.7690 | 0.2445 |
| ST / adjusted PB proxy | 43 | 11.9691 | 2.2681 | 2.9448 | 0.3538 |
| *ST / adjusted PB proxy | 14 | 13.9775 | 1.2915 | 2.6231 | 0.1091 |
Only four of 88 *ST names have positive available deducted earnings. Its PE distribution therefore describes a highly selected positive-profit subset. Extreme ratios and small denominators make arithmetic means particularly sensitive. The all-quoted minimum ordinary PB belongs to unknown status, illustrating why a minimum cannot establish a cheap normal stock.
The private audit retains every minimum tie, its security identifier, actual denominator and market value, report periods, valid sample count and risk flags. Each date/group/metric/basis also has a ten-name low-valuation tail, extended for boundary ties. The draft public file contains aggregate statistics only, not supplier amounts or security-level lists.
Five definitions and two sample bases
M is daily_basic.total_mv × 10,000 in yuan. PE uses M / TTM(n_income_attr_p); deducted PE uses M / TTM(profit_dedt) as a supplier-defined proxy. TTM is current YTD plus prior full year minus matching prior YTD; annual reports use their annual amount. Missing legs are unavailable.
Parent-equity PB divides M by total_hldr_eqy_exc_min_int. Adjusted variants deduct goodwill, then goodwill + intan_assets. These assets have consolidated group scope while equity excludes minority interests. Attribution, preferred equity and multi-class market value are not certified. Capitalized development costs and tax adjustments are not additionally deducted. Proxy labels are retained.
metric_available uses each metric’s positive finite denominator and corresponding latest admissible report. common_five additionally requires all five metrics and matching report periods. Both bases are available at every formation, including empty groups. Quantiles P01/P05/P10/P25/P50/P75/P90/P95/P99 use pandas linear interpolation. Zero/negative denominators are counted but never become low valuations. Missing assets are not zero, negative asset balances are unavailable, and no positive multiple is clipped for this distribution study.
The arithmetic mean averages security-level multiples equally. Ratio of totals is sum(M) / sum(D) over the identical positive valid set. It is not an arithmetic or market-cap-weighted mean; it can be interpreted as denominator-weighted multiples on that set. Median and minimum remain separate fields.
Historical status and provenance
Names must be active in their start/end interval, have announcement dates strictly before formation, and have no ambiguous latest-start names. Instruments must have a known listing date no later than formation and no prior delisting. A special-treatment name must match the reconstructed positive state’s type and modeled availability. *ST is matched before ST. Disagreement, missing dates, unavailable positive states and delisting periods remain unknown. Non-ST requires a positively observed dated normal name plus absence of a conflicting positive state; positive-file absence by itself is insufficient.
Inputs are the original valuation-panel-20261018/run03 panel and published summary, the sealed vintage=20261018 financial tables, each original hashed daily-basic formation partition, namechange/instruments version 20260928 and reconstructed ST version 20261020. ST file SHA256 is d5ad218d558e31452e28d0d0f184ec31069b7213f4a60b63b3dd67f84c72dbee. The 130 baseline values are checked exactly; only whole-panel integer-to-float dtype widening is tolerated.
Financial admission retains strict prior-date disclosure, consolidated report_type=1, per-table 550-day freshness and the original retained-version reconstruction. It does not certify original historic report revisions. The financial-template diagnosis is not silently incorporated; this first version deliberately preserves the existing baseline and its coverage gap.
Daily price endpoints come from the immutable retained clean asset referenced by the earlier ST paired study, through 2026-10-16, rather than a moving clean alias. Its path and manifest hash, the calendar, all formation partitions, all financial input hashes, code hashes and output hashes are recorded in the external run receipt. Top-level input files are checked again before run completion. This is not an independent revalidation of every price file’s vendor history.
Conditional factor results and the return blocker
The fixed diagnostic window has 36 monthly formations from 2022-12-30 through 2025-11-28, entries 2023-01-03 through 2025-12-01 and final endpoint 2026-01-05. Signals are positive multiples, with lower values receiving higher scores. Five groups are formed using average ranks so exact ties stay together. At least 25 signal names are required; Rank IC additionally requires at least ten resolved returns and nonconstant ranks. Factor diagnostics always use metric_available, independently of the distribution sample selector.
Entry is the next SSE session’s adjusted close; endpoint is the session after the next formation. Positive finite prices, positive amount and non-suspended flags are required at both endpoints. A long entry at an up limit, an exit at a down limit, missing flags or a delisting before endpoint leave the return unresolved. There is no future-availability filter before quintile construction. A quintile requires every original member; missing members do not receive zero or trigger renormalization.
The stock forward return is adj_close(endpoint) / adj_close(entry) - 1, with equal initial weights within each basket. This adjusted-price proxy does not establish a raw-share and corporate-action cash ledger.
Rank IC is Spearman correlation between −multiple and the available endpoint return, conditional on resolved outcomes. It is not an unconditional all-stock result. The monthly IC mean is equal-weighted across admitted months; ICIR uses sample standard deviation times sqrt(12), only with at least six months, and is not a significance claim.
| Group | Deducted PE IC / months | Parent PB IC / months | Adjusted PB IC / months |
|---|---|---|---|
| All quoted, listing interval required | 0.03374 / 36 | 0.07157 / 36 | 0.06339 / 36 |
| Non-ST | 0.03381 / 36 | 0.07207 / 36 | 0.06352 / 36 |
| ST | unavailable / 0 | 0.03590 / 36 | 0.02405 / 35 |
| *ST | unavailable / 0 | 0.02793 / 35 | −0.02858 / 6 |
Complete quintile return support is much weaker than IC support. All-quoted parent-PB and deducted-PE quintiles have zero complete months under these strict original-basket rules. All-quoted adjusted PB has one complete cheapest-quintile month and no paired cheap/expensive month. Thus there is no complete all-market quintile history, spread or cost result to report.
A post-run audit of the existing member records explains the zero support; it does not rerun returns. Parent PB has 189,797 stock-months, with 185,237 resolved and 4,560 unresolved. Deducted PE has 133,275, with 131,115 resolved and 2,160 unresolved. The mutually exclusive counts below assign the first failing check in this order: entry price, entry amount, entry suspension, entry limit, terminal event, endpoint price, endpoint amount, endpoint suspension, endpoint limit. Zero-count checks are omitted. They are not overlapping raw flag totals.
| First failing check | Parent PB | Deducted PE TTM proxy |
|---|---|---|
| Entry price missing or invalid | 125 | 37 |
| Entry up limit after preceding checks pass | 3,373 | 1,785 |
| Delisting by endpoint after entry checks pass | 25 | 2 |
| Endpoint price missing or invalid after preceding checks pass | 351 | 140 |
| Endpoint down limit after preceding checks pass | 686 | 196 |
| Total unresolved | 4,560 | 2,160 |
Every one of the five original baskets has unresolved members in every one of the 36 months. The minimum monthly unresolved counts for quintiles 1–5 are 3/4/4/6/10 for parent PB and 1/1/1/1/4 for deducted PE. A missing endpoint quote does not establish suspension, and this draft does not invent an intramonth fill. The private endpoint-gap receipt preserves the source member and run-receipt hashes. Complete-basket absence is a limitation of the current evidence and execution model, not evidence that prices do not exist anywhere or that the factor has zero return.
ST parent PB has eight complete cheapest-quintile months and three paired-tail months; adjusted PB has 15 and eight respectively. *ST parent PB has eight and three; adjusted PB has two and one. These sparse and different conditional samples cannot establish which definition is better. ST and *ST deducted-PE samples never pass the fixed 25-name signal threshold in this window; results remain unavailable rather than lowering the threshold after seeing data.
Turnover compares equal initial target weights with the previous fully resolved basket’s drifted endpoint weights, using L1 traded notional. Initial cash entry and the final liquidation are included. Missing preceding basket marks make turnover and net scenarios unavailable; the method never resets missing history to cash. Costs are additive 0/10/30 bp per traded notional. These are hypothetical conditional-basket sensitivity calculations, not fee-accurate reinvested wealth or executed orders. Gross and cost summaries show their own month counts; 0/10/30 comparisons use identical support. There is no CAGR compounded across gaps.
For example, the cheapest ST parent-PB basket has eight gross-return months but only two traded-notional/cost months. The page displays each count and the 0 bp comparison on the same support as 10/30 bp, so the broader gross mean is not mistaken for the cost scenarios’ baseline.
The practical next step is to investigate the retained unresolved member audit, reconstruct raw shares, cash entitlements and corporate actions, and use a specified execution/marking policy with dated availability and terminal settlements. Endpoint flags alone do not support intramonth fills, market impact, actual capacity, borrowing or a continuous account ledger. Missing marks must not be replaced with zero or the last price just to obtain a full-market performance line.
Reproduction and output contract
Resolve machine-local owner paths externally. Use the existing locked project environment, set PYTHONPATH=src, OPENBLAS_NUM_THREADS=1 and OMP_NUM_THREADS=1, and run with lower CPU priority if sharing the host. No download or API request is made. DuckDB is fixed at two threads and 512MB; pandas works on the selected 130 formations and 37 price endpoint dates, not a daily whole-market backtest. This budget does not impose a 512MB cap on the entire Python process.
python scripts/analyze_grouped_valuation.py \
--baseline-panel "$QMR_DATA/task_outputs/valuation-panel-20261018/run03/reconstructed_panel.parquet" \
--baseline-summary web/public/data/valuation_panel_reviewed.json \
--vintage "$MDP_DATA/assets/tushare/a_share/fundamentals_vintages/vintage=20261018" \
--daily-basic "$FROZEN_DAILY_BASIC_LOCATOR" \
--namechange "$FROZEN_NAMECHANGE_20260928" \
--instruments "$FROZEN_INSTRUMENTS_20260928" \
--st-history "$FROZEN_ST_HISTORY_20261020" \
--daily-clean "$FROZEN_CLEAN_20261016" --calendar "$EXCHANGE_CALENDAR" \
--factor-start 20230101 --factor-end 20251231 \
--output "$NEW_RESEARCH_OUTPUT"
Output must not exist and must be outside the repository. private_panel.parquet, private_minimum_audit.csv, private_low_valuation_tail.csv and private_factor_members.parquet stay in external research storage. distribution_statistics.csv, factor_periods.json, distribution_aggregate_draft.json and public_aggregate_draft.json contain derived aggregates; phase1_receipt.json preserves the completed first layer even if later return inputs fail, and receipt.json records complete run lineage. Only the aggregate draft is prepared in the worktree’s public-data directory. Nothing is deployed or promoted.