TradeAgents

Research Lab研究实验室 · Data integrity · Post-mortem数据完整性 · 事后复盘

TSM at a P/E of 1.01市盈率 1.01 倍的台积电

ADRsADRCurrency币种Share basis股本口径Post-mortem复盘

On 2026-09-19 a reader reported that our DCA page had Taiwan Semiconductor's New York-listed shares at a price-to-earnings ratio of 1.01. The true figure was 32.46. No number from the data feed was wrong on its own: three were in different units, and nothing reconciled them. Every figure the mistake touched came out cheaper than the truth — on a page whose only output is a judgement of how cheap a stock is.

2026-09-19,一位读者反馈:我们的定投估值页面显示,台积电在纽约上市的 ADR 市盈率只有 1.01 倍,而真实数字是 32.46 倍。数据源的每个数字单独看都没错,错在其中三个单位各不相同,却没有任何一步把它们对齐。这个错误波及的每一个数字都比真实值更“便宜”——而这个页面唯一的产出,恰恰就是判断一只股票有多便宜。

TL;DR要点

TSM is an American depositary receipt: a dollar-priced certificate for five ordinary shares of a company that reports in New Taiwan dollars. The page divided a dollar price by a Taiwan-dollar EPS, and counted ordinary shares instead of ADRs. The fix makes both corrections together, and checks the result against a per-ADR figure the feed publishes separately.

TSM 是一只美国存托凭证(ADR):以美元计价,每份代表 5 股普通股,而公司以新台币编制财报。页面用美元股价除以新台币每股收益,又用普通股股数代替了 ADR 份数。修复后两处校正同时进行,结果再用数据源另行公布的每份 ADR 数字核验。

P/E on the page页面显示的市盈率 1.01 The true trailing P/E that day was 32.46.当天真实的滚动市盈率为 32.46。
Headline V, inflated byV 总分被抬高 ~12 pts约 12 分 Through the DCF branch, whose own score read about 83.来自 DCF 分支,其分支得分约为 83。
Tracked names affected受影响的跟踪标的 1 / 60 Only ADRs — and the tracked list changes whenever someone opens a new name.仅限 ADR——而且每当有人打开新的标的,跟踪名单就会随之变化。
Figures: the feed's own fields for TSM, measured on 2026-09-19, the day the report came in, and the corrected values the fix produced from that same data, which our tests pin. None recomputed since.数字来源:2026-09-19(收到反馈当天)实测的 TSM 原始数据字段,以及修复程序基于同一批数据给出、由我们的测试锁定的修正值。此后均未重算。

What the page showed页面显示了什么

The DCA page scores each company from 0 to 100 on V, a cheapness score: today's multiples ranked against the company's own history, blended with a discounted-cash-flow (DCF) valuation. V sets a multiplier on a recurring contribution — 0.5× at 0, 1.0× at 50, 1.5× at 100 — so an error toward cheap sizes the next contribution up. On 2026-09-19 the page printed:

FigurePage showedTrue
Trailing P/E1.0132.46
Price / free cash flow11.4~73

The DCF branch compares a discounted value per share with the price, and was setting Taiwan dollars against US dollars. Its score came out at about 83, deep in cheap territory, pulling TSM's headline V up by about 12 points. None of it was real.

定投估值页面给每家公司打一个 0 到 100 的“便宜度”分数 V:把今天的估值倍数放进公司自身历史中排百分位,再与现金流折现(DCF)估值加权合成。V 决定定期投入金额的调节系数——0 分为 0.5 倍,50 分为 1.0 倍,100 分为 1.5 倍——所以偏向“便宜”的错误会把下一笔投入调大。2026-09-19,页面显示的是:

指标页面显示真实值
滚动市盈率1.0132.46
市价 / 自由现金流11.4~73

DCF 分支拿折现得到的每股价值与股价比较,而它当时是拿新台币去比美元。分支得分约为 83,明显落在“便宜”区间,把 TSM 的 V 总分抬高了约 12 分。这些都不是真的。

Three bases in one feed一个数据源,三种口径

An American depositary receipt (ADR) trades in New York and stands for a fixed number of a foreign company's ordinary shares, held by a depositary bank. It is priced in dollars while the company files at home, in its own currency. The fixed number is the depositary ratio — five for TSM. The feed returned all of this for one ticker and labelled none of the units:

FieldValueUnit
Share price434.67US dollars per ADR
Diluted EPS, trailing twelve months431.35Taiwan dollars per ADR
Ordinary shares (balance sheet)25.93 bnordinary shares
Shares outstanding (quote summary)5.19 bnADRs — exactly a fifth of the line above
Trailing EPS (quote summary)13.39US dollars per ADR

The P/E divided the first line by the second. A Taiwan-dollar EPS and a dollar price happen to be the same order of magnitude, so the ratio lands near 1 and reads like a glitch rather than a unit error. The factor of 32 between 1.01 and 32.46 is the exchange rate.

Market value used the ordinary-share count — five times too many for a per-ADR price. So price-to-free-cash-flow carried two errors pulling opposite ways: the currency made TSM look far cheaper, the share count five times dearer. The 11.4 was their net, and still cheap.

美国存托凭证(ADR)在纽约交易,每份代表存托银行持有的、固定数量的外国公司普通股。它以美元计价,公司则继续在本国、以本币编制财报。这个固定数量就是存托比例,TSM 为 5。同一个代码下,数据源返回了下面这些数字,却没有标明任何一个的单位:

字段数值单位
股价434.67每份 ADR,美元
稀释每股收益,过去十二个月431.35每份 ADR,新台币
普通股股数(资产负债表)259.3 亿普通股
流通股数(行情摘要)51.9 亿ADR 份数——恰好是上一行的五分之一
滚动每股收益(行情摘要)13.39每份 ADR,美元

市盈率用的是第一行除以第二行。新台币每股收益与美元股价恰好处在同一数量级,比值于是落在 1 附近,看上去像数据故障,而不像单位错误。1.01 与 32.46 之间那 32 倍的差距,就是汇率。

市值用的是普通股股数——对按每份 ADR 报价的价格来说,多了 5 倍。所以市价 / 自由现金流同时带着两个方向相反的错误:币种让 TSM 看起来便宜得多,股数又让它贵了 5 倍。11.4 是两者相抵的结果,仍然偏便宜。

What we found: only ADRs排查结果:只有 ADR

Only ADRs are affected — a description of the whole population, not a rule of thumb. A home-market listing prices and files in one currency, one share per share, so its arithmetic was always right:

ListingPriced inFiles inReconstructed P/ERight?
TSM — ADR in New YorkUS dollarNew Taiwan dollar1.01No — true 32.46
Samsung — Korean listingKorean wonKorean won40.9Yes
Itochu — Tokyo listingJapanese yenJapanese yen18.0Yes

Screening every name the page tracked that day against a P/E converted independently elsewhere in our data, exactly one of 60 disagreed: TSM. Reassuring about the day, not about the future — a company joins the tracked list whenever someone opens its page and it can be scored.

只有 ADR 受影响——这是对全部受影响范围的描述,而不是经验法则。本国上市的股票,报价与财报使用同一币种、一股就是一股,所以计算一直是对的:

上市地报价币种财报币种重建市盈率是否正确
TSM——纽约 ADR美元新台币1.01否——真实值 32.46
三星——韩国上市韩元韩元40.9是
伊藤忠——东京上市日元日元18.0是

把页面当天跟踪的每一只标的,与自有数据中另行独立换算的市盈率逐一比对,60 只里恰好 1 只对不上:TSM。这对当天令人放心,对未来却说明不了什么——只要有人打开某家公司的页面且它能够打分,它就会加入跟踪名单。

The fix: two corrections and a check修复:两处校正,一道核验

Both corrections, or neither

Currency and share basis are independent, and fixing one is worse than fixing neither. Convert only the currency and the P/E comes out right at 32.46, while price-to-free-cash-flow, EV/EBITDA and price-to-tangible-book stay wrong by a factor of five — with nothing to say which columns were repaired.

The ratio is derived, not looked up

Ordinary shares divided by ADRs gives 5.0 for TSM, so there is no table of known ratios to go stale. Counts that differ only slightly — treasury stock, basic versus diluted — are left alone; a ratio too extreme to be real is refused.

The earnings basis is checked, not assumed

Dividing EPS by five as well would have been wrong: the feed's EPS line for TSM is already per ADR — 5.06 times what net income over ordinary shares implies. Assuming that holds for every ADR is the kind of guess that caused this, so eps_scale() converts the statement EPS to dollars and compares it with the per-ADR trailing EPS the feed publishes separately, 13.39. It applies one of two corrections — none, or exactly the share ratio — whichever makes the figures agree, and names any other answer as unexplained rather than splitting the difference. Its first catch was our own test data, which quotes EPS per ordinary share.

Historical exchange rates, not today's

Converting a 2021 statement at a 2026 rate, then ranking today's multiple against the result, is the trap from A forward multiple needs a forward history in another costume. Each filing converts at the rate in force when it became public. Without a rate history, today's rate is used and labelled; with no rate at all, the page publishes no multiples.

We convert the statements, not the price — identical for the multiples, as a test pins, but it keeps the DCF's fair value in the currency the reader sees quoted. And the first version converted correctly without saying so; a follow-up that afternoon made the page say what it had converted.

两处一起改,否则都别改

币种与股本口径相互独立,只修一个比两个都不修更糟。只换算币种,市盈率会正确地变成 32.46,而市价 / 自由现金流、EV/EBITDA 和市价 / 有形净资产仍错 5 倍——也没有任何信息说明哪几列已经修好。

比例靠推算,不靠查表

普通股股数除以 ADR 份数,TSM 得 5.0,所以不需要一张会过时的已知比例表。两个股数只差一点点时(库存股、基本与稀释股本之别)不做调整;比例离谱到不可能为真时,直接拒绝。

每股收益口径靠核验,不靠假设

把每股收益也除以 5 是错的:数据源给 TSM 的每股收益本来就是按每份 ADR 计的——是“净利润 ÷ 普通股股数”的 5.06 倍。假设这一点适用于所有 ADR,正是造成这次问题的那类猜测,所以 eps_scale() 把财报每股收益换算成美元,再与数据源另行按每份 ADR 公布的滚动每股收益 13.39 比对:它只在两种校正中选一种——不校正,或恰好按存托比例校正——取能让两个数字对上的那一种,其他任何结果都标为“无法解释”,而不是取个折中。它抓到的第一个问题是我们自己的测试数据:那份数据的每股收益按普通股计。

用历史汇率,不用今天的汇率

用 2026 年的汇率换算 2021 年的财报、再拿今天的倍数与之比较排名,是《前瞻倍数,需要前瞻的历史》里那个陷阱换了身衣服。每期财报都按公开当时的汇率换算;拿不到汇率历史时改用当天汇率并注明;连当天汇率都拿不到时,页面不公布任何倍数。

我们换算的是财报而不是股价——对倍数而言两者等价,有测试锁定——但这样 DCF 的公允价值会保持为读者看到的报价币种。另外,修复的第一版换算正确却只字未提;同一个下午的后续修改,让页面说明了它换算了什么。

Caveats — what it still does not do局限:它仍然做不到什么

  • The ratio can go stale. It is derived from today's counts and applied to the whole history — right, since the deposit agreement fixes it, until a ratio-change corporate action, which no field in the feed announces.
  • The fallback carries drift. Without a rate history, today's rate covers the whole window. The page says so, but the older points carry the drift.
  • A blank currency field reads as a match. If the feed omits either currency, nothing is converted — right for a home-market listing, wrong for an ADR.
  • One effect on the score was measured. The ~12 points is the DCF branch's pull on the headline V, and the only effect on the score we quantified.
  • 比例可能悄悄过时。存托比例按今天的股数推算,再套用到整段历史——存托协议固定了它,所以这样做没错,直到发生调整存托比例的公司行动,而数据源里没有任何字段会预告。
  • 兜底方案带着汇率漂移。拿不到汇率历史时,整段区间统一按当天汇率换算。页面会注明,但较早的点位带着这段漂移。
  • 缺失的币种字段会被当作一致。数据源若缺少任一币种字段,就不做换算——对本国上市的股票是对的,对 ADR 则是错的。
  • 对分数的影响只量化了一项。约 12 分是 DCF 分支对 V 总分的拉动,也是我们唯一量化过的对分数的影响。

Check it yourself亲自验证

The TSM page is public. At the foot of the card headed What the percentiles are measured against is a line, Quote and filings reconciled, saying what was converted: filed in TWD, quoted in USD, each filing at the rate in force when it became public, share counts restated at five filed shares per quoted share. A US listing has no such line. The page's P/E will not match your broker's to the decimal — ours uses the last weekly close — but a factor of 32 would be hard to miss.

For the record: 52 tests pin the reconciliation, anchored on TSM's measured figures and checked against the feed's own trailing EPS, share count and market value. Nine more run the whole reconstruction with the data stubbed out, because arithmetic that is right and arithmetic that is used are different questions — removing the call left the first 52 passing.

TSM 的页面是公开的。在标题为“分位的比较基准”的卡片底部,有一行“报价与财报口径已对齐”,说明换算了什么:财报以 TWD 编制、股价以 USD 报价,每期财报按公开当时的汇率换算,股本数量按每 1 份报价股对应 5 股财报股本折算。美国上市公司没有这一行。页面上的市盈率不会与券商的数字精确到小数点后一致——我们用的是最近一周的收盘价——但 32 倍的差距很难看漏。

备查:52 个测试锁定这套换算,以 TSM 的实测数字为锚,并与数据源自己公布的滚动每股收益、股数和市值核对。另有 9 个测试在屏蔽数据源的情况下跑完整个估值重建,因为“算得对”和“真的被用上”是两个问题——把换算调用删掉,前 52 个测试依然全部通过。

Sources: the fix of 2026-09-19 and its same-afternoon follow-up; listing.py and the DCA reconstruction that calls it; tests/test_listing.py and the listing-basis integration tests in tests/test_dca_history.py. Figures as measured on 2026-09-19. This describes a measurement; it is not a recommendation about any security.

资料来源:2026-09-19 的修复及同一个下午的后续修改;listing.py 与调用它的定投估值重建;tests/test_listing.py 与 tests/test_dca_history.py 中的口径集成测试。数字均为 2026-09-19 实测。本文描述的是一次测量,不构成对任何证券的建议。