Hi,
I am building a historical panel of corporate bond yield curves for banking groups using the LSEG Data Library for Python.
The objective is to identify all bonds that were outstanding historically for an issuer/ultimate parent and retrieve their daily historical yields while they were outstanding, including securities that have since matured or been called.
Discovery itself works well. Using ld.discovery.search() with GOV_CORP_INSTRUMENTS, I can identify historical bonds by ISIN and security metadata, including securities with statuses such as Matured/Expired and Called.
The difficulty occurs at the historical pricing/yield stage.
For many historical bonds, the ISIN and reference data remain available, but there is no current pricing RIC. Historical Search can sometimes recover an old contributor RIC, but this does not necessarily make historical yield data available through the Data Library.
A reproducible example is:
ISIN: XS3055803509
Issuer: Royal Bank of Canada
Coupon: 5.84%
Maturity: 24 July 2026
Historical contributor RIC recovered: XS3055803509=RBCN
I tested historical valuation dates while the bond was still outstanding:
- 15 May 2026
- 15 June 2026
- 15 July 2026
Bond analytics using both the ISIN and the recovered contributor RIC returned:
No quotation available
Historical price/time-series requests also did not return usable history.
I have seen similar behaviour for older matured instruments.
As a control, an active/historically well-covered bond such as:
ISIN: XS2390510654
RIC: AU239051065=
does return historical TR.MIDYIELD, so the general historical-yield workflow itself appears to work.
I also tested Tick History Historical Search. It can recover historical RICs for some matured securities, but the recovered identifiers do not necessarily expose a usable historical MIDYIELD series. For one older security I also encountered an explicit Tick History distribution-rights restriction.
My questions are:
- What LSEG product/API do you recommend for retrieving daily historical yield-to-maturity or mid-yield over the outstanding life of a corporate bond that has since matured or been called?
- If a matured bond has no current RIC, is there a supported way to map the ISIN to the historical composite/evaluated pricing RIC that carried the historical yield series, rather than only to a contributor RIC?
- Is
TR.MIDYIELD expected to remain accessible for matured corporate bonds when the correct historical RIC is known, or is historical yield content archived in another product such as Tick History, DataScope, Datastream, or another fixed-income dataset? - If Historical Search returns a historical RIC but
TR.MIDYIELD still returns no data, does that normally mean:- the instrument never had that pricing/yield content,
- the historical pricing source has been retired,
- the content requires a different entitlement,
- or a different historical identifier must be used?
- Is there a recommended bulk workflow for a large historical universe along the lines of:
ISIN -> historical pricing identifier -> daily historical yield
rather than calculating YTM manually from historical prices?
The research problem is specifically historical issuer yield-curve construction, so retaining bonds that existed historically is important. Filtering discovery to currently active securities would introduce substantial survivorship bias.
Any guidance on the appropriate identifier type, field, dataset, entitlement, or API would be greatly appreciated.
Thank you.