The screener narrows about 6,000 US-listed companies down to a shortlist worth an afternoon of reading.
It is a research tool, not a forecast and not advice. Nothing here has been tested against what share prices did afterwards.
The question this page asks
Most screeners ask "is this cheap?" — which you cannot answer without first assuming what the company will do next.
This one asks something you can actually check:
What would have to be true for today's price to make sense — and has this company ever done it?
Here is how that works.
A normal discounted-cash-flow model starts with a growth forecast and produces a value. Run it backwards instead: start with the share price the market is charging today, and solve for the growth rate that would justify it. That is the Implied column. It is not an opinion or a prediction — it is arithmetic on the current price.
Then compare it with FCF trend, the growth the company has actually delivered over the past decade. The difference between the two is the expectations gap, and it is the headline number on this page:
expectations gap = the growth the price implies − the growth the company has delivered
Negative is the interesting direction. A negative gap means the market is pricing this company for less growth than it has historically managed.
Company quality and institutional buying are used here as tie-breakers, never as the main ranking. A company with no usable cash-flow history gets no score at all — it is never ranked on quality and institutional flow alone.
The presets
At the top of the page: seven one-click screens. Each one shows the question it answers underneath, so you never have to guess what a named screen is doing.
| Preset | The question it asks |
|---|---|
| Cash compounders | Which companies grow cash flow consistently — and are still doing it? |
| Expectation bargains | Where does the price imply less growth than the company has delivered? |
| Accelerating cash | Whose cash flow is growing faster now than it did over the past decade? |
| Cash machines | Who turns profit into actual cash most reliably, and is cheap on it? |
| Fading compounders | Who was compounding and has now stalled — while still looking cheap? |
| Value traps | Cheap on the surface, but the cash flow is heading the wrong way. |
| Quality, institutions buying | Strong balance sheets that big funds added to last quarter. |
Choosing a preset replaces your current filters rather than adding to them. Otherwise a filter left over from earlier would quietly narrow the screen, and the question printed underneath would no longer be the question being asked.
Fading compounders is the one to know about. When a company stops growing its cash flow, the cheap-looking yield lingers for a year or two — because the yield reflects last year's cash, while the trend reflects the direction. That preset exists to catch the gap between the two.
The filters
| Filter | What to know |
|---|---|
| Sort by | Ten options. Each sorts in the only direction that makes sense — "expectations gap" always puts the most negative first. |
| Sector | Eleven broad sectors. |
| Cash-flow trend | Compounding, steady, stalling or deteriorating — explained below. |
| Min FCF yield % | Entered as a percentage: type 5 for 5%. |
| Min trend R² | The most useful filter here. 0.5 and above means the trend is real rather than noise. |
| Min Piotroski | A nine-point financial-health checklist. 7 or more is strong. |
| Min positive FCF yrs | How many of the past ten years produced positive cash flow. 5+ removes most speculative names. |
| Min cash conversion | Cash flow divided by reported profit. Around 1.0 is healthy; persistently below 0.5 is a warning. |
| Max implied growth % | Caps how much optimism is already in the price. |
| Min market cap ($m) | Entered in millions. |
| 13F flow | 13F is the quarterly holdings report large US funds must file. Set this to show only companies those funds were net buyers of last quarter. |
| Rows | How many results to show, 25 to 300. |
The line underneath the filters matters more than it looks:
4,866 companies match · showing the top 100 · 3,020 of 6,090 scored · 1,224 excluded for no usable cash-flow history
"40 companies match" means something completely different depending on whether it searched 6,000 companies or 200. That is why the count is always shown.
How to read a row
| Column | What it means |
|---|---|
| Score | A 0–100 blend: 60% cash flow, 25% quality, 15% institutional buying. A starting sort, not a verdict. |
| Cash-flow history | A small chart of yearly free cash flow, with the fitted trend drawn over it. |
| Exp. gap | Implied growth minus delivered growth. Negative and bold means the market expects less than the company has delivered. |
| Implied | The growth rate today's price is assuming. |
| FCF trend | The growth actually delivered, with its R² — how well that trend fits — underneath. |
| FCF yield | Free cash flow as a percentage of the company's market value. |
| Conv. | Cash conversion: free cash flow divided by reported profit. |
| Quality | Piotroski score, shown out of the checks that had data — so 7/8, not always out of 9. |
Scan the little charts, not the numbers
The cash-flow sparkline carries information no single number can.
The dashed line is the fitted trend, so when you see a jagged, jumping series with a smooth line drawn through it, you know immediately not to trust the growth rate beside it. Zero is always visible and marked with a dashed baseline — a cash-flow chart that crops out zero hides whether the company makes any money at all.
Two companies can show an identical cash-flow yield and look completely different here: one has compounded steadily for a decade, the other had a single good year.
What the trend labels mean
- Compounding — rising, a good fit, and not slowing down
- Steady — flat, or rising but too erratic to call
- Stalling — still rising, but recent growth has fallen well behind the ten-year rate
- Deteriorating — falling
About the Score column
It is a blend, and any blend hides why something ranks where it does. Treat it as a starting sort. Every ingredient that feeds it is also its own visible, sortable column — so when a company scores well, look across the row and find out which part did the work.
The score is deliberately left blank when too little cash-flow data exists to compute it honestly. Averaging two ingredients and averaging ten are not the same measurement, and the first flatters the company. Roughly half the universe is unscored for this reason.
The simulator: value the whole market at your own assumptions
The bottom half of the page — where you take a shortlist and stress-test it.
A single-company page can tell you whether that company looks mispriced — but you had to know which ticker to look up first. This answers the more useful question: which companies are mispriced, given what I believe?
Each company is valued at the cash-flow growth it has actually delivered, not at one shared growth rate. Applying a single growth assumption to 2,700 different businesses would be meaningless. So the sliders carry only the assumptions that genuinely apply to everyone.
The four sliders
| Slider | Default | What it does |
|---|---|---|
| Discount rate | 10% | The annual return you require for owning the asset. Higher means everything is worth less today. This is the most powerful control on the page. |
| Terminal growth | 2.5% | How fast you assume a company grows forever, after year ten. Setting this above long-run economic growth is not a realistic assumption. |
| Growth haircut | 100% | Scales every company's historical trend up or down. At 100% you are assuming each business repeats its own past exactly — the optimistic case. Try 70%. |
| Min trend R² | 0.50 | R² measures how closely a company's cash flow actually follows the trend line drawn through it: 1.0 is a perfect fit, 0 is noise. This slider hides companies too erratic for a trend to mean anything. |
Read the median before you read the winners
The summary line under the sliders is the sanity check:
968 companies valued · median upside 24% · at 10.0% discount, 2.50% terminal, 100% of delivered growth · 644 capped at 12%/yr · 30 excluded for inconsistent inputs
Read the median upside first, and treat it as a comment on your assumptions rather than on any company. At the default settings it sits comfortably above zero — which is your cue that the defaults are generous, not that the market is broadly cheap. The 100% growth haircut is doing most of that work: it assumes every business repeats its own past exactly.
The useful move is to make the median unexciting and then look at what still stands out. Raise the discount rate to 12–13%, or pull the haircut down to 70%, and watch how much of the list survives. A screen where everything looks like a bargain has told you nothing.
Three deliberate behaviours worth knowing
Growth is capped at 12% a year, and capped values are marked with *. Ten years of
growth above your discount rate compounds to absurd numbers. Left uncapped, a company whose
cash flow went from $40,000 to $40 million shows a fitted trend of 247% a year — and
projecting that for a decade produces a valuation, not an insight. The mark tells you when
the cap did the work.
Companies with impossible inputs are removed and counted. Free cash flow greater than half the company's market value is not a bargain, it is a broken input.
"Price implies −60%" means the answer ran off the scale. The solver searches between −60% and +100% a year. A value sitting exactly at either end means "beyond this range", not a real estimate.
Try moving the R² slider
Drag min trend R² from 0.50 down to 0 and watch the list fill with companies whose "trend" is really just noise.
Amazon is the clearest example. Its free cash flow swings hard with its building cycles, so a straight line fitted through it slopes slightly downward — and fits so poorly that the number is meaningless. At the default setting Amazon is correctly left out rather than valued on a line that does not describe it.
Where this can mislead you
Please read this section before acting on any row.
Some rows report more cash flow than the whole company is worth. That is not a bargain; it means one of the two numbers is wrong, or that the ratio does not mean what it usually means. The simulator removes these and tells you how many — the line under the sliders ends "excluded for inconsistent inputs". The ranked table does not filter them, and about a hundred such rows are currently in it.
There are two quite different reasons a row lands in that state:
- Financial companies, where it can be genuine. A broker or lender moves enormous sums through its cash-flow statement relative to its own market value. UP Fintech and OppFi both show cash flow near or above their market capitalisation, and the figures are real — the ratio simply does not carry its usual meaning for a business whose product is money.
- Very small companies with a broken share count. A company valued at $1.5m reporting $2.5m of free cash flow is almost always a mis-parsed filing rather than a discovery.
The practical rule either way: treat any cash-flow yield above roughly 20% as suspect. A genuine one is 2–8%. Check the Size column at the same time — the smaller the company, the more likely the number is an artefact.
Warrant tickers used to be the main offender here and no longer are. Tickers like RSVRW or DAVEW are warrants, side instruments rather than the company's shares, and the data once attached the operating company's financials to the warrant's own price and share count. Those have been cleared out: none appear in the screen today. The note survives only because it is worth knowing why a ticker that looks like a company sometimes is not one.
Other limits worth keeping in mind:
- A discounted cash-flow model is a model, not a measurement, and it is least reliable exactly where growth is hardest to predict. That is what the R² figure is for.
- By default the list hides companies that have not filed in more than six quarters, and companies whose cash-flow history stops more than two years ago. The second matters more than it sounds: a company can be filing perfectly currently while the cash-flow series its trend is fitted to ended years ago. Clear the freshness filter to see them.
- Company filings lag reality. A recent quarter keeps filling in for months as more companies report, so the newest data is always the thinnest.
- Institutional holdings are reported quarterly and can be up to 45 days out of date.
- The Implied column in the table is calculated at the default 10% discount and 2.5% terminal growth. Move the sliders and the simulator updates — but that table column does not.
Where to start
- Start from a preset. Expectation bargains or Cash machines are the most direct.
- Set min trend R² to 0.5 and min positive FCF years to 5. These two remove most of what would waste your time.
- Sort by expectations gap, most negative first — the companies where the price assumes least relative to what the business has delivered.
- Scan the sparklines before the numbers. Reject anything where the dashed trend line visibly misses the actual points, however attractive the growth rate looks.
- Check cash conversion. Persistently below 0.5 means reported profits are not turning into cash — the classic trap, and the reason a cheap-looking company can stay cheap.
- Take the survivors back to the simulator and raise the discount rate to 12–13%. Anything that still shows upside is not relying on a generous assumption. Anything that collapses was.
- Then go and read the filings. This page exists to get you from 6,000 companies to about 20 worth an afternoon — not to replace the afternoon.
One move worth trying deliberately: keep your assumptions fixed and change only the cash-flow trend filter. Of everything that looks cheap at a 12% discount rate, which ones are still compounding? That is cheapness and direction in a single question — and it is what this page is really for.