Loading institutional data...
Loading institutional data...
Insufficient data to determine institutional momentum.
Data as of Q3 2026
Loading snapshot...
Loading financials...
Loading valuation...
Loading analysis...
Loading dividends & returns...
Loading capital allocation...
Loading debt & leverage...
Loading performance...
Loading peer comparison...
Loading insider activity...
Loading ownership map...
Loading crowding analysis...
Loading conviction analysis...
Loading buy/sell flow...
Loading ownership trends...
Loading top holders...
Loading top holders...
What the company returns to shareholders — and whether it's covered by cash.
No dividend to cover. Last year: $0 dividends + $30.0M buybacks = $30.0M returned on $170.1M FCF.
Yields use the latest fiscal-year dividends/buybacks over current market cap. Dividends and buybacks from the SEC cash-flow statement; payout coverage vs net income and free cash flow. Educational — not a recommendation.
How management deployed cash over 10 years — and what it earned on reinvestment.
A reinvestment story — most cash went back into growth rather than to shareholders.
Reinvestment has been productive — operating income grew well per dollar put in. Current ROIC on all capital: 4%. Rough measure (includes maintenance capex).
Cash uses aggregated from the SEC cash-flow statement over 10 fiscal years. "Return on reinvestment" is a rough proxy — operating-income change ÷ cumulative CapEx + M&A — and includes maintenance capex. Educational — not a recommendation.
How much the company owes, how it's trended, and how comfortably it's serviced.
Green ≤ 1.5× · amber ≤ 3× · red > 3× (leverage relative to cash earnings).
Interest expense isn't separately reported — often netted into “other income (expense), net.”
Cash vs short-term debt unavailable.
Mostly long-term debt (balance-sheet current vs non-current split). A year-by-year maturity schedule wasn't disclosed for this issuer.
Debt, cash, interest and equity from the SEC balance sheet & income statement. Effective rate = interest ÷ average debt. Educational — not a recommendation.
Solve the discounted cash flow backwards, then stress-test the assumptions.
Average free cash flow across the last 3 positive fiscal years (FY2023, FY2024, FY2025). Smooths the cycle. Stock compensation is NOT charged — it is added back inside operating cash flow.
To be worth $80.37 today, the market must believe free cash flow compounds 0.1%/yr for a decade (off $191.8M on the 3-yr avg basis).
On the basis ($171.6M) the requirement is 1.4%/yr. Shares issued to employees are added back in operating cash flow, so this basis treats them as free.
The market's 0.1% is more conservative than its 9-yr track record.
Default is 7.0% — this company's computed cost of capital (computed WACC), the same rate the Analysis tab discounts at.
2-stage DCF · 0.03B shares (market data) · net debt $1.10B
mean 56.3% · volatility σ 146% · implied rate exceeded in 4/9 yrs
Central path = implied 0.1%/yr growth; shaded band = ±1σ (146%) of this company's historical FCF volatility, widening with time. The wider the band, the less certain the growth.
Reverse DCF: rather than guessing a fair value, we solve for the growth the current price implies, then you stress-test the assumptions. Enterprise value of the FCF stream, less net debt, ÷ shares. Educational — not a recommendation.
Ranked against 19 sector peers with collected financials. Valuation from latest close × latest fiscal-year fundamentals; 13F conviction as of 2026-09-30.
Percentile is “goodness” within the peer set (100 = best). For valuation and leverage that means cheaper / less-levered ranks higher.
| Company | Mkt cap ▼ | P/E | EV/EBITDA | P/S | Rev gr | Gross | Net | ROE | ROIC | Net D/EBITDA | 13F |
|---|---|---|---|---|---|---|---|---|---|---|---|
| IT | $14.4B | 23.7× | 12.8× | 2.2× | 3.7% | 68.8% | 11.2% | 228% | 22.1% | 1.0× | 163 |
| BAH | $10.5B | 12.8× | 11.5× | 0.9× | -6.4% | 52.7% | 7.6% | 77.0% | 16.9% | 2.7× | 118 |
| G | $6.6B | 12.7× | 8.9× | 1.3× | 6.6% | 36.0% | 10.9% | 21.7% | 13.5% | 0.8× | 112 |
| FCN | $5.0B | 22.2× | 11.7× | 1.3× | 2.4% | 32.1% | 7.1% | 15.6% | 12.9% | 0.2× | 66 |
| EXPO | $3.8B | 38.8× | — | 6.6× | 4.2% | — | 18.2% | 27.2% | 27.2% | — | 76 |
| HURN | $3.1B | 33.3× | 17.0× | 1.8× | 11.7% | — | 6.2% | 19.9% | 10.1% | 2.3× | 48 |
| VVX | $2.5B | 32.8× | 17.1× | 0.6× | 3.7% | 8.3% | 1.7% | 7.2% | 3.6% | 5.2× | 62 |
| ASTH | $1.8B | 79.4× | 19.5× | 0.6× | 56.4% | — | 0.7% | 2.9% | 1.2% | 4.9× | 35 |
| ICFI | $1.7B | 19.3× | 10.4× | 0.9× | -7.3% | 37.2% | 4.9% | 8.9% | 6.4% | 1.9× | 35 |
| BWMN | $712M | 58.8× | 20.6× | 1.4× | 14.9% | 53.4% | 2.6% | 4.9% | 4.0% | 1.3× | 22 |
| ONT | $524M | — | 33.3× | 0.6× | 19.3% | 40.3% | -0.1% | -0.2% | -0.1% | 11.5× | — |
| EVH | $486M | — | — | 0.3× | -26.6% | 21.3% | -28.5% | -129% | -38.6% | — | 25 |
| HCKT | $319M | 27.9× | 13.1× | 1.0× | -2.6% | 38.3% | 4.2% | 19.0% | 9.0% | 2.0× | 31 |
| PPHC | $312M | — | — | 1.7× | 24.7% | 10.0% | -20.9% | -52.1% | -32.0% | — | 10 |
| III | $295M | 32.1× | 14.6× | 1.2× | -1.2% | 43.1% | 3.8% | 9.9% | 6.1% | 1.4× | 32 |
| RMR | $285M | 16.2× | 5.0× | 0.4× | -22.0% | — | 2.5% | 7.7% | 6.5% | -0.3× | 36 |
| FC | $204M | 75.4× | 17.7× | 0.8× | -7.0% | 76.2% | 1.1% | 4.6% | 4.6% | -3.2× | 15 |
| TSSI | $194M | 12.3× | 12.5× | 0.8× | 65.9% | 13.2% | 6.2% | 19.7% | 16.0% | -6.7× | 18 |
| EGG | $137M | 245.5× | — | 30.7× | 12.2% | 68.8% | 12.6% | 3.5% | 3.5% | — | — |
| RTB | $107M | — | — | 9.6× | -38.7% | 47.7% | -157% | -65.9% | -65.9% | — | — |
Peers = companies sharing VVX's sector (Services-Facilities Support Management Services) with collected SEC financials. Multiples use the most recent end-of-day close and latest fiscal-year fundamentals (trailing, not forward). Missing cells mean the peer never reported that line item, has no collected price, or has a non-positive denominator. Not investment advice.
Total shares institutions bought (green) vs sold (red) each quarter across all holders.
Inferred from quarter-over-quarter change in each fund's 13F position (new stakes count as buys, exits as sells). Not tick-level trades.
EOD close · as of 2026-10-30
How a revenue dollar becomes profit — FY2025
Dividends and buybacks are cash paid out, shown here against the same year's profit for scale — not funded from it.
Each value shows its share of revenue below it (common-size).
| Line Item | FY2025 | FY2024 | FY2023 | FY2022 | FY2021 | FY2020 | FY2019 | FY2018 | FY2017 | FY2016 |
|---|---|---|---|---|---|---|---|---|---|---|
| Revenue | $4.48B 100.0% | $4.32B 100.0% | $3.96B 100.0% | $2.89B 100.0% | $1.78B 100.0% | $1.40B 100.0% | $1.38B 100.0% | $1.28B 100.0% | $1.11B 100.0% | $1.19B 100.0% |
| Cost of Revenue | $4.11B 91.7% | $3.98B 92.1% | $3.63B 91.6% | $2.60B 89.8% | $1.62B 91.0% | $1.27B 91.1% | $1.25B 90.7% | $1.16B 91.1% | $1.01B 90.9% | $1.08B 91.0% |
| Selling, General & Admin | $179.1M 4.0% | $183.8M 4.3% | $210.4M 5.3% | $239.2M 8.3% | $98.4M 5.5% | $80.7M 5.8% | $78.3M 5.7% | $66.4M 5.2% | $60.7M 5.4% | $64.1M 5.4% |
| Operating Income | $194.3M 4.3% | $159.2M 3.7% | $124.4M 3.1% | $55.8M 1.9% | $62.0M 3.5% | $43.5M 3.1% | $49.6M 3.6% | $48.1M 3.8% | $41.2M 3.7% | $42.8M 3.6% |
| Pretax Income | $100.9M 2.3% | $38.8M 0.9% | -$24.5M -0.6% | -$6.1M -0.2% | $54.0M 3.0% | $38.7M 2.8% | $43.2M 3.1% | $43.0M 3.4% | $36.6M 3.3% | $37.2M 3.1% |
| Income Tax Expense | $23.0M 0.5% | $4.2M 0.1% | -$1.9M -0.0% | $8.2M 0.3% | $8.3M 0.5% | $1.7M 0.1% | $10.0M 0.7% | $7.9M 0.6% | -$22.9M -2.1% | $13.5M 1.1% |
| Net Income | $77.9M 1.7% | $34.7M 0.8% | -$22.6M -0.6% | -$14.3M -0.5% | $45.7M 2.6% | $37.0M 2.6% | $33.2M 2.4% | $35.1M 2.7% | $59.5M 5.3% | $23.7M 2.0% |
| Per Share | ||||||||||
| EPS (Basic) | $2.47 | $1.10 | -$0.73 | -$0.68 | $3.91 | $3.19 | $2.90 | $3.13 | $5.40 | $2.21 |
| EPS (Diluted) | $2.45 | $1.08 | -$0.73 | -$0.68 | $3.86 | $3.14 | $2.86 | $3.08 | $5.31 | $2.16 |
| Weighted Avg Shares (Basic) | 31.6M | 31.5M | 31.1M | 21.0M | 11.7M | 11.6M | 11.4M | 11.2M | 11.0M | 10.7M |
| Weighted Avg Shares (Diluted) | 31.8M | 32.0M | 31.1M | 21.0M | 11.8M | 11.8M | 11.6M | 11.4M | 11.2M | 11.0M |
Source: SEC EDGAR XBRL filings (annual, fiscal year). Quarterly flow items are derived from cumulative filings; balance-sheet figures are as-of each period end. Ratios and margins are computed, not reported.
Top 40 institutional holders — bubble size is position value, color is the move since last quarter. Hover any holder for detail.
Drag any bubble to rearrange · size = dollar value of the position
Total return (dividends reinvested) vs the market, from quarter-end prices.
Above 0 = ahead of the S&P 500 since the window start; below 0 = behind. Rising means it's pulling ahead.
How far the stock fell below its prior peak. Deeper, longer drawdowns = a rougher ride to the same return.
Quarter-end, dividend-adjusted (total return). Beta & volatility from quarterly returns (annualized). Benchmark is the S&P 500 (SPY total return). Annual returns compound the quarters ending in each calendar year; the first and last years in a window may be partial. Past performance doesn't predict future results.
EOD close · as of 2026-10-30
Where each multiple sits in its own 12-yr range · 89th pct blended
Dot = today · shaded = middle 50% · line = median. Lower percentile = cheaper vs its own 12-yr history.
Is the profit real, and how strong is the balance sheet?
FY2025 · every deduction from revenue to net income
DuPont — the three levers
ROE 7% against ROIC 4% — 4% of the return on equity comes from leverage and buybacks rather than from the operating business.
What the company owes vs. what it holds
This shows debt/cash structure and net leverage. The year-by-year maturity schedule is on the Debt & Leverage tab.
Latest year: profit growth vs revenue growth
High operating leverage: profit moved 6.0× as fast as sales — great in an upturn, painful in a downturn.
Each line as % of revenue — the trend in color
| % of revenue | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 |
|---|---|---|---|---|---|---|---|---|
| Cost of Revenue | 91.1 | 90.7 | 91.1 | 91.0 | 89.8 | 91.6 | 92.1 | 91.7 |
| SG&A | 5.2 | 5.7 | 5.8 | 5.5 | 8.3 | 5.3 | 4.3 | 4.0 |
| Operating Income | 3.8 | 3.6 | 3.1 | 3.5 | 1.9 | 3.1 | 3.7 | 4.3 |
| Income Tax | 0.6 | 0.7 | 0.1 | 0.5 | 0.3 | -0.0 | 0.1 | 0.5 |
| Net Income | 2.7 | 2.4 | 2.6 | 2.6 | -0.5 | -0.6 | 0.8 | 1.7 |
Green = margin-favorable vs the row's own range · red = unfavorable.
The metrics that matter, over time
A 30-second read on VVX: price, valuation and headline fundamentals from SEC filings. The four questions at the top of the page are where the judgements live.
Earns 0.41pts above its cost of capital, without much margin of safety.
| Period | ROIC | Cost of capital | Spread |
|---|---|---|---|
| FY2019 | 12.4% | 7.0% (today's — no rate published for this year) | 5.4pts |
| FY2020 | 7.8% | 7.0% (today's — no rate published for this year) | 0.9pts |
| FY2021 | 10.4% | 7.0% (today's — no rate published for this year) | 3.5pts |
| FY2022 | 2.0% | 7.0% (today's — no rate published for this year) | -4.9pts |
| FY2023 | 4.8% | 7.0% (today's — no rate published for this year) | -2.1pts |
| FY2024 | 6.1% | 7.0% (today's — no rate published for this year) | -0.8pts |
| FY2025 | 7.3% | 7.0% (today's — no rate published for this year) | 0.3pts |
| Now | 3.6% | 7.0% | -3.4pts |
| Fiscal year | Gross margin | Operating margin | Net margin |
|---|---|---|---|
| FY2016 | 9.0% | 3.6% | 2.0% |
| FY2017 | 9.1% | 3.7% | 5.3% |
| FY2018 | 8.9% | 3.8% | 2.7% |
| FY2019 | 9.3% | 3.6% | 2.4% |
| FY2020 | 8.9% | 3.1% | 2.6% |
| FY2021 | 9.0% | 3.5% | 2.6% |
| FY2022 | 10.2% | 1.9% | -0.5% |
| FY2023 | 8.4% | 3.1% | -0.6% |
| FY2024 | 7.9% | 3.7% | 0.8% |
| FY2025 | 8.3% | 4.3% | 1.7% |
Leverage and buybacks account for 4 points of the 7% return on equity in FY2025. The business earns 4% on the capital it employs; the rest is balance sheet.
ROE is on average equity; ROIC is NOPAT over average invested capital (debt plus equity less excess cash). The gap is not a single adjustment.
$1.7B of goodwill — 76% of invested capital. The gap is what was paid above the fair value of what was bought; it is real capital shareholders provided, so neither bar is the whole answer. With goodwill over half the base, the ex-goodwill figure divides by a small remainder and moves sharply — read it as a direction, not a precise rate.
ROIC ex-goodwill is 30.84% against 7.38% reported — the return is earned on a capital base inflated by what was paid for acquisitions, not by the operating business alone.
Converts 2.45x of reported profit into free cash flow over 5 years, with accruals negative.
Shares outstanding are up 170% since FY2019 — per-share cash flow has grown more slowly than the totals above, and the gap is the owners'.
Debt is present but there is no positive EBITDA or no reported interest expense, so coverage cannot be measured.
Balance sheet at 2025-12-31. Undrawn revolving credit is not shown: the tag is collected but not yet mapped through to the API.
No material counter-signal in the checked set: net debt / EBITDA, interest coverage, stressed coverage, maturity schedule vs cash and one year of FCF, liquidity ratios.
Missing from our data, so excluded from this answer: interest_expense.
At $80.37, free cash flow must compound 0.2%/yr for 10 years. It has done 56.89%/yr over 6 years.
| Fiscal year | FCF growth | Price requires |
|---|---|---|
| FY2020 | 422.4% | 0.2% |
| FY2021 | −13.5% | 0.2% |
| FY2022 | 57.2% | 0.2% |
| FY2023 | 101.0% | 0.2% |
| FY2024 | 48.8% | 0.2% |
| FY2025 | −29.9% | 0.2% |
The percentile ranks the FISCAL-YEAR point, because the distribution behind each strip is built from fiscal-year closes — ranking a TTM figure inside it would compare two different bases. TTM basis: TTM.
The implied rate has been matched or beaten in 4 of the last 6 years.
Last reported position per insider, carried forward. Steps can be a holding disclosed for the first time rather than a trade.
| Date | Insider | What it was | Shares | Price | Value |
|---|---|---|---|---|---|
| 2026-10-09 | 3 co-filers Senior Vice President and CFO | Option exercise | 3,803 | — | — |
| 2026-10-09 | 3 co-filers Senior Vice President and CFO | Tax withholding | 1,716 | $71.46 | $123k |
| 2026-10-09 | 3 co-filers Senior Vice President and CFO | Option exercise | 3,803 | $0.00 | — |
| 2026-08-25 | Pillmore Eric M Director | Giftindirect | 1,000 | $0.00 | $0 |
| 2026-08-14 | Nance Jeremy John SVP and General Counsel | Open-market sale | 3,500 | $82.00 | $287k |
| 2026-08-11 | Parker Melvin Director | Open-market sale | 5,000 | $81.41 | $407k |
| 2026-06-25 | 3 co-filers President and CEO | Option exercise | 14,766 | — | — |
| 2026-06-25 | 3 co-filers President and CEO | Tax withholding | 6,660 | $74.56 | $497k |
| 2026-06-25 | 3 co-filers President and CEO | Option exercise | 14,766 | $0.00 | — |
| 2026-05-14 | Pillmore Eric M Director | Gift | 2,200 | $0.00 | $0 |
| 2026-05-08 | 3 co-filers SVP and CHRO | Option exercise | 1,545 | — | — |
| 2026-05-08 | 3 co-filers SVP and CHRO | Tax withholding | 466 | $71.56 | $33k |
| 2026-05-08 | 3 co-filers SVP and CHRO | Option exercise | 1,545 | $0.00 | — |
| 2026-05-07 | 3 co-filers Group filing | Option exercise | 1,948 | — | — |
| 2026-05-07 | 3 co-filers Group filing | Option exercise | 838 | — | — |
| 2026-05-07 | 3 co-filers Group filing | Option exercise | 838 | — | — |
| 2026-05-07 | 3 co-filers Group filing | Option exercise | 3,254 | — | — |
| 2026-05-07 | 3 co-filers Group filing | Option exercise | 838 | — | — |
| 2026-05-07 | 3 co-filers Group filing | Option exercise | 4,487 | — | — |
| 2026-05-07 | 3 co-filers Group filing | Option exercise | 3,254 | — | — |
| 2026-05-07 | 3 co-filers Group filing | Option exercise | 3,254 | — | — |
| 2026-05-07 | 3 co-filers Group filing | Option exercise | 838 | $0.00 | — |
| 2026-05-07 | 3 co-filers Group filing | Option exercise | 3,254 | $0.00 | — |
| 2026-05-07 | 3 co-filers Group filing | Option exercise | 838 | $0.00 | — |
| 2026-05-07 | 3 co-filers Group filing | Option exercise | 4,487 | $0.00 | — |
| 2026-05-07 | 3 co-filers Group filing | Option exercise | 3,254 | $0.00 | — |
| 2026-05-07 | 3 co-filers Group filing | Option exercise | 3,254 | $0.00 | — |
| 2026-05-07 | 3 co-filers Group filing | Option exercise | 1,948 | $0.00 | — |
| 2026-05-07 | 3 co-filers Group filing | Option exercise | 838 | $0.00 | — |
| 2026-05-07 | 3 co-filers Group filing | Grant | 3,017 | $0.00 | — |
| 2026-05-07 | 3 co-filers Group filing | Grant | 2,188 | $0.00 | — |
| 2026-05-07 | 3 co-filers Group filing | Grant | 2,188 | $0.00 | — |
| 2026-05-07 | 3 co-filers Group filing | Grant | 2,188 | $0.00 | — |
| 2026-05-07 | 3 co-filers Group filing | Grant | 2,188 | $0.00 | — |
| 2026-05-07 | 3 co-filers Group filing | Grant | 2,188 | $0.00 | — |
| 2026-05-07 | 3 co-filers Group filing | Grant | 2,188 | $0.00 | — |
| 2026-05-07 | 3 co-filers Group filing | Grant | 2,188 | $0.00 | — |
| 2026-03-12 | 5 co-filers Group filing | Open-market saleindirect | 2,545,432 | $68.21 | $173.6m |
| 2026-03-12 | 3 co-filers President and CEO | Option exercise | 10,516 | — | — |
| 2026-03-12 | 3 co-filers Chief Growth Officer | Option exercise | 4,469 | — | — |
Every row is classified by what it MEANT, not by its SEC code. A code is not a meaning: code P (“purchase”) also covers dividend reinvestment and employee stock purchase plans, and code S (“sale”) also covers 10b5-1 plan sales scheduled months earlier and option exercises sold the same day.
Across 30 days of all filings, $5.08bn of insider selling contained $3.50bn of plan sales and $0.46bn of exercise-and-sell. Only 29% was discretionary. Reading an unclassified feed badly overstates how much insiders decided.
Buys and sales are counted separately and never netted. They are different decisions by different people; a company where one officer bought while another sold is not “neutral”.
The holding line carries each insider's last reported position forward, so it shows the total held rather than a sawtooth of whoever traded that day. It covers only insiders who filed in the window.
“Filed late” counts calendar days past the two-business-day deadline with five days' grace, so a Thursday or Friday trade crossing a weekend is never flagged. It describes the company's filing discipline, not the trade.
Insider activity is descriptive. Nothing here is investment advice.
| Step | Amount | Running total |
|---|---|---|
| Net income | $78M | $78M |
| Share-based comp | $12M | $90M |
| Other non-cash & working capital | $92M | $182M |
| Operating cash flow | $182M | $182M |
| Capex | −$12M | $170M |
| Free cash flow | $170M | $170M |
| FCF after SBC | $158M | $158M |
| Fiscal year | Revenue growth | Receivables growth | Gap |
|---|---|---|---|
| FY2020 | 0.9% | not reported | not reported |
| FY2021 | 27.8% | not reported | not reported |
| FY2022 | 62.1% | not reported | not reported |
| FY2023 | 37.1% | not reported | not reported |
| FY2024 | 9.1% | not reported | not reported |
| FY2025 | 3.6% | not reported | not reported |
| Fiscal year | Accruals / assets |
|---|---|
| FY2019 | 0.9 percent |
| FY2020 | -3.2 percent |
| FY2021 | -1.8 percent |
| FY2022 | -3.3 percent |
| FY2023 | -6.8 percent |
| FY2024 | -6.8 percent |
| FY2025 | -3.2 percent |
Below the line, the asset base is being consumed faster than it is replaced.
Below the line for 2 consecutive years to the latest.
Depreciation here includes amortisation of acquired intangibles — goodwill written down over time, customer lists, acquired technology. Capex does not replace those and is not meant to, so an acquisitive or asset-light company sits below 1.0 permanently and correctly. The signal is cleanest for capital-intensive businesses, where the two measure the same physical base. For that reason this informs the earnings-quality verdict but never caps it.
SBC is added back inside operating cash flow, so reported free cash flow treats shares issued to employees as free. Percent of revenue says how expensive the payroll is; percent of operating cash flow says how much of the cash exists only because the charge was added back. The buyback offset is buybacks over SBC — below 1.0 the repurchase does not cover the shares issued.
Figures are the latest fiscal year (FY2025) from the company's own filings, not a trailing-twelve-month window — Q2 reads fiscal years throughout so the cash-conversion ratios and these share one basis. A blank is a line the filer did not report; it is never read as zero.