v3.25.0.1
CONSOLIDATED STATEMENTS OF CASH FLOWS - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2024
Dec. 31, 2023
Dec. 31, 2022
Cash flows from operating activities:      
Net income $ 23,050 $ 21,504 $ 24,049
Adjustments to reconcile net income to cash provided by operating activities      
Stock-based compensation 10,322 8,038 6,508
Depreciation and amortization 4,046 4,102 4,764
Right of use asset amortization 1,774 1,646 1,538
Accretion (amortization) of discounts (premiums) on investments (1,331) (862) 680
Deferred income taxes 1,320 (61) 1,158
Other non-cash adjustments 83 1,026 (201)
Changes in operating assets and liabilities:      
Accounts receivable, net (17,212) (12,873) (13,480)
Contract assets (2,184) 1,128 (1,227)
Inventories, net 1,202 1,354 (8,282)
Prepaid and other assets (756) (96) 138
Accounts payable 787 2,629 138
Accrued expenses and other liabilities 37 (1,352) (1,062)
Contract liabilities (616) (129) (2,090)
Net cash provided by operating activities 20,522 26,054 12,631
Cash flows from investing activities:      
Sales of marketable securities 0 2,966 0
Maturities of marketable securities 76,508 64,955 39,756
Purchases of marketable securities (90,997) (84,555) (43,572)
Capital expenditures (1,298) (2,567) (4,232)
Proceeds from sales of fixed assets 133 87 1,102
Net cash used in investing activities (15,654) (19,114) (6,946)
Cash flows from financing activities:      
Net proceeds from issuance of common stock 7,100 4,794 2,986
Repurchase of common stock (50,384) 0 (26,654)
Net cash (used in) provided by financing activities (43,284) 4,794 (23,668)
Effect of exchange rate differences on cash and cash equivalents (52) 33 (20)
Net change in cash, cash equivalents and restricted cash (38,468) 11,767 (18,003)
Cash, cash equivalents and restricted cash, beginning of year 68,225 56,458 74,461
Cash, cash equivalents and restricted cash, end of year 29,757 68,225 56,458
Supplemental disclosure on non-cash investing and financing transactions:      
Cash received for income tax refunds 0 3 2
Cash paid for income taxes 1,553 505 549
Supplemental disclosure of cash flow information:      
Purchases of property and equipment in trade accounts payable, and accrued expenses and other liabilities 70 647 740
Excise tax on share repurchases, accrued but not paid $ 387 $ 0 $ 0

Source