Value
6.2/10data confidence 100%| Component | Sub-score |
|---|---|
| P/E | 5.8 |
| P/S | 8.8 |
| EV/EBITDA | 5.1 |
| Fwd P/E | 7.2 |
| PEG | 5.5 |
| Analyst target | 5.0 |
- ▸Forward P/E: 17.4x
- ▸PEG: 1.36
Updated
Model-generated analysis — not investment advice. Not a registered investment advisor. Past performance does not guarantee future results.
About TrendMatrix. TrendMatrix is a publisher of general securities research and market commentary. We publish on a regular schedule. All content is the same for every subscriber in a tier — we do not provide personalized investment advice and we do not take into account any individual subscriber's financial situation, investment objectives, risk tolerance, tax situation, or holdings.
Not investment advice. TrendMatrix is not a registered investment adviser. Our content is for informational and educational purposes only. Consult your own licensed investment adviser, broker, or tax professional before making any investment decision.
Conflicts and positions. The TrendMatrix editorial team frequently holds personal long-term positions in securities discussed. We disclose positions held at the time of publication on each piece. We maintain a trading-window policy: we do not initiate or close positions in the same direction as a TrendMatrix publication within 24 hours before or 72 hours after publication.
No paid promotion. TrendMatrix does not accept payment from any issuer, broker, or third party in exchange for coverage of any security. Our sole compensation is subscription revenue.
No fiduciary duty. No fiduciary, advisory, or agency relationship is created between you and TrendMatrix by reading our content or subscribing to our service.
Performance. Past performance is not indicative of future results. Performance figures reflect the published model only and do not reflect any individual subscriber's actual results.
A perfect four-quarter earnings beat streak and a maximum Piotroski financial health score of 9 out of 9 reflect a well-run business, but the stock is range-bound near its analyst price target with only 1.9% upside remaining and a risk/reward ratio of 0.41 that does not favor new entry at current levels.
Falsifiable statement — pillar-level invalidators below. Engine-derived; not personalized advice.
| Pillar | Expectation | Trend |
|---|---|---|
The company has beaten earnings estimates in each of the four most recent reported quarters, with an average positive surprise of approximately 3.6%, demonstrating consistent and reliable over-delivery relative to analyst expectations. Catalyst breakdown | If the beat streak breaks, an EPS surprise should fall below 0% in any reported quarter — ending the unbroken run of positive surprises. | ↓Deteriorating |
| CounterWith consistently modest beat magnitudes of roughly 1-8%, the company may be conservatively guiding to a level that is easy to clear rather than genuinely under-promising and over-delivering; a single quarter of modest guidance miss could end the streak without indicating fundamental deterioration. | ||
The stock sits approximately 1.9% below the analyst price target, generating a risk/reward ratio of 0.41 — meaning the potential downside to the stop-loss level outweighs the upside to the target by more than 2-to-1 — which does not support new entry at current prices. Price targets | If the risk/reward improves to favor entry, analyst consensus should raise the price target such that implied upside exceeds 15% from current levels. | Tripped→Stable |
| CounterThe analyst community views the stock favorably with a rating score above 7.5 out of 10, and a modest pullback from current levels would restore a more attractive risk/reward ratio without requiring a fundamental change in the business outlook. | ||
A perfect Piotroski financial health score of 9 out of 9 — the highest achievable reading — reflects broad-based strength across profitability, leverage, and operating efficiency, indicating a business in excellent fundamental condition. Quality breakdown | If financial health deteriorates meaningfully, the Piotroski score should decline below 7 for 2 consecutive reported periods. | →Stable |
| CounterA maximum Piotroski score can mask the absence of a competitive moat, as the framework measures financial health rather than defensibility of returns; the business lacks a discernible competitive moat, which limits the degree to which this financial health can compound at a premium rate. | ||
Momentum is stalling at a range-bound mid-band level, with the reading falling just short of the threshold required to signal an active technical setup and price oscillating near mid-range Bollinger Bands — the stock lacks the directional urgency needed to justify new entry on a technical basis. Engine gate (failed) | If momentum improves to support a breakout setup, RSI should sustain above 60 for 4 consecutive weeks while on-balance volume continues its current rising trend. | →Stable |
| CounterOn-balance volume is already rising and the stock is trading above its 200-day moving average — two constructive technical conditions — suggesting that momentum is recovering from below rather than deteriorating from above, and a breakout may be closer than the stalled reading implies. | ||
CounterWith consistently modest beat magnitudes of roughly 1-8%, the company may be conservatively guiding to a level that is easy to clear rather than genuinely under-promising and over-delivering; a single quarter of modest guidance miss could end the streak without indicating fundamental deterioration.
CounterThe analyst community views the stock favorably with a rating score above 7.5 out of 10, and a modest pullback from current levels would restore a more attractive risk/reward ratio without requiring a fundamental change in the business outlook.
CounterA maximum Piotroski score can mask the absence of a competitive moat, as the framework measures financial health rather than defensibility of returns; the business lacks a discernible competitive moat, which limits the degree to which this financial health can compound at a premium rate.
CounterOn-balance volume is already rising and the stock is trading above its 200-day moving average — two constructive technical conditions — suggesting that momentum is recovering from below rather than deteriorating from above, and a breakout may be closer than the stalled reading implies.
| Component | Sub-score |
|---|---|
| P/E | 5.8 |
| P/S | 8.8 |
| EV/EBITDA | 5.1 |
| Fwd P/E | 7.2 |
| PEG | 5.5 |
| Analyst target | 5.0 |
| Component | Sub-score |
|---|---|
| ROE | 3.6 |
| ROA | 3.5 |
| Gross margin | 2.8 |
| Op margin | 5.3 |
| Net margin | 5.3 |
| Current ratio | 5.8 |
| FCF quality | 6.9 |
| Moat | 5.0 |
| Piotroski F | 10.0 |
| Component | Sub-score |
|---|---|
| Rev growth | 4.3 |
| EPS growth | 4.6 |
| Component | Sub-score |
|---|---|
| RSI | 5.0 |
| MACD | 10.0 |
| OBV | 10.0 |
| MA position | 9.0 |
| Volume | 9.8 |
| Component | Sub-score |
|---|---|
| LLM sentiment | 7.7 |
| Analyst rating | 7.6 |
| Price target | 7.5 |
| Component | Sub-score |
|---|---|
| materiality | 4.5 |
| insider conviction | 2.0 |
| holder change | 10.0 |
| notable moves | 7.0 |
| Component | Sub-score |
|---|---|
| value rank | 2.7 |
| quality rank | 4.4 |
| growth rank | 4.7 |
| Component | Sub-score |
|---|---|
| bollinger | 2.1 |
| support resistance | 1.6 |
| 52w position | 8.3 |
| Component | Sub-score |
|---|---|
| short interest | 8.3 |
| days to cover | 8.3 |
| volatility | 5.0 |
| beta | 8.0 |
| debt equity | 8.6 |
| Component | Sub-score |
|---|---|
| erm | 5.0 |
| earnings history | 10.0 |
| earnings timing | 5.0 |
| surprise avg | 4.3 |
| news activity | 6.0 |
Maintain position. Not compelling to add more. | News modifier +2 (HOLD_IF_HOLDING → STRONG_BUY_WAIT).
L4:PATH_F_HOLD|L3:NEWS_MOD=+2|ENTRY_STICKY:WITHIN_BANDSetupBreakout — Golden cross, above all MAs, RSI 62, MACD bullish
EdgeCatalyst-Driven — Earnings in 9d with 4/4 beat streak
SuitabilityModerate — Balanced profile
None of the engine's positive-conviction paths (C-quality, D-momentum) triggered — the F-path HOLD reflects balanced signals. Strongest-cleared gate: MOMENTUM:8.8>=5.5. Top dim: Momentum at 8.8; weakest: Technical at 4.0. No conviction either direction.
The strongest dimensions are Momentum at 8.8, Sentiment at 7.6, and Risk (lower is worse) at 7.6; the weakest are Technical at 4.0, Growth at 4.4, and Peer rank at 4.8. The V9 engine flagged 1 failed gate with 1 warning, producing an asymmetric reward-to-risk of 0.25 and an engine sizing output of STARTER.
Falsifying conditions — when triggered, the corresponding pillar's thesis is invalidated.
Trip ifEPS surprise falls below 0% in any reported quarter.
Trip ifImplied upside to analyst consensus price target exceeds 15%.
Trip ifPiotroski F-Score falls below 7 for 2 consecutive reported periods.
Trip ifRSI sustains above 60 for 4 consecutive weeks while on-balance volume continues rising.