Income statement
| In USD | FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 | 2027E | 2028E |
|---|---|---|---|---|---|---|---|
| Revenue & profit | |||||||
| Revenue | $97.49M | $122.81M | $157.12M | $185.53M | $209.9M | $281.42M | $314.15M |
| Cost of revenue | $77.02M | $113.69M | $131.71M | $144.95M | $157.04M | $228.21M | $240.94M |
| Gross profit | $20.47M | $9.13M | $25.41M | $40.59M | $52.86M | $60.74M | $66.54M |
| Gross margin | +21.00% | +7.43% | +16.17% | +21.87% | +25.18% | +21.58% | +21.18% |
| Operating | |||||||
| Research & development | $0 | $0 | $0 | $0 | $0 | $0 | $0 |
| Selling, general & administrative | $17.47M | $20.39M | $23.06M | $32.22M | $37.14M | $46.19M | $52.61M |
| Total operating expenses | $17.47M | $20.47M | $24.16M | $33.66M | $37.67M | $49.47M | $53.7M |
| Operating income | $3M | -$11.34M | $1.25M | $6.92M | $15.19M | $11.32M | $12.34M |
| Operating margin | +3.08% | -9.24% | +0.80% | +3.73% | +7.24% | +4.02% | +3.93% |
| EBITDA | $5.22M | -$5.22M | $7.24M | $12.35M | $21.12M | $19.86M | $21.74M |
| EBIT | $3.28M | -$10.82M | $1.25M | $6.92M | $15.19M | $11.24M | $11.95M |
| Below the line | |||||||
| Interest expense | $11K | $450K | $1.07M | $248K | -$583K | $510.73K | $555.56K |
| Interest income | $167K | $50K | $129K | $0 | $0 | $76.42K | $84.08K |
| Other income / expense | $269K | $127K | -$689K | -$1.35M | $219K | — | — |
| Pre-tax income | $3.27M | -$11.22M | $561K | $5.57M | $15.41M | $10.11M | $10.89M |
| Income tax expense | $893K | -$2.44M | $194K | $1.02M | $3.18M | $2.41M | $2.67M |
| Earnings | |||||||
| Net income | $2.37M | -$8.77M | $367K | $4.56M | $12.23M | $7.92M | $8.97M |
| Net income · continuing ops | $2.37M | -$8.77M | $367K | $4.56M | $12.23M | $8.05M | $9.05M |
| Net margin | +2.44% | -7.14% | +0.23% | +2.46% | +5.83% | +2.81% | +2.86% |
| EPS · basic | $0.24 | $-0.83 | $-0.05 | $0.42 | $1.12 | $1.90 | $2.32 |
| EPS · diluted | $0.24 | $-0.83 | $-0.05 | $0.42 | $1.11 | $1.91 | $2.31 |
| EPS · low estimate | — | — | — | — | — | $1.65 | $2.21 |
| EPS · high estimate | — | — | — | — | — | $2.22 | $2.41 |
| Shares · basic | 9.96M | 10.54M | 10.61M | 10.74M | 10.88M | 10.81M | 10.91M |
| Shares · diluted | 9.96M | 10.54M | 10.65M | 10.84M | 11.07M | 11.11M | 10.97M |
| Coverage | |||||||
| Analysts (revenue) | — | — | — | — | — | 4 | 2 |
| Analysts (EPS) | — | — | — | — | — | 4 | 2 |
Coverage notes. Historical figures come from FMP’s as-reported income statements / balance sheets / cash flows in our data warehouse. Forecast columns (italicised, faint accent tint) carry vendor-supplied numbers where available (revenue + EPS from FMP consensus) and ratio-derived values for every other line. Margins / ratios are the trailing-3y average from history applied to the forecast revenue; values are clamped to enforce P&L identity (gross ≥ operating, EBITDA ≥ operating, net ≤ operating) and balance-sheet identity (assets = liabilities + equity by construction). Cash-flow FCF reconciles to OCF + CapEx. USD conversion uses the period-end close of the issuer's reported/USD pair from forex_prices_daily; share counts stay unconverted.
Financials
Full income statement, balance sheet, and cash-flow history is included with Pro.
Upgrade to Pro