# Build Plan + Methodology Specification
## Gold Allocation Backtest — upgrade from research synthesis to computed backtest

**Status:** PLAN ONLY. Nothing built, nothing published, no number below is publishable.
**Author:** Uma | **Date:** 2026-09-02 | **Spec source:** Daniel, 2026-09-02
**Target page:** `/gold-allocation-backtest/`

---

## 0. Why this build exists

The live page title promises *"How 0-25% Gold Changed a 60/40 Portfolio"* but its own methodology
states results are *"taken from published World Gold Council, CPM Group, and academic (SSRN)
studies rather than newly computed metrics."* Different rows come from different studies with
different periods, indices, rebalancing rules and risk measures.

It is therefore a **research synthesis**, not a backtest.

This also creates a live contradiction: `/research/` claims *"Every dataset here is computed from
named primary sources."* Both statements cannot be true.

**This build makes the page live up to its title, and makes the Research Center claim true.**

---

## 1. Data sources — ALL VERIFIED LIVE 2026-09-02

| Series | Source | Coverage verified | Licence / status |
|---|---|---|---|
| Gold, monthly, $/troy oz | **World Bank Commodity Markets "Pink Sheet"**, `CMO-Historical-Data-Monthly.xlsx`, sheet `Monthly Prices` | **1960M01 - 2025M12**, 792 obs | Publicly distributed; World Bank datasets published CC BY 4.0. **Confirm licence text at build time and record in manifest.** |
| S&P 500 price + dividends + CPI + GS10 | **Shiller / Yale**, `ie_data.xls`, sheet `Data` | Monthly from 1871; **file copy ends 2024-06** | Publicly distributed for research; attribute to Robert Shiller. |
| 10y Treasury constant maturity (DGS10 / GS10) | **FRED, St Louis Fed** | 1962-01-02 - present, daily | Public domain (US federal). |

### Gold source decision — LBMA replaced by World Bank

Daniel's instruction, adopted. The feasibility test used the LBMA PM fix directly
(`prices.lbma.org.uk`, 14,673 daily obs 1968-04 to 2026-09). **LBMA historical data carries ICE
licensing restrictions on redistribution.** The World Bank series is publicly distributed, has a
clear licence, and historically represents the London afternoon fixing as a monthly average of
daily rates.

**Consequence to state on the page:** World Bank gold is a *monthly average*, whereas the LBMA
fix is a *point observation*. Monthly averaging slightly dampens measured volatility and
drawdown versus point-in-time month-end prices. This must be disclosed in the methodology, not
buried.

**Validation step:** compare World Bank monthly gold against LBMA month-end over the common
period and report the correlation and the mean absolute difference. If they diverge materially,
say so on the page rather than picking the flattering one.

---

## 2. The primary experiment — fixed conventions

Every rule below is a decision, stated on the page.

| Convention | Decision |
|---|---|
| Start | **April 1968** |
| End | **Longest clean common period across all series.** Expected 2024-06 (Shiller limit). **Do NOT stitch a weaker series on the end to reach 2026.** |
| Frequency | Monthly observations, month-end convention stated explicitly |
| Allocations | 0%, 5%, 10%, 15%, 20%, 25% gold |
| **Non-gold split** | **60/40 preserved WITHIN the non-gold portion.** 10% gold = **54% stocks / 36% bonds / 10% gold**. NOT 60/30/10. |
| Rebalancing (primary) | **Annual**, calendar year-end |
| Rebalancing (sensitivity) | No-rebalancing run reported separately, never mixed into the primary table |
| Stock returns | Total return: price change + reinvested dividends (Shiller D, monthly 1/12 convention stated) |
| Bond returns | **Build and document** (see §3) |
| Gold returns | Price change only. No yield, no storage cost. State that physical gold in an IRA carries storage and custody fees NOT modelled here. |
| Inflation | Shiller CPI, for real-return series |
| Currency | USD throughout |
| Costs | **Zero transaction costs, zero fees, zero tax modelled.** Stated as a limitation. |

---

## 3. The bond sleeve — the credibility crux

**Decision: BUILD AND DOCUMENT** (Daniel's instruction). No commercial index.

The feasibility test used a crude fixed-duration-8 approximation. **That is not publishable.**

**Method:** compute monthly total return on a constant-maturity 10-year Treasury from FRED GS10
using a standard bond-pricing approach — price a par bond at the prior month's yield, reprice at
the current month's yield with maturity reduced by one month, add accrued coupon. Document the
exact formula, the coupon convention and the assumed compounding on the page.

**Mandatory independent validation before any result is accepted:** compare the computed series
against a reputable published historical 10-year Treasury total-return series (e.g. an academic
or central-bank dataset). Report correlation and annualised-return difference. **If the
discrepancy is material, the calculation is rejected and revised — the discrepancy is not
quietly published.**

This is the single largest determinant of whether the numbers are defensible, and it is where
most of the build time will go.

---

## 4. Validation tests — run BEFORE generating final results

Report every check and any discrepancy found.

**Per series:** coverage matches the stated window; no gaps or duplicate months; no zero or
negative prices; outlier scan on monthly changes with any extreme move traced to a real
historical event; alignment so every month has all four series.

**Cross-checks:**
- Gold: World Bank monthly vs LBMA month-end over common period (correlation + mean abs diff).
- Bonds: computed total return vs published reference series (§3).
- Stocks: computed S&P total return vs a published long-run total-return figure for a comparable
  window.
- CPI: Shiller CPI vs FRED CPIAUCSL over the common period.
- Sanity: 0% gold portfolio must reproduce a plausible 60/40 result for the period.

**Gate:** if any check fails materially, the build stops and Daniel is told. No publishing
around a failed check.

---

## 5. Outputs

**Primary table**, per allocation: CAGR (nominal), CAGR (real), annualised volatility, maximum
drawdown, worst calendar year, ending value on $100,000, and a risk-adjusted measure with its
risk-free proxy and formula stated.

**Rolling analysis:** all rolling 10-year and 20-year windows, monthly step. Report the
distribution, not just the mean.

**The headline fact — the thing only this site will have:**
> *"X% gold produced a lower maximum drawdown than the 0% gold portfolio in N of M rolling
> 10-year periods."*

Computed for every allocation, against the 0% baseline. This is the sentence built to be cited.

**Also:** best and worst starting periods; drawdown by historical bear market (cross-linking the
existing bear-markets dataset); no-rebalancing sensitivity as a separate section.

---

## 6. Publication artefacts

- **Calculation code published** alongside the page (Daniel approved). Makes the methodology
  independently verifiable and makes the Research Center claim unambiguously true.
- **Source manifest**: per dataset — source, URL, observation frequency, coverage, download date,
  transformations applied, licence/usage status.
- **Derived results CSV** for download.
- **Raw redistribution rule:** publish source data only where the licence permits. Where it does
  not, publish the retrieval code and the source reference instead of the raw data. Applies to
  any LBMA material used in validation.

---

## 7. Sequence

1. Fetch all four series, pin download dates, write the manifest.
2. Build the bond total-return series; run the independent validation (§3). **Gate.**
3. Run every validation test in §4. **Gate — report to Daniel before proceeding.**
4. Compute the primary table, rolling windows, drawdown-frequency counts, bear-market analysis,
   no-rebalancing sensitivity.
5. Assemble page copy: results, full methodology, stated conventions, limitations, manifest.
6. Compliance pass: no advice voice, no "optimal allocation is X%" assertion, every figure
   traceable, storage/fee/tax omissions disclosed.
7. **Daniel reviews the numbers and the methodology before anything is published.**
8. Build, QA, commit, push, verify live.

**Estimate: one focused working day**, most of it on §3 and §4 rather than arithmetic. Steps 3
and 7 are hard stops.

---

## 8. Compliance notes (YMYL)

- Report what the data shows for the stated period. Never assert an optimal allocation in site
  voice; existing WGC/CPM/SSRN study ranges stay attributed to those studies.
- Every figure reproducible from stated inputs. If it cannot be shown, it is not published.
- State plainly: results are historical, period-dependent, exclude costs, fees, taxes, storage
  and custody, and are not personalised financial advice.
- Preserve the existing page's honest data-gap labelling.

---

## 9. Explicitly NOT in this build

- No LBMA raw-data redistribution.
- No stitching series to reach 2026.
- No feasibility-test figures. Those were a pipeline proof with a crude bond approximation and
  are superseded entirely.
