# Calibration template — column reference

Companion to `calibration_template.csv`. The CSV itself is intentionally
clean (one header row, no comments) so it parses cleanly through the
backend without depending on any `comment=` flag.

**Source of truth: `PHASE_D_SCOPING.md` §4.1.** If the column list there
changes, update both the CSV and this README.

## Required columns

19 columns total — 1 date + 18 daily inputs. Column-name matching is
case-insensitive and whitespace/dash-tolerant on the backend (see §4.4
of the scoping doc).

| Column | Type | Units | Example | Notes |
|---|---|---|---|---|
| `date` | ISO date | YYYY-MM-DD | `2025-11-28` | One row per business day, strictly increasing |
| `spot_close` | float | quote ccy / base | `157.80` | End-of-day spot |
| `ohlc_open` | float | same | `157.55` | FX-day open |
| `ohlc_high` | float | same | `158.00` | FX-day high |
| `ohlc_low` | float | same | `157.40` | FX-day low |
| `atm_1m` | float | % | `8.10` | ATM implied vol, 1-month |
| `atm_3m` | float | % | `8.48` | |
| `atm_6m` | float | % | `8.85` | |
| `atm_1y` | float | % | `9.05` | |
| `rr25_1m` | float | % | `-0.46` | 25-delta risk reversal, 1-month (sign matters) |
| `rr25_3m` | float | % | `-0.66` | |
| `rr25_6m` | float | % | `-0.81` | |
| `rr25_1y` | float | % | `-0.96` | |
| `bf25_1m` | float | % | `0.26` | 25-delta butterfly, 1-month (≥ 0) |
| `bf25_3m` | float | % | `0.30` | |
| `bf25_6m` | float | % | `0.34` | |
| `bf25_1y` | float | % | `0.37` | |
| `rate_base` | float | % | `4.38` | Risk-free rate, base ccy (e.g., USD for USDJPY) |
| `rate_quote` | float | % | `0.25` | Risk-free rate, quote ccy (e.g., JPY for USDJPY) |

## Row count

- Minimum: **250** business days (hard floor — calibration is rejected below this).
- Recommended: **1000** business days.
- Maximum (UI cap): **5000** rows.

## Other rules

- No NaN/missing values in any required cell.
- No duplicate or out-of-order dates.
- No more than 5 consecutive missing business days.
- All vols positive; ATM > 0; BF25 ≥ 0; RR25 unconstrained.
- Spot/OHLC values positive; rates can be negative.
