Skip to content

Market timing at extreme valuations: research, reports, and a Practical solution

Section titled “Market timing at extreme valuations: research, reports, and a Practical solution”

Task: Market-timing-refined-analysis (SDC/IP, Rock #2), 14 rounds over 5 days, compacted three times. Closed 2026-09-28. Continuation: Market-timing-Red-Team. Market-timing-report-rewrite and sdc-market-timing-lab follow it.

Critique Talbot’s hypothesis: at extreme valuations, “invest it all now” is incomplete and can be harmful, and some market-timing approach helps 10-year investors. Research first (borrow > build), then build and backtest US (S&P/CRSP) and Canada (TSX) against cash in total return, and produce a standalone HTML artifact.

  • ~/projects/cape-timing (registered: cape-timing). Gated data pipeline (Shiller, French/CRSP, StatCan TSX + XIC, FRED Z.1, JST Japan) and real-time percentiles, with no look-ahead. Scripts: run_all.py, run_vt.py, run_if_you_had.py (1999/1929, every period, exit variants, 20%+ declines), run_reward_risk.py (gauges, Martin ratio, risk-adjusted value), and build_brief.py (writes the Red Team brief into its task file). README = oversight SSOT.
  • Reports (~/artifacts/, relative cross-links; each claude.ai artifact bundles the other file):
  • Strategy IP: new group market-timing; valuation-trend-rule (MT-1, draft, risk level 0 agreed by the CEO, Risks sign-off pending). Evidence added to pre-decline-deleveraging and buy-more-low. Offering successor: MDW-valuation-trend-offering. Brand: High Markets Wealth (umbrella), with Market Drop Wins inside it (High-Markets-Wealth-Naming-Brainstorm-Summary).
  • Durable rules: Core/Processes/Design/Targets/Design-Reports.md (Brief/Full, < 5 min, dates, relative links, reading bar, “show every period, not one”); Core/Processes/Design/Voice.md (lead every point with a bold key phrase); ai-config/AGENTS.md VERIFY THE PREMISE corollary (commit 4aa4166).
  • Research exists; practice lags. Campbell & Shiller, Welch, Pfau, Kitces & Pfau, Asness 2017, PWL/RR #418, Estrada and Palazzo 2026. The opportunity is a research-to-practice gap, not a discovery.
  • Base rates shift: stocks trailed T-bills over 10 years in 14% of all 1926–2016 starts but 55% of top-5% CAPE starts (≈1 independent decade).
  • Reward per unit of risk collapses: median Sortino 0.76 → 0.13; realized Martin ratio 1.2 → about zero; median worst decline −24% → −47%.
  • Best ex-ante gauge tested: Excess CAPE Yield (rank correlation 0.73 with the realized Martin ratio, 1948–2016). Investor equity allocation (0.56) and the Buffett indicator are both at record highs.
  • A positive average isn’t enough: from the dearest 10% of ECY, the average outcome was +13% over cash, but the risk-adjusted value (certainty equivalent, CRRA 4) was −9%. Worked example: a 50/50 bet of $150k or $75k has an EV of $112.5k and a risk-adjusted value of $91k.
  • Every period, not one: the Practical solution (halve when valuations are extreme and the trend breaks) across all 1,081 ten-year starts was ahead in 512, identical in 373 and behind in 196. From top-5% starts it was ahead in 134 of 134 (typical +$25k per $100k). Without the valuation filter, halving trailed doing nothing in 61% of periods.
  • Canada: losses came with high interest rates, not high CAPE. After tax the TSX beat taxable cash 98% of the time; switching belongs in an RRSP/TFSA. TSX CAPE is 28.0 today.
  • Merton share at moderate risk aversion: 62% stocks on history, 33% calibrated, 12–14% at top-5% valuations.
  • Exit-rule design flaw (open, CEO decides after the Red Team): the valuation filter switches off mid-crash as the CAPE percentile falls (Dec 1930; Feb 2008 → Nov 2009), putting investors back into stocks. The fixed “latched” exit (valuation to enter, trend to exit) gives 100/0: 10.97% vs 10.72% a year, worst decline −62% vs −80%, but behind doing nothing in 35% vs 18% of periods. Numbers: results/if_you_had.json → exit_variants.
  • Two false premises shipped before they were caught (round 13):
    • “Filter armed all of Dec 1999–Nov 2009, so valuation + trend = trend-only” was a code comment, never checked. The 1999 $144k figure is trend-only halving (it equals the latched fix there); the Practical solution as written left $125k (worst decline −48%).
    • “2008 began from ordinary valuations” was wrong. It was the disarm flaw; the claim is true only for 1973–74 and 1987.
    • Both are corrected in the reports, and the lesson is promoted to AGENTS.md.
  • Report numbers must name their rule (trend-only, Practical solution, or full-exit version). Mixed labels made the protection claims look stronger than the stated rule delivers.
  • Tooling:
    • Publishing an artifact from a new session requires reading the live version first.
    • Artifact files must live under the cwd or scratchpad (stage copies in scratchpad pub/).
    • The reading-time counter must subtract hidden inline data-full spans and count SVG graphics as charts.
  • Not used: the archive.org PDF of Antonacci’s book (unauthorized upload; the SSRN paper is in the Market Timing folder). Avoid “insurance” (a regulated term) and “Guardrail” in outside-facing text.
  • Reframe from lump sum to stock allocation at record valuations; it’s not a prediction (“no one can predict when; declines are close to certain”).
  • Labels: Practical solution (halve) and full-exit version (all to cash). Hypothesis stated up front; bold key-point lead-ins everywhere; Brief < 5 min, always.
  • Red Team: Claude on Fable first (fresh session), then Gemini CLI (installed 0.61.0; Talbot signed in). Then a rewrite with editable Markdown source per report.
  • Tax-friction test (RRSP/TFSA-only switching) and the time/“Worth It” assessment go to sdc-market-timing-lab.

continuation: Market-timing-Red-Team.md. Next command: /model fable, then /task-start /mnt/d/FSS/KB/SDC/IP/Tasks/Market-timing-Red-Team.md. Full history: git log -p -- SDC/IP/Tasks/Market-timing-refined-analysis.md and the three archive/Market-timing-refined-analysis-precompact-*.md files (removed at close; recoverable from git).

Addendum: Red Team verdict (2026-09-29, Market-timing-Red-Team)

Section titled “Addendum: Red Team verdict (2026-09-29, Market-timing-Red-Team)”

Two independent reviews: Claude Opus (pass 1) and OpenAI GPT-6 Sol via Codex CLI (passes 2 and 3). Every audited number reproduced.

Fixed:

  • L4’s ECY percentile had been computed from 1926 instead of 1881.
  • Japan’s dividend yield was used before it was published.
  • The 1964–66 starts had been mislabelled as “ordinary valuations”.
  • The TSX 1999–2000 claim.
  • “Robust” and “ECY is best” claims were overstated.

Decided by the CEO:

  • The latched exit (valuation starts a cut, only the trend ends it). Halving worst decline is −62% vs −84%, but it trails more often.
  • MT-1 at risk level 1 (Risks sign-off pending).
  • The return edge is not statistically established; present the rule as protection.

New analyses:

  • L11: open-ended waiting in cash with “enough” is a bet on the old valuation regime; the current episode (since 2013-11) has never re-entered.
  • L12: CAPE’s ranking still works, but its level has drifted up and its calibration broke after 1990.

Carried forward: the prose and framing go to Market-timing-report-rewrite; the household after-tax and spending-floor tests go to sdc-market-timing-lab.