← Quantery Blog

When a one-time gain flatters your value screen

August 28, 2026 · 8 min readnews-to-thesisearnings-qualityscreening

Two discount retailers reported this week with the same wind at their backs. Dollar General's same-store sales rose 3.5%. Dollar Tree's rose 3.7%. Same week, same story about shoppers hunting for value, nearly the same number. Then the stocks split: Dollar General jumped about 8% in premarket trading while Dollar Tree fell about 7% (Reuters).

If you build screens, that split is worth more than the theme. The comparable-sales number that supposedly proved the trade-down story came out nearly identical for both companies, so it isn't what separated them. The separator sat one layer down, in what the earnings were made of. Both quarters contained a tariff refund that won't repeat, and the sizes were wildly different: Dollar Tree's diluted EPS of $2.70 included $1.31 of tariff-refund benefit (Dollar Tree), while Dollar General's $2.48 included roughly $0.25 (earnings call). Half a quarter's earnings against a tenth of one.

A one-time gain of that size is among the hardest things for a fundamentals screen to see, for a reason worth an article: the standard defense against flattered earnings is checking profit against cash, and this gain is cash. It cleared the bank. Every accruals test you'd normally reach for waves it straight through.

What the two companies actually reported

The composition is the whole point, so start with the numbers.

Dollar General posted net sales of $11.3 billion, up 5.2%, with operating profit of $769.2 million (up 29.2%) and diluted EPS of $2.48, up 33.3% and well past the $2.00 consensus. Same-store sales rose 3.5% on a 2.0% traffic gain and a 1.5% larger average transaction, and the company raised full-year EPS guidance to $7.80 to $8.00 from $7.20 to $7.45 (StockStory). Gross margin came in at 32.6%, up 127 basis points, of which about 81 basis points was tariff refunds after related reinvestment. Management was direct about the runway: "We do not expect a material impact from tariff refunds after related reinvestments in the second half."

Dollar Tree's release tells a louder version of the same story. Net sales of $4.9 billion, up 7.0%. Comparable store sales up 3.7%, driven by a 3.3% rise in average ticket against 0.4% traffic growth. Gross margin of 42.9%, up 850 basis points. Diluted EPS of $2.70, including that $1.31 per share of refunds, with refunds under the International Emergency Economic Powers Act totaling $383 million. For the third quarter the company guided adjusted EPS to $0.80 to $0.95, including roughly $0.50 of impact from reinvesting those refunds, and set full-year adjusted EPS at $7.70 to $8.05 including about $0.60 of refund benefit.

Read those two paragraphs the way a screen reads them and you get a company whose gross margin expanded 850 basis points and whose quarterly earnings look transformed. Read them the way a person does and you get a refund of import duties, arriving once.

Why a trailing window carries the gain for a year

Screens read trailing twelve months for good reasons: four quarters smooth out seasonality, and TTM figures are filed, auditable, and available point-in-time. (Trailing vs forward numbers walks through why a thesis leans on filed history instead of estimates.) The cost of that choice shows up right here. A one-off booked in a single quarter sits inside the trailing window for four of them.

So for the next year, a screen ranking on trailing earnings sees a company that got cheaper without the price moving. Its earnings yield rises. Its margin looks structurally better. Its return on capital improves. Four quarters later the gain rolls out of the window and the same screen reports a deterioration that never happened in the business. You get a qualifying signal on the way in and a disqualifying one on the way out, both manufactured by the calendar.

This isn't exotic. Litigation settlements, asset sales, insurance recoveries, tax-valuation-allowance releases and now tariff refunds all do it. And when a policy generates refunds across an entire import-heavy sector at once, they do it to many companies simultaneously, which is worse: your list of cheapest retailers reorders itself around who got the biggest refund.

The cash-conversion check waves it through

The usual defense against earnings that flatter is to test them against cash. That's the discipline behind free cash flow: accruals are judgments, cash either moved or it didn't, and a persistent gap between reported profit and operating cash flow is the most informative red flag in the statements.

It won't help you here. A $383 million refund is money in the bank. Operating cash flow rises with it, free cash flow rises with it, and conversion ratios look excellent. The bundled Earnings Yield + Quality template scores an fcf_conversion feature (trailing free cash flow over trailing EBITDA) and treats a low reading as disqualifying. That's the right rule for catching manufactured earnings, and a refund sails through it with room to spare.

The distinction a cash test can't draw is between cash that recurs and cash that arrived once. In the cash flow statement they look the same. Naming that gap is more useful than pretending some ratio closes it.

Screen for durability, not level

What does catch a one-off is comparing a window against itself a year earlier. A recurring business earns its yield on both windows. A windfall earns it on one.

The shape below is illustrative (the bundled templates are the reference for exact field names), but this is the whole idea:

# "Cheap twice over" (illustrative)
params:
  yield_ok:        0.08     # EBITDA/EV that counts as cheap
  margin_jump_max: 0.05     # 5 points of margin in one year is a flag

features:
  ebitda_ttm:        ttm(ebitda)
  ebitda_ttm_prior:  ttm(ebitda, lag: 4)      # same window, one year back
  revenue_ttm:       ttm(revenue)
  revenue_ttm_prior: ttm(revenue, lag: 4)
  ev:                market_cap + coalesce(latest(total_debt), 0) - latest(cash)
  yield_now:         if(ev > 0, ebitda_ttm / ev, null)
  yield_prior:       if(ev > 0, ebitda_ttm_prior / ev, null)
  margin_now:        if(revenue_ttm > 0, ebitda_ttm / revenue_ttm, null)
  margin_prior:      if(revenue_ttm_prior > 0, ebitda_ttm_prior / revenue_ttm_prior, null)
  margin_jump:       margin_now - margin_prior

criteria:
  cheap_twice:
    rules:
      - { when: "yield_now >= $yield_ok and yield_prior >= $yield_ok", score: 2 }
      - { when: "yield_now >= $yield_ok", score: 1 }   # cheap only lately
      - { else: 0 }
  margin_durability:
    rules:
      - { when: "is_null(margin_prior)", score: 0, flag: no_prior_window }
      - { when: "margin_jump <= $margin_jump_max", score: 1 }
      - { else: 0, flag: margin_jump_unexplained }

Two things about that sketch are worth spelling out.

cheap_twice gives full credit when the earnings yield clears the bar on this year's window and on the window ending a year ago, and partial credit when the cheapness is new. Both legs use today's enterprise value on purpose. The question being asked is whether today's price is supported by earning power that existed before the windfall.

margin_durability doesn't try to decide whether a margin jump is good. It flags it. Five points of margin in a year can be operating leverage, a mix shift, a genuine turnaround, or a refund, and no numeric field tells them apart, because the distinction lives in the prose of a filing. The rule's job is to put the name in front of you with a marker on it. Quantery's starter templates take the same posture: Earnings Yield + Quality hands its qualitative pass a criterion about "serial 'one-time' addbacks", which concedes that the arithmetic layer can't settle the question by itself.

That rule has a real cost, and you should price it before adopting it. A two-window test also penalizes companies in a genuine recovery, whose earning power a year ago was poor for reasons that have since been fixed. You'll skip some real turnarounds to avoid some windfalls. Whether that trade is worth making is an empirical question, which is convenient, because it's the kind a backtest can answer.

What a backtest would and wouldn't settle

Take a value screen you already trust, add the two-window requirement, and run both walk-forward on point-in-time fundamentals, so each simulated date sees only what had been filed by then. If the durability version keeps similar returns with fewer round trips, the extra rule is close to free. If it wins clearly, you've learned something about how the market prices non-recurring earnings over the period you tested.

Here's what such a run wouldn't establish: that the rule works on tariff refunds. Refunds at this scale are an artifact of this year's policy, and a history running back to 2013 (where point-in-time SEC fundamentals support these backtests) is full of different one-offs from different eras. The general claim, that earnings appearing once get priced for a while as though they recur, is what the record can speak to. Results are hypothetical and exclude costs, and a rule keyed to window transitions carries turnover the backtest doesn't charge you for. What makes a backtest honest covers the rest of that reading discipline.

The habit generalizes well past dollar stores. When a screen surfaces a name whose numbers improved sharply in one year, treat the improvement as a question before you treat it as a score. How to build a thesis worth testing argues for writing your uncertainty into the rules as gates and flags instead of carrying it in your head, and this is a clean case for it. You can't parse a footnote with arithmetic, but you can make your screen raise its hand.

The reason to write that rule yourself is that nobody ships it for you. No vendor's tidy "P/E" field knows that $1.31 of a $2.70 quarter came from a customs refund. When the next windfall lands, in some other sector, out of some other policy, you change one feature and re-run.

Want to try this on your own rules? Quantery is free for 14 days: the full app, no card required.

← All articles