Our Screener Ranked Two Stocks Among Its Five Cheapest. Both Were Our Mistake.
September 2, 2026 · Methodology · 7 min read
Our own screener ranked two stocks among its five cheapest last week. Both were artifacts of how we read the earnings line.
TAL Education (TAL) reported $910M of net income for the twelve months to May 31, 2026 - but $798M of the pre-tax total came from non-operating investment gains, against $399M of operating income. Remitly (RELY) reported $206M of net income in Q2 2026 on $65M of income before tax; the gap is a $141M income-tax benefit from a deferred-tax valuation-allowance release.
Both figures are correctly reported and entirely ordinary under GAAP. The defect was ours: screened on reported trailing earnings, TAL came through at 7.3x and RELY at 18.7x. Rebuilt from four quarters of filed statements with the non-recurring items stripped, our model estimates put the normalized trailing multiples near 19.5x and 40x respectively.
So we built the check into the engine. It now separates operating earnings from non-recurring items on every name we score - and it abstains rather than guessing when the filings won't support a conclusion.
Why a screen inherits the problem
A price-to-earnings ratio is a fraction, and screens spend almost all of their attention on the numerator. The denominator arrives from a data provider as trailing net income, and net income is the bottom line - which means it has already absorbed everything that happened between operating income and the tax line.
Most of the time that absorption is harmless. Occasionally it is the whole number.
A deferred-tax valuation-allowance release is the cleanest example. When a company has carried losses it could not yet benefit from, it holds a valuation allowance against them. Once sustained profitability makes those losses usable, accounting rules require releasing the allowance - and the release lands in the income statement as a negative tax expense. It is real, it is correct, and it will not happen again.
Investment gains work differently but land in the same place. A company holding a portfolio marks it to market, and the change flows through pre-tax income below the operating line. In a strong year that can exceed what the operating business earned, which is what happened in the first example above.
Neither is an accounting irregularity. Both are what the rules require. The mistake is downstream, in a screen that treats the bottom line as though it described the business.
What the check actually does
The engine rebuilds a trailing-twelve-month income statement from the four most recent quarterly filings, then splits pre-tax income into what recurs and what does not.
Four quarters is not negotiable. An annual report cannot expose a single-quarter tax event - the release described above sat entirely inside one three-month period and would have been invisible at annual resolution.
From there the arithmetic is deliberately boring. Operating income is the recurring base. Interest income on a real cash pile recurs, so a conservative allowance is credited back rather than penalising a company for holding cash. Interest expense recurs for the life of the debt, so it is subtracted. Whatever remains below the line is treated as non-recurring and removed, and the result is taxed at the observed effective rate when that rate is plausible - or at the statutory rate when it is not, which is exactly the case when a tax benefit is the distortion being removed.
The correction runs in both directions. A one-time charge depresses reported earnings and makes a company screen as more expensive than its operations warrant. That is the same defect with the sign reversed, and a check that only looked for inflation would leave it in place.
Where it declines to answer
The more useful half of this work is the set of cases where the engine returns nothing at all.
It abstains on banks, insurers and REITs outright. For a lender, what sits below the operating line is not noise - net interest income and investment income are the business. Splitting them off would flag an entire sector as distorted and would be wrong every time.
It abstains when a filing is missing a line item, rather than treating the gap as a zero. It abstains on values that are not finite, which sounds like a technicality and is not: a missing figure that survives into arithmetic quietly produces a confident-looking result with nothing behind it.
And it abstains when the arithmetic implies a company's earnings are more than twice understated. That bound is asymmetric on purpose. In the inflated direction the engine clamps and still reports, because a warning stays useful even when the exact multiple is not. In the opposite direction it declines, because that is the direction that makes something look cheaper - and a wrong answer there manufactures precisely the false result the check exists to prevent.
Every abstention is stored with its reason. A blank field that cannot distinguish "we looked and could not say" from "nothing ever ran" is not a measurement, and we have been bitten by that distinction before.
The bug we found in the fix
The first version of this engine was wrong, and it was wrong in the direction that flatters.
It built normalized pre-tax income from operating income alone, which silently omitted interest expense. For a company carrying debt, that bill sits below operating income and recurs for the life of the borrowing - so the whole thing read as a one-time charge, and the engine reported those companies as cheaper than they were. Backwards, and worst for exactly the balance sheets least able to afford it.
We found it by running the corrected screen and reading the output rather than by any test going red. Two of the largest re-ratings it produced were for companies carrying meaningful leverage, including one with an Altman Z-score below zero. When the interest term was added, twenty of twenty-eight measured names moved and seven changed sign.
That failure is worth stating publicly for the same reason the original one is. A model that only ever gets more confident is not being checked.
What this does not tell you
A normalized multiple is a recomputation of history. It is arithmetic performed on figures a company has already filed, and it describes what a business earned rather than what it will earn. It is not a projection, it does not carry a horizon, and reasonable people applying other reasonable methods will arrive at different numbers.
What it does is narrow: it stops a screen from mistaking a one-time event for an operating result. That is a small claim, and it is the only one being made here.
Figures are from company filings for the periods stated, verified August 28, 2026. Normalized trailing multiples are Equity Rank model estimates derived from filed statements, not standardized GAAP measures; other reasonable methods would produce different figures. Nothing here alleges accounting impropriety by any company mentioned - each item described is ordinary and correctly reported. This article is educational and informational, describes historical reported data, and is not investment advice, not a recommendation regarding any security, and not an offer or solicitation. Equity Rank holds no position in any security mentioned and receives no compensation from any issuer mentioned or any party connected to them. Past patterns do not establish future results. Leek Ventures LLC (dba Equity Rank) is not a registered investment adviser.