A practical filter-first, then rank system: screen out unhealthy dividend stocks, score the survivors, and keep the 10 best.
If you have ever wondered how a system can take a huge list of stocks and quickly produce a “Top 10,” the approach is refreshingly simple.
It is a filter first, then rank system.
It looks at a big list of stocks and does two things:
- Screening (Pass/Fail): eliminate stocks that do not meet minimum “financial health + dividend quality” rules.
- Ranking (Scoring): score the survivors and pick the 10 highest-scoring.
Think of it like interviewing candidates:
- First you check if they meet the minimum requirements.
- Then you rank the qualified ones and hire the top 10.
In this post you will learn:
- How a screener builds its starting list.
- What numbers it pulls for each stock.
- The pass/fail rules that eliminate stocks.
- How scoring works (and why “too much yield” can be a bad sign).
- How the Top 10 is produced.
This post explains the algorithm in plain English. It is not investment advice.
1. The big idea: a two-stage system
A screener that uses this method separates the job into two stages on purpose:
- The screening stage keeps obvious “bad fits” out of the pool.
- The ranking stage compares the remaining “good enough” candidates.
This is how you avoid a common trap:
If you only rank by dividend yield, you often end up promoting “yield traps” (stocks with scary-looking fundamentals and a yield that is high because the price dropped).
2. Step 1: build the starting list (the “universe”)
Before anything can be scored, the system needs a list of tickers to consider.
Instead of manually typing hundreds of symbols, a screener can start from broad market lists (and, for example, it can include Canadian tickers too). From there it works through the tickers one by one.
The important point:
- The starting list is deliberately wide.
- The strictness comes later (in the screening rules).
3. Step 2: gather the key numbers for each stock
For each stock in the universe, the system pulls a small set of common fundamentals.
At a minimum, it looks at:
- Dividend yield (cash dividend relative to stock price)
- P/E ratio (a quick “price vs earnings” valuation check)
- Payout ratio (how much of earnings the company pays out as dividends)
- Debt-to-equity (a basic measure of leverage)
Optionally (if enabled), it can also pull:
- ROIC
- Free cash flow yield
ROIC (return on invested capital) is a simple “business quality” check: it estimates how efficiently the company turns the capital it uses (debt + equity tied up in the business) into operating profit.
Free cash flow yield is a cash-based valuation check: it compares the company’s free cash flow (cash from operations minus capital spending) to its price, so higher yield generally means you are getting more cash generation for what you pay.
These are the same kinds of numbers you already see on most finance sites.
4. Step 3: apply the “must-pass” rules (mandatory criteria)
This is the strict part.
If a stock fails any mandatory check, it is out. Only survivors become “qualifiers.”
4.1. A dividend must exist
If there is no meaningful dividend yield (or it is basically zero), the stock is rejected.
This prevents the list from being dominated by “great businesses” that are simply not dividend payers.
4.2. Valuation must be reasonable
The system rejects stocks that look too expensive on earnings.
A common rule here is:
- P/E must be below a maximum threshold (often around 15, depending on settings).
This is a blunt tool, but it is a useful early filter.
4.3. The dividend must be sustainable (payout ratio)
Even if a company pays a dividend today, it may not be sustainable.
So the system checks:
- Payout ratio must be below a maximum.
Utilities are treated differently:
- Utilities often run with higher payout ratios by nature, so they can be allowed a higher cap.
4.4. Debt must be under control (debt-to-equity)
High leverage can make dividends fragile.
So the system checks:
- Debt-to-equity must be below a maximum.
Again, utilities can have higher limits than other sectors.
Financial-sector companies are also treated as a special case because their “debt” behaves differently than normal corporate debt.
5. Step 4: score the qualified stocks (ranking)
At this point you have a smaller list of stocks that are “good enough.”
Now the system decides which ones are best by assigning each qualifier a score.
Instead of rewarding a single metric, it uses a balanced scoring system.
5.1. What the score rewards
A stock’s score improves when it has:
- Dividend yield near a “sweet spot” (not too low, not outrageously high)
- Lower P/E (cheaper relative to earnings)
- Lower payout ratio (more sustainable dividend)
- Lower debt-to-equity (healthier balance sheet)
5.2. Why “near a sweet spot” matters
A very high dividend yield can be a warning sign.
Often the yield is high because the price fell, and the price fell because the market expects trouble.
So instead of “higher yield is always better,” this approach effectively says:
- “We like yield, but we like healthy yield.”
That is why the scoring favors yield close to a target (often around ~3%), rather than endlessly rewarding higher and higher yields.
6. Step 5: sort and take the Top 10
Once every qualifying stock has a score:
- The system sorts them from highest score to lowest score.
- It prints the top 10.
Those are your “Top 10” picks for that run.
7. Optional features (if you turn them on)
The system can add extra strictness by adding more pass/fail gates.
Common examples:
- ROIC filter: prefers companies that use capital efficiently.
- Free cash flow yield filter: prefers companies generating strong cash relative to price.
When enabled, these are additional screening steps before scoring.
8. A note on tuning (advanced mode)
There is also a tuning approach that is useful if you have a reference list you want to mimic.
For example, we tried to reproduce a published “Timely Ten” list by tuning the scoring so the Top 10 had as much overlap with that list as possible.
The idea:
- The system tries many combinations of scoring settings (weights and thresholds).
- Each time, it generates a Top 10.
- It keeps the settings that produce the most overlap with your target list.
- It can export the best settings so future runs use them automatically.
You do not need tuning to use this approach, but it helps if your goal is “match this known list as closely as possible.”
9. Top 10 approach vs SCHD (quick comparison)
| Dimension | Filter-then-rank “Top 10” approach | SCHD (dividend ETF) |
|---|---|---|
| Diversification | Concentrated (higher single-stock / sector risk) | Broad basket (lower single-stock risk) |
| Control | You set the rules (thresholds, weights, sector handling) | You accept the index methodology |
| Goal fit | Can be tailored (value, quality, yield “sweet spot”, etc.) | Designed for broad dividend equity exposure |
| Potential upside | Higher if your ranking adds real edge | More “market-like” within its dividend style |
| Maintenance | Requires re-running screens and decisions | Set-and-forget |
| Turnover / taxes | Can create more turnover depending on how you manage it | Often more tax-efficient in practice |
| Behavior risk | Easy to over-tweak or second-guess results | Fewer decisions, easier to stick with |
10. 10 ways to improve the system in the future
-
Improve data quality and consistency Make sure metrics come from a reliable source, use consistent definitions (especially for payout ratio and debt), and handle missing values explicitly.
-
Add dividend growth and dividend history checks Yield alone does not tell you whether the dividend is growing or stable. Include multi-year dividend growth and “no recent cuts” rules.
-
Use free cash flow coverage, not just earnings coverage Payout ratio based on earnings can look fine while cash is tight. Add FCF payout ratio or a “dividends <= FCF” style constraint.
-
Include quality and balance-sheet health signals Consider metrics like interest coverage, current ratio, and profitability stability so you avoid fragile companies that barely pass thresholds.
-
Add sector limits to reduce concentration risk A Top 10 list can accidentally become “Top 10 banks” or “Top 10 utilities.” Add max-per-sector caps or diversify intentionally.
-
Penalize extreme values and improve outlier handling Replace hard cutoffs with soft penalties (or winsorize inputs) so one noisy metric does not dominate the score.
-
Make rebalancing rules explicit Decide how often you re-run the system (monthly/quarterly), define sell rules, and avoid unnecessary churn.
-
Add basic risk controls Use simple volatility and drawdown checks, or add a “do not select” rule for stocks with extreme price instability.
-
Validate against a benchmark and multiple market regimes Compare results to a baseline (like a dividend ETF) across different time periods so you do not overfit one specific era.
-
Track decisions and outcomes
Save each run’s inputs, selected Top 10, and performance over time. This makes it easier to debug changes and improve the process.
11. Summary
A dividend-focused screener can gather a broad list of stocks, pull a handful of easy-to-understand fundamentals, filter out anything that does not meet minimum standards for dividend existence, valuation, dividend sustainability, and reasonable debt, then rank the survivors with a balanced score that favors healthy dividend yield, low P/E, low payout ratio, and low leverage. The 10 highest-scoring qualifying stocks become the “Top 10.”
FAQ
- What does "filter first, then rank" mean in a stock screener?
- It starts by removing any stocks that fail basic financial health and dividend quality rules (pass/fail). Only after that does it score the remaining stocks and pick the 10 highest-scoring.
- Why not simply pick the highest dividend yields?
- Very high yields can be a warning sign (often caused by a falling price). A good screener instead rewards a healthy yield near a target range and balances it with valuation, payout sustainability, and leverage.
Welcome to The infinite monkey theorem
Somewhere a monkey just typed Shakespeare in TypeScript. Be the first to read the masterpieces (and the hilarious misfires) landing on the blog.

