Compare sales with the profit left after direct costs and the profit left after all expenses and taxes.Formula: Gross profit = revenue − cost of revenue
Net income = total income − total expenses
Latest period Q2 '20. Revenue 19.65M. Gross profit 19.65M. Net profit 27.35M.
RevenueGross profitNet profit
See how much of each dollar of sales remains after direct costs, after running the business, and after all expenses and taxes.Formula: Gross margin = gross profit ÷ revenue × 100%
Operating margin = operating income ÷ revenue × 100%
Net margin = net income ÷ revenue × 100%
Latest period Q2 '20. Gross margin 100%. Operating margin 43.6%. Net profit margin 139.2%.
Gross marginOperating marginNet profit margin
See the amounts the company has committed to pay that its balance sheet does not record yet: leases it has signed that have not started, unconditional purchase and other contractual commitments, and the most it could have to pay under guarantees and credit backstops. Amounts are as the filing reports them at each balance-sheet date.Formula: Commitments = leases not yet commenced + purchase & other commitments + maximum guarantee exposure
Latest period Q2 '26. Purchase & other commitments 95K.
Leases not yet commencedPurchase & other commitmentsGuarantees & contingent commitments
Compare cash generated by the business, spending on long-lived assets, and what remains afterward.Formula: Free cash flow = operating cash flow − capital expenditures
$
Capex: purchases of property, plant and equipment
Latest period Q2 '20. Operating cash flow 112K.
Operating cash flowCapexFree cash flow
Compare the company’s cash cushion with its borrowings. Negative net cash means debt is greater than cash.Formula: Net cash = cash − debt
Latest period 2026. Cash 213.8M. Debt 5.1M.
CashDebtNet cash
See how the number of shares changes over time. More shares can mean each existing share owns a smaller slice of the company.Formula: Outstanding shares = issued shares − treasury shares
Share-count growth = (current shares ÷ previous shares − 1) × 100%
2023-11-27: Reverse stock split 1-for-10
2025-12-23: Reverse stock split 1-for-50
2026-04-07: Reverse stock split 1-for-3
Latest period Shares as of 2025-12-31. Shares outstanding 2.1M. Class detail unavailable 2.1M.