Fundamentals Mixed
49.9 / 100How the books look — profitability, leverage, valuation, growth. · 46 metrics weighted.
Fiscal Wizard · Single-issue tearsheet
Run #61Composite verdict
Mixed fundamentals, strong technicals.
Industry rank 4th of 12 in Aerospace & Defense
Fundamentals Mixed
49.9 / 100How the books look — profitability, leverage, valuation, growth. · 46 metrics weighted.
Technicals Strong
79.8 / 100How the chart looks — momentum, trend, volume, volatility. · 31 signals weighted.
Breakdown
Empty pane
Every chip in either subscore card drills into the metrics or signals that fed it — including the formula, the threshold band, and what the current reading means for GE.

Fundamentals · Valuation
Mixed Valuation — roughly balanced strengths and weaknesses.
Operating profile commands a premium against the takeover-cost view of the firm. Justified when EBITDA-to-FCF conversion is high (capex is light), the moat is durable, and growth is real.
| Raw value | 26.3x |
|---|---|
| Score (0-100) | 75.00 |
| 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 |
What it would cost to take over the entire firm (equity plus debt, less cash) per dollar of pre-interest, pre-tax, pre-depreciation operating earnings. Capital-structure-agnostic — directly comparable across heavily and lightly levered businesses, which a P/E can't do. The weakness: EBITDA ignores capex, so capital-intensive businesses look artificially cheap on this metric. Cross-check with EV/FCF when capex is meaningful.
EV = market_cap + total_debt + preferred_equity + minority_interest - cash; EV/EBITDA = EV / ebitda_ttm
Cheap on free cash flow — confirm FCF is sustainable and not propped up by working-capital release, deferred capex, or one-time tax benefits that will reverse.
| Raw value | 43.6x |
|---|---|
| Score (0-100) | 33.29 |
| Weight | 1.000× |
| Direction | lower |
| Industry Bucket | Aerospace & Defense |
| Industry Median | 26.8549 |
| Industry N | 11.0000 |
| Industry Rank | 33.2874 |
| Industry Source | universe-computed-2026-05 |
| Industry Asof | 2026-05 |
Valuation expressed against the cash actually available to all capital providers after capex. Often more honest than EV/EBITDA when capital expenditure is meaningful relative to depreciation, because EBITDA ignores capex entirely while FCF reflects it. The cleanest single-number 'what would I pay to own this whole business?' valuation lens for capital-intensive firms.
EV/FCF = (market_cap + total_debt - cash) / free_cash_flow_ttm
Cheap on revenue once you account for the balance sheet. Confirm gross margin is structurally workable and the business isn't carrying invisible debt that compresses the equity claim.
| Raw value | 6.9x |
|---|---|
| Score (0-100) | 25.00 |
| Weight | 1.000× |
| Direction | lower |
| Industry Bucket | Aerospace/Defense |
| Industry Median | 3.5700 |
| Industry N | 79.0000 |
| Industry Rank | 25.0000 |
| Industry Source | damodaran-psdata-2026-01 |
| Industry Asof | 2026-01 |
Adjusts the numerator for debt and cash so heavily-levered or cash-rich companies become comparable on a revenue-multiple basis. Particularly useful for cross-industry valuation work where some firms run net cash and others carry meaningful debt loads. Same caveats as P/S: best read alongside gross margin to translate the multiple into expected steady-state earnings power.
EV/Sales = (market_cap + total_debt - cash) / revenue_ttm
Cheap on next-year earnings — confirm the consensus number is plausible, not a stale estimate that hasn't been cut after a rough quarter.
| Raw value | 34.3x |
|---|---|
| Score (0-100) | 30.04 |
| Weight | 1.000× |
| Direction | lower |
| Industry Bucket | Aerospace & Defense |
| Industry Median | 22.6669 |
| Industry N | 12.0000 |
| Industry Rank | 30.0420 |
| Industry Source | universe-computed-2026-05 |
| Industry Asof | 2026-05 |
The multiple equity analysts most commonly quote because it reflects expected earnings rather than the trailing window. Same caveats as trailing P/E plus one extra: the denominator depends on consensus estimates, which can be systematically optimistic going into a downturn or pessimistic at a cyclical trough. Worth cross-checking against trailing P/E and sell-side estimate trend.
Forward P/E = price / forward_eps
Operating earnings yield in the broad-market range. Use alongside Greenblatt ROC to see how the Magic Formula composite scores the name.
| Raw value | 3.42% |
|---|---|
| Score (0-100) | 36.95 |
| Weight | 1.000× |
| Direction | higher |
| Industry Bucket | Aerospace & Defense |
| Industry Median | 4.2285 |
| Industry N | 12.0000 |
| Industry Rank | 36.9478 |
| Industry Source | universe-computed-2026-05 |
| Industry Asof | 2026-05 |
Capital-structure-agnostic earnings yield. Pairs with Greenblatt ROC to compute the famous Magic Formula rank (the universe-rank of earnings yield plus universe-rank of return on capital). Pre-tax operating earnings divided by the full claim on the firm gives a cleaner cross-firm valuation comparison than P/E or earnings yield alone, because it strips out the distortions from leverage, cash, and tax structure.
Greenblatt EY = EBIT / Enterprise Value * 100
Trading near or below book — sometimes a margin of safety (when the assets are real and the business earns its cost of capital), sometimes a sign book value will be impaired (banks before a credit cycle, retailers before a write-down).
| Raw value | 16.7x |
|---|---|
| Score (0-100) | 25.00 |
| Weight | 1.000× |
| Direction | lower |
| Industry Bucket | Aerospace/Defense |
| Industry Median | 7.8800 |
| Industry N | 79.0000 |
| Industry Rank | 25.0000 |
| Industry Source | damodaran-pbvdata-2026-01 |
| Industry Asof | 2026-01 |
Share price divided by per-share book value of common equity — what the market values the franchise at versus what the accountants say it's worth on paper. Most informative for asset-heavy businesses (banks, insurers, industrials) where book value approximates a liquidation floor; far less informative for asset-light franchises whose value sits in brand, software, or other intangibles that GAAP under-states or excludes entirely.
P/B = market_cap / common_equity
Market is paying a premium because it expects earnings to grow, margins to expand, or the franchise to deserve a quality re-rating. Verify the growth is in forward estimates and not just a P/E inflated by a temporarily depressed denominator.
| Raw value | 36.5x |
|---|---|
| Score (0-100) | 75.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 |
How many dollars of share price the market is willing to pay for one dollar of trailing-twelve-month earnings. The universal valuation anchor for profitable companies — useful for cross-sector comparison and as a quick read on whether the market expects earnings growth, decline, or a quality re-rating. Sensitive to one-off items in the denominator (write-downs, tax holidays, share buybacks); pair with EV/EBITDA when capital structure or non-cash charges look noisy.
P/E = market_cap / net_income_ttm
Cheap on revenue. Investigate whether margins are structurally low (commodity producer, contract manufacturer) or revenue quality is poor (one-time contracts, channel-stuffing).
| Raw value | 6.8x |
|---|---|
| Score (0-100) | 25.00 |
| Weight | 1.000× |
| Direction | lower |
| Industry Bucket | Aerospace/Defense |
| Industry Median | 3.1700 |
| Industry N | 79.0000 |
| Industry Rank | 25.0000 |
| Industry Source | damodaran-psdata-2026-01 |
| Industry Asof | 2026-01 |
Useful when earnings are negative, noisy, or one-time-distorted (early-stage growth, restructurings, cyclical troughs). Works best within an industry, not across — gross margin profiles vary so wildly that 1x P/S for a software company means something completely different from 1x P/S for a grocery chain.
P/S = market_cap / revenue_ttm
Multiple is rich relative to recent growth — either the growth pace continues (and the multiple was right), the growth disappoints (and the multiple compresses), or you're paying for a quality re-rating that may not arrive.
| Raw value | 1.02 |
|---|---|
| Score (0-100) | 99.15 |
| Weight | 1.000× |
| Direction | target |
Divides the trailing P/E by the annualised three-year EPS growth rate (in percentage points). Below 1.0 is conventionally read as 'cheap relative to growth'; above 2 implies the multiple is well ahead of recent growth. Sensitive to which growth window you choose and unstable when earnings cross zero — flips sign or explodes when prior EPS is negative.
PEG = (P/E) / eps_growth_3y_pct
Multiple expensive relative to growth-plus-income combined — either growth needs to accelerate or the multiple compresses.
| Raw value | 1.00 |
|---|---|
| Score (0-100) | 99.94 |
| Weight | 1.000× |
| Direction | target |
Peter Lynch's adjustment to PEG: adds the dividend yield to the growth rate in the denominator so that mature dividend payers don't get unfairly punished by a low growth rate alone. Sweet spot is 1.0 (P/E equals growth plus yield); below 0.5 often signals a broken growth assumption rather than genuine value; above 2 is over-paying.
PEGY = (P/E) / (eps_growth_rate_pct + dividend_yield_pct)

Fundamentals · Profitability
Above-average Profitability — more positives than negatives in this section.
Heavy assets needed per dollar of revenue — utilities, telecoms, heavy industrial, capital goods. Often the right number for the industry, but compounds the impact of any margin compression.
| Raw value | 0.36 |
|---|---|
| Score (0-100) | 19.65 |
| Weight | 1.000× |
| Direction | higher |
| Industry Bucket | Aerospace & Defense |
| Industry Median | 0.6559 |
| Industry N | 12.0000 |
| Industry Rank | 19.6531 |
| Industry Source | universe-computed-2026-05 |
| Industry Asof | 2026-05 |
Productivity of the asset base — how efficiently the firm converts assets into sales. Combined with net margin, this is the core of the DuPont decomposition: ROA = net margin × asset turnover. Two businesses can land at the same ROA via opposite paths: thin-margin / high-turnover (Costco, supermarkets) vs. fat-margin / low-turnover (luxury, software).
Asset Turnover = revenue_ttm / average_total_assets
Asset-light — software, services, branded consumer. Frees up cash flow for buybacks, dividends, and acquisitions but check that the low capex isn't masking under-investment.
| Raw value | 2.51% |
|---|---|
| Score (0-100) | 25.00 |
| Weight | 1.000× |
| Direction | lower |
| Industry Bucket | Aerospace/Defense |
| Industry Median | 0.8200 |
| Industry N | 79.0000 |
| Industry Rank | 25.0000 |
| Industry Source | damodaran-capex-2026-01 |
| Industry Asof | 2026-01 |
Lower is generally better for shareholder cash returns — less of every dollar of revenue gets reinvested in maintaining the asset base. But very low values can flag under-investment in a capital-intensive business, which catches up later via deteriorating capacity or competitiveness. 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 quality is good — real cash arriving in step with reported income, sometimes more (when D&A overstates true economic depreciation).
| Raw value | 0.83 |
|---|---|
| Score (0-100) | 66.91 |
| Weight | 1.000× |
| Direction | target |
Sanity-check on earnings quality — a ratio of 1.0 means every dollar of GAAP earnings shows up as free cash flow. Persistently below 1.0 means working-capital build or capex is consuming earnings; persistently above 1.0 is unusual and may flag accounting conservatism (heavy non-cash charges) or a one-time release. Trend matters more than absolute level.
Cash Conversion = free_cash_flow_ttm / net_income_ttm
Strong cash earnings before D&A — high operating leverage, often paired with structural pricing power.
| Raw value | 26.3% |
|---|---|
| Score (0-100) | 77.73 |
| Weight | 1.000× |
| Direction | higher |
| Industry Bucket | Aerospace & Defense |
| Industry Median | 14.5513 |
| Industry N | 12.0000 |
| Industry Rank | 77.7305 |
| Industry Source | universe-computed-2026-05 |
| Industry Asof | 2026-05 |
Easier to compare than operating margin across firms with very different leverage and depreciation profiles, because it adds D&A back. Software platforms commonly run above 30%; capital-light service businesses cluster around 20%; capital-intensive industrials sit below 15%. The weakness: ignores the cash needed to maintain the asset base — pair with FCF margin for a complete profitability picture.
EBITDA Margin = ebitda / revenue * 100
Cash flowing through to owners — the hallmark of high-quality compounders. Capital-light franchises and software platforms cluster above 25%.
| Raw value | 15.8% |
|---|---|
| Score (0-100) | 76.72 |
| Weight | 1.000× |
| Direction | higher |
| Industry Bucket | Aerospace & Defense |
| Industry Median | 8.1442 |
| Industry N | 12.0000 |
| Industry Rank | 76.7222 |
| Industry Source | universe-computed-2026-05 |
| Industry Asof | 2026-05 |
End-to-end conversion ratio: of every dollar of revenue, how much falls through to genuine free cash flow available to all capital providers? More honest than net margin because it accounts for the capex needed to maintain (and grow) the business. The single best indicator of whether the business is a quality compounder or a GAAP-earnings illusion.
FCF Margin = (free_cash_flow_ttm / revenue_ttm) * 100
Most of the expected return must come from growth or multiple expansion, not current cash. Check whether forward FCF expectations justify the gap.
| Raw value | 2.34% |
|---|---|
| Score (0-100) | 19.14 |
| Weight | 1.000× |
| Direction | higher |
| Industry Bucket | Aerospace & Defense |
| Industry Median | 3.6827 |
| Industry N | 12.0000 |
| Industry Rank | 34.0597 |
| Industry Source | universe-computed-2026-05 |
| Industry Asof | 2026-05 |
Free cash flow the business throws off, divided by what the market currently charges for the equity. Treats the equity claim as a perpetual stream of free cash. More honest than earnings yield because it reflects the cash actually available to shareholders after all reinvestment. Cyclicals can swing below zero in a downturn — read with the trailing-cycle range.
FCF Yield = (free_cash_flow_ttm / market_cap) * 100
Operating capital is producing limited EBIT relative to its size. Either a capital-intensive business at the bottom of its margin cycle or a structurally low-return industry where reinvestment doesn't compound.
| Raw value | 23.4% |
|---|---|
| Score (0-100) | 29.81 |
| Weight | 1.000× |
| Direction | higher |
| Industry Bucket | Aerospace & Defense |
| Industry Median | 40.0148 |
| Industry N | 12.0000 |
| Industry Rank | 29.8062 |
| Industry Source | universe-computed-2026-05 |
| Industry Asof | 2026-05 |
Joel Greenblatt's reformulation of return-on-capital, designed to filter for businesses that earn high pre-tax returns on the tangible operating capital that actually generates EBIT. Excludes goodwill, acquired intangibles, and financial assets so that two firms with the same operating economics rank similarly regardless of acquisition history. Pairs with Greenblatt's Earnings Yield (EBIT/EV) to produce the famous 'Magic Formula' rank — quality stocks at value prices.
Greenblatt ROC = EBIT / (working_capital + net_fixed_assets) * 100
Heavy COGS load — typical of commodity producers, contract manufacturers, traditional retail. Small input-cost shocks can flip the income statement, so check input-cost hedging and pricing-pass-through ability.
| Raw value | 15.3% |
|---|---|
| Score (0-100) | 25.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 or rising gross margin signals pricing power and low input-cost exposure; falling gross margin is one of the earliest reliable signals of competitive pressure or commodity-input squeeze. Industry context is everything: 30% gross margin is excellent for a grocery chain and disastrous for a software company.
Gross Margin = ((revenue_ttm - cogs_ttm) / revenue_ttm) * 100
Strong all-in profitability after every expense category. Sustainable when the operating margin engine is structural, not when net margin is temporarily inflated by tax holidays or one-time gains.
| Raw value | 19.0% |
|---|---|
| Score (0-100) | 75.00 |
| 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 noisier than operating margin: tax rate changes, debt-service shifts, and one-time items can move net margin year-over-year even when the operating business is unchanged. Always pair with operating margin and FCF margin — divergence between them is a tell about leverage, tax structure, or earnings quality.
Net Margin = (net_income_ttm / revenue_ttm) * 100
Operating cash flow validates net income — accrual quality is high, GAAP earnings are backed by real cash collection.
| Raw value | 0.98 |
|---|---|
| Score (0-100) | 96.16 |
| Weight | 1.000× |
| Direction | target |
Pre-capex version of cash conversion: compares operating cash flow directly to net income, before subtracting capex. Numbers persistently below 1.0 suggest accruals are doing the work (revenue recognised before cash collected, or expenses deferred). Numbers above 1.0 are typically driven by D&A exceeding true economic depreciation — a mild positive sign but not always meaningful.
OCF/NI = operating_cash_flow_ttm / net_income_ttm
Pricing power and operating leverage. Software platforms and asset-light franchises commonly run above 30%; durable margin at this level is the hallmark of a moat.
| Raw value | 49.9% |
|---|---|
| Score (0-100) | 75.00 |
| 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 — the core test of whether a business converts sales into income at the operating level. Independent of capital structure (excludes interest) and tax-jurisdiction noise. Trend matters as much as level: an improving operating margin indicates pricing power or operational efficiency gains; a falling margin signals input-cost pressure, wage inflation, or competitive erosion.
Operating Margin = (operating_income_ttm / revenue_ttm) * 100
ROA in the broad-market range. Compare within sector — same ROA can be excellent for an industrial and weak for a software company.
| Raw value | 6.9% |
|---|---|
| Score (0-100) | 58.28 |
| Weight | 1.000× |
| Direction | higher |
| Industry Bucket | Aerospace & Defense |
| Industry Median | 6.0700 |
| Industry N | 12.0000 |
| Industry Rank | 58.2846 |
| Industry Source | universe-computed-2026-05 |
| Industry Asof | 2026-05 |
Capital-efficiency measure that ignores how the assets are financed. Useful for comparing within a sector but heavily biased by industry — banks and utilities run low ROA by design (huge balance sheets), software and franchise businesses run high ROA (asset-light). The DuPont decomposition links it to ROE: ROE = ROA × (assets / equity) × (1/(1-tax)), so leverage inflates the gap between ROA and ROE.
ROA = (net_income_ttm / average_total_assets) * 100
ROCE in the workable range for the sector. Compare to Damodaran's industry composites to gauge relative efficiency.
| Raw value | 11.9% |
|---|---|
| Score (0-100) | 54.06 |
| Weight | 1.000× |
| Direction | higher |
| Industry Bucket | Aerospace & Defense |
| Industry Median | 10.6508 |
| Industry N | 12.0000 |
| Industry Rank | 54.0596 |
| Industry Source | universe-computed-2026-05 |
| Industry Asof | 2026-05 |
Pre-tax cousin of ROIC using operating capital employed (long-term debt plus equity, approximately equal to total assets minus current liabilities). Damodaran publishes ROCE by industry annually, so it benchmarks cleanly against sector norms. Particularly useful for capital-intensive businesses where you want to see pre-tax returns on the long-term capital base.
ROCE = ebit / (total_assets - current_liabilities) * 100
Capital is being put to work effectively. Sustainable when supported by real economic moats, structural pricing power, or a high-margin asset-light business model — not just leverage.
| Raw value | 45.8% |
|---|---|
| Score (0-100) | 75.00 |
| Weight | 1.000× |
| Direction | higher |
| Industry Bucket | Aerospace/Defense |
| Industry Median | 15.2700 |
| Industry N | 79.0000 |
| Industry Rank | 75.0000 |
| Industry Source | damodaran-roe-2026-01 |
| Industry Asof | 2026-01 |
The headline profitability metric. Net income divided by average book equity tells you how productive each dollar of shareholders' capital is. High sustained ROE compounds book value when the business can reinvest at a similar return. Two warnings: ROE rises mechanically with leverage (high D/E inflates ROE without making the business better), and aggressive buybacks can shrink the equity denominator faster than they shrink earnings, artificially boosting ROE even as fundamental returns are flat.
ROE = (net_income_ttm / average_common_equity) * 100
Strong economic engine — the business earns well above its cost of capital. Pair with reinvestment rate to estimate intrinsic compounding (ROIC × reinvestment rate ≈ steady-state growth).
| Raw value | 76.7% |
|---|---|
| Score (0-100) | 75.00 |
| Weight | 1.000× |
| Direction | higher |
| Industry Bucket | Aerospace/Defense |
| Industry Median | 22.6400 |
| Industry N | 79.0000 |
| Industry Rank | 75.0000 |
| Industry Source | damodaran-roc-2026-01 |
| Industry Asof | 2026-01 |
Measures how productive the actual operating capital base is, independent of capital structure. Strips out the effects of cash, leverage, and below-the-line items so you see the underlying economic engine. The benchmark is the firm's weighted-average cost of capital (WACC) — sustained ROIC above WACC creates value, sustained ROIC below WACC destroys it. The single most important profitability metric for long-term compounding.
NOPAT = operating_income_ttm * (1 - effective_tax_rate); invested_capital = shareholders_equity + total_debt - cash; ROIC = NOPAT / avg_invested_capital * 100
Fundamentals · Growth
Strong Growth — most metrics are scoring well above the professional bands' midpoints.
Earnings per share are compounding meaningfully. Decompose into revenue growth, margin expansion, and buyback contribution to understand the source.
| Raw value | 35.9% |
|---|---|
| Score (0-100) | 100.00 |
| Weight | 1.000× |
| Direction | higher |
| Industry Bucket | Aerospace/Defense |
| Industry Median | 0.1956 |
| Industry N | 79.0000 |
| Industry Rank | 75.0000 |
| Industry Source | damodaran-histgr-2026-01 |
| Industry Asof | 2026-01 |
Bottom-line growth on a per-share basis — captures both operating progress and any net buyback effect. The denominator uses the absolute value of prior EPS so a turnaround from negative to positive earnings reads with the conventional sign rather than producing arithmetic nonsense. Pair with revenue growth to separate real franchise expansion from buyback-driven per-share lift.
EPS Growth = (diluted_eps_ttm - diluted_eps_prior_ttm) / abs(diluted_eps_prior_ttm)
Top line is expanding meaningfully. Watch whether margins keep pace — high-margin growth compounds, discount-led growth often doesn't.
| Raw value | 18.5% |
|---|---|
| Score (0-100) | 73.93 |
| Weight | 1.000× |
| Direction | higher |
| Industry Bucket | Aerospace/Defense |
| Industry Median | 0.1110 |
| Industry N | 79.0000 |
| Industry Rank | 75.0000 |
| Industry Source | damodaran-histgr-2026-01 |
| Industry Asof | 2026-01 |
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, and can mask underlying weakness. Compare to industry peers — what looks weak in absolute terms can be best-in-sector if the industry is contracting.
Revenue Growth = (revenue_ttm - revenue_prior_ttm) / revenue_prior_ttm

Fundamentals · Balance Sheet
Mixed Balance Sheet — roughly balanced strengths and weaknesses.
Cash ratio in the workable range. Sufficient to absorb most short-term shocks without forcing the company to lean on receivables collection.
| Raw value | 0.32 |
|---|---|
| Score (0-100) | 54.48 |
| Weight | 1.000× |
| Direction | target |
Strips out receivables and inventory entirely, leaving only cash and equivalents over current liabilities. Stress-tests whether the business can meet its near-term obligations even if collections seize up and inventory becomes unsaleable. The harshest, simplest liquidity check — used as a credit-stress indicator.
Cash Ratio = cash_and_equivalents / current_liabilities
Short-term obligations exceed short-term assets. Watch cash-flow timing — businesses with strong, predictable operating cash can run sub-1.0 indefinitely (think large retailers); businesses with lumpy cash flow can't.
| Raw value | 1.04 |
|---|---|
| Score (0-100) | 4.15 |
| Weight | 1.000× |
| Direction | target |
Whether the company can cover near-term obligations from near-term assets. Below 1.0 doesn't necessarily mean insolvent (operating cash flow can cover the gap), but it's worth a closer look. Conversely, very high current ratios can signal trapped working capital that's earning no return.
Current Ratio = current_assets / current_liabilities
Debt funds a heavy share of the asset base — returns are amplified, so are stress responses. Read alongside coverage and maturity profile.
| Raw value | 0.14 |
|---|---|
| Score (0-100) | 79.36 |
| Weight | 1.000× |
| Direction | lower |
| Industry Bucket | Aerospace & Defense |
| Industry Median | 0.2561 |
| Industry N | 12.0000 |
| Industry Rank | 86.3530 |
| Industry Source | universe-computed-2026-05 |
| Industry Asof | 2026-05 |
Useful complement to debt-to-equity. Banks, REITs, and post-buyback firms can carry small or even negative book equity, which makes D/E unstable; D/A stays well-behaved because total assets is always positive. Industry context still matters — utilities run higher than software by design — but the comparability across capital structures is much better.
Debt-to-Assets = total_debt / total_assets
Leverage in the broad-market range for established large-caps.
| Raw value | 1.01 |
|---|---|
| Score (0-100) | 49.65 |
| 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 (through ROE) and risk (through interest coverage and refinancing exposure). The 'right' level varies enormously by industry — utilities and REITs run higher than industrials, software runs near zero. Becomes unstable when book equity is small or negative; complement with debt-to-assets in those cases.
Debt-to-Equity = total_debt / common_equity
Operating earnings barely cover interest — stress here turns into solvency risk fast. Refinancing in a higher-rate environment can break this metric overnight.
| Raw value | 0.9x |
|---|---|
| Score (0-100) | 0.00 |
| Weight | 1.000× |
| Direction | higher |
| Industry Bucket | Aerospace & Defense |
| Industry Median | 8.5105 |
| Industry N | 10.0000 |
| Industry Rank | 12.3498 |
| Industry Source | universe-computed-2026-05 |
| Industry Asof | 2026-05 |
Solvency-under-stress measure. A ratio of 1x means EBIT exactly covers interest with nothing left over for taxes, capex, or principal; 5x is comfortable for an industrial; below 2x is a credit-watch level. Especially important when leverage is rising or profits are cyclical — the ratio should be evaluated at a stress-cycle EBIT, not the current peak.
Interest Coverage = EBIT / interest_expense
Permanent debt is low — balance-sheet flexibility for opportunistic deals, share repurchases, or weathering a downturn.
| Raw value | 1.10 |
|---|---|
| Score (0-100) | 26.94 |
| Weight | 1.000× |
| Direction | lower |
| Industry Bucket | Aerospace & Defense |
| Industry Median | 0.5338 |
| Industry N | 10.0000 |
| Industry Rank | 36.6399 |
| Industry Source | universe-computed-2026-05 |
| Industry Asof | 2026-05 |
Strips out short-term operating debt and revolver use to focus on the permanent capital structure. Useful when comparing companies that fund working capital differently — a high D/E that's mostly short-term commercial paper means something different from a high D/E that's mostly long-dated bonds. Watch refinancing maturities alongside the level.
LT D/E = long_term_debt / common_equity
Net debt looks heavy relative to operating cash earnings — watch covenant headroom and refinancing windows.
| Raw value | 0.53 |
|---|---|
| Score (0-100) | 89.36 |
| Weight | 1.000× |
| Direction | lower |
| Industry Bucket | Aerospace & Defense |
| Industry Median | 1.6935 |
| Industry N | 12.0000 |
| Industry Rank | 79.4237 |
| Industry Source | universe-computed-2026-05 |
| Industry Asof | 2026-05 |
Bond covenants are commonly written against this ratio because it directly answers 'how many years of operating cash earnings would it take to retire all the debt?' Above ~5x is high-yield territory for industrials; 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 — a common position for mature tech.
Net Debt / EBITDA = (total_debt - cash_and_equivalents) / ebitda_ttm
Quick assets fall short of current liabilities — watch cash-flow timing. Businesses with strong, predictable operating cash can run sub-1.0 indefinitely; businesses with lumpy cash can't.
| Raw value | 0.74 |
|---|---|
| Score (0-100) | 33.86 |
| Weight | 1.000× |
| Direction | target |
The acid-test variant of current ratio strips inventory from the numerator, since inventory can be stale, obsolete, or written down before it converts to cash. A purer view of near-term liquidity than current ratio. Sweet spot around 1.2x; below 0.5x signals real liquidity stress, above 3x suggests trapped working capital that could be returned to shareholders or reinvested.
Quick Ratio = (current_assets - inventory) / current_liabilities
Fundamentals · Efficiency
Weak Efficiency — most metrics in this section are scoring below the professional bands' midpoints.
Suppliers fund the business — exceptional working-capital position. Negative CCC is the gold standard for operational scale advantage.
| Raw value | 94d |
|---|---|
| Score (0-100) | 0.00 |
| Weight | 1.000× |
| Direction | lower |
| Industry Bucket | Aerospace & Defense |
| Industry Median | 50.5473 |
| Industry N | 11.0000 |
| Industry Rank | 41.4281 |
| Industry Source | universe-computed-2026-05 |
| Industry Asof | 2026-05 |
The single best operations-quality metric. Negative CCC means the firm is funded by suppliers — the customer pays before the supplier needs to be paid (Apple, Costco, Amazon at scale). Long CCC ties up working capital and forces operating-loan dependence. Combines three sub-metrics: days inventory outstanding, days sales outstanding, days payable outstanding.
CCC = DIO + DSO - DPO
Cash collection is fast — high-quality receivables, typical of consumer-facing businesses where most sales are cash or card.
| Raw value | 84d |
|---|---|
| Score (0-100) | 8.60 |
| Weight | 1.000× |
| Direction | lower |
| Industry Bucket | Aerospace & Defense |
| Industry Median | 19.5427 |
| Industry N | 12.0000 |
| Industry Rank | 8.8799 |
| Industry Source | universe-computed-2026-05 |
| Industry Asof | 2026-05 |
How long the average sale sits as a receivable before becoming cash. Earnings-quality flag: receivables growing faster than revenue is one of the cleanest tells for revenue recognition stretching — Beneish flagged exactly this pattern as a primary fraud indicator. Industry context matters: B2B / project businesses run longer DSO than retail, but the trend is more important than the level.
DSO = 365 * average_accounts_receivable / revenue
Inventory turnover in the broad-market range for the sector.
| Raw value | 5.9x |
|---|---|
| Score (0-100) | 39.48 |
| Weight | 1.000× |
| Direction | higher |
| Industry Bucket | Aerospace & Defense |
| Industry Median | 2.7773 |
| Industry N | 11.0000 |
| Industry Rank | 60.4320 |
| Industry Source | universe-computed-2026-05 |
| Industry Asof | 2026-05 |
DuPont productivity measure. Combined with margin, it tells the asset-light vs. asset-heavy story: low turnover with high margin is the luxury / branded model, high turnover with thin margin is the supermarket / discount model. Very high turnover in retail can also flag stockouts (lost sales) — the metric reads best industry-relative, not absolute.
Inventory Turnover = cogs / average_inventory

Fundamentals · Income
Weak Income — most metrics in this section are scoring below the professional bands' midpoints.
Most of the expected return must come from price appreciation rather than income. Common for growth stocks that prefer reinvestment or buybacks over dividends.
| Raw value | 0.63% |
|---|---|
| Score (0-100) | 15.82 |
| Weight | 1.000× |
| Direction | stepped |
Direct cash income from holding the share. Stable dividend yield over time often signals capital discipline and predictable cash generation; abnormally high yield is frequently a warning that the dividend isn't covered by free cash flow and may be cut. Always read alongside payout ratio and FCF coverage.
Dividend Yield = (dividends_per_share_ttm / price) * 100
You're earning a small income yield on the cap — the rest of the expected return has to come from growth or multiple expansion. Risk: if growth disappoints, the multiple has nothing else to lean on.
| Raw value | 2.74% |
|---|---|
| Score (0-100) | 0.00 |
| Weight | 1.000× |
| Direction | higher |
| Industry Bucket | Aerospace & Defense |
| Industry Median | 2.8317 |
| Industry N | 12.0000 |
| Industry Rank | 47.9798 |
| Industry Source | universe-computed-2026-05 |
| Industry Asof | 2026-05 |
Net income divided by market cap, expressed as a percent. 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 that earnings can grow (or contract) while a bond coupon is fixed. The standard 'is the equity risk-premium adequate?' framing.
Earnings Yield = (net_income_ttm / market_cap) * 100
Payout in the sustainable range — dividend has room to grow with earnings while leaving capital for reinvestment.
| Raw value | 0.23 |
|---|---|
| Score (0-100) | 56.34 |
| Weight | 1.000× |
| Direction | target |
Sustainability check on the dividend yield. Below 30% means the dividend has substantial room to grow; 30–60% is the conventional sweet spot for a mature payer; above 85% is stretched and frequently precedes a cut. REITs and utilities run higher than the broad market by design — REIT payouts above 80% are normal because the structure requires distributing most income.
Payout Ratio = dividends_paid_ttm / net_income_ttm
Little cash going back to shareholders — return depends on growth or multiple expansion. Check whether the cash is reinvesting at high returns (a positive) or sitting idle on the balance sheet.

Fundamentals · Composite
Above-average Composite — more positives than negatives in this section.
Far from distress on Altman's classic formulation — strong combination of liquidity, profitability, and equity cushion against liabilities.
| Raw value | 3.26 |
|---|---|
| Score (0-100) | 75.96 |
| Weight | 1.000× |
| Direction | stepped |
Edward Altman's 1968 five-factor distress signal, originally calibrated against US public manufacturers that went bankrupt vs. those that didn't. 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 within two years. Less reliable for non-manufacturing businesses, financial firms, and asset-light franchises — but the conceptual frame (liquidity + profitability + leverage cushion) translates broadly.
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 grey zone — one or two of Beneish's indices are unusual but the combined signal is inconclusive.
| Raw value | -1.89 |
|---|---|
| Score (0-100) | 37.57 |
| Weight | 1.000× |
| Direction | stepped |
Beneish (1999) calibrated eight financial-statement indices against a sample of known earnings manipulators vs. matched controls. M < -2.22 reads as 'unlikely manipulator'; M ≥ -1.78 reads as 'likely manipulator'; the gap between is grey. Companion to Altman Z but for fraud risk rather than bankruptcy. Famously flagged Enron prior to the public disclosure of accounting fraud.
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
F-score in the middle band — some fundamentals improving, others not. Worth dissecting which of the nine criteria failed.
| Raw value | 5/9 |
|---|---|
| Score (0-100) | 52.50 |
| Weight | 1.000× |
| Direction | stepped |
Joseph Piotroski's 2000 score for distinguishing winners from losers among low-P/B value stocks. Asks nine yes/no questions across profitability (4 questions), leverage and liquidity (3 questions), and operating efficiency (2 questions); each 'yes' adds one point. The original study found that high-F-score value stocks meaningfully outperformed low-F-score value stocks, suggesting it's a useful filter for separating real value from value traps.
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. Original Sloan research found this band associates with future earnings disappointments.
| Raw value | 0.010 |
|---|---|
| Score (0-100) | 95.94 |
| Weight | 1.000× |
| Direction | target |
Richard Sloan's 1996 accruals-quality measure. Persistent positive accruals (net income meaningfully exceeds cash flow) tend to mean-revert via earnings disappointments — Sloan documented that high-accruals firms underperform low-accruals firms over the following year. 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 on 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 inside a long-term up regime. Short-window mean-reversion setup.
| Score (0-100) | 70.38 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 32 |
| Last trigger date | 2026-03-24 |
| Triggers in last 60 bars | 9 |
| Bars evaluated | 501 |
| Threshold upper | 90.000 |
| Threshold lower | 10.000 |
| Threshold mid | 50.000 |
| Indicator scale | 0.00 – 100.00 |
| Last bar value | 42.7398 |
Designed to buy oversold pullbacks within an established uptrend (price above the 200-day SMA). Uses a 2-period RSI rather than the standard 14 to make it hyper-responsive to short-term swings. Holds while RSI(2) is below an exit threshold and exits when RSI(2) crosses above 60 — a classic 1–4 day mean-reversion trade. Whipsaws hard outside an uptrend regime, hence the regime filter.
+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=70, regime_ma=200
MACD histogram printing higher lows beneath lower lows in price — momentum is quietly strengthening before price turns. Reversal-up confirmation tell.
| Score (0-100) | 59.39 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 28 |
| Last trigger date | 2026-03-30 |
| Triggers in last 60 bars | 1 |
| Bars evaluated | 501 |
| Last bar value | 1.8696 |
Compares price pivots against the MACD histogram (MACD line minus signal line) at those same bars. Bullish divergence: price makes a lower low, histogram makes a higher low — momentum is improving beneath the surface. Bearish divergence: price makes a higher high, histogram makes a lower high. Slower than the MACD signal cross but a richer confirmatory tell — the histogram captures momentum acceleration, not just direction.
+1 at the 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 up through its signal line — short-term momentum trigger long. Strongest when in an uptrend regime.
| Score (0-100) | 84.74 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 2 |
| Last trigger date | 2026-05-06 |
| Triggers in last 60 bars | 4 |
| Bars evaluated | 501 |
| Last bar value | -1.3545 |
| Last bar signal | -3.2240 |
Fires on the bar where the MACD line (EMA12 minus 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. Whipsaws in chop; cleanest when combined with a trend-regime filter.
+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. The signal isn't telling you anything; rely on other tools.
| Score (0-100) | 50.18 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 102 |
| Last trigger date | 2025-12-10 |
| 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 | 51.3389 |
When price prints a lower low while RSI prints a higher low at those same pivot bars, momentum is improving even though price is still falling — a classic bullish divergence that often precedes a reversal up. The bearish mirror fires when price makes a higher high but RSI prints a lower high, telegraphing exhausted upside. Divergences are confirmation tells rather than precise timing signals — best used as a 'something is changing under the surface' alert, not a trade trigger on their own.
+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 down through %D from overbought — short-term sell trigger after a stretched-up move.
| Score (0-100) | 28.92 |
|---|---|
| Weight | 1.000× |
| Last trigger value | -1.000 |
| Bars since trigger | 16 |
| Last trigger date | 2026-04-16 |
| Triggers in last 60 bars | 4 |
| Bars evaluated | 501 |
| Threshold upper | 80.000 |
| Threshold lower | 20.000 |
| Threshold mid | 50.000 |
| Indicator scale | 0.00 – 100.00 |
| Last bar value | 77.5572 |
| Last bar d | 64.5212 |
Bullish when %K crosses above %D while both lines are below the oversold threshold (typically 20); bearish when %K crosses below %D while both are above overbought (typically 80). Filters out mid-range stochastic crosses, which whipsaw in chop. Best used at well-defined ranges and at trend extremes.
+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
Above-average Trend — more positives than negatives in this section.
Price hugging its 52-week high — strength regime, breakout candidates. Stocks at new highs tend to keep making new highs.
| Score (0-100) | 69.02 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 46 |
| Last trigger date | 2026-03-04 |
| Triggers in last 60 bars | 11 |
| Bars evaluated | 501 |
| Last bar value | 297.1500 |
| Last bar upper | 345.2371 |
| Last bar lower | 213.3607 |
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 watched screening filters — momentum and breakout strategies start from here, and the broad market's new-high / new-low spread is a foundational breadth indicator.
+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.01
ADX below threshold — trend is weak, prefer mean-reversion to trend strategies right now.
| Score (0-100) | 64.60 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 41 |
| Last trigger date | 2026-03-11 |
| Triggers in last 60 bars | 6 |
| Bars evaluated | 501 |
| Threshold lower | 20.000 |
| Threshold mid | 25.000 |
| Indicator scale | 0.00 – 60.00 |
| Last bar value | 23.3993 |
ADX (Average Directional Index) measures trend strength regardless of direction — high ADX means a strong trend (in either direction), low ADX means chop. Below ~20 historically associates with sideways/choppy markets unfavourable to trend strategies and favourable to mean-reversion strategies. Used as a regime gate to disable trend-following systems when the tape isn't trending.
+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 long breakout state — close above the N-day highest high. Trend-follow entry; cut on a close back below the breakout level.
| Score (0-100) | 100.00 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 0 |
| Last trigger date | 2026-05-08 |
| Triggers in last 60 bars | 60 |
| Bars evaluated | 501 |
| Last bar value | 297.1500 |
| Last bar upper | 319.1400 |
| Last bar lower | 268.9100 |
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 regardless of subsequent action. Cornerstone of trend-following strategies — runs hot in directional regimes, gets chopped up in range-bound markets.
+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
Ichimoku components disagree — no clean setup either direction. Wait for alignment.
| Score (0-100) | 50.30 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 92 |
| Last trigger date | 2025-12-24 |
| Triggers in last 60 bars | 0 |
| Bars evaluated | 501 |
| Last bar value | 297.1500 |
| Last bar tenkan | 294.7050 |
| Last bar kijun | 294.0250 |
| Last bar cloud_a | 297.3458 |
| Last bar cloud_b | 309.3816 |
Composite trend system: bullish when price is above the cloud (Kumo), the tenkan crosses above the kijun, and the cloud projected ahead is green (Senkou A above Senkou B). Bearish on the symmetric short-side configuration. The full bull/bear signal requires all three components to align, making it slower but cleaner than any single-line indicator.
+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 above slow MA — bullish bias state held. Use as a directional gate for other long-side signals.
| Score (0-100) | 84.74 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 2 |
| Last trigger date | 2026-05-06 |
| Triggers in last 60 bars | 4 |
| Bars evaluated | 501 |
| Last bar value | 297.1500 |
| Last bar fast | 296.1954 |
| Last bar slow | 293.5856 |
Holds +1 while the fast moving average is above the slow one (bullish bias) and -1 when below (bearish bias). The simplest possible directional bias gate. Whipsaws hard in chop because both averages bounce around the same level; works best when combined with a regime filter or used as an entry gate rather than a primary signal.
+1 while fast > slow, -1 while fast < slow.
+1 = bullish state (fast above slow), -1 = bearish state.
fast=12, slow=26, ma_type=ema
SAR flipped from above to below price — switch to long bias. Trail-stop long entries here.
| Score (0-100) | 84.74 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 2 |
| Last trigger date | 2026-05-06 |
| Triggers in last 60 bars | 4 |
| Bars evaluated | 501 |
| Last bar value | 297.1500 |
| Last bar sar | 271.3112 |
The Parabolic SAR (Stop and Reverse) plots a dot above or below price; when price crosses the SAR, the trend side flips and the dot jumps to the opposite side. The flip event itself is the trade trigger. Works well in clean trends, gets whipsawed in chop.
+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. Use as a permission filter for other signals.
| Score (0-100) | 98.52 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 1 |
| Last trigger date | 2026-05-07 |
| Triggers in last 60 bars | 38 |
| Bars evaluated | 501 |
| Last bar value | 297.1500 |
| Last bar regime | 298.4408 |
Simplest possible regime filter: long-only when price is above its long-term MA (typically 200-day), flat or short-only when below. Often used as a gate on other signals — e.g., 'only take long pullback trades when the regime is bullish'. The 200-day SMA is the most-watched line on Wall Street and behaves as a self-fulfilling regime divider.
+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 — sector or stock-specific headwind in play.
| Score (0-100) | 0.03 |
|---|---|
| Weight | 1.000× |
| Last trigger value | -1.000 |
| Bars since trigger | 0 |
| Last trigger date | 2026-05-08 |
| Triggers in last 60 bars | 36 |
| Bars evaluated | 501 |
| Last bar value | -0.1443 |
Computes the period-bar log-return spread (ticker minus SPY) and 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 — the metric is calibrated against the ticker's own history, not a fixed cutoff.
+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.8, low_pct=0.2
Technicals · Price Action
Above-average Price Action — more positives than negatives in this section.
Indecision candle after a downtrend — sellers and buyers reached parity inside the bar. Watch for follow-through up the next session as confirmation.
| Score (0-100) | 59.03 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 29 |
| Last trigger date | 2026-03-27 |
| Triggers in last 60 bars | 1 |
| Bars evaluated | 501 |
| Last bar value | 297.1500 |
Open and close are nearly equal (tiny body, under ~5% of the bar's range) with comparable upper and lower wicks. By itself, a doji marks indecision: buyers and sellers fought to a standstill within the bar. Meaningful when it appears at trend extremes (potential reversal) or after extended runs (potential exhaustion); meaningless in the middle of a chop range.
+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.1, wick_balance=0.3
Active short setup on the bearish mirror — fade the 7-day high in a downtrend.
| Score (0-100) | 6.66 |
|---|---|
| Weight | 1.000× |
| Last trigger value | -1.000 |
| Bars since trigger | 5 |
| Last trigger date | 2026-05-01 |
| Triggers in last 60 bars | 37 |
| Bars evaluated | 501 |
| Last bar value | 297.1500 |
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. A simple, robust short-term mean-reversion system — works because pullbacks within an uptrend tend to be shallow and quickly retraced. Symmetrically, the bearish variant short-sells 7-day highs in downtrends.
+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 — buyers took control inside one session. Reversal-up tell.
| Score (0-100) | 61.03 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 24 |
| Last trigger date | 2026-04-06 |
| Triggers in last 60 bars | 1 |
| Bars evaluated | 501 |
| Last bar value | 297.1500 |
Bullish engulfing: a down candle followed by an up candle whose body fully covers the prior body. Bearish engulfing: an up candle followed by a larger down candle covering the prior body. Strongest when it appears after an established trend — the reversal candle erases the prior bar entirely, signalling a clear shift in short-term control.
+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. Watch for confirmation through the level.
| Score (0-100) | 100.00 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 331.054 |
| Bars since trigger | 0 |
| Last trigger date | 2026-05-08 |
| Triggers in last 60 bars | 60 |
| Bars evaluated | 501 |
| Last bar value | 297.1500 |
Identifies the most recent significant swing high and low, projects the standard Fibonacci levels (23.6%, 38.2%, 50%, 61.8%, 78.6%), and tags bars where price interacts with one of those levels. Fib levels are self-fulfilling support/resistance — heavily watched by chart-driven traders, so they tend to act as decision points whether the underlying ratios mean anything or not.
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]
Inverse H&S confirmed — three-trough bottoming pattern that broke its neckline up. Conventional measured-move target is the head-to-neckline distance projected above the neckline.
| Score (0-100) | 61.98 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 22 |
| Last trigger date | 2026-04-08 |
| Triggers in last 60 bars | 1 |
| Bars evaluated | 501 |
| Last bar value | 297.1500 |
Bearish head-and-shoulders: a left shoulder, a higher center peak (head), and a right shoulder of comparable height to the left, broken by a decisive close below the neckline (the line connecting the two intervening troughs). The inverse pattern — three troughs with a deeper middle and an upward neckline break — is bullish. Among the most-watched and most-cited topping/bottoming patterns in classical chart analysis.
+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.01, head_prom=0.03
Price tagged a key MA and rolled — moving average held as resistance. Continue-the-downtrend entry.
| Score (0-100) | 0.12 |
|---|---|
| Weight | 1.000× |
| Last trigger value | -1.000 |
| Bars since trigger | 0 |
| Last trigger date | 2026-05-08 |
| Triggers in last 60 bars | 29 |
| Bars evaluated | 501 |
| Last bar value | 297.1500 |
When price comes within an ATR-relative band of a key moving average (typically 50- or 200-period) and reverses without closing through it, the MA is acting as support (in an uptrend) or resistance (in a downtrend). The cleanest trend-continuation entry — buy the pullback to a rising MA, sell the rally to a falling MA. The proximity band is sized as 0.5 × Wilder ATR(14), so a high-volatility name and a quiet utility get proportionally-scaled bands instead of a fixed percentage that fires constantly on one and almost never on the other. Failure of the rejection (a clean close through) is itself meaningful and often signals a regime change.
+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], atr_mult=0.5, atr_period=14
Price retested a prior low and held — multi-bottom support confirmed. The defended level is a base from which to attempt a turn.
| Score (0-100) | 82.61 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 5 |
| Last trigger date | 2026-05-01 |
| Triggers in last 60 bars | 5 |
| Bars evaluated | 501 |
| Last bar value | 297.1500 |
Finds two or more pivot highs (tops) or lows (bottoms) within a price tolerance and minimum bar separation. Confirmed multi-bottom is bullish — the price level repeatedly defended is acting as support, suggesting a base. Multi-top is bearish — the level repeatedly rejected is acting as resistance, suggesting distribution. Pattern strength rises with the number of touches and the time between them.
+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.01, min_sep=20
Long lower wick rejected the prior downswing — buyers stepped in at the low. Reversal-up candle, strongest at structural support.
| Score (0-100) | 55.49 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 43 |
| Last trigger date | 2026-03-09 |
| Triggers in last 60 bars | 1 |
| Bars evaluated | 501 |
| Last bar value | 297.1500 |
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, body near the top — price probed lower and was rejected, buyers absorbed the supply. Bearish pin: long upper wick after an uptrend, body near the bottom. Most reliable at structural levels (prior support/resistance, key MAs).
+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.33, wick_min=0.67, prior_trend=5
No completed star pattern recently — the three-candle structure isn't formed.
| Score (0-100) | 50.15 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 106 |
| Last trigger date | 2025-12-04 |
| Triggers in last 60 bars | 0 |
| Bars evaluated | 501 |
| Last bar value | 297.1500 |
Morning star (bullish): a big down candle, a small-body middle candle showing indecision, and a big up candle that closes well into the first body. Evening star is the bearish mirror at a top: big up, indecision, big down. The three-candle structure is more reliable than a single doji because it provides built-in follow-through confirmation.
+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 — buyers absorbed the prior decline and pushed past the prior window's range. Reversal-up pattern.
| Score (0-100) | 82.41 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 9 |
| Last trigger date | 2026-04-27 |
| Triggers in last 60 bars | 8 |
| Bars evaluated | 501 |
| Last bar value | 297.1500 |
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: an outside-range bar that closes against the prior direction is a structural shift in supply and demand, not noise.
+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 above a downward trendline — resistance line gave way. Regime-change candidate; combine with volume to gauge conviction.
| Score (0-100) | 90.43 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 2 |
| Last trigger date | 2026-05-06 |
| Triggers in last 60 bars | 8 |
| Bars evaluated | 501 |
| Last bar value | 297.1500 |
Fits a trendline through pivot points and flags decisive closes through the line. Distinguishes a clean break (close violates the line) from a wick-test (intra-bar tag that closes back inside the trend). Trendline breaks are early-warning regime-change signals — the prior trend's structure has been violated, and the next leg may move in the opposite direction.
+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=3
Falling wedge resolved up — compression broke in favor of buyers. Continuation entry on the breakout retest.
| Score (0-100) | 93.69 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 4 |
| Last trigger date | 2026-05-04 |
| Triggers in last 60 bars | 19 |
| Bars evaluated | 501 |
| Last bar value | 297.1500 |
A wedge is a price compression where two trendlines converge. Rising wedge (both lines sloping up but the upper less steep than the lower) typically resolves down — price runs out of room as buyers exhaust. Falling wedge (both lines sloping down with the lower less steep) typically resolves up. Compressions resolve eventually; the direction is what the wedge predicts.
+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=3
Technicals · Volume
Above-average Volume — more positives than negatives in this section.
Decline running on falling volume — sellers losing conviction. The down move is being maintained by inertia, not fresh selling. Reversal candidate.
| Score (0-100) | 84.50 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 14 |
| Last trigger date | 2026-04-20 |
| Triggers in last 60 bars | 23 |
| Bars evaluated | 501 |
| Last bar value | 3950800.0000 |
| Last bar sma | 7082840.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: if price keeps moving but volume is shrinking, fewer participants are committed to the move. Often precedes a stall or reversal because the move is running on inertia rather than fresh capital.
+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, no surprise.
| Score (0-100) | 50.91 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 70 |
| Last trigger date | 2026-01-28 |
| Triggers in last 60 bars | 0 |
| Bars evaluated | 501 |
| Last bar value | 289273300.0000 |
OBV cumulates signed volume — adds volume on up days and subtracts it on down days. Rising OBV reflects accumulation, falling OBV distribution. Same pivot-pair divergence rule as RSI/MACD: when price makes a new low but OBV doesn't, big-money has stopped selling at the lows. When price makes a new high but OBV lags, the rally lacks volume confirmation — distribution may be quietly underway.
+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 | 217 |
| Last trigger date | 2025-06-27 |
| Triggers in last 60 bars | 0 |
| Bars evaluated | 501 |
| Last bar value | 3950800.0000 |
| Last bar sma | 7082840.0000 |
| Last bar threshold | 17707100.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: an exhaustion bar where heavy participation produced very little net price change, often marking short-term turning points after a directional run. Bullish climax (capitulation) prints near the low of the bar; bearish climax (distribution) prints near the high.
+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, body_range_max=0.5
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 as ranges over-extend.
| Score (0-100) | 100.00 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 0 |
| Last trigger date | 2026-05-08 |
| Triggers in last 60 bars | 50 |
| Bars evaluated | 501 |
| Last bar value | 3.6323 |
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 strategies have an edge); low-percentile flags compression regimes (breakout strategies tend to lead, because compressed ranges resolve sooner). Used to dynamically allocate between strategy types as the volatility environment shifts.
+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.8, low_pct=0.2
Active long mean-reversion held — price tagged the lower band, exits at the midline. Hold until close back at the centre.
| Score (0-100) | 79.35 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 23 |
| Last trigger date | 2026-04-07 |
| Triggers in last 60 bars | 28 |
| Bars evaluated | 501 |
| Last bar value | 297.1500 |
| Last bar upper | 318.1892 |
| Last bar middle | 294.3195 |
| Last bar lower | 270.4498 |
Enters +1 when close ≤ lower band, holds until close ≥ middle band. Symmetric short-side state. Captures reversion-to-mean trades inside Bollinger bands — the trade is the move from the band back to the centre, not the breakout. Best in trending-but-noisy regimes where pullbacks cleanly retrace to the midline.
+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. Stretched-down move snapping back.
| Score (0-100) | 58.43 |
|---|---|
| Weight | 1.000× |
| Last trigger value | 1.000 |
| Bars since trigger | 38 |
| Last trigger date | 2026-03-16 |
| Triggers in last 60 bars | 2 |
| Bars evaluated | 501 |
| Last bar value | 297.1500 |
| Last bar upper | 318.1892 |
| Last bar middle | 294.3195 |
| Last bar lower | 270.4498 |
Fires on the bar where the close returns inside the bands after the prior close was outside. Long reentry from below the lower band is a mean-reversion long trigger; short reentry from above the upper band is a mean-reversion short trigger. The reentry — not the initial breakout — is the actual signal, because it confirms the move is reversing back toward the mean.
+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
Most-recent reported values. Bar shows where each value lands on the 0–100 absolute-band score, with ticks at the 40 / 55 / 70 verdict cutoffs.
Profitability
Valuation
Health
Growth & Yield
Quality