Is there open-high-low-close data available at the daily timescale for yields? The data I can find from the Federal Reserve reports only one price, and moreover, I'm not sure when the data is reported. I know most bonds are not traded on exchanges, so it makes sense that this data is readily available, but I was wondering if this data was available anywhere.


MarketWatch daily OHLC bars for bonds yields are sourced from Tullett Prebon.

Here's a sample output for U.S. 10 Year Treasury Note yields in CSV format.


The Closing interpolated yields are also available directly from the Treasury, in XML format, starting with 1997.

  <d:Id m:type="Edm.Int32">7802</d:Id>
  <d:NEW_DATE m:type="Edm.DateTime">2021-03-08T00:00:00</d:NEW_DATE>
  <d:BC_1MONTH m:type="Edm.Double">0.04</d:BC_1MONTH>
  <d:BC_2MONTH m:type="Edm.Double">0.04</d:BC_2MONTH>
  <d:BC_3MONTH m:type="Edm.Double">0.05</d:BC_3MONTH>
  <d:BC_6MONTH m:type="Edm.Double">0.06</d:BC_6MONTH>
  <d:BC_1YEAR m:type="Edm.Double">0.09</d:BC_1YEAR>
  <d:BC_2YEAR m:type="Edm.Double">0.17</d:BC_2YEAR>
  <d:BC_3YEAR m:type="Edm.Double">0.34</d:BC_3YEAR>
  <d:BC_5YEAR m:type="Edm.Double">0.86</d:BC_5YEAR>
  <d:BC_7YEAR m:type="Edm.Double">1.28</d:BC_7YEAR>
  <d:BC_10YEAR m:type="Edm.Double">1.59</d:BC_10YEAR>
  <d:BC_20YEAR m:type="Edm.Double">2.2</d:BC_20YEAR>
  <d:BC_30YEAR m:type="Edm.Double">2.31</d:BC_30YEAR>
  <d:BC_30YEARDISPLAY m:type="Edm.Double">2.31</d:BC_30YEARDISPLAY>

Another pricing source is the Treasury Securities Ops : Results : Excel : Weighted Avg. Accpt. Price/Rate (WAP) and Least Favorable Accpt. Price/Rate (LFP) columns. These two columns can be used as a measure of volatility in the bond market. For example, the volume-weighted spread between WAP and LFP showed signs of liquidity issues in the Treasury market during March 2020:

enter image description here

The peak day on the chart, March 19, was the day when Fed WAP for UST 2.875% 05/15/2049 during the day auction was 125.808 whereas LFP was 128.25390625!

The Excel Results files maybe delayed by several weeks, but the TSY API and the derived chart example above are more current. The volume weighted LFP/WAP spread is calculated as follows in SQL:

SELECT datetime, acc.entity AS "entity", acc.tags.operation_id AS "tags.operation_id", acc.tags.Operation_Type AS "tags.Operation_Type", acc.tags."Maturity/Call_Date_Range" AS "tags.Maturity/Call_Date_Range", acc.tags.operation_direction AS "tags.operation_direction",
  MAX(sub.value) AS tsy_submitted, sum(acc.value/1000000) AS tsy_accepted,
ABS(100*(SUM( acc.value*
    -- Rounding per Note 1 https://www.newyorkfed.org/markets/desk-operations/treasury-securities
    WHEN acc.tags.operation_type IN ('Outright Bill Purchase', 'Outright FRN Purchase') THEN
      -- wap=1.516, lfp=1.5125, rlfp=1.513 pwap= 100/(1+wap/100) prlfp = 100/(1+rlfp/100) spread=100*(prlfp/pwap-1)
      -- wap=120.717 , lfp=120.7578125, rlfp=120.758 spread=100*(120.758/120.717-1)=0.0339637333598%
  ) / SUM(acc.value)-1)) AS tsy_lfp_wap_spread
FROM "total_par_amt_submitted_($millions)" sub
   JOIN "par_amt_accepted_($)" acc
   JOIN "least_favorable_accpt._price/rate" lfp
   JOIN "weighted_avg._accpt._price/rate" wap
WHERE acc.entity = 'us.fed.nyc' 
  AND acc.datetime BETWEEN today-14*day AND next_day
GROUP BY acc.entity, acc.tags.operation_id, acc.tags.Operation_Type, acc.tags."Maturity/Call_Date_Range", acc.tags.operation_direction, datetime
WITH TIMEZONE = 'US/Eastern'  
ORDER BY datetime DESC, acc.tags.operation_id
  • $\begingroup$ This looks great! thank you so much $\endgroup$ – rubikscube09 Mar 9 at 14:29

Bloomberg, Reuters (now Refinitiv), IDBs (ICAP used to sell rates/IRD data), trading platforms (e.g. BrokerTec, now part of CME)...this is only a partial list, I'm sure there are other sources.


you can try this. www.quandl.com


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.