Loading institutional data...
Loading institutional data...
Held by 265 of 6,047 reporting institutions (93th percentile) — extremely crowded.
Data as of Q2 2026
Loading snapshot...
Loading financials...
Loading valuation...
Loading analysis...
Loading dividends & returns...
Loading capital allocation...
Loading debt & leverage...
Loading performance...
Loading peer comparison...
Loading ownership map...
Loading crowding analysis...
Loading conviction analysis...
Loading buy/sell flow...
Loading ownership trends...
Loading top holders...
Loading top holders...
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.
Solve the discounted cash flow backwards, then stress-test the assumptions.
The same 3 years as the 3-yr average, with the stock compensation of those years charged as a cost. Shares issued to employees are real dilution, so this asks what the business generates for existing holders.
To be worth $21.87 today, the market must believe free cash flow compounds -28.2%/yr for a decade (off $234.6M on the SBC-adjusted basis).
On the basis ($268.4M) the requirement is -31.1%/yr. The difference is what charging stock compensation costs.
The market's -28.2% is more conservative than its 7-yr track record.
Default is 10.0% — this company's computed cost of capital (published default — this company's cost of capital could not be computed), the same rate the Analysis tab discounts at.
2-stage DCF · 0.03B shares (market data) · net debt -$231.3M
Today's price is outside this grid at every discount rate shown — the assumptions it requires lie beyond the plotted range, which is itself the finding.
mean 201.8% · volatility σ 482% · implied rate exceeded in 5/7 yrs
Central path = implied -28.2%/yr growth; shaded band = ±1σ (482%) 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.
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
What the company returns to shareholders — and whether it's covered by cash.
No dividend to cover. Last year: $0 dividends + $25.1M buybacks = $25.1M returned on $327.6M 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: 21%. 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.
Cash of $170.0M covers all $11.5M of scheduled principal — no refinancing pressure. Scheduled principal only (excludes interest & revolver draws). As of 2019-12-31 (10-K).
Insufficient EBITDA/debt history.
Green ≤ 1.5× · amber ≤ 3× · red > 3× (leverage relative to cash earnings).
Coverage is adequate but not comfortable.
Cash vs short-term debt unavailable.
Short-term / long-term split not separately reported.
Debt, cash, interest and equity from the SEC balance sheet & income statement. Effective rate = interest ÷ average debt. Maturity ladder from the SEC long-term-debt repayment schedule. Educational — not a recommendation.
EOD close · as of 2026-10-05
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 | $780.6M 100.0% | $631.4M 100.0% | $566.8M 100.0% | $463.9M 100.0% | $276.9M 100.0% | $310.0M 100.0% | $296.7M 100.0% | $280.4M 100.0% | $28.5M 100.0% | $1.7M 100.0% |
| Cost of Revenue | $317.3M 40.7% | $254.1M 40.2% | $240.6M 42.5% | $254.4M 54.8% | $126.3M 45.6% | $130.2M 42.0% | $193.7M 65.3% | $165.7M 59.1% | $2.6M 9.1% | $213K 12.4% |
| Cost of Products | — | — | — | — | — | — | — | — | $2.6M 9.1% | $213K 12.4% |
| Gross Profit | $463.3M 59.3% | $377.3M 59.8% | $326.2M 57.5% | $209.5M 45.2% | $150.6M 54.4% | $179.8M 58.0% | $103.0M 34.7% | $114.7M 40.9% | — | — |
| Research & Development | — | $0 0.0% | $0 0.0% | $4.0M 0.9% | $9.5M 3.4% | $9.8M 3.2% | $10.3M 3.5% | $8.7M 3.1% | $8.6M 30.1% | $14.9M 873.6% |
| Selling, General & Admin | $284.8M 36.5% | $210.4M 33.3% | $159.2M 28.1% | $172.2M 37.1% | $119.0M 43.0% | $113.8M 36.7% | $116.4M 39.2% | $126.8M 45.2% | $92.8M 325.7% | $80.6M 4712.6% |
| Total Operating Expenses | $283.6M 36.3% | $207.4M 32.9% | $159.2M 28.1% | $176.2M 38.0% | $133.0M 48.0% | $123.6M 39.9% | $126.8M 42.7% | $135.4M 48.3% | $103.9M 364.9% | $95.8M 5598.7% |
| Operating Income | $179.6M 23.0% | $169.9M 26.9% | $167.0M 29.5% | $33.3M 7.2% | $17.6M 6.4% | $56.2M 18.1% | -$23.7M -8.0% | -$20.7M -7.4% | -$75.4M -264.9% | -$94.1M -5498.7% |
| Interest Expense | $82.3M 10.5% | $74.0M 11.7% | $83.3M 14.7% | $63.2M 13.6% | $21.0M 7.6% | $28.9M 9.3% | $909K 0.3% | $20.1M 7.2% | — | $94K 5.5% |
| Other Income (Expense), net | — | — | — | — | — | — | — | — | $582K 2.0% | -$94K -5.5% |
| Pretax Income | $92.6M 11.9% | $98.6M 15.6% | $75.7M 13.4% | -$28.8M -6.2% | -$3.4M -1.2% | $27.6M 8.9% | -$22.7M -7.7% | -$39.1M -14.0% | — | — |
| Income Tax Expense | $29.7M 3.8% | $29.4M 4.7% | $27.6M 4.9% | -$3.8M -0.8% | -$74.9M -27.0% | $830K 0.3% | $0 0.0% | — | — | — |
| Net Income | $63.0M 8.1% | $69.0M 10.9% | $48.0M 8.5% | -$25.0M -5.4% | $72.0M 26.0% | $26.8M 8.6% | -$22.7M -7.7% | -$39.1M -14.0% | -$74.9M -262.9% | -$94.2M -5504.1% |
| Per Share | ||||||||||
| EPS (Basic) | $1.98 | $2.14 | $1.43 | -$0.74 | $2.05 | $0.78 | -$0.68 | -$1.19 | — | -$3.88 |
| EPS (Diluted) | $1.73 | $1.86 | $1.29 | -$0.74 | $1.86 | $0.76 | -$0.68 | -$1.19 | — | — |
| Weighted Avg Shares (Basic) | 31.7M | 32.3M | 33.7M | 33.8M | 34.9M | 34.4M | 33.5M | 33.0M | — | — |
| Weighted Avg Shares (Diluted) | 39.7M | 40.4M | 41.8M | 33.8M | 41.0M | 35.2M | 33.5M | 33.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.
EOD close · as of 2026-10-05
Where each multiple sits in its own 11-yr range · 5th pct blended
Dot = today · shaded = middle 50% · line = median. Lower percentile = cheaper vs its own 11-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 21% against ROIC 21% — 0% of the return on equity comes from leverage and buybacks rather than from the operating business.
Equity is the year-end figure. On average equity over the two year-ends, ROE is 23.7% — the two diverge when buybacks or issuance move equity during the year.
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
Low operating leverage — profit tracks sales closely (stable, less cyclical).
Each line as % of revenue — the trend in color
| % of revenue | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 |
|---|---|---|---|---|---|---|---|---|
| Cost of Revenue | 59.1 | 65.3 | 42.0 | 45.6 | 54.8 | 42.5 | 40.2 | 40.7 |
| Gross Profit | 40.9 | 34.7 | 58.0 | 54.4 | 45.2 | 57.5 | 59.8 | 59.3 |
| R&D | 3.1 | 3.5 | 3.2 | 3.4 | 0.9 | 0.0 | 0.0 | — |
| SG&A | 45.2 | 39.2 | 36.7 | 43.0 | 37.1 | 28.1 | 33.3 | 36.5 |
| Operating Income | -7.4 | -8.0 | 18.1 | 6.4 | 7.2 | 29.5 | 26.9 | 23.0 |
| Income Tax | — | 0.0 | 0.3 | -27.0 | -0.8 | 4.9 | 4.7 | 3.8 |
| Net Income | -14.0 | -7.7 | 8.6 | 26.0 | -5.4 | 8.5 | 10.9 | 8.1 |
Green = margin-favorable vs the row's own range · red = unfavorable.
The metrics that matter, over time
A 30-second read on COLL: price, valuation and headline fundamentals from SEC filings. The four questions at the top of the page are where the judgements live.
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.
Earns 81.49pts above its cost of capital, but margins are compressing.
| Period | ROIC | Cost of capital | Spread |
|---|---|---|---|
| FY2020 | 142.6% | 16.4% (today's — no rate published for this year) | 126.1pts |
| FY2021 | 40.1% | 8.8% | 31.3pts |
| FY2022 | 60.3% | 11.7% | 48.6pts |
| FY2024 | 66.9% | 14.6% | 52.4pts |
| FY2025 | 137.3% | 15.3% | 122.0pts |
| Now | 20.8% | 16.4% | 4.4pts |
| Fiscal year | Gross margin | Operating margin | Net margin |
|---|---|---|---|
| FY2016 | 87.6% | -5498.7% | -5504.1% |
| FY2017 | 90.9% | -264.9% | -262.9% |
| FY2018 | 40.9% | -7.4% | -14.0% |
| FY2019 | 34.7% | -8.0% | -7.7% |
| FY2020 | 58.0% | 18.1% | 8.6% |
| FY2021 | 54.4% | 6.4% | 25.8% |
| FY2022 | 45.2% | 7.2% | -5.4% |
| FY2023 | 57.5% | 29.5% | 8.5% |
| FY2024 | 59.8% | 26.9% | 11.0% |
| FY2025 | 59.3% | 23.0% | 8.1% |
Return on equity (21%) and return on invested capital (21%) are within a couple of points in FY2025, so the headline return is the operating return — there is no meaningful leverage effect to strip out.
Margins have compressed 2 years running even as the spread stayed positive.
Converts 3.71x of reported profit into cash — adequate, without much margin.
Reported free cash flow is $328M; after share-based compensation it is $286M. The difference is a real cost that the cash flow statement adds back. Buybacks of $25M covered 60% of the $42M charge, so the repurchase is absorbing dilution rather than returning capital.
Stressed coverage of 1.5x sits between comfortable and thin.
| EBITDA decline | Interest coverage |
|---|---|
| 0% | 2.18x |
| 5% | 2.07x |
| 10% | 1.96x |
| 15% | 1.86x |
| 20% | 1.75x |
| 25% | 1.64x |
| 30% | 1.53x |
| 35% | 1.42x |
| 40% | 1.31x |
| 45% | 1.20x |
| 50% | 1.09x |
| 55% | 0.98x |
| 60% | 0.87x |
This schedule comes from a filing dated 2019-12-31, 2470 days old. Maturities are shown relative to that date, not to today.
Ladder as of 2019-12-31 (10-K); cash from the 2019-12-31 balance sheet; FCF from FY2019.
Balance sheet at 2019-12-31. Undrawn revolving credit is not shown: the tag is collected but not yet mapped through to the API.
Operating leases are $5,539,000 of the $5,539,000 total — a fixed obligation that does not appear in a headline debt figure.
At $22.02, free cash flow must compound -27.71%/yr for 10 years. It has done 97.48%/yr over 6 years after stock compensation.
| Fiscal year | FCF growth | Price requires |
|---|---|---|
| FY2020 | 1280.2% | −27.7% |
| FY2021 | 16.4% | −27.7% |
| FY2022 | 28.9% | −27.7% |
| FY2023 | 147.8% | −27.7% |
| FY2024 | −30.8% | −27.7% |
| FY2025 | 67.1% | −27.7% |
The cost of capital could not be computed for this company, so the requirement is solved at the published 10% default — a different rate would move it materially.
| Step | Amount | Running total |
|---|---|---|
| Net income | $63M | $63M |
| Share-based comp | $42M | $105M |
| Other non-cash & working capital | $225M | $329M |
| Operating cash flow | $329M | $329M |
| Capex | −$2M | $328M |
| Free cash flow | $328M | $328M |
| FCF after SBC | $286M | $286M |
| Fiscal year | Revenue growth | Receivables growth | Gap |
|---|---|---|---|
| FY2020 | 4.5% | 14.2% | 9.7 points |
| FY2021 | -10.7% | 27.0% | 37.7 points |
| FY2022 | 67.6% | 73.0% | 5.5 points |
| FY2023 | 22.2% | -2.0% | -24.1 points |
| FY2024 | 11.4% | 27.3% | 15.9 points |
| FY2025 | 23.6% | -7.5% | -31.2 points |
| Fiscal year | DSO | DIO | DPO | Cash conversion cycle |
|---|---|---|---|---|
| FY2019 | 89.7 days | 18.2 days | 11.8 days | 96.1 days |
| FY2020 | 98.1 days | 43.8 days | 28.1 days | 113.8 days |
| FY2021 | 139.5 days | 50.3 days | 12.1 days | 177.7 days |
| FY2022 | 144.1 days | 66.7 days | 5 days | 205.8 days |
| FY2023 | 115.6 days | 49 days | 13.2 days | 151.5 days |
| FY2024 | 132.1 days | 51.1 days | 5.7 days | 177.5 days |
| FY2025 | 98.8 days | 47.1 days | 12.3 days | 133.6 days |
| Fiscal year | Accruals / assets |
|---|---|
| FY2019 | -16.5 percent |
| FY2020 | -10.4 percent |
| FY2021 | -4.6 percent |
| FY2022 | -12.7 percent |
| FY2023 | -19.8 percent |
| FY2024 | -8.2 percent |
| FY2025 | -16.1 percent |
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.