How to screen historical LSE tickers with specific valuation metrics using lseg-data?

Options

Hi all,

I'm new to using the lseg-data package in Python and am struggling to isolate RICs that meet a set of historical screening criteria. I’ll outline the requirements below:

I want to retrieve all tickers that:

A. Were listed on the LSE as an ordinary share at any point between a start date and now (including currently listed).
Note: If the ticker changed (e.g. due to merger), I want the original ticker when it was listed.

B. Are not part of the ICB sectors: Insurance or Banks.

C. Met all of the following conditions at least once between the start date and now:

  • Price fell by over 50% within X months prior to that point
  • CAPE < 5
  • EV/EBITDA < 5
  • P/BV < 1
  • P/E < 7

I’ve tried using the screener function in lseg-data, but as far as I understand, it does not support screening based on values and listings at specific points in historical time—only current or recent data.

  1. Is it possible to backtest or screen for valuation metrics as they were on historical dates using lseg-data?
  2. If screener is not suitable, is there another function or data access path I should explore (e.g. time series queries with historical fundamentals)?
  3. Any tips or sample code for building a workflow that meets the above criteria would be hugely appreciated.

Thanks in advance!

Best regards,
JC

Edit: it would be helpful to yield dates where these conditions were met for each stock, and for those that were delisted the date they were delisted.

Answers

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @jc_heron25

    Thank you for reaching out to us.

    The screener function in the lseg-data library is similar to the Screener App in the LSEG Workspace.

    Please contact the helpdesk team directly via LSEG Support to verify if the Screener App supports this requirement.