Predictable Lead Times in Multi-Scale Trailing Measures — a standalone paper under the Discovery Lattice / Lagging Truth program.
Built under the Research-to-Publication Standard v1.3. The contract:
A number may appear in the paper only if a committed script, run on hashed input data, regenerates it on demand. No script, no number. The script is the truth; the paper quotes it. Done =
verify.pyexits green.
Status: certified, complete pending publication. The capped adversarial review
certified the paper (two rounds; transcript in verification/adversarial_review.md),
all-tier citation verification is complete (verification/citation_check.md), and
verify.py --require-paper is green at 74 claims. There is no outside gatekeeper:
the paper is posted as a working result, comments welcome, refutable by anyone
because the data dictionary, code, and review transcript are public.
For any quantity measured by trailing averages at two timescales, the faster measure detects regime changes before the slower one, with a lead time at the midpoint detection threshold of (w_slow − w_fast)/2 periods — a property of weighted-sum arithmetic, not of the data's statistics. The divergence between fast and slow measures is therefore a forward estimate of the slow measure's trajectory. The falsifier is a two-part pre-registered test (the bound fails on synthetic steps, or the divergence fails to lead across the tested series); neither branch tripped.
| Path | Contents |
|---|---|
THESIS.md |
Phase 0 — the claim, the gap, the falsifier (pre-registered, commit 9335241). |
DESIGN.md |
Phase 1 — each experiment's exact operator, decision rules, spec counts, and the data manifest. Amended dated, never overwritten. |
data/SOURCES.md |
Every input series: vendor, symbol, date range, bar interval, adjustment, price field, full SHA-256, project-local store location, and replicator tolerances. |
data/pull.py |
Verifies/hashes the local data files against SOURCES.md. Raw data is not committed. |
analysis/ |
One script per experiment; each reads hashed data and writes its result to analysis/outputs/ as JSON. |
analysis/outputs/ |
Committed JSON results — what the paper quotes. |
build_claims.py |
Generates the ledger from the committed outputs (never hand-edited). |
claims.lock |
Phase 3 — the ledger: one row per load-bearing number → script, input hashes, value, tolerance, CIC flags. |
verify.py |
Phase 3 — the checker. Green = done. Re-hashes inputs, re-runs scripts, checks the ledger against the paper. Ships with a deliberately broken self-test fixture it must fail. |
render_paper.py |
Substitutes {{LB-id}} references with formatted ledger values into paper/rendered/. |
paper/ |
Phase 4 — the manuscript, the plain-English companion, and the built PDF. |
verification/ |
Phase 5 — the capped adversarial-review transcript and the citation-check record. |
CORRECTIONS.md |
Public post-publication corrections log (initialized at publication). |
DECISIONS.md |
Append-only research notebook: decisions, dead ends, surprises. |
requirements.txt |
Pinned Python environment. |
# 1. Environment (Python 3.12)
pip install -r requirements.txt
# 2. Obtain the data (not committed): public sources are scripted in
# data/pull.py; exchange-licensed series are documented in data/SOURCES.md,
# pinned by ticker, observation count, date range, and full SHA-256.
# 3. Regenerate every published number
python analysis/run_all.py # results land in analysis/outputs/ as JSON
# 4. Verify everything
python verify.py --require-paper # hashes, reproductions, CIC flags, paper-ledger agreement
python verify.py --selftest # confirms the checker turns RED on planted defects
The financial series are daily exports from TradingView, which licenses the
data from the exchanges; those terms permit export and analysis but not
redistribution of the raw series. This repository follows standard practice for
finance research on licensed market data: the code is public and the data
source is documented precisely enough to be reproduced — every file pinned by
ticker, observation count, date range, and full SHA-256 in data/SOURCES.md. A
within-tolerance mode accepts a replicator's own vendor export against the
declared per-series tolerance. The economic and natural-science series are from
public providers (FRED, SILSO, GHCN, USGS, CDC) and are scripted in data/pull.py.
Three kinds of material, three licenses — full text and file lists in LICENSE:
the manuscript CC BY-NC-ND 4.0; the plain-English companion CC BY-NC 4.0;
the code MIT. Raw market data is not in this repository (exchange-licensed).
This repository is tagged (v1.0) and archived to Zenodo with DOI 10.5281/zenodo.20650165 (reserved; registers on publication). Recommended citation:
Kim, Jae (2026). "The Adaptation Rate Theorem: Predictable Lead Times in Multi-Scale Trailing Measures." Working paper, v1.0. doi:10.5281/zenodo.20650165.