DEV Community

Mingke Tu
Mingke Tu

Posted on

How I check a cheap stock for a value trap before trusting the discount

A stock that has fallen 40% and trades at a low multiple is easy to like. A lot of bad long-term decisions start there, with a discount taken as evidence that the business is fine and the market is wrong.

The research side of DisconfirmAI is built on one rule: the AI looks for evidence against the thesis before it collects evidence for it. This post walks through one concrete place where that rule lives: the free Value Trap Review page, and how I use it on a company before I let a low price count as a reason to buy.

Why counter-evidence goes first

If you ask a language model "is this stock undervalued?", it will usually find reasons to say yes. There is always a bull case somewhere on the internet, and the answer ends up feeling well researched.

The fix I settled on is to change the order of work. Before anything else, write down the few claims that must be true for the stock to be cheap. Then, for each claim, state what observation would prove it wrong, and go looking for that observation. Only after that do you look at the supporting evidence, and you weigh it by quality.

On the Research page this shows up as three separate columns in every answer: verified, inferred and doubtful. The Value Trap Review applies the same idea to one specific question: is this stock cheap for a reason?

Step 1: Open the page and fill in what you already believe

The page needs no account. There are three optional fields: the company or ticker, why it looks cheap to you, and any prior research or context.

The second field is the one that matters. A thesis like "it trades at 7x earnings after the sell-off, and the core business is intact" is something the review can test. If you leave it empty, the framework reconstructs at most three candidate cheapness claims, labels them as inferred, and makes clear they are not your words.

As you type, the research framework on the right updates. It is about 10,000 characters of instructions that you copy or download as a TXT file and run in a deep research tool. The page itself fetches no market data and does not analyze anything. I built it that way on purpose so you can read every rule the AI is asked to follow.

Step 2: Write down what must be true

The framework's first section asks the AI to list up to five decision-critical claims behind the apparent cheapness. Each one needs:

  • whether the claim came from you or was inferred
  • the strongest plausible opposing explanation
  • an observable condition that would falsify it
  • what would genuinely support it

One line in the framework I would put on a sticky note: a recent price decline is not evidence that intrinsic value is intact.

Step 3: Test three kinds of trap

This is the core of the review. Each trap family has its own checks.

Value overstated. Normalize cyclical earnings across a full cycle. Strip out one-off gains, investment income, tax effects and capitalized costs. Reconcile earnings to cash and working capital. Separate cash that can actually be distributed from restricted cash and operating liquidity.

Value eroding. Decide whether the problem is a temporary cyclical shock or a permanent loss of demand, share or pricing power. Look at maintenance versus growth investment and at incremental returns on capital. The framework warns against mechanical rules here: a capex increase is not automatically bad, and low asset growth is not automatically discipline.

Value not reaching shareholders. Debt maturities, covenants and refinancing terms. Dilution and stock compensation. Related-party deals, minority interests and capital allocation. Having no near-term catalyst does not count as a trap; the framework asks the AI to model the cost of waiting.

Step 4: Build a claim-level evidence ledger

Every material claim gets a row: supporting evidence, the strongest counter-evidence, source links with dates, missing facts, a falsification condition, which valuation assumption it affects, and a status of supported within scope, material unresolved, or invalidated.

An unsupported allegation alone does not invalidate a claim, and the absence of negative news does not count as support.

The framework also requires a source URL, date and unit next to each material number, and explicit labels such as DATA_MISSING or STALE_CRITICAL when data is missing or stale. Financial statements come from Financial Modeling Prep by default. When a field is missing there, the AI has to say which field and why it used another source.

Step 5: Feed findings back into the valuation

A finding only matters if it changes a number. For each one, the framework asks what moves: normal earnings, margins, reinvestment, cash accessibility, share count, discount rate or the time it takes to realize value. It prefers revising the forecast over adding a bigger safety haircut.

If the inputs needed to recompute intrinsic value are not available, the output is VALUATION_REBUILD_REQUIRED with a list of what is missing. It will not make up a price.

Step 6: Read the final status

The review ends with one of three statuses:

  • NO_MATERIAL_TRAP_IDENTIFIED means every decision-critical claim is supported within the disclosed coverage. The framework states plainly that this is not a buy signal.
  • MATERIAL_UNCERTAINTY_UNRESOLVED means at least one key issue is open. You pause and go get the smallest piece of evidence that would settle it.
  • CORE_THESIS_INVALIDATED means reliable evidence contradicts a premise the thesis depends on. That overrides any attractive average or oversold reading.

The statuses are never averaged. The most consequential finding wins. Each open or failed premise also gets a reopening condition and the next natural review event, such as a filing or a covenant test.

How it connects to the rest of the site

I usually run the Quality Gate first to decide whether a business belongs in my research pool at all, then the Framework Router to pick a valuation method, and the Value Trap Review when the price looks too good. Valuation itself lives in tools like Damodaran DCF and Buffett intrinsic value. All 23 are on the tools page and none of them need an account.

If a review ends in "unresolved", I write the reopening condition into my investment system as a revision line. Radar checks it on a schedule, and when nothing has changed it logs "scanned, no change" so I can see the check actually ran.

Limits worth knowing

The page does not verify a company, import earlier tool output, or give a verdict. The quality of the review depends on the research tool you paste it into and the data that tool can reach. The framework ends every report with the same sentence, and I agree with it: this is a bounded review of the current thesis, not proof that a company is trap-free or a recommendation to trade.

If you try it on a stock you own, I would like to hear which trap family caught something you had missed.

Top comments (0)