{
  "schema_version": "1.0",
  "generated_at": "2026-08-24T20:05:01Z",
  "series": [
    {
      "instrument_id": "BRENT.USD.BBL",
      "daily_from": "1987-05-20",
      "monthly_from": "1987-05-01",
      "resolution": "daily",
      "gaps": [],
      "licence": "us-public-domain",
      "source": "eia",
      "limit_reason": "EIA's Brent spot series begins 1987-05-20."
    },
    {
      "instrument_id": "WTI.USD.BBL",
      "daily_from": "1986-01-02",
      "monthly_from": "1986-01-01",
      "resolution": "daily",
      "gaps": [],
      "licence": "us-public-domain",
      "source": "eia",
      "limit_reason": "EIA's WTI spot series begins 1986-01-02."
    },
    {
      "instrument_id": "USD.INR.RATE",
      "daily_from": "1999-01-04",
      "monthly_from": "1999-01-01",
      "resolution": "daily",
      "gaps": [],
      "licence": "ecb-permissive",
      "source": "ecb",
      "limit_reason": "ECB reference rates begin at the euro's introduction, 1999-01-04."
    },
    {
      "instrument_id": "EUR.USD.RATE",
      "daily_from": "1999-01-04",
      "monthly_from": "1999-01-01",
      "resolution": "daily",
      "gaps": [],
      "licence": "ecb-permissive",
      "source": "ecb",
      "limit_reason": "ECB reference rates begin 1999-01-04."
    },
    {
      "instrument_id": "GBP.USD.RATE",
      "daily_from": "1999-01-04",
      "monthly_from": "1999-01-01",
      "resolution": "daily",
      "gaps": [],
      "licence": "ecb-permissive",
      "source": "ecb",
      "limit_reason": "ECB reference rates begin 1999-01-04."
    },
    {
      "instrument_id": "USD.JPY.RATE",
      "daily_from": "1999-01-04",
      "monthly_from": "1999-01-01",
      "resolution": "daily",
      "gaps": [],
      "licence": "ecb-permissive",
      "source": "ecb",
      "limit_reason": "ECB reference rates begin 1999-01-04."
    },
    {
      "instrument_id": "USD.AED.RATE",
      "daily_from": "2026-08-01",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "ecb-permissive",
      "source": "ecb",
      "limit_reason": "AED is not in the ECB daily reference set; derived from the USD peg (3.6725) and available only from launch."
    },
    {
      "instrument_id": "USD.SGD.RATE",
      "daily_from": "1999-01-04",
      "monthly_from": "1999-01-01",
      "resolution": "daily",
      "gaps": [],
      "licence": "ecb-permissive",
      "source": "ecb",
      "limit_reason": "ECB reference rates begin 1999-01-04."
    },
    {
      "instrument_id": "XAU.USD.OZT",
      "daily_from": "2026-08-01",
      "monthly_from": "1960-01-01",
      "resolution": "monthly",
      "gaps": [],
      "licence": "cc-by-4.0",
      "source": "worldbank",
      "limit_reason": "No clean daily USD gold source exists. LBMA daily is fee-liable via ICE Benchmark Administration — FRED deleted the series in January 2022 at IBA's request. World Bank Pink Sheet gives monthly to 1960 under CC BY 4.0."
    },
    {
      "instrument_id": "XAG.USD.OZT",
      "daily_from": "2026-08-01",
      "monthly_from": "1960-01-01",
      "resolution": "monthly",
      "gaps": [],
      "licence": "cc-by-4.0",
      "source": "worldbank",
      "limit_reason": "Same as gold: monthly Pink Sheet to 1960, no clean daily source."
    },
    {
      "instrument_id": "XAU.18K.INR.G",
      "daily_from": "2026-06-29",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "ibja-attribution",
      "source": "ibja",
      "limit_reason": "IBJA domestic benchmark via a relay that serves roughly 45 days of history. There is no deep backfill."
    },
    {
      "instrument_id": "XAU.24K.INR.G",
      "daily_from": "2026-06-29",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "ibja-attribution",
      "source": "ibja",
      "limit_reason": "IBJA domestic benchmark via a relay that serves roughly 45 days of history. There is no deep backfill. Replaced the import-parity derivation, which ran ~3.5% below the domestic benchmark because its only licensable USD spot is a MONTHLY average."
    },
    {
      "instrument_id": "XAU.22K.INR.G",
      "daily_from": "2026-06-29",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "ibja-attribution",
      "source": "ibja",
      "limit_reason": "IBJA domestic benchmark via a relay that serves roughly 45 days of history. There is no deep backfill."
    },
    {
      "instrument_id": "XAG.INR.KG",
      "daily_from": "2026-06-29",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "ibja-attribution",
      "source": "ibja",
      "limit_reason": "IBJA domestic benchmark via a relay that serves roughly 45 days of history. There is no deep backfill."
    },
    {
      "instrument_id": "NIFTY50.INR.IDX",
      "daily_from": "2026-08-01",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "exchange-restricted",
      "source": "nse",
      "limit_reason": "NSE's terms prohibit systematic collection and redistribution of history. Live collection only, from launch. There will never be a backfill."
    },
    {
      "instrument_id": "NIFTYBANK.INR.IDX",
      "daily_from": "2026-08-01",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "exchange-restricted",
      "source": "nse",
      "limit_reason": "As Nifty 50 — no backfill is licensable."
    },
    {
      "instrument_id": "SENSEX.INR.IDX",
      "daily_from": "2026-08-01",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "exchange-restricted",
      "source": "bse",
      "limit_reason": "As Nifty 50 — no backfill is licensable.",
      "unavailable_since": "2026-08-14",
      "unavailable_reason": "BSE withdrew programmatic access: every BseIndiaAPI path redirects to an error page. Sensex needs a licensed feed."
    },
    {
      "instrument_id": "INBASKET.USD.BBL",
      "daily_from": "2026-08-01",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "godl-india",
      "source": "ppac",
      "limit_reason": "PPAC publishes history as PDFs. Monthly to 2000 is harvestable and planned; daily history is not machine-readable."
    },
    {
      "instrument_id": "SPX.USD.IDX",
      "daily_from": null,
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "pending",
      "source": "pending",
      "limit_reason": "v2. Declared so consumers see `not_backfilled` rather than a silent absence."
    },
    {
      "instrument_id": "UKX.GBP.IDX",
      "daily_from": null,
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "pending",
      "source": "pending",
      "limit_reason": "v2. Declared so consumers see `not_backfilled` rather than a silent absence."
    },
    {
      "instrument_id": "UST.1M.USD.PCT",
      "daily_from": "2026-01-02",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "us-public-domain",
      "source": "treasury",
      "limit_reason": "The upstream CSV is fetched one calendar year at a time and we currently fetch 2026 only. Treasury publishes daily par yields back to 1990-01-02; deeper history is a backfill task, not a licence limit."
    },
    {
      "instrument_id": "UST.2M.USD.PCT",
      "daily_from": "2026-01-02",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "us-public-domain",
      "source": "treasury",
      "limit_reason": "The upstream CSV is fetched one calendar year at a time and we currently fetch 2026 only. Treasury publishes daily par yields back to 1990-01-02; deeper history is a backfill task, not a licence limit."
    },
    {
      "instrument_id": "UST.3M.USD.PCT",
      "daily_from": "2026-01-02",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "us-public-domain",
      "source": "treasury",
      "limit_reason": "The upstream CSV is fetched one calendar year at a time and we currently fetch 2026 only. Treasury publishes daily par yields back to 1990-01-02; deeper history is a backfill task, not a licence limit."
    },
    {
      "instrument_id": "UST.6M.USD.PCT",
      "daily_from": "2026-01-02",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "us-public-domain",
      "source": "treasury",
      "limit_reason": "The upstream CSV is fetched one calendar year at a time and we currently fetch 2026 only. Treasury publishes daily par yields back to 1990-01-02; deeper history is a backfill task, not a licence limit."
    },
    {
      "instrument_id": "UST.1Y.USD.PCT",
      "daily_from": "2026-01-02",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "us-public-domain",
      "source": "treasury",
      "limit_reason": "The upstream CSV is fetched one calendar year at a time and we currently fetch 2026 only. Treasury publishes daily par yields back to 1990-01-02; deeper history is a backfill task, not a licence limit."
    },
    {
      "instrument_id": "UST.2Y.USD.PCT",
      "daily_from": "2026-01-02",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "us-public-domain",
      "source": "treasury",
      "limit_reason": "The upstream CSV is fetched one calendar year at a time and we currently fetch 2026 only. Treasury publishes daily par yields back to 1990-01-02; deeper history is a backfill task, not a licence limit."
    },
    {
      "instrument_id": "UST.3Y.USD.PCT",
      "daily_from": "2026-01-02",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "us-public-domain",
      "source": "treasury",
      "limit_reason": "The upstream CSV is fetched one calendar year at a time and we currently fetch 2026 only. Treasury publishes daily par yields back to 1990-01-02; deeper history is a backfill task, not a licence limit."
    },
    {
      "instrument_id": "UST.5Y.USD.PCT",
      "daily_from": "2026-01-02",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "us-public-domain",
      "source": "treasury",
      "limit_reason": "The upstream CSV is fetched one calendar year at a time and we currently fetch 2026 only. Treasury publishes daily par yields back to 1990-01-02; deeper history is a backfill task, not a licence limit."
    },
    {
      "instrument_id": "UST.7Y.USD.PCT",
      "daily_from": "2026-01-02",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "us-public-domain",
      "source": "treasury",
      "limit_reason": "The upstream CSV is fetched one calendar year at a time and we currently fetch 2026 only. Treasury publishes daily par yields back to 1990-01-02; deeper history is a backfill task, not a licence limit."
    },
    {
      "instrument_id": "UST.10Y.USD.PCT",
      "daily_from": "2026-01-02",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "us-public-domain",
      "source": "treasury",
      "limit_reason": "The upstream CSV is fetched one calendar year at a time and we currently fetch 2026 only. Treasury publishes daily par yields back to 1990-01-02; deeper history is a backfill task, not a licence limit."
    },
    {
      "instrument_id": "UST.20Y.USD.PCT",
      "daily_from": "2026-01-02",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "us-public-domain",
      "source": "treasury",
      "limit_reason": "The upstream CSV is fetched one calendar year at a time and we currently fetch 2026 only. Treasury publishes daily par yields back to 1990-01-02; deeper history is a backfill task, not a licence limit."
    },
    {
      "instrument_id": "UST.30Y.USD.PCT",
      "daily_from": "2026-01-02",
      "monthly_from": null,
      "resolution": "daily",
      "gaps": [],
      "licence": "us-public-domain",
      "source": "treasury",
      "limit_reason": "The upstream CSV is fetched one calendar year at a time and we currently fetch 2026 only. Treasury publishes daily par yields back to 1990-01-02; deeper history is a backfill task, not a licence limit."
    }
  ]
}
