How CHA measures up against value, income, timing, and long-hold tenets. Every criterion shows the live number and the pass rule. Always free.
The tenets below and the 0-100 Tenet Score on this report are two separate computations: each tenet runs its own criteria and its own pass rule, while the score is a percentile composite reported as one of four verdict words (Strong, Solid, Mixed or Weak).
1 / 17 qualify todayas of 2026-10-02 · computed nightly from our fundamentals DB; point-in-time auditable.
✕FailsReturn on assets improving(fiscal 2025)38.1% → 10.3%
✓PassesEarnings backed by cash (CFO > net income)(fiscal 2025)$235.1M vs $169.6M
✕FailsLeverage falling (long-term debt / assets)(fiscal 2025)We hold no record of long-term debt as a share of assets for both years for this company, so this signal could not be measured. It still scores 0 under this module's conservative rule (a point is never awarded without evidence), and it is not counted as one of the signals we were able to measure.no
✓PassesCurrent ratio improving(fiscal 2025)2.37 → 3.11
The pass rule for Piotroski F-Score is what decides that verdict, and it is not restated here. These checks score 5 of 9. 1 of 9 carry no data.Piotroski F-Score under The screens ›
✕FailsReturn on capital ≥ 25%(fiscal 2025: files no quarterly statements)20.5% · ≥ 25.0%
Decided by the pass rule for Magic Formula.
The pass rule for Magic Formula is what decides that verdict, and it is not published separately on the methodology page.About this screen ›
Graham Defensivemargin of safety
~ Borderline›
✕FailsSize: market cap ≥ $2B$1.8B · ≥ $2.0B
✓PassesCurrent ratio ≥ 2(fiscal 2025: files no quarterly statements)3.11 · ≥ 2.00
✓PassesPositive EPS 3y3y
✓PassesPays a dividend$0.92 · > 0
—Unknown — no dataEPS growth ≥ 3%/yr— · ≥ 3.0%
—Unknown — no dataP/E ≤ 15— · ≤ 15.00
—Unknown — no dataP/E × P/B ≤ 22.5— · ≤ 22.50
Decided by the pass rule for Graham Defensive.
The pass rule for Graham Defensive is what decides that verdict, and it is not restated here. 3 of 7 carry no data.Graham Defensive under The screens ›
Lynch GARPgrowth at reasonable price (historical-CAGR basis)
Income & Dividend Safetycoverage over headline yield
✕ Fails›
✓PassesPays a dividend$0.92 · > 0
✕FailsYield in a healthy band (not a yield trap)8.3% · 1.0%–8.0%
✕FailsCovered by free cash flow0.96 · ≥ 1.20
✕FailsEarnings payout not stretched107.4% · ≤ 75.0%
✓PassesBalance sheet can sustain the payout−5.2× · ≤ 4.0×
✕FailsAnnual dividend raised 10+ years running (Aristocrat ≥25, King ≥50)0.00 · ≥ 10.00
—Not scored: see the reason belowNo dividend cut in the last 5 yearsThe dividend record on file is shorter than the five years this test covers, so there is no five-year stretch to check for a cut. It is left unscored rather than counted either way.—
Decided by the pass rule for Income & Dividend Safety.
The pass rule for Income & Dividend Safety is what decides that verdict, and it is not published separately on the methodology page. 2 of 8 carry no data.
Dividend Growthraises you can count on
— Insufficient inputs (2 of 6 known)›
✓PassesPays a dividend$0.92 · > 0
—Unknown — no dataAnnual dividend raised 10+ years running (Aristocrat ≥25, King ≥50)— · ≥ 10.00
—Unknown — no dataNo dividend cut in the last 5 years—
Quality Compounderhigh returns, reinvested, few new shares
— Insufficient inputs (2 of 5 known)›
—Not scored: see the reason belowReturn on invested capital ≥ 15% in 4+ of the last 5 yearsOnly 2 of the last 5 fiscal years have return-on-invested-capital on record in our data; 4 are needed to score this criterion, so it is left unscored rather than counted against.1 of 2 on file
—Not scored: see the reason belowRevenue compounding ≥ 8%/yr over 5 yearsFive-year revenue history is incomplete in our data, so the compounding rate can't be computed yet.— · ≥ 8.0%
—Not scored: see the reason belowNot diluting: diluted share count flat-to-down (≤ +1%/yr)Not enough clean diluted-share-count history to measure dilution.— · ≤ 1.0%
✕FailsFree cash flow margin ≥ 12%9.5% · ≥ 12.0%
✓PassesEarnings backed by cash (operating cash flow ≥ net income)1.39 · ≥ 1.00
—Reading: no data. Not a gate checkDisciplined buybacks: actively reducing the share count (bonus)reading, not a gate checkNot enough clean diluted-share-count history to assess buybacks.—
Verdict Unknown for this set.
Verdict Unknown for this set. 2 of 5 checks below carry data. Lines marked as readings are published beside the checks and are not gate checks.Quality Compounder under The screens ›
Timing — dip & swing receipts
Drawdown Contexta dip, not a collapse
✕ Fails›
✕FailsOff its 52-week high by 8–35% (a dip, not a collapse)36.9% · 8.0%–35.0%
✓PassesDip within its own normal pullback band0.12
✓PassesNot past where its dips have historically recovered from0.56
✕FailsA dip in an uptrend (above a rising 200-day)11.20
✕FailsHigher-low structure still intactstructure intact · no higher low
—Unknown — no dataClear of the earnings blackout (more than 5 days out)— · > 5.00
Decided by the pass rule for Drawdown Context.
The pass rule for Drawdown Context is what decides that verdict, and it is not published separately on the methodology page. 1 of 6 carry no data.
Reversal Evidencedaily close onlysigns the pullback is turning
✕ Fails›
—Unknown — no dataA bullish MACD cross within 10 sessions— · ≤ 10.00
✕FailsReclaimed a rising 50-day EMA11.42
✕FailsPrinted a higher lowno
✕FailsA volume thrust on the turn (≥ 1.2× normal)1.14 · ≥ 1.20
✕FailsReversal signals fired: 3 of 4 (MACD·MA·HL·Vol)0.00 · ≥ 3.00
Decided by the pass rule for Reversal Evidence.
The pass rule for Reversal Evidence is what decides that verdict, and it is not published separately on the methodology page. 1 of 5 carry no data.
Not-a-Value-Trap Gatecheap for a good reason, not a broken one
— Insufficient inputs (1 of 3 known)›
—Unknown — no dataIn the cheap half of its own 5-year valuation range—
✓PassesEarnings estimates not being cut0.03
—Unknown — no dataReturns on capital not deteriorating0.13
Verdict Unknown for this set.
Verdict Unknown for this set. 1 of 3 checks below carry data. The pass rule for Not-a-Value-Trap Gate is not published separately on the methodology page.
Quality Floorpasses the quality/value gate on this dip
✓ Qualifies›
✓PassesOperating profit is positive(fiscal 2025: files no quarterly statements)$192.7M · > 0
✓PassesReturn on invested capital ≥ 10%(fiscal 2025: files no quarterly statements)13.0% · ≥ 10.0%
✓PassesA solvent balance sheet (Altman Z ≥ 1.8, net debt/EBITDA ≤ 4)(fiscal 2025: files no quarterly statements)4.7×
✓PassesQuality score ≥ 5058.80 · ≥ 50.00
—Unknown — no dataRevenue growing over 5 years— · > 0
Decided by the pass rule for Quality Floor.
The pass rule for Quality Floor is what decides that verdict, and it is not published separately on the methodology page. 1 of 5 carry no data.
Qualified Dipa pullback with receipts, not a falling knife
~ Borderline›
A research signal from published criteria, not a recommendation.
✕FailsDrawdown context36.9% off its 52-week high
✕FailsReversal evidence0 of 4 signals fired
—Unknown — no dataTrap gate1 of 3 held · 2 no data
✓PassesQuality floor4 of 5 held · 1 no data
Invalidation level (structure break): below this the dip's structure has broken$10.01
Decided by the pass rule for Qualified Dip.
The pass rule for Qualified Dip is what decides that verdict, and it is not restated here. 1 of 4 carry no data.Qualified Dip under The screens ›
Trend Alignmentprice in a confirmed uptrend
✕ Fails›
✕FailsTrading above its 50-day average11.24
✕FailsTrading above its 200-day average11.20
✓Passes50-day average above the 200-day (uptrend stack)11.24
✓Passes50-day average sloping up0.02 · > 0
Decided by the pass rule for Trend Alignment.
The pass rule for Trend Alignment is what decides that verdict, and it is not published separately on the methodology page.
Relative Strengthoutperforming, ranked vs the universe
~ Borderline›
✓Passes3-month return in the top half of the universe0.68 · ≥ 0.50
✕Fails12-minus-1 momentum in the top half of the universe0.13 · ≥ 0.50
✓PassesRelative strength vs the S&P 500 improving0.00 · > 0
✓PassesEarnings estimates being revised up0.03
Decided by the pass rule for Relative Strength.
The pass rule for Relative Strength is what decides that verdict, and it is not published separately on the methodology page.
Momentum Triggera trigger you can see
✕ Fails›
✕FailsMACD above its signal line0.02
—Not scored: see the reason belowBack above the 50-day on a fresh cross (≤10 sessions)This is a two-part reading (price back above the 50-day, and a bullish momentum cross inside 10 sessions) and a dated momentum cross is not on record for this name yet, so it is left unscored rather than counted either way.—
✕FailsHigher high and higher low (stair-stepping up)higher high · no higher low
✕FailsA volume thrust on the move (≥ 1.2× normal)1.14 · ≥ 1.20
Decided by the pass rule for Momentum Trigger.
The pass rule for Momentum Trigger is what decides that verdict, and it is not published separately on the methodology page. 1 of 4 carry no data.
Volatility Regimecontext, not a signal
Context, not scored›
Average daily swing: elevated0.04
Volatility band width: mid-range0.39
Distance from its 52-week high: a deep pullback0.37
✓
Every verdict is auditableEach criterion shows the live number and the pass rule side by side — a receipt, not a rating. Several of these screens publish their rule in full under The screens; each row links to its own section where there is one.
!
Unknown ≠ failAn “— Unknown” verdict means the inputs were insufficient: context, not a signal, and never counted as a fail.
Computed from our fundamentals DB; historical-CAGR PEG basis for Lynch. Research, not investment advice. Tenet's rulesets are independently developed from publicly available sources, and Tenet is not affiliated with, sponsored by, endorsed by or otherwise associated with any referenced investor or trademark owner. Full notice. MAGIC FORMULA is a trademark of MagicFormulaInvesting.com LLC.