✓
vm-asset-class
Eligible asset class.
assetClass:equity
+4
✗
vm-50-150-uptrend-confirmation
Intermediate trend does not confirm.
priceAbove50Sma:false | sma50Slope:down
+20
✓
vm-liquidity
Liquidity clears threshold.
avgDollarVolume:265868400.00
+13
✓
vm-200ma-uptrend-confirmation
Price is above the 200 SMA.
sma200DistancePct:3.5%
+9
✗
vm-rs-rank
Relative strength is weak.
rank:46.00
+9
✓
vm-forward-pe
Forward valuation is inside the ceiling.
forwardPe:9.41
+9
✓
vm-business-quality-gate
Quality proxies are acceptable.
roe:11.1% | margin:12.6% | revGrowth:2.0%
+5
✓
vm-buy-near-moving-average
Price is near a relevant moving average.
sma20DistancePct:-0.9% | sma50DistancePct:-3.6%
+7
✓
vm-earnings-growth
Earnings growth exceeds 10% threshold.
earningsGrowthYoY:13.0%
+4
✗
vm-pullback-entry
Pullback is outside the preferred entry band.
percentFromHigh:137.05
+3
✓
vm-peg-below-1-5
PEG is inside preferred threshold.
peg:72.0%
+5
✓
vm-peg-below-1-0-best
PEG is in best-value zone.
peg:72.0%
+4
~
vm-dcf-supported
DCF inputs unavailable (need OCF, shares, price).
price:122.52
+4
~
vm-revenue-consistency
Revenue history unavailable (need 2+ annual periods).
+2
✓
vm-event-safety
No high-impact event blocker.
hasHighImpactEvent:false
+2
✓
vm-event-disqualifier
No high-impact event blocker.
hasHighImpactEvent:false
-30
✓
vm-avoid-buying-extended
Price is not excessively extended.
sma20DistancePct:-0.9%
-30
✓
vm-discount-context-macro
Macro/sector headwind likely — company fundamentals intact despite price weakness. Not a red flag.
rsRank:46.00 | salesQQPct:-1.4% | epsNext5YPct:13.0%
✓
vm-discount-context-cyclical
Cyclical headwind — near-term revenue/earnings pressure with intact long-term growth outlook. Consistent with M&A integration, one-time charges, or sector cycle. Not a red flag.
salesQQPct:-1.4% | epsQQPct:-1.6% | epsNext5YPct:13.0%
✓
vm-structural-decline
No structural decline signal — long-term growth outlook intact.
epsNext5YPct:13.0% | revPeriodsAvailable:0.0%
-20