Fundamentals
How the books look — profitability, leverage, valuation, growth.
- Cash Conversion Cycle 100
- Greenblatt ROC 100
- Days Sales Outstanding 99
- PEGY 0
- PEG 0
- P/E (TTM) 0
Fundamentals
How the books look — profitability, leverage, valuation, growth.
Technicals
How the chart looks — momentum, trend, volume, volatility.
Click any of the rows above to see the metrics or signals that fed into it — including the formula behind each one and what the current value means for LHX.

Fundamentals · Valuation
Weak Valuation — most metrics in this section are scoring below the professional bands' midpoints.
Operating profile commands a premium - usually associated with high-margin, high-growth, or scarce assets.
| Raw value | 17.371548 ratio |
|---|---|
| Score (0-100) | 40.15 |
| Weight | 1.000× |
| Direction | lower |
| Industry Bucket | Aerospace/Defense |
| Industry Median | 33.4200 |
| Industry N | 79.0000 |
| Industry Rank | 75.0000 |
| Industry Source | damodaran-vebitda-2026-01 |
| Industry Asof | 2026-01 |
Capital-structure-agnostic valuation multiple. Useful for comparing levered companies because it adds debt and removes cash from the numerator and uses pre-interest, pre-tax, pre-depreciation earnings in the denominator.
EV = market_cap + total_debt + preferred_equity + minority_interest - cash; EV/EBITDA = EV / ebitda_ttm
Expensive on cash generation - growth or quality must justify the premium.
| Raw value | 24.308508 ratio |
|---|---|
| Score (0-100) | 52.30 |
| Weight | 1.000× |
| Direction | lower |
Valuation expressed against the cash actually available to all capital providers. Often more honest than EV/EBITDA when capex is meaningful relative to D&A.
EV/FCF = (market_cap + total_debt - cash) / free_cash_flow_ttm
Premium revenue multiple even after netting cash - usually high gross-margin businesses.
| Raw value | 2.981725 ratio |
|---|---|
| Score (0-100) | 44.85 |
| Weight | 1.000× |
| Direction | lower |
Adjusts the numerator for debt and cash so heavily-levered or cash-rich companies are comparable. Particularly useful for cross-industry valuation work.
EV/Sales = (market_cap + total_debt - cash) / revenue_ttm
Forward multiple in the broad-market range.
| Raw value | 22.009033 ratio |
|---|---|
| Score (0-100) | 36.32 |
| Weight | 1.000× |
| Direction | lower |
The multiple equity analysts most commonly quote because it reflects expected earnings rather than the trailing window. Same caveats as trailing P/E - a depressed multiple may be a value trap if forward earnings are too optimistic.
Forward P/E = price / forward_eps
Limited operating earnings against EV - growth or quality must justify the valuation.
| Raw value | 3.879107 percent |
|---|---|
| Score (0-100) | 7.33 |
| Weight | 1.000× |
| Direction | higher |
Capital-structure-agnostic earnings yield. Pairs with Greenblatt ROC to compute the Magic Formula rank (the universe-rank of EY plus universe-rank of ROC). Pre-tax operating earnings divided by the full claim on the firm.
Greenblatt EY = EBIT / Enterprise Value * 100
Market values the franchise far above its book equity - common for branded consumer or software businesses.
| Raw value | 2.915325 ratio |
|---|---|
| Score (0-100) | 72.64 |
| Weight | 1.000× |
| Direction | lower |
| Industry Bucket | Aerospace/Defense |
| Industry Median | 7.8800 |
| Industry N | 79.0000 |
| Industry Rank | 75.0000 |
| Industry Source | damodaran-pbvdata-2026-01 |
| Industry Asof | 2026-01 |
How many dollars of book equity each share represents. Useful for asset-heavy businesses (banks, industrials) where book value approximates liquidation floor; less informative for asset-light franchises whose value is in intangibles.
P/B = market_cap / common_equity
Cheap on current earnings - either an opportunity or a value trap if earnings are about to deteriorate.
| Raw value | 35.127784 ratio |
|---|---|
| Score (0-100) | 0.00 |
| Weight | 1.000× |
| Direction | lower |
| Industry Bucket | Aerospace/Defense |
| Industry Median | 92.8000 |
| Industry N | 79.0000 |
| Industry Rank | 75.0000 |
| Industry Source | damodaran-pedata-2026-01 |
| Industry Asof | 2026-01 |
Multiple of trailing-twelve-month earnings the market has assigned to the company. Lower means cheaper relative to current earnings power, but a single low P/E can also mean the market expects earnings to fall.
P/E = market_cap / net_income_ttm
Market is paying up for revenue - implicitly betting on margin expansion or revenue growth.
| Raw value | 2.553003 ratio |
|---|---|
| Score (0-100) | 54.38 |
| Weight | 1.000× |
| Direction | lower |
Useful when earnings are negative or noisy (early-stage companies, restructurings). Works best within an industry because gross margin profiles vary wildly.
P/S = market_cap / revenue_ttm
Multiple looks cheap relative to growth - watch for one-time growth that won't repeat.
| Raw value | 4.188722 ratio |
|---|---|
| Score (0-100) | 0.00 |
| Weight | 1.000× |
| Direction | target |
Divides P/E by the annualized EPS growth rate (in percent points). Below 1.0 is conventionally read as 'cheap relative to growth.' Sensitive to which growth window you use; can flip sign if earnings are negative.
PEG = (P/E) / eps_growth_3y_pct
Cheap relative to growth + income - confirm both numbers are real.
| Raw value | 3.493583 ratio |
|---|---|
| Score (0-100) | 0.00 |
| Weight | 1.000× |
| Direction | target |
Adds dividend yield to the growth denominator so mature dividend payers don't get unfairly punished by a low-growth PEG. Sweet spot ~1.0; below 0.5 is often a broken growth assumption, above 2 is over-paying.
PEGY = (P/E) / (eps_growth_rate_pct + dividend_yield_pct)

Fundamentals · Profitability
Weak Profitability — most metrics in this section are scoring below the professional bands' midpoints.
Heavy assets needed per dollar of revenue - utilities, telecoms, capital goods.
| Raw value | 0.525626 ratio |
|---|---|
| Score (0-100) | 18.80 |
| Weight | 1.000× |
| Direction | higher |
Productivity of the asset base. Combined with net margin, this is the DuPont decomposition of ROA: ROA = net_margin * asset_turnover.
Asset Turnover = revenue_ttm / average_total_assets
Heavy capex needed per dollar of revenue - utilities, energy, semis territory.
| Raw value | 1.939172 percent |
|---|---|
| Score (0-100) | 87.07 |
| Weight | 1.000× |
| Direction | lower |
Lower is better for shareholder cash returns; very low values can flag under-investment in a capital-intensive business. Pairs with FCF margin to separate 'thin operating margin' from 'fat operating margin offset by heavy capex'.
Capex to Sales = capital_expenditures_ttm / revenue * 100
Earnings exceed cash - common late-cycle warning when receivables and inventories are building.
| Raw value | 1.669988 ratio |
|---|---|
| Score (0-100) | 0.00 |
| Weight | 1.000× |
| Direction | target |
Sanity-check on earnings quality. Persistently below 1 means working capital or capex is consuming earnings; persistently above 1 is unusual and may flag accounting conservatism or non-cash drags.
Cash Conversion = free_cash_flow_ttm / net_income_ttm
Thin EBITDA per dollar of revenue - exposed to input cost or wage shocks.
| Raw value | 17.164418 percent |
|---|---|
| Score (0-100) | 33.94 |
| Weight | 1.000× |
| Direction | higher |
Easier to compare than operating_margin across firms with very different leverage / depreciation profiles. Software platforms commonly run above 30%; capital-light service businesses cluster around 20%.
EBITDA Margin = ebitda / revenue * 100
Cash flowing through to owners - the hallmark of high-quality compounders.
| Raw value | 12.266179 percent |
|---|---|
| Score (0-100) | 57.03 |
| Weight | 1.000× |
| Direction | higher |
End-to-end conversion ratio: of every dollar of revenue, how much falls through to genuine free cash flow available to capital providers? More honest than net margin because it accounts for capex needed to maintain the business.
FCF Margin = (free_cash_flow_ttm / revenue_ttm) * 100
Strong cash income relative to price - attractive when growth doesn't have to do all the work.
| Raw value | 4.804607 percent |
|---|---|
| Score (0-100) | 54.35 |
| Weight | 1.000× |
| Direction | higher |
FCF the business throws off relative to what you pay for the equity. Treats the equity as a perpetual claim on cash. Cyclicals can swing below zero in a downturn.
FCF Yield = (free_cash_flow_ttm / market_cap) * 100
Operating tangible capital is throwing off heavy pre-tax earnings - a Magic Formula favourite.
| Raw value | 62.723214 percent |
|---|---|
| Score (0-100) | 100.00 |
| Weight | 1.000× |
| Direction | higher |
Joel Greenblatt's reformulation of return-on-capital that excludes goodwill, acquired intangibles, and financial assets, focusing instead on the tangible operating capital that actually generates EBIT. Pairs with Greenblatt's Earnings Yield (EBIT/EV) to produce the Magic Formula rank.
Greenblatt ROC = EBIT / (working_capital + net_fixed_assets) * 100
Heavy COGS load - typical of commodity producers, contract manufacturers, retail.
| Raw value | 8.560256 percent |
|---|---|
| Score (0-100) | 0.00 |
| Weight | 1.000× |
| Direction | higher |
| Industry Bucket | Aerospace/Defense |
| Industry Median | 17.4800 |
| Industry N | 79.0000 |
| Industry Rank | 25.0000 |
| Industry Source | damodaran-margin-2026-01 |
| Industry Asof | 2026-01 |
First-line profitability measure - how much revenue is left after the direct cost of producing it. Stable gross margin suggests pricing power and low input-cost exposure.
Gross Margin = ((revenue_ttm - cogs_ttm) / revenue_ttm) * 100
Either operating margins are thin or below-the-line items are eating earnings.
| Raw value | 7.345072 percent |
|---|---|
| Score (0-100) | 29.69 |
| Weight | 1.000× |
| Direction | higher |
| Industry Bucket | Aerospace/Defense |
| Industry Median | 4.9900 |
| Industry N | 79.0000 |
| Industry Rank | 75.0000 |
| Industry Source | damodaran-margin-2026-01 |
| Industry Asof | 2026-01 |
Operating margin minus interest, tax, and below-the-line items. Useful but noisy because tax rate and debt service distort year-to-year comparability.
Net Margin = (net_income_ttm / revenue_ttm) * 100
Net income running ahead of operating cash - check accruals (receivables, deferred revenue, inventories).
| Raw value | 1.933998 ratio |
|---|---|
| Score (0-100) | 0.00 |
| Weight | 1.000× |
| Direction | target |
Pre-capex version of cash conversion. Numbers persistently below 1 suggest accruals are doing the work; numbers persistently above 1 are a (mild) positive sign.
OCF/NI = operating_cash_flow_ttm / net_income_ttm
Thin profit per dollar of revenue - exposed to input cost or wage shocks.
| Raw value | 9.650126 percent |
|---|---|
| Score (0-100) | 15.50 |
| Weight | 1.000× |
| Direction | higher |
| Industry Bucket | Aerospace/Defense |
| Industry Median | 7.6500 |
| Industry N | 79.0000 |
| Industry Rank | 75.0000 |
| Industry Source | damodaran-margin-2026-01 |
| Industry Asof | 2026-01 |
Captures the leverage between revenue and operating profit. Core test of whether a business converts sales into income at the operating level.
Operating Margin = (operating_income_ttm / revenue_ttm) * 100
Heavy asset base is needed to generate each dollar of profit - common in capital-intensive industries.
| Raw value | 3.860763 percent |
|---|---|
| Score (0-100) | 14.31 |
| Weight | 1.000× |
| Direction | higher |
Capital-efficiency measure that ignores how the assets are financed. Useful for comparing within a sector but biased low for asset-heavy businesses (banks, utilities) and high for asset-light ones.
ROA = (net_income_ttm / average_total_assets) * 100
Operating capital is producing weak returns - watch the cost of capital gap.
| Raw value | 7.445023 percent |
|---|---|
| Score (0-100) | 0.00 |
| Weight | 1.000× |
| Direction | higher |
Pre-tax cousin of ROIC using operating capital employed (long-term debt + equity ≈ total assets less current liabilities). Damodaran publishes ROCE by industry, so it benchmarks cleanly.
ROCE = ebit / (total_assets - current_liabilities) * 100
Equity earning power is weak - sometimes due to over-capitalization, sometimes due to genuine underperformance.
| Raw value | 8.204552 percent |
|---|---|
| Score (0-100) | 12.82 |
| Weight | 1.000× |
| Direction | higher |
| Industry Bucket | Aerospace/Defense |
| Industry Median | 15.2700 |
| Industry N | 79.0000 |
| Industry Rank | 25.0000 |
| Industry Source | damodaran-roe-2026-01 |
| Industry Asof | 2026-01 |
Headline profitability metric. High ROE compounds book value if the business can reinvest at the same return. Beware of buybacks artificially inflating ROE by shrinking the denominator.
ROE = (net_income_ttm / average_common_equity) * 100
Operating capital is being deployed unproductively - watch for businesses earning less than they pay for capital.
| Raw value | 5.992875 percent |
|---|---|
| Score (0-100) | 0.00 |
| Weight | 1.000× |
| Direction | higher |
| Industry Bucket | Aerospace/Defense |
| Industry Median | 22.6400 |
| Industry N | 79.0000 |
| Industry Rank | 25.0000 |
| Industry Source | damodaran-roc-2026-01 |
| Industry Asof | 2026-01 |
Measures how productive the actual operating capital base is, independent of capital structure. The benchmark is the company's cost of capital - sustained ROIC above WACC creates value, below WACC destroys it.
NOPAT = operating_income_ttm * (1 - effective_tax_rate); invested_capital = shareholders_equity + total_debt - cash; ROIC = NOPAT / avg_invested_capital * 100
Fundamentals · Growth
Weak Growth — most metrics in this section are scoring below the professional bands' midpoints.
EPS shrinking - either earnings deteriorated or share count expanded faster than profit.
| Raw value | 0.083863 percent |
|---|---|
| Score (0-100) | 33.55 |
| Weight | 1.000× |
| Direction | higher |
Bottom-line growth on a per-share basis, capturing both operating progress and any net buyback effect. The denominator uses absolute prior EPS so a turnaround from negative to positive earnings reads with the conventional sign.
EPS Growth = (diluted_eps_ttm - diluted_eps_prior_ttm) / abs(diluted_eps_prior_ttm)
Revenue flat or declining - the growth engine is paused or in reverse.
| Raw value | 0.025322 percent |
|---|---|
| Score (0-100) | 10.13 |
| Weight | 1.000× |
| Direction | higher |
Top-line growth - the cleanest way to see whether the franchise is expanding. Best read alongside margin trend; revenue rising while margin compresses is often discount-driven volume rather than real growth.
Revenue Growth = (revenue_ttm - revenue_prior_ttm) / revenue_prior_ttm

Fundamentals · Balance Sheet
Mixed Balance Sheet — roughly balanced strengths and weaknesses.
Liquidity depends on receivables and inventory turning - vulnerable to working-capital shocks.
| Raw value | 0.147938 ratio |
|---|---|
| Score (0-100) | 11.98 |
| Weight | 1.000× |
| Direction | target |
Strips out receivables and inventory, leaving only cash and equivalents over current liabilities. Stress-tests whether the business can meet obligations even if collections seize up.
Cash Ratio = cash_and_equivalents / current_liabilities
Short-term obligations exceed short-term assets - watch cash flow timing.
| Raw value | 1.189178 ratio |
|---|---|
| Score (0-100) | 18.92 |
| Weight | 1.000× |
| Direction | target |
Whether the company can cover near-term obligations from near-term assets. Below 1.0 doesn't mean insolvent (cash flow can cover the gap) but is worth a closer look.
Current Ratio = current_assets / current_liabilities
Leverage in the broad-market range - read alongside coverage ratios.
| Raw value | 0.253502 ratio |
|---|---|
| Score (0-100) | 63.79 |
| Weight | 1.000× |
| Direction | lower |
Useful complement to debt-to-equity. Banks, REITs, and post-buyback firms can have small or negative book equity, which makes D/E unstable; D/A stays well-behaved because the denominator is always positive. Industry context still matters - utilities run higher than software.
Debt-to-Assets = total_debt / total_assets
Capital structure is debt-heavy - amplifies equity returns but also stress in downturns.
| Raw value | 0.531856 ratio |
|---|---|
| Score (0-100) | 73.41 |
| Weight | 1.000× |
| Direction | lower |
| Industry Bucket | Aerospace/Defense |
| Industry Median | 0.1538 |
| Industry N | 79.0000 |
| Industry Rank | 25.0000 |
| Industry Source | damodaran-dbtfund-2026-01 |
| Industry Asof | 2026-01 |
How much the company funds itself with debt vs. equity. Higher leverage amplifies both returns and risks; the appropriate level varies wildly by industry.
Debt-to-Equity = total_debt / common_equity
Interest coverage in the workable range - watch the trend through the cycle.
| Raw value | 9.366667 ratio |
|---|---|
| Score (0-100) | 44.04 |
| Weight | 1.000× |
| Direction | higher |
Solvency-under-stress measure. A ratio of 1x means EBIT exactly covers interest with nothing left over; 5x is comfortable for an industrial; below 2x is a credit-watch level. Especially important when leverage is rising or profits are cyclical.
Interest Coverage = EBIT / interest_expense
Permanent leverage is high - watch coverage ratios and refinancing windows.
| Raw value | 0.531856 ratio |
|---|---|
| Score (0-100) | 64.54 |
| Weight | 1.000× |
| Direction | lower |
Strips out short-term operating debt and revolver use to focus on permanent capital structure. Useful when comparing companies that fund working capital differently.
LT D/E = long_term_debt / common_equity
Leverage in the workable range for the rating bucket.
| Raw value | 2.497735 ratio |
|---|---|
| Score (0-100) | 50.05 |
| Weight | 1.000× |
| Direction | lower |
Bond covenants are commonly written against this ratio. Above ~5x is high-yield territory; investment-grade industrials typically run below 3x. Negative net debt (more cash than debt) means the firm could pay off its bonds and still hold cash.
Net Debt / EBITDA = (total_debt - cash_and_equivalents) / ebitda_ttm
Quick assets cover near-term obligations comfortably.
| Raw value | 1.020482 ratio |
|---|---|
| Score (0-100) | 74.35 |
| Weight | 1.000× |
| Direction | target |
The acid-test variant of current ratio strips inventory from current assets, since inventory can be stale or written down before it becomes cash. Sweet spot 1.2x; below 0.5x signals liquidity stress, above 3x signals trapped working capital.
Quick Ratio = (current_assets - inventory) / current_liabilities
Fundamentals · Efficiency
Above-average Efficiency — more positives than negatives in this section.
Operations tie up cash for months - working capital is a drag on returns.
| Raw value | -95.110069 days |
|---|---|
| Score (0-100) | 100.00 |
| Weight | 1.000× |
| Direction | lower |
The single best operations-quality metric. Negative CCC means the firm is funded by suppliers (Apple, Costco). Long CCC ties up working capital and forces operating-loan dependence.
CCC = DIO + DSO - DPO
Receivables sit on the books a long time - revenue may be ahead of cash.
| Raw value | 20.390922 days |
|---|---|
| Score (0-100) | 99.44 |
| Weight | 1.000× |
| Direction | lower |
Earnings-quality flag. Receivables growing faster than revenue is one of the cleanest tells for revenue recognition stretching. Beneish-style.
DSO = 365 * average_accounts_receivable / revenue
Inventory sits on the shelf - watch for obsolescence write-downs.
| Raw value | 2.376618 ratio |
|---|---|
| Score (0-100) | 3.77 |
| Weight | 1.000× |
| Direction | higher |
DuPont productivity measure. Combined with margin it tells the asset-light vs asset-heavy story. Very high turnover in retail can flag stockouts — the metric reads best industry-relative.
Inventory Turnover = cogs / average_inventory

Fundamentals · Income
Weak Income — most metrics in this section are scoring below the professional bands' midpoints.
Real income today - sustainability depends on payout ratio and free cash flow coverage.
| Raw value | 1.668669 percent |
|---|---|
| Score (0-100) | 41.72 |
| Weight | 1.000× |
| Direction | stepped |
Direct income from holding the share. Stable dividend yield often signals capital discipline; abnormally high yield can be a warning that the dividend isn't covered by FCF and may be cut.
Dividend Yield = (dividends_per_share_ttm / price) * 100
You're earning a small income yield on the cap - the rest of the return has to come from growth.
| Raw value | 2.846749 percent |
|---|---|
| Score (0-100) | 0.00 |
| Weight | 1.000× |
| Direction | higher |
Lets you compare equity earning power directly to bond yields. A 6% earnings yield is the equity-side analog to a 6% coupon, with the difference being earnings can grow (or contract).
Earnings Yield = (net_income_ttm / market_cap) * 100
Payout in the sustainable range - dividend has room to grow with earnings.
| Raw value | 0.579997 ratio |
|---|---|
| Score (0-100) | 60.00 |
| Weight | 1.000× |
| Direction | target |
Sustainability check on the dividend yield. Below 30% means the dividend has room to grow; 30-60% is the conventional sweet spot; above 85% is stretched and frequently precedes a cut. REITs and utilities run higher than the broad market by design.
Payout Ratio = dividends_paid_ttm / net_income_ttm
Little cash going back to shareholders - return depends on growth or multiple expansion.

Fundamentals · Composite
Strong Composite — most metrics are scoring well above the professional bands' midpoints.
Far from distress on Altman's classic formulation.
| Raw value | 2.469794 score |
|---|---|
| Score (0-100) | 52.96 |
| Weight | 1.000× |
| Direction | stepped |
Five-factor distress signal originally calibrated for US public manufacturers. Above 3.0 is the conventional 'safe' zone, 1.8-3.0 is the grey zone, below 1.8 historically associates with elevated bankruptcy risk.
Z = 1.2X1 + 1.4X2 + 3.3X3 + 0.6X4 + 1.0X5; X1=working_capital/total_assets, X2=retained_earnings/total_assets, X3=ebit/total_assets, X4=market_cap/total_liabilities, X5=revenue/total_assets
M-score in the manipulator zone - financial statements show several of Beneish's red-flag patterns at once.
| Raw value | -2.390539 score |
|---|---|
| Score (0-100) | 76.53 |
| Weight | 1.000× |
| Direction | stepped |
Beneish (1999) calibrates eight financial-statement indices against a sample of known manipulators. M < -2.22 reads as unlikely manipulator; M >= -1.78 as likely manipulator; the gap is grey. Companion to Altman Z but for fraud risk rather than bankruptcy.
M = -4.84 + 0.92*DSRI + 0.528*GMI + 0.404*AQI + 0.892*SGI + 0.115*DEPI - 0.172*SGAI + 4.679*TATA - 0.327*LVGI
Clean fundamentals scorecard - profitability, leverage, and efficiency all moving the right way.
| Raw value | 7.000000 score_0_9 |
|---|---|
| Score (0-100) | 80.00 |
| Weight | 1.000× |
| Direction | stepped |
Joseph Piotroski's score for distinguishing winners from losers among low-P/B stocks. Each of 9 questions answers 0 or 1; the more 'yes' answers, the higher quality the recent year-over-year improvements.
Sum of 9 binary indicators across profitability (ROA>0, CFO>0, ROA improving, CFO>NI), leverage (LT debt/assets falling, current ratio rising, no share issuance), and operating efficiency (gross margin rising, asset turnover rising)
Net income outpacing cash by an unusual amount - earnings quality may be deteriorating.
| Raw value | -0.046292 ratio |
|---|---|
| Score (0-100) | 81.48 |
| Weight | 1.000× |
| Direction | target |
Richard Sloan's accruals-quality measure. Persistent positive accruals (NI exceeds OCF) tend to mean-revert via earnings disappointments. Large negative values are usually fine but can flag one-time working-capital releases or non-cash drags. Phase D-2 made this a target-window metric centred at zero.
Sloan = (net_income_ttm - operating_cash_flow_ttm - cash_flow_from_investing_ttm) / total_assets
Technicals · Momentum
Above-average Momentum — more positives than negatives in this section.
Active pullback-buy in an established uptrend — price bouncing off a 2-period oversold reading.
| Score (0-100) | 99.73 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 0 |
| Last trigger date | 2026-05-08 |
| Triggers in last 60 bars | 25 |
| Bars evaluated | 501 |
Buys oversold pullbacks within an established uptrend (price above the 200-day SMA). Holds while RSI(2) is below an exit threshold; exits when RSI(2) crosses above 60.
+1 when price is above regime_ma and RSI(2) drops below oversold; held while inside the trade; back to 0 when RSI(2) crosses above exit.
+1 = pullback-buy state active, 0 = flat. Bear-side variant uses the symmetric short rule.
period=2, oversold=10, exit=60, regime_ma=200
MACD and price agreeing; no divergence to act on.
| Score (0-100) | 50.06 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 125 |
| Last trigger date | 2025-11-06 |
| Triggers in last 60 bars | 0 |
| Bars evaluated | 501 |
| Last bar value | -2.7323 |
Compares price pivots against the MACD histogram (MACD line minus signal line) at those same bars. Bullish divergence: price lower-low, histogram higher-low. Bearish divergence: price higher-high, histogram lower-high.
+1 at right-hand pivot of bullish divergence; -1 at right-hand pivot of bearish divergence; 0 otherwise.
+1 = bullish divergence, -1 = bearish divergence.
fast=12, slow=26, signal=9, pivot_window=5
MACD line crossed down through its signal line — short-term momentum trigger short.
| Score (0-100) | 28.23 |
|---|---|
| Weight | 1.000× |
| Last trigger value | -1.000 |
| Bars since trigger | 15 |
| Last trigger date | 2026-04-17 |
| Triggers in last 60 bars | 4 |
| Bars evaluated | 501 |
| Last bar value | -13.3171 |
| Last bar signal | -10.5848 |
Fires on the bar where the MACD line (EMA12-EMA26) crosses through the signal line (EMA9 of MACD). Bullish when MACD crosses up through signal, bearish when it crosses down. Far more commonly used as a trade trigger than divergence (see macd_divergence for the slower confirmatory tell).
+1 on bullish cross (MACD crosses up through signal); -1 on bearish cross (MACD crosses down through signal); 0 otherwise.
+1 = bullish MACD-signal cross, -1 = bearish MACD-signal cross.
fast=12, slow=26, signal=9
RSI and price are aligned; no divergence in the recent window.
| Score (0-100) | 49.98 |
|---|---|
| Weight | 1.000× |
| Last trigger value | -1.000 |
| Bars since trigger | 146 |
| Last trigger date | 2025-10-08 |
| Triggers in last 60 bars | 0 |
| Bars evaluated | 501 |
| Threshold upper | 70.000 |
| Threshold lower | 30.000 |
| Threshold mid | 50.000 |
| Indicator scale | 0.00 – 100.00 |
| Last bar value | 23.1833 |
When price prints a lower low while RSI prints a higher low at those same bars, momentum is improving even though price is still falling - a classic bullish divergence. The bearish mirror fires when price makes a higher high but RSI prints a lower high.
+1 at the right-hand pivot of a (lower-low price, higher-low RSI) pair; -1 at the right-hand pivot of a (higher-high price, lower-high RSI) pair; 0 otherwise.
+1 = bullish divergence, -1 = bearish divergence, 0 = no divergence at this bar.
period=14, pivot_window=5, lookback=60
%K crossed up through %D from oversold — short-term buy trigger.
| Score (0-100) | 84.36 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 1 |
| Last trigger date | 2026-05-07 |
| Triggers in last 60 bars | 3 |
| Bars evaluated | 501 |
| Threshold upper | 80.000 |
| Threshold lower | 20.000 |
| Threshold mid | 50.000 |
| Indicator scale | 0.00 – 100.00 |
| Last bar value | 4.4925 |
| Last bar d | 4.2290 |
Bullish when %K crosses above %D while both lines are below the oversold threshold; bearish when %K crosses below %D while both are above overbought.
+1 on bullish cross in oversold; -1 on bearish cross in overbought; 0 otherwise.
+1 = oversold bullish cross, -1 = overbought bearish cross.
k=14, d=3, smooth=3, ob=80, os=20
Technicals · Trend
Mixed Trend — roughly balanced strengths and weaknesses.
Price hugging its 52-week high — strength regime, breakout candidates.
| Score (0-100) | 66.78 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 43 |
| Last trigger date | 2026-03-09 |
| Triggers in last 60 bars | 8 |
| Bars evaluated | 501 |
| Last bar value | 299.6400 |
| Last bar upper | 377.1662 |
| Last bar lower | 214.6922 |
Reports whether the close sits within the configured proximity (default 2%) of the rolling 252-bar high or low. New-highs and new-lows are universally used screening filters; momentum and breakout strategies start from here.
+1 while close is within proximity of the 252-bar high; -1 while close is within proximity of the 252-bar low; 0 mid-range.
+1 = near 52-week high, -1 = near 52-week low, 0 = mid-range.
window=252, proximity=0.02
ADX below threshold — trend is weak, prefer mean-reversion to trend strategies right now.
| Score (0-100) | 85.39 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 13 |
| Last trigger date | 2026-04-21 |
| Triggers in last 60 bars | 25 |
| Bars evaluated | 501 |
| Threshold lower | 20.000 |
| Threshold mid | 25.000 |
| Indicator scale | 0.00 – 60.00 |
| Last bar value | 46.3542 |
ADX (Average Directional Index) measures trend strength regardless of direction. Below ~20 historically associates with sideways/choppy markets unfavorable to trend strategies.
+1 while ADX is below the threshold (weak trend); 0 otherwise.
+1 = weak trend (chop) - typically a signal to disable trend strategies, not to trade direction.
period=14, weak_threshold=20
Active short breakout state — close below the N-day lowest low.
| Score (0-100) | 0.00 |
|---|---|
| Weight | 1.000× |
| Last trigger value | -1.000 |
| Bars since trigger | 0 |
| Last trigger date | 2026-05-08 |
| Triggers in last 60 bars | 49 |
| Bars evaluated | 501 |
| Last bar value | 299.6400 |
| Last bar upper | 360.1400 |
| Last bar lower | 299.0200 |
Turtle-style breakout signal: enters long on a close above the highest high of the lookback window, short on a close below the lowest low. Holds the position for a fixed number of bars.
+1 on long entry, held for hold_bars; -1 on short entry, held for hold_bars.
+1 = long breakout state, -1 = short breakout state.
period=20, hold_bars=20
Full Ichimoku bull setup — price above cloud, tenkan over kijun, cloud projecting green.
| Score (0-100) | 55.67 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 42 |
| Last trigger date | 2026-03-10 |
| Triggers in last 60 bars | 1 |
| Bars evaluated | 501 |
| Last bar value | 299.6400 |
| Last bar tenkan | 312.2100 |
| Last bar kijun | 330.9650 |
| Last bar cloud_a | 352.3426 |
| Last bar cloud_b | 353.0253 |
Composite trend system: bullish when price is above the cloud, tenkan crosses above kijun, and the cloud ahead is green. Bearish on the symmetric short-side configuration.
+1 on bullish trigger conditions, -1 on bearish, 0 otherwise.
+1 = full Ichimoku bullish setup, -1 = full bearish setup.
tenkan=9, kijun=26, senkou_b=52
Fast MA below slow MA — bearish bias state held.
| Score (0-100) | 22.55 |
|---|---|
| Weight | 1.000× |
| Last trigger value | -1.000 |
| Bars since trigger | 15 |
| Last trigger date | 2026-04-17 |
| Triggers in last 60 bars | 8 |
| Bars evaluated | 501 |
| Last bar value | 299.6400 |
| Last bar fast | 303.9501 |
| Last bar slow | 311.1294 |
Holds +1 while the fast moving average is above the slow one (bullish bias), -1 when below (bearish bias). Whipsaws in chop; works best when combined with a regime filter.
+1 while fast > slow, -1 while fast < slow.
+1 = bullish state (fast above slow), -1 = bearish state.
fast=5, slow=10, ma_type=ema
SAR flipped from below to above price — switch to short bias.
| Score (0-100) | 23.60 |
|---|---|
| Weight | 1.000× |
| Last trigger value | -1.000 |
| Bars since trigger | 13 |
| Last trigger date | 2026-04-21 |
| Triggers in last 60 bars | 6 |
| Bars evaluated | 501 |
| Last bar value | 299.6400 |
| Last bar sar | 319.8140 |
The Parabolic SAR plots a stop-and-reverse dot above or below price; when price crosses the SAR, the trend side flips. The signal fires on the flip bar.
+1 on flip from above-price (bearish) to below-price (bullish); -1 on flip the other way.
+1 = bullish flip, -1 = bearish flip.
accel=0.02, max_accel=0.2
Price above the long-term MA — bullish regime, gate longs on.
| Score (0-100) | 93.36 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 5 |
| Last trigger date | 2026-05-01 |
| Triggers in last 60 bars | 55 |
| Bars evaluated | 501 |
| Last bar value | 299.6400 |
| Last bar regime | 309.5158 |
Simplest possible regime filter: long-only when price is above its long-term MA, flat or short-only when below. Often used to gate other signals.
+1 while close > MA, -1 while close < MA.
+1 = bullish regime (above 200dma), -1 = bearish regime (below 200dma).
ma_period=200
Ticker underperforming the broad market by more than its trailing-year norm.
| Score (0-100) | 0.00 |
|---|---|
| Weight | 1.000× |
| Last trigger value | -1.000 |
| Bars since trigger | 0 |
| Last trigger date | 2026-05-08 |
| Triggers in last 60 bars | 51 |
| Bars evaluated | 501 |
| Last bar value | -0.2195 |
Computes the period-bar log-return spread (ticker minus SPY), then ranks the spread against its trailing 252-bar quantile. SPY = SPDR S&P 500 ETF Trust ('SPDR' = Standard & Poor's Depositary Receipts), the standard proxy for the US large-cap market. Ranking against the trailing window means the same threshold works in both gentle bull markets and high-volatility regimes.
+1 while the ticker-vs-SPY spread is in the top high_pct of its trailing window; -1 while in the bottom low_pct; 0 otherwise.
+1 = clear outperformance regime, -1 = clear underperformance regime.
period=63, rank_window=252, high_pct=0.85, low_pct=0.15
Technicals · Price Action
Above-average Price Action — more positives than negatives in this section.
No notable doji in the recent window.
| Score (0-100) | 50.82 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 72 |
| Last trigger date | 2026-01-26 |
| Triggers in last 60 bars | 0 |
| Bars evaluated | 501 |
| Last bar value | 299.6400 |
Open and close are nearly equal (tiny body, under ~5% of range) with comparable upper and lower wicks. Marks indecision; meaningful when it appears at trend extremes or after extended runs.
+1 on doji (the bar marks the indecision candle regardless of direction).
+1 = doji formed; direction depends on context (use with prior trend).
body_max=0.05, wick_balance=0.3
Active Connors Double-7 pullback in an uptrend — buy the 7-day low, sell the 7-day high.
| Score (0-100) | 99.99 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 0 |
| Last trigger date | 2026-05-08 |
| Triggers in last 60 bars | 40 |
| Bars evaluated | 501 |
| Last bar value | 299.6400 |
While price is above its 200-day MA (uptrend regime), buy when today's close is the lowest in 7 sessions; exit when today's close is the highest in 7 sessions.
+1 on entry day (new 7-day low above regime); held until exit on new 7-day high; back to 0 on exit.
+1 = pullback-buy state active, 0 = flat.
lookback=7, regime_ma=200
Up candle fully engulfed the prior down body after a downtrend — reversal-up tell.
| Score (0-100) | 53.64 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 58 |
| Last trigger date | 2026-02-13 |
| Triggers in last 60 bars | 1 |
| Bars evaluated | 501 |
| Last bar value | 299.6400 |
Bullish engulfing: down candle followed by an up candle whose body fully covers the prior body. Bearish engulfing: up candle followed by a larger down candle covering the prior body. Strongest after a trend.
+1 on bullish engulfing after a downtrend; -1 on bearish engulfing after an uptrend.
+1 = bullish engulfing reversal, -1 = bearish engulfing reversal.
prior_trend_window=5
Price interacted with a key Fibonacci level on its way up — likely springboard or resistance to clear.
| Score (0-100) | 100.00 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 360.739 |
| Bars since trigger | 0 |
| Last trigger date | 2026-05-08 |
| Triggers in last 60 bars | 60 |
| Bars evaluated | 501 |
| Last bar value | 299.6400 |
Identifies the most recent significant swing high and low, projects standard Fibonacci levels (23.6%, 38.2%, 50%, 61.8%, 78.6%), and tags bars where price interacts with one of those levels.
Reports the level price is closest to, in price units, when price is within the proximity band.
Magnitude is the level (e.g. 281.13 = the price level itself), not -1/+1. Sign carries direction-of-move when present.
swing_lookback=60, levels=[0.236,0.382,0.5,0.618,0.786]
No completed H&S pattern in the recent window.
| Score (0-100) | 48.71 |
|---|---|
| Weight | 1.000× |
| Last trigger value | -1.000 |
| Bars since trigger | 63 |
| Last trigger date | 2026-02-06 |
| Triggers in last 60 bars | 0 |
| Bars evaluated | 501 |
| Last bar value | 299.6400 |
Bearish head-and-shoulders: left shoulder, higher head, right shoulder of comparable height to left, broken by a close below the neckline. Inverse pattern (three troughs) is bullish.
+1 at neckline break of inverse-H&S; -1 at neckline break of standard H&S.
+1 = bullish inverse H&S confirmed, -1 = bearish H&S confirmed.
shoulder_tol=0.03, head_prom=0.02
Price tagged a key MA and rolled — moving average held as resistance.
| Score (0-100) | 4.66 |
|---|---|
| Weight | 1.000× |
| Last trigger value | -1.000 |
| Bars since trigger | 3 |
| Last trigger date | 2026-05-05 |
| Triggers in last 60 bars | 22 |
| Bars evaluated | 501 |
| Last bar value | 299.6400 |
When price comes within a small band of a key moving average (typically 50- or 200-period) and reverses without closing through it, the MA is acting as support (uptrend) or resistance (downtrend).
+1 when price prints a low near the MA in an uptrend and closes back above; -1 when price prints a high near the MA in a downtrend and closes back below.
+1 = bullish MA rejection (support held), -1 = bearish MA rejection (resistance held).
ma_periods=[50,200], proximity=0.01
Price retested a prior low and held — multi-bottom support confirmed.
| Score (0-100) | 75.48 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 18 |
| Last trigger date | 2026-04-14 |
| Triggers in last 60 bars | 8 |
| Bars evaluated | 501 |
| Last bar value | 299.6400 |
Finds two or more pivot highs (tops) or lows (bottoms) within a price tolerance and minimum bar separation. Confirmed multi-bottom is bullish; multi-top is bearish.
+1 at confirmation of a multi-bottom (price retests prior low and holds); -1 at confirmation of a multi-top.
+1 = multi-bottom (support pattern), -1 = multi-top (resistance pattern).
peak_count=2, tolerance=0.02, min_sep=10
Long upper wick rejected the prior upswing — sellers stepped in at the high.
| Score (0-100) | 43.05 |
|---|---|
| Weight | 1.000× |
| Last trigger value | -1.000 |
| Bars since trigger | 36 |
| Last trigger date | 2026-03-18 |
| Triggers in last 60 bars | 1 |
| Bars evaluated | 501 |
| Last bar value | 299.6400 |
A pin bar has a small real body (under ~30% of the bar's range) and a long wick (over ~60%) on one side, sticking out beyond the prior trend. Bullish pin: long lower wick after a downtrend. Bearish pin: long upper wick after an uptrend.
+1 for bullish pin (long lower wick, body near top, after downtrend); -1 for bearish pin.
+1 = bullish reversal candle, -1 = bearish reversal candle.
body_max=0.3, wick_min=0.6, prior_trend=5
No completed star pattern recently.
| Score (0-100) | 50.05 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 130 |
| Last trigger date | 2025-10-30 |
| Triggers in last 60 bars | 0 |
| Bars evaluated | 501 |
| Last bar value | 299.6400 |
Morning star (bullish): big down candle, small-body middle, big up candle that closes well into the first body. Evening star is the bearish mirror at a top.
+1 on confirmed morning star; -1 on confirmed evening star.
+1 = morning star (bullish reversal), -1 = evening star (bearish reversal).
middle_body_max=0.3, penetration=0.5
Outside-range bar after a downtrend closed up — reversal-up reversal pattern.
| Score (0-100) | 82.47 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 12 |
| Last trigger date | 2026-04-22 |
| Triggers in last 60 bars | 11 |
| Bars evaluated | 501 |
| Last bar value | 299.6400 |
Two consecutive non-overlapping windows where the second window's high is above the first's high AND the second's low is below the first's low (an outside range). Reads as a reversal signal off the prior trend.
+1 if prior trend was down and current outside-range closes higher than it opens; -1 in the symmetric down-reversal case.
+1 = bullish outside reversal, -1 = bearish outside reversal.
window=10
Decisive close below an upward trendline — support line gave way.
| Score (0-100) | 25.10 |
|---|---|
| Weight | 1.000× |
| Last trigger value | -1.000 |
| Bars since trigger | 13 |
| Last trigger date | 2026-04-21 |
| Triggers in last 60 bars | 5 |
| Bars evaluated | 501 |
| Last bar value | 299.6400 |
Fits a trendline through pivot points and flags decisive closes through the line. Distinguishes a clean break from a wick-test by requiring the close to violate the line.
+1 on close above a downward trendline; -1 on close below an upward trendline.
+1 = bullish breakout above resistance line, -1 = bearish breakdown below support line.
lookback=60, min_touches=2
Falling wedge resolved up — compression broke in favor of buyers.
| Score (0-100) | 91.16 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 6 |
| Last trigger date | 2026-04-30 |
| Triggers in last 60 bars | 18 |
| Bars evaluated | 501 |
| Last bar value | 299.6400 |
A wedge is a price compression where two trendlines converge. Rising wedge (both lines sloping up but upper less steep) typically resolves down; falling wedge resolves up.
+1 on confirmed break above falling wedge; -1 on confirmed break below rising wedge.
+1 = bullish wedge resolution, -1 = bearish wedge resolution.
lookback=40, min_touches=2
Technicals · Volume
Above-average Volume — more positives than negatives in this section.
Decline running on falling volume — sellers losing conviction, reversal candidate.
| Score (0-100) | 80.89 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 13 |
| Last trigger date | 2026-04-21 |
| Triggers in last 60 bars | 10 |
| Bars evaluated | 501 |
| Last bar value | 1159500.0000 |
| Last bar sma | 1579500.0000 |
Trends backed by declining volume tend to lose conviction. The signal compares the slope of price against the slope of volume over a rolling window.
+1 when price is rising but volume slope is negative (weak rally); -1 when price is falling but volume slope is negative (weak decline / potential reversal).
+1 = weak uptrend (sell into strength), -1 = weak downtrend (cover or buy into weakness).
trend_window=20
OBV and price moving together; accumulation/distribution is in line with the tape.
| Score (0-100) | 49.98 |
|---|---|
| Weight | 1.000× |
| Last trigger value | -1.000 |
| Bars since trigger | 146 |
| Last trigger date | 2025-10-08 |
| Triggers in last 60 bars | 0 |
| Bars evaluated | 501 |
| Last bar value | 11525200.0000 |
OBV cumulates signed volume - rising OBV reflects accumulation, falling OBV distribution. Same pivot-pair rule as RSI/MACD divergence: when price makes a new low but OBV doesn't, big-money has stopped selling.
+1 at right-hand pivot of (price lower-low, OBV higher-low); -1 at right-hand pivot of (price higher-high, OBV lower-high).
+1 = bullish OBV divergence, -1 = bearish OBV divergence.
pivot_window=5, lookback=60
No climax bar in the recent window; volume profile is unremarkable.
| Score (0-100) | 50.00 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 199 |
| Last trigger date | 2025-07-24 |
| Triggers in last 60 bars | 0 |
| Bars evaluated | 501 |
| Last bar value | 1159500.0000 |
| Last bar sma | 1579500.0000 |
| Last bar threshold | 3948750.0000 |
Identifies bars whose volume is well above their recent average AND whose body is small relative to the bar's true range - the classic 'climax' shape that often marks short-term turning points.
+1 (long-side capitulation) when the climax bar prints near its low; -1 (distribution) when it prints near its high.
+1 = capitulation/buying climax (potential reversal lower-to-higher), -1 = distribution/selling climax (potential reversal higher-to-lower).
vol_ma=20, spike_mult=2.5, body_range_max=0.4
Technicals · Volatility
Strong Volatility — most metrics are scoring well above the professional bands' midpoints.
ATR%-of-close in the top decile — elevated volatility regime, mean-reversion strategies have an edge.
| Score (0-100) | 99.95 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 0 |
| Last trigger date | 2026-05-08 |
| Triggers in last 60 bars | 33 |
| Bars evaluated | 501 |
| Last bar value | 2.8588 |
Computes Wilder ATR over `period`, divides by close to get ATR%-of-close, then ranks each bar against the trailing `window` quantile. High-percentile readings flag elevated volatility regimes (mean-reversion edge); low-percentile flags compression (breakout edge).
+1 while ATR%-of-close is in the top high_pct of its trailing window; -1 while in the bottom low_pct; 0 otherwise.
+1 = high-volatility regime, -1 = compression regime, 0 = average regime.
period=14, window=252, high_pct=0.85, low_pct=0.15
Active long mean-reversion held — price tagged the lower band, exits at the midline.
| Score (0-100) | 99.93 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 0 |
| Last trigger date | 2026-05-08 |
| Triggers in last 60 bars | 32 |
| Bars evaluated | 501 |
| Last bar value | 299.6400 |
| Last bar upper | 367.4950 |
| Last bar middle | 327.8200 |
| Last bar lower | 288.1450 |
Enters +1 when close <= lower band, holds until close >= middle band. Symmetric short-side state. Captures reversion-to-mean trades inside Bollinger bands.
+1 enter on close <= lower band, exit on close >= middle. -1 enter on close >= upper, exit on close <= middle.
+1 = long mean-reversion held, -1 = short mean-reversion held, 0 = flat.
period=20, std=2
Price closed back inside the bands from below — short-term reversion-long signal.
| Score (0-100) | 75.94 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 8 |
| Last trigger date | 2026-04-28 |
| Triggers in last 60 bars | 3 |
| Bars evaluated | 501 |
| Last bar value | 299.6400 |
| Last bar upper | 367.4950 |
| Last bar middle | 327.8200 |
| Last bar lower | 288.1450 |
Fires on the bar where the close returns inside the bands after the prior close was outside. Long reentry from below the lower band, short reentry from above the upper band.
+1 when prior close < lower band and current close inside; -1 when prior close > upper band and current close inside.
+1 = long-side reentry from oversold, -1 = short-side reentry from overbought.
period=20, std=2