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...
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.
Top 1 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.
The dividend takes 82% of free cash flow — sustainable but with limited headroom. Last year: $28.1M dividends + $0 buybacks = $28.1M returned on $34.5M FCF.
5 consecutive years of dividend increases · 45%/yr.
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: 18%. 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 $100.9M (at 2025-12-31) covers the $6.2M due within a year 16.4× over. Scheduled principal only (excludes interest & revolver draws). As of 2026-06-30 (10-Q). The cash figure is from 2025-12-31, so the two are not the same balance-sheet date — the schedule has not been refiled since.
Green ≤ 1.5× · amber ≤ 3× · red > 3× (leverage relative to cash earnings).
Interest is easily covered by operating profit. Effective rate ~3.5% on $171.6M of debt.
Cash of $100.9M fully covers short-term debt of $427K.
Mostly long-term debt (balance-sheet current vs non-current split). See the maturity ladder above for the year-by-year repayment schedule.
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.
Ranked against 8 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| CRH | $60.4B | 16.5× | 9.6× | 1.6× | 5.3% | 36.1% | 10.0% | 15.6% | 9.2% | 1.6× | 3 |
| AMRZ | $22.6B | 19.3× | 9.8× | 1.9× | 0.9% | 25.7% | 10.0% | 9.0% | 6.4% | 1.3× | 78 |
| JHX | $15.8B | 143.4× | 21.3× | 3.3× | 24.7% | 35.8% | 2.2% | 1.6% | 0.9% | 4.5× | — |
| OC | $9.6B | — | 13.3× | 0.9× | 2.6% | 28.1% | -5.2% | -13.5% | -6.1% | 4.2× | 159 |
| EXP | $5.6B | 13.9× | 10.1× | 2.4× | 2.1% | 28.3% | 18.4% | 28.7% | 13.1% | 2.1× | 110 |
| TGLS | $1.7B | 11.3× | 6.8× | 1.7× | 10.5% | 42.8% | 16.2% | 22.4% | 18.0% | 0.3× | 1 |
| APOG | $945M | 17.9× | 8.5× | 0.7× | 3.2% | 22.7% | 3.9% | 10.6% | 7.3% | 1.4× | 40 |
| OI | $788M | — | 11.6× | 0.1× | -1.6% | 17.3% | -2.0% | -10.0% | -2.1% | 9.8× | 61 |
| SMID | $119M | 9.5× | 6.0× | 1.3× | 19.0% | 27.9% | 13.4% | 23.0% | 23.0% | 0.0× | 8 |
Peers = companies sharing TGLS's sector (Flat Glass) 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.
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 $38.51 today, the market must believe free cash flow compounds 13.4%/yr for a decade (off $62.1M on the 3-yr avg basis).
The market's 13.4% is more conservative than its 8-yr track record.
Default is 10.4% — this company's computed cost of capital (computed WACC), the same rate the Analysis tab discounts at.
2-stage DCF · 0.04B shares (market data) · net debt $70.7M
mean 1007.1% · volatility σ 2822% · implied rate exceeded in 3/7 yrs
Central path = implied 13.4%/yr growth; shaded band = ±1σ (2822%) 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.
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 | $983.6M 100.0% | $890.2M 100.0% | $833.3M 100.0% | $716.6M 100.0% | $496.8M 100.0% | $376.6M 100.0% | $430.9M 100.0% | $371.0M 100.0% | $314.5M 100.0% | $305.0M 100.0% |
| Cost of Revenue | $562.2M 57.2% | $510.2M 57.3% | $442.3M 53.1% | $367.1M 51.2% | $294.2M 59.2% | $237.2M 63.0% | $295.1M 68.5% | $250.8M 67.6% | $215.3M 68.5% | $192.4M 63.1% |
| Cost of Products | — | — | — | — | — | — | — | — | $215.3M 68.5% | $192.4M 63.1% |
| Gross Profit | $421.4M 42.8% | $380.0M 42.7% | $390.9M 46.9% | $349.5M 48.8% | $202.6M 40.8% | $139.4M 37.0% | $135.8M 31.5% | $120.2M 32.4% | $99.2M 31.5% | $112.6M 36.9% |
| Selling, General & Admin | $90.9M 9.2% | $71.7M 8.1% | $63.1M 7.6% | $54.1M 7.5% | $35.8M 7.2% | $34.7M 9.2% | $35.1M 8.1% | $33.6M 9.1% | $31.0M 9.9% | $27.8M 9.1% |
| Total Operating Expenses | $196.3M 20.0% | $153.0M 17.2% | $131.2M 15.7% | $123.1M 17.2% | $85.6M 17.2% | $73.7M 19.6% | $77.0M 17.9% | $73.0M 19.7% | $64.8M 20.6% | $64.8M 21.2% |
| Operating Income | $230.7M 23.5% | $227.0M 25.5% | $259.8M 31.2% | $226.4M 31.6% | $117.0M 23.5% | $65.7M 17.4% | $58.8M 13.6% | $47.2M 12.7% | $34.4M 10.9% | $47.8M 15.7% |
| Interest Expense | $6.0M 0.6% | $6.2M 0.7% | $7.9M 1.0% | $6.8M 0.9% | $8.5M 1.7% | $20.7M 5.5% | $22.8M 5.3% | $21.2M 5.7% | $19.9M 6.3% | $16.8M 5.5% |
| Other Income (Expense), net | $3.1M 0.3% | $5.9M 0.7% | $5.1M 0.6% | $4.2M 0.6% | $608K 0.1% | $100K 0.0% | $1.6M 0.4% | $2.9M 0.8% | $3.2M 1.0% | $4.2M 1.4% |
| Pretax Income | $235.3M 23.9% | $225.2M 25.3% | $261.4M 31.4% | $231.2M 32.3% | $96.9M 19.5% | $36.9M 9.8% | $37.2M 8.6% | $14.5M 3.9% | $11.5M 3.7% | $39.3M 12.9% |
| Income Tax Expense | $75.7M 7.7% | $63.8M 7.2% | $77.9M 9.3% | $74.8M 10.4% | $28.5M 5.7% | $13.0M 3.5% | $12.9M 3.0% | $6.0M 1.6% | $5.8M 1.8% | $16.1M 5.3% |
| Net Income | $159.6M 16.2% | $161.3M 18.1% | $182.9M 21.9% | $155.7M 21.7% | $68.2M 13.7% | $23.9M 6.3% | $24.5M 5.7% | $9.0M 2.4% | $5.4M 1.7% | $23.2M 7.6% |
| Per Share | ||||||||||
| EPS (Basic) | $3.42 | $3.43 | $3.85 | $3.27 | $1.43 | $0.51 | $0.55 | $0.22 | $0.16 | $0.71 |
| EPS (Diluted) | $3.42 | $3.43 | $3.85 | $3.27 | $1.43 | $0.51 | $0.55 | $0.21 | $0.15 | $0.69 |
| Weighted Avg Shares (Basic) | 46.7M | 47.0M | 47.5M | 47.7M | 47.7M | 46.4M | 44.5M | 39.1M | 36.8M | 32.9M |
| Weighted Avg Shares (Diluted) | 46.7M | 47.0M | 47.5M | 47.7M | 47.7M | 46.4M | 44.5M | 39.5M | 37.4M | 33.4M |
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-30
Where each multiple sits in its own 16-yr range · 33th pct blended
Dot = today · shaded = middle 50% · line = median. Lower percentile = cheaper vs its own 16-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 22% against ROIC 18% — 4% 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 | 67.6 | 68.5 | 63.0 | 59.2 | 51.2 | 53.1 | 57.3 | 57.2 |
| Gross Profit | 32.4 | 31.5 | 37.0 | 40.8 | 48.8 | 46.9 | 42.7 | 42.8 |
| SG&A | 9.1 | 8.1 | 9.2 | 7.2 | 7.5 | 7.6 | 8.1 | 9.2 |
| Operating Income | 12.7 | 13.6 | 17.4 | 23.5 | 31.6 | 31.2 | 25.5 | 23.5 |
| Income Tax | 1.6 | 3.0 | 3.5 | 5.7 | 10.4 | 9.3 | 7.2 | 7.7 |
| Net Income | 2.4 | 5.7 | 6.3 | 13.7 | 21.7 | 21.9 | 18.1 | 16.2 |
Green = margin-favorable vs the row's own range · red = unfavorable.
The metrics that matter, over time
A 30-second read on TGLS: price, valuation and headline fundamentals from SEC filings. The four questions at the top of the page are where the judgements live.
The spread has compressed 3 years running.
| Period | ROIC | Cost of capital | Spread |
|---|---|---|---|
| FY2019 | 10.1% | 10.4% (today's — no rate published for this year) | -0.3pts |
| FY2020 | 12.3% | 10.4% (today's — no rate published for this year) | 2.0pts |
| FY2021 | 22.3% | 10.2% | 12.1pts |
| FY2022 | 37.0% | 8.4% | 28.5pts |
| FY2023 | 30.1% | 9.7% | 20.4pts |
| FY2024 | 25.5% | 11.9% | 13.6pts |
| FY2025 | 20.1% | 10.6% | 9.6pts |
| Now | 18.0% | 10.4% | 7.7pts |
| Fiscal year | Gross margin | Operating margin | Net margin |
|---|---|---|---|
| FY2016 | 36.9% | 15.7% | 7.6% |
| FY2017 | 31.5% | 10.9% | 1.7% |
| FY2018 | 32.4% | 12.7% | 2.4% |
| FY2019 | 31.5% | 13.6% | 5.7% |
| FY2020 | 37.0% | 17.4% | 6.3% |
| FY2021 | 40.8% | 23.5% | 13.7% |
| FY2022 | 48.8% | 31.6% | 21.7% |
| FY2023 | 46.9% | 31.2% | 21.9% |
| FY2024 | 42.7% | 25.5% | 18.1% |
| FY2025 | 42.8% | 23.5% | 16.2% |
Leverage and buybacks account for 4 points of the 22% return on equity in FY2025. The business earns 18% 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.
$30M of goodwill — 4% 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.
Margins have compressed 3 years running even as the spread stayed positive.
Free cash flow has fallen short of reported profit in 3 of the last three years.
The cash conversion cycle has lengthened +30 days over 3 years to 145 — that many more days of the company's own cash funding the same volume of business.
Missing from our data, so excluded from this answer: share_based_compensation.
Covers interest 27.1x even after a 30% EBITDA decline.
| EBITDA decline | Interest coverage |
|---|---|
| 0% | 38.68x |
| 5% | 36.75x |
| 10% | 34.81x |
| 15% | 32.88x |
| 20% | 30.95x |
| 25% | 29.01x |
| 30% | 27.08x |
| 35% | 25.14x |
| 40% | 23.21x |
| 45% | 21.28x |
| 50% | 19.34x |
| 55% | 17.41x |
| 60% | 15.47x |
Ladder as of 2026-06-30 (10-Q); cash from the 2025-12-31 balance sheet; FCF from FY2025.
Balance sheet at 2025-12-31. Undrawn revolving credit is not shown: the tag is collected but not yet mapped through to the API.
The maturity schedule is not part of this verdict — its filing anchor is often older than the balance sheet it sits beside, so a wall inside 24 months may not be visible here.
At $38.51, free cash flow must compound 13.37%/yr for 10 years. It has done 90.93%/yr over 6 years.
| Fiscal year | FCF growth | Price requires |
|---|---|---|
| FY2020 | 7398.3% | 13.4% |
| FY2021 | 23.1% | 13.4% |
| FY2022 | 7.4% | 13.4% |
| FY2023 | −13.8% | 13.4% |
| FY2024 | 49.5% | 13.4% |
| FY2025 | −62.1% | 13.4% |
The implied rate has been matched or beaten in 3 of the last 6 years.
| Step | Amount | Running total |
|---|---|---|
| Net income | $160M | $160M |
| Share-based comp | not reported | not reported |
| Other non-cash & working capital | −$24M | $136M |
| Operating cash flow | $136M | $136M |
| Capex | −$101M | $34M |
| Free cash flow | $34M | $34M |
| Fiscal year | Revenue growth | Receivables growth | Gap |
|---|---|---|---|
| FY2020 | -12.6% | -19.2% | -6.6 points |
| FY2021 | 31.9% | 23.7% | -8.2 points |
| FY2022 | 44.2% | 43.3% | -0.9 points |
| FY2023 | 16.3% | 5.1% | -11.2 points |
| FY2024 | 6.8% | 21.9% | 15.0 points |
| FY2025 | 10.5% | 18.0% | 7.5 points |
| Fiscal year | DSO | DIO | DPO | Cash conversion cycle |
|---|---|---|---|---|
| FY2019 | 93.6 days | 102.3 days | 76.5 days | 119.4 days |
| FY2020 | 86.6 days | 125 days | 65.1 days | 146.5 days |
| FY2021 | 81.2 days | 105.4 days | 84.5 days | 102.2 days |
| FY2022 | 80.7 days | 124.3 days | 89.7 days | 115.3 days |
| FY2023 | 72.9 days | 131.3 days | 68.3 days | 135.9 days |
| FY2024 | 83.2 days | 99.9 days | 70.7 days | 112.4 days |
| FY2025 | 88.9 days | 138.6 days | 82.6 days | 144.9 days |
| Fiscal year | Accruals / assets |
|---|---|
| FY2019 | -0.2 percent |
| FY2020 | -9.0 percent |
| FY2021 | -8.3 percent |
| FY2022 | 1.9 percent |
| FY2023 | 4.6 percent |
| FY2024 | -0.9 percent |
| FY2025 | 1.9 percent |
Below the line, the asset base is being consumed faster than it is replaced.
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.
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.
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-05-15 | 2 co-filers Group filing | Open-market buy | 19,121 | $40.27 | $770k |
| 2026-05-14 | 2 co-filers Group filing | Open-market buy | 80,879 | $40.56 | $3.3m |
| 2026-03-13 | 2 co-filers Group filing | Open-market buy | 107,629 | $45.11 | $4.9m |
| 2026-03-12 | 2 co-filers Group filing | Open-market buy | 107,600 | $45.28 | $4.9m |
| 2026-03-11 |
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.
3 co-filers Group filing |
| Open-market buy |
| 92,066 |
| $44.24 |
| $4.1m |
| 2026-03-10 | 3 co-filers Group filing | Open-market buy | 107,600 | $43.41 | $4.7m |
| 2026-03-09 | 3 co-filers Group filing | Open-market buy | 107,000 | $41.06 | $4.4m |
| 2026-03-06 | Carricarte Anne Louise Director | Open-market buy | 1,100 | $43.27 | $48k |