Copper Timespreads: CMT24 Proxy Curve Regime Map

Generated 2026-07-09 13:27

Executive Summary / Current Regime

Start here: the v1 report uses the CMT24 relaxed-proxy calendar-tenor spread as the primary full-history series, then keeps strict longer-tenor spreads as diagnostics.

V1 primary calendar-tenor proxy: CMT12/CMT24_RELAXED_3M, built as CMT12_STRICT versus CMT24_RELAXED_3M. Primary status is ok with business-day coverage of 96.3%.

Label discipline: do not relabel this as clean strict CMT24. The full-history strict CMT24, CMT36, and CMT60 diagnostics remain sparse. The input CMT proxy quality gate is blocking with 13 blocking rows. Publishing remains disabled unless explicitly approved.

Current Primary Snapshot

Candidate SpreadRoleDescriptionStatusUsable RowsBusiness DaysBusiness-Day Coverage (%)First ValidLast ValidLatest Recursive PercentileLatest Regime
CMT12/CMT24_RELAXED_3Mprimary_full_history_proxyPrimary full-history proxyok6,3216,56196.32001-05-152026-07-070.221Very low spread

Back to top

Copper Curve Prices and Regime Map

Anchor on CMT12, then read the heatmap by spread segment.

Data source: /Users/agentr/Claude/data-local/bbg/bql_exports/copper_curve_spreads/copper_curve_spreads_cmt_proxy_20260708_1044/local_output/processed/copper_cmt_proxy_regime_map_panel.csv. Chart starts from 2011-01-01.

Copper Curve Prices and Regime Map
Panels 1-3: CMT12 price, walk-forward regime classification, and COMEX listed-contract prices beside the CMT24 proxy and CMT calendar-tenor anchors.

Back to top

Copper Timespreads and Percentile Ranks

Use these panels to audit the percent, absolute, and percentile inputs behind the heatmap.

Data source: /Users/agentr/Claude/data-local/bbg/bql_exports/copper_curve_spreads/copper_curve_spreads_cmt_proxy_20260708_1044/local_output/processed/copper_cmt_proxy_regime_map_panel.csv. Chart starts from 2011-01-01.

Copper Timespreads and Percentile Ranks
Panels 4-6: simple percent spreads, absolute USc/lb spreads, and recursive percentile ranks.

Back to top

Objective and Framework

This v1 report keeps the old Copper Timespreads report structure but changes the primary full-history calendar-tenor series to a clearly labelled CMT24 relaxed proxy.

The report remains curve-only and clean-split: BQNT writes raw/check/reference CSVs, while the local builder owns quality gates, charting, report rendering, and local artifacts.

The primary regime map ranks log(CMT12_STRICT) - log(CMT24_RELAXED_3M) against its own expanding history. Low spread percentiles are treated as bullish because CMT12 is unusually cheap versus the two-year proxy anchor; high spread percentiles are treated as bearish or mature-cycle.

Back to top

Primary Series Decision

Primary v1 calendar-tenor spread: CMT12/CMT24_RELAXED_3M. It is the best full-history compromise because CMT12 is clean on the business-day grid and CMT24 becomes usable with a small, explicitly labelled +/-3 month relaxation.

Diagnostics: keep CMT12/CMT24_STRICT to audit exact 24m availability, CMT12/CMT36_STRICT and CMT12/CMT36_RELAXED_6M to show the 36m sparsity problem, and CMT12/CMT60_STRICT as a long-end diagnostic rather than the primary full-history signal.

Hard rule: if a relaxed/proxy series is shown, the label must include RELAXED or PROXY. Do not silently widen a tenor and call it strict CMT.

Candidate SpreadRoleDescriptionStatusUsable RowsBusiness DaysBusiness-Day Coverage (%)First ValidLast ValidLatest Recursive PercentileLatest Regime
CMT12/CMT24_RELAXED_3Mprimary_full_history_proxyPrimary full-history proxyok6,3216,56196.32001-05-152026-07-070.221Very low spread

Back to top

Appendix: Data Construction and Ticker Caveats

Primary: CMT12/CMT24_RELAXED_3M. The near leg is strict CMT12. The far leg is the CMT24 relaxed method with a +/-3 month tolerance. It is a full-history proxy and must stay labelled as relaxed/proxy.

Diagnostics: CMT12/CMT24_STRICT, CMT12/CMT36_STRICT, CMT12/CMT36_RELAXED_6M, and CMT12/CMT60_STRICT are retained to show what fails or improves under stricter definitions.

Grid semantics: quality tables distinguish calendar-row coverage, business-day coverage, and usable-grid coverage. Business-day coverage is the main gating metric for the primary spread.

Input folder: /Users/agentr/Claude/data-local/bbg/bql_exports/copper_curve_spreads/copper_curve_spreads_cmt_proxy_20260708_1044

Proxy price panel: /Users/agentr/Claude/data-local/bbg/bql_exports/copper_curve_spreads/copper_curve_spreads_cmt_proxy_20260708_1044/local_output/processed/copper_cmt_proxy_regime_map_panel.csv

Back to top

Appendix: CMT Quality Table

This table is the full-history ALL-grid view of CMT12/CMT24/CMT36/CMT60 strict, relaxed, and nearest-proxy methods.

TargetMonthsMethodSeriesCalendar-Row Coverage (%)Business-Day Coverage (%)Usable-Grid Coverage (%)Usable Grid SourceStatus
CMT1212nearest_proxy_3mCMT12_NEAREST_PROXY_3M68.896.3100.0contract_price_business_daysok
CMT1212nearest_proxy_6mCMT12_NEAREST_PROXY_6M68.896.4100.0contract_price_business_daysok
CMT1212relaxed_cmt_3mCMT12_RELAXED_3M68.896.3100.0contract_price_business_daysok
CMT1212relaxed_cmt_6mCMT12_RELAXED_6M68.896.4100.0contract_price_business_daysok
CMT1212relaxed_cmt_9mCMT12_RELAXED_9M68.896.4100.0contract_price_business_daysok
CMT1212strict_cmtCMT12_STRICT68.896.3100.0contract_price_business_daysok
CMT2424nearest_proxy_3mCMT24_NEAREST_PROXY_3M68.896.3100.0contract_price_business_daysok
CMT2424nearest_proxy_6mCMT24_NEAREST_PROXY_6M68.896.3100.0contract_price_business_daysok
CMT2424relaxed_cmt_3mCMT24_RELAXED_3M68.896.3100.0contract_price_business_daysok
CMT2424relaxed_cmt_6mCMT24_RELAXED_6M68.896.3100.0contract_price_business_daysok
CMT2424relaxed_cmt_9mCMT24_RELAXED_9M68.896.3100.0contract_price_business_daysok
CMT2424strict_cmtCMT24_STRICT43.961.463.7contract_price_business_daysblocking
CMT3636nearest_proxy_3mCMT36_NEAREST_PROXY_3M43.360.662.9contract_price_business_daysblocking
CMT3636nearest_proxy_6mCMT36_NEAREST_PROXY_6M43.360.763.0contract_price_business_daysblocking
CMT3636relaxed_cmt_3mCMT36_RELAXED_3M43.360.662.9contract_price_business_daysblocking
CMT3636relaxed_cmt_6mCMT36_RELAXED_6M43.360.763.0contract_price_business_daysblocking
CMT3636relaxed_cmt_9mCMT36_RELAXED_9M43.360.763.0contract_price_business_daysblocking
CMT3636strict_cmtCMT36_STRICT43.360.662.9contract_price_business_daysblocking
CMT6060nearest_proxy_3mCMT60_NEAREST_PROXY_3M43.360.662.9contract_price_business_daysblocking
CMT6060nearest_proxy_6mCMT60_NEAREST_PROXY_6M43.360.662.9contract_price_business_daysblocking
CMT6060relaxed_cmt_3mCMT60_RELAXED_3M43.360.662.9contract_price_business_daysblocking
CMT6060relaxed_cmt_6mCMT60_RELAXED_6M43.360.662.9contract_price_business_daysblocking
CMT6060relaxed_cmt_9mCMT60_RELAXED_9M43.360.662.9contract_price_business_daysblocking
CMT6060strict_cmtCMT60_STRICT17.023.824.7contract_price_business_daysblocking

Back to top

Appendix: Strict vs Relaxed/Proxy Overlap

Relaxed CMT methods are compared with strict CMT where strict rows exist. Nearest-contract fallback is shown separately and is not silently blended into strict CMT.

TargetCandidate MethodStrict SeriesCandidate SeriesOverlap RowsMean Abs Price DifferenceMean Abs Log-Spread Diff vs CMT12 (%)Regime Disagreement Rate (%)Regime Overlap Rows
CMT12NEAREST_PROXY_3MCMT12_STRICTCMT12_NEAREST_PROXY_3M6,3210.4470
CMT12NEAREST_PROXY_6MCMT12_STRICTCMT12_NEAREST_PROXY_6M6,3210.4470
CMT12RELAXED_3MCMT12_STRICTCMT12_RELAXED_3M6,3210.0000
CMT12RELAXED_6MCMT12_STRICTCMT12_RELAXED_6M6,3210.0000
CMT12RELAXED_9MCMT12_STRICTCMT12_RELAXED_9M6,3210.0000
CMT24NEAREST_PROXY_3MCMT24_STRICTCMT24_NEAREST_PROXY_3M4,0290.2550.0604.5533,778
CMT24NEAREST_PROXY_6MCMT24_STRICTCMT24_NEAREST_PROXY_6M4,0290.2550.0604.5533,778
CMT24RELAXED_3MCMT24_STRICTCMT24_RELAXED_3M4,0290.0000.0000.0003,778
CMT24RELAXED_6MCMT24_STRICTCMT24_RELAXED_6M4,0290.0000.0000.0003,778
CMT24RELAXED_9MCMT24_STRICTCMT24_RELAXED_9M4,0290.0000.0000.0003,778
CMT36NEAREST_PROXY_3MCMT36_STRICTCMT36_NEAREST_PROXY_3M3,9790.4150.0883.6213,728
CMT36NEAREST_PROXY_6MCMT36_STRICTCMT36_NEAREST_PROXY_6M3,9790.4150.0883.6213,728
CMT36RELAXED_3MCMT36_STRICTCMT36_RELAXED_3M3,9790.0000.0000.0003,728
CMT36RELAXED_6MCMT36_STRICTCMT36_RELAXED_6M3,9790.0000.0000.0003,728
CMT36RELAXED_9MCMT36_STRICTCMT36_RELAXED_9M3,9790.0000.0000.0003,728
CMT60NEAREST_PROXY_3MCMT60_STRICTCMT60_NEAREST_PROXY_3M1,5600.2400.0431.9101,309
CMT60NEAREST_PROXY_6MCMT60_STRICTCMT60_NEAREST_PROXY_6M1,5600.2400.0431.9101,309
CMT60RELAXED_3MCMT60_STRICTCMT60_RELAXED_3M1,5600.0000.0000.0001,309
CMT60RELAXED_6MCMT60_STRICTCMT60_RELAXED_6M1,5600.0000.0000.0001,309
CMT60RELAXED_9MCMT60_STRICTCMT60_RELAXED_9M1,5600.0000.0000.0001,309

Candidate Spread Coverage

Candidate SpreadStatusUsable RowsBusiness DaysBusiness-Day Coverage (%)First ValidLast ValidLatest Recursive Percentile
CMT12/CMT24blocking4,0296,56161.42001-05-312026-07-070.149
CMT12/CMT36_STRICTblocking3,9796,56160.62010-09-202026-07-070.126
CMT12/CMT36_RELAXED_6Mblocking3,9806,56160.72010-09-172026-07-070.126
CMT12/CMT60_STRICTblocking1,5606,56123.82010-09-202026-07-072.244

Back to top

Appendix: Generated Artifact Catalog

The local builder should generate these report artifacts when the patched panel is present. Publishing remains disabled unless explicitly approved.

ArtifactPathPurpose
copper-timespreads-v1.html/Users/agentr/Claude/data-local/bbg/bql_exports/copper_curve_spreads/copper_curve_spreads_cmt_proxy_20260708_1044/local_output/copper-timespreads-v1.htmlOld-style v1 HTML with CMT24 relaxed proxy primary
copper_cmt_proxy_regime_map_prices.png/Users/agentr/Claude/data-local/bbg/bql_exports/copper_curve_spreads/copper_curve_spreads_cmt_proxy_20260708_1044/local_output/copper_cmt_proxy_regime_map_prices.pngPanels 1-3 price and regime-map chart
copper_cmt_proxy_regime_map_spreads.png/Users/agentr/Claude/data-local/bbg/bql_exports/copper_curve_spreads/copper_curve_spreads_cmt_proxy_20260708_1044/local_output/copper_cmt_proxy_regime_map_spreads.pngPanels 4-6 spreads and percentile-rank chart
processed/copper_cmt_proxy_regime_map_panel.csv/Users/agentr/Claude/data-local/bbg/bql_exports/copper_curve_spreads/copper_curve_spreads_cmt_proxy_20260708_1044/local_output/processed/copper_cmt_proxy_regime_map_panel.csvMerged HG listed-contract and CMT24 proxy regime-map panel
processed/copper_cmt_proxy_primary_calendar_spread.csv/Users/agentr/Claude/data-local/bbg/bql_exports/copper_curve_spreads/copper_curve_spreads_cmt_proxy_20260708_1044/local_output/processed/copper_cmt_proxy_primary_calendar_spread.csvDaily primary proxy spread panel
processed/copper_cmt_proxy_candidate_spread_summary.csv/Users/agentr/Claude/data-local/bbg/bql_exports/copper_curve_spreads/copper_curve_spreads_cmt_proxy_20260708_1044/local_output/processed/copper_cmt_proxy_candidate_spread_summary.csvPrimary and diagnostic spread summary
processed/copper_cmt_proxy_candidate_spreads.csv/Users/agentr/Claude/data-local/bbg/bql_exports/copper_curve_spreads/copper_curve_spreads_cmt_proxy_20260708_1044/local_output/processed/copper_cmt_proxy_candidate_spreads.csvLong daily panel of all candidate spreads
checks/copper_curve_spreads_cmt_tenor_proxy_quality.csv/Users/agentr/Claude/data-local/bbg/bql_exports/copper_curve_spreads/copper_curve_spreads_cmt_proxy_20260708_1044/local_output/checks/copper_curve_spreads_cmt_tenor_proxy_quality.csvCopied CMT proxy quality gate
checks/copper_curve_spreads_cmt_tenor_proxy_overlap.csv/Users/agentr/Claude/data-local/bbg/bql_exports/copper_curve_spreads/copper_curve_spreads_cmt_proxy_20260708_1044/local_output/checks/copper_curve_spreads_cmt_tenor_proxy_overlap.csvCopied strict-vs-relaxed/proxy overlap table
local_build_report.json/Users/agentr/Claude/data-local/bbg/bql_exports/copper_curve_spreads/copper_curve_spreads_cmt_proxy_20260708_1044/local_output/local_build_report.jsonLocal builder machine-readable report
data_catalog.csv/Users/agentr/Claude/data-local/bbg/bql_exports/copper_curve_spreads/copper_curve_spreads_cmt_proxy_20260708_1044/local_output/data_catalog.csvLocal builder CSV catalog

Back to top

Output folder: /Users/agentr/Claude/data-local/bbg/bql_exports/copper_curve_spreads/copper_curve_spreads_cmt_proxy_20260708_1044/local_output