Low P/E Stocks Near 52-Week Lows
Qualifying large caps as the distance band and the P/E ceiling widenranking ·
2026-08-22 · 6×3
Large caps on a trailing P/E under 15, within 10% of a 52-week lowranking ·
2026-08-22 · 9×3
KO month-end close against its trailing 12-month lowseries ·
2026-08-22 · 14×4
Qualifying large caps as the distance band and the P/E ceiling widen
Qualifying large caps as the distance band and the P/E ceiling widen
| distance_band | names_pe_under_15 | names_pe_under_25 |
|---|---|---|
| within 5% | 1 | 12 |
| within 10% | 9 | 37 |
| within 15% | 21 | 64 |
| within 20% | 31 | 91 |
| within 25% | 41 | 116 |
| within 30% | 45 | 143 |
the exact SQL behind every number
WITH ratios AS
(
SELECT
ticker,
argMax(price_to_earnings, date) AS pe,
argMax(market_cap, date) AS mcap,
argMax(average_volume, date) AS adv
FROM global_markets.stocks_ratios
WHERE date >= today() - 14
AND ticker NOT IN ('SPCX')
GROUP BY ticker
),
band AS
(
SELECT
ticker,
min(low) AS low_52w,
argMax(close, date) AS last_close
FROM global_markets.stocks_daily_aggs
WHERE date >= today() - 372
AND ticker NOT IN ('SPCX')
GROUP BY ticker
),
universe AS
(
SELECT
b.ticker AS ticker,
toFloat64(b.last_close) / toFloat64(b.low_52w) * 100 - 100 AS pct_above_low,
r.pe AS pe
FROM band AS b
INNER JOIN ratios AS r ON r.ticker = b.ticker
WHERE r.mcap >= 10000000000
AND r.adv >= 1000000
AND r.pe > 0
AND b.low_52w > 0
)
SELECT
concat('within ', toString(cutoff), '%') AS distance_band,
countIf(pct_above_low <= cutoff AND pe <= 15) AS names_pe_under_15,
countIf(pct_above_low <= cutoff AND pe <= 25) AS names_pe_under_25
FROM
(
SELECT
pct_above_low,
pe,
arrayJoin([5, 10, 15, 20, 25, 30]) AS cutoff
FROM universe
)
GROUP BY cutoff
ORDER BY cutoff
More from this analysisLow P/E Stocks Near 52-Week Lows
Large caps on a trailing P/E under 15, within 10% of a 52-week low
ranking 9×3
→
KO month-end close against its trailing 12-month low
series 14×4
→
Squeeze-shaped mechanics: crowded shorts among liquid names, with a rising price
ranking 12×4
→
Every past screened name, by what it did over the next 30 days
ranking 6×3
→
See all 2,170 queries →