Value
8.2/10data confidence 100%| Component | Sub-score |
|---|---|
| P/E | 7.8 |
| P/S | 7.7 |
| EV/EBITDA | 8.3 |
| Fwd P/E | 9.3 |
| PEG | 10.0 |
| Analyst target | 6.0 |
- ▸Forward P/E: 10.2x
- ▸PEG: 0.20
- ▸Attractively valued
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.
Four consecutive earnings beats, high business quality, and an attractive valuation combine with a 2.1-to-1 risk/reward profile to support a credible bull case, constrained by meaningful geographic and customer concentration that limits conviction size.
Falsifiable statement — pillar-level invalidators below. Engine-derived; not personalized advice.
| Pillar | Expectation | Trend |
|---|---|---|
Four consecutive quarterly beats — each with a positive surprise — demonstrate consistent under-promising and over-delivering, building a track record of earnings credibility that underpins the bull thesis. Bull case | Earnings beat streak extends to 6 consecutive quarters, each with a positive EPS surprise. | →Stable |
| CounterThe individual quarterly surprises are modest, ranging from 1.65% to 4.88%, suggesting the streak may reflect conservative guidance-setting rather than meaningful operational outperformance relative to underlying business conditions. | ||
Operating margins of 24%, a Piotroski F-score of 8 out of 9, and a forward P/E of 10.3 times with a PEG of 0.20 position this as a high-quality business trading at an undemanding multiple relative to its earnings growth rate. Quality breakdown | Forward P/E remains below 14x and operating margins stay above 20% for 4 consecutive quarters. | →Stable |
| CounterFree cash flow converts at only 68% of net income — flagged as a warning — suggesting the income statement may overstate economic earnings power, which could make the valuation less attractive than headline multiples imply. | ||
Operations concentrated in a single geography and two customers representing 61% of revenue create a meaningful single-point-of-failure exposure that limits diversification and amplifies downside if either relationship is disrupted. Bear case | Customer concentration from the top two purchasers falls below 50% of revenue within 4 quarters, reducing single-relationship dependency. | →Stable |
| CounterThe favorable risk/reward of 2.1-to-1 and 12.4% upside to target suggest the market has already discounted this concentration risk to some degree into current pricing. | ||
Momentum has declined below the 4.5 minimum with on-balance volume in distribution mode, and technical signals are mixed — a combination that creates a near-term headwind against price appreciation even as the fundamental case remains intact. Engine gate (failed) | Price closes above $29.50 and holds for 4 consecutive weeks, confirming that the near-term momentum softness has resolved. | →Stable |
| CounterThe stock is above its 200-day moving average and technical support/resistance positioning is strong; the momentum softness may be a temporary pause rather than a deteriorating trend, and the note does not confirm a breakdown. | ||
CounterThe individual quarterly surprises are modest, ranging from 1.65% to 4.88%, suggesting the streak may reflect conservative guidance-setting rather than meaningful operational outperformance relative to underlying business conditions.
CounterFree cash flow converts at only 68% of net income — flagged as a warning — suggesting the income statement may overstate economic earnings power, which could make the valuation less attractive than headline multiples imply.
CounterThe favorable risk/reward of 2.1-to-1 and 12.4% upside to target suggest the market has already discounted this concentration risk to some degree into current pricing.
CounterThe stock is above its 200-day moving average and technical support/resistance positioning is strong; the momentum softness may be a temporary pause rather than a deteriorating trend, and the note does not confirm a breakdown.
| Component | Sub-score |
|---|---|
| P/E | 7.8 |
| P/S | 7.7 |
| EV/EBITDA | 8.3 |
| Fwd P/E | 9.3 |
| PEG | 10.0 |
| Analyst target | 6.0 |
| Component | Sub-score |
|---|---|
| ROE | 5.5 |
| ROA | 6.2 |
| Gross margin | 10.0 |
| Op margin | 10.0 |
| Net margin | 10.0 |
| Current ratio | 4.3 |
| FCF quality | 5.2 |
| Moat | 7.2 |
| Rule of 40 | 3.0 |
| Piotroski F | 8.9 |
| Component | Sub-score |
|---|---|
| Rev growth | 3.1 |
| EPS growth | 10.0 |
| Component | Sub-score |
|---|---|
| RSI | 5.5 |
| MACD | 6.2 |
| OBV | 10.0 |
| MA position | 4.0 |
| Volume | 0.0 |
| Component | Sub-score |
|---|---|
| LLM sentiment | 6.5 |
| Analyst rating | 7.4 |
| Price target | 8.1 |
| Component | Sub-score |
|---|---|
| materiality | 5.0 |
| holder change | 5.1 |
| Component | Sub-score |
|---|---|
| value rank | 2.3 |
| quality rank | 6.3 |
| growth rank | 3.2 |
| Component | Sub-score |
|---|---|
| bollinger | 6.3 |
| support resistance | 4.8 |
| 52w position | 6.7 |
| Component | Sub-score |
|---|---|
| short interest | 2.7 |
| days to cover | 1.9 |
| volatility | 4.4 |
| put call | 0.0 |
| implied vol | 1.0 |
| beta | 8.9 |
| debt equity | 9.2 |
| Component | Sub-score |
|---|---|
| erm | 5.0 |
| earnings history | 10.0 |
| earnings timing | 5.0 |
| surprise avg | 4.2 |
| dividend safety | 6.0 |
| news activity | 5.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:PRIOR_STILL_VIABLEnone
SetupRANGE_BOUND — RSI 41 mid-range, Bollinger mid-band
EdgeNO_EDGE — No clear edge identified
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:5.1>=4.5. Top dim: Value at 8.2; weakest: Peer rank at 3.0. No conviction either direction.
The strongest dimensions are Value at 8.2, Sentiment at 7.3, and Quality at 7.0; the weakest are Peer rank at 3.0, Risk (lower is worse) at 4.0, and Insider at 5.0. The V9 engine cleared all gates with 1 warning, producing an asymmetric reward-to-risk of 1.87 and an engine sizing output of STARTER.
Falsifying conditions — when triggered, the corresponding pillar's thesis is invalidated.
Trip ifEPS surprise falls below 0% for 2 consecutive quarters.
Trip ifForward P/E expands above 18x for 2 consecutive quarters.
Trip ifCustomer concentration from top 2 purchasers falls below 50% of revenue within 4 quarters.
Trip ifPrice closes above $29.50 and holds for 4 consecutive weeks.