Document And Entity Information
Document And Entity Information - shares | 6 Months Ended | |
Jun. 30, 2021 | Jul. 29, 2021 | |
Document Information [Line Items] | ||
Entity Central Index Key | 0001443669 | |
Entity Registrant Name | Proto Labs Inc | |
Amendment Flag | false | |
Current Fiscal Year End Date | --12-31 | |
Document Fiscal Period Focus | Q2 | |
Document Fiscal Year Focus | 2021 | |
Document Type | 10-Q | |
Document Quarterly Report | true | |
Document Period End Date | Jun. 30, 2021 | |
Document Transition Report | false | |
Entity File Number | 001-35435 | |
Entity Incorporation, State or Country Code | MN | |
Entity Tax Identification Number | 41-1939628 | |
Entity Address, Address Line One | 5540 Pioneer Creek Drive | |
Entity Address, City or Town | Maple Plain | |
Entity Address, State or Province | MN | |
Entity Address, Postal Zip Code | 55359 | |
City Area Code | 763 | |
Local Phone Number | 479-3680 | |
Title of 12(b) Security | Common Stock, Par Value $0.001 Per Share | |
Trading Symbol | PRLB | |
Security Exchange Name | NYSE | |
Entity Current Reporting Status | Yes | |
Entity Interactive Data Current | Yes | |
Entity Filer Category | Large Accelerated Filer | |
Entity Small Business | false | |
Entity Emerging Growth Company | false | |
Entity Shell Company | false | |
Entity Common Stock, Shares Outstanding | 27,761,063 |
Consolidated Balance Sheets (Cu
Consolidated Balance Sheets (Current Period Unaudited) - USD ($) $ in Thousands | Jun. 30, 2021 | Dec. 31, 2020 |
Current assets | ||
Cash and cash equivalents | $ 41,909 | $ 127,603 |
Short-term marketable securities | 18,341 | 34,088 |
Accounts receivable, net of allowance for doubtful accounts of $1,997 and $1,781 as of June 30, 2021 and December 31, 2020, respectively | 83,470 | 57,877 |
Inventory | 9,111 | 10,862 |
Income taxes receivable | 4,575 | 540 |
Prepaid expenses and other current assets | 10,107 | 11,032 |
Total current assets | 167,513 | 242,002 |
Property and equipment, net | 288,495 | 282,666 |
Goodwill | 407,191 | 128,752 |
Other intangible assets, net | 41,674 | 14,350 |
Long-term marketable securities | 28,700 | 59,357 |
Operating lease assets | 8,801 | 9,855 |
Finance lease assets | 2,147 | 2,396 |
Other long-term assets | 4,769 | 4,826 |
Total assets | 949,290 | 744,204 |
Current liabilities | ||
Accounts payable | 26,038 | 18,248 |
Accrued compensation | 14,930 | 11,989 |
Accrued liabilities and other | 15,072 | 16,193 |
Current contingent consideration | 2,936 | 0 |
Current operating lease liabilities | 2,847 | 3,272 |
Current finance lease liabilities | 554 | 552 |
Income taxes payable | 40 | 0 |
Total current liabilities | 62,417 | 50,254 |
Long-term contingent consideration | 2,693 | 0 |
Long-term operating lease liabilities | 7,097 | 7,586 |
Long-term finance lease liabilities | 1,639 | 1,919 |
Long-term deferred tax liabilities | 36,898 | 33,854 |
Other long-term liabilities | 6,569 | 6,235 |
Total liabilities | 117,313 | 99,848 |
Shareholders' equity | ||
Preferred stock, $0.001 par value, authorized 10,000,000 shares; issued and outstanding 0 shares as of each of June 30, 2021 and December 31, 2020 | 0 | 0 |
Common stock, $0.001 par value, authorized 150,000,000 shares; issued and outstanding 27,761,063 and 26,776,796 shares as of June 30, 2021 and December 31, 2020, respectively | 28 | 27 |
Additional paid-in capital | 461,597 | 284,848 |
Retained earnings | 378,467 | 362,901 |
Accumulated other comprehensive loss | (8,115) | (3,420) |
Total shareholders' equity | 831,977 | 644,356 |
Total liabilities and shareholders' equity | $ 949,290 | $ 744,204 |
Consolidated Balance Sheets (_2
Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals) - USD ($) | Jun. 30, 2021 | Dec. 31, 2020 |
Allowance for doubtful accounts | $ 1,997 | $ 1,781 |
Preferred stock, par value (in dollars per share) | $ 0.001 | $ 0.001 |
Preferred stock, shares authorized (in shares) | 10,000,000 | 10,000,000 |
Preferred stock, shares issued (in shares) | 0 | 0 |
Common stock, par value (in dollars per share) | $ 0.001 | $ 0.001 |
Common stock, shares authorized (in shares) | 150,000,000 | 150,000,000 |
Common stock, shares issued (in shares) | 27,761,063 | 26,776,796 |
Common stock, shares outstanding (in shares) | 27,761,063 | 26,776,796 |
Consolidated Statements of Comp
Consolidated Statements of Comprehensive Income (Unaudited) - USD ($) $ in Thousands | 3 Months Ended | 6 Months Ended | ||
Jun. 30, 2021 | Jun. 30, 2020 | Jun. 30, 2021 | Jun. 30, 2020 | |
Statements of Operations: | ||||
Revenue | $ 123,048 | $ 106,575 | $ 239,174 | $ 221,683 |
Cost of revenue | 66,423 | 54,119 | 127,219 | 111,127 |
Gross profit | 56,625 | 52,456 | 111,955 | 110,556 |
Operating expenses | ||||
Marketing and sales | 21,044 | 16,936 | 40,524 | 35,116 |
Research and development | 11,060 | 8,648 | 23,241 | 17,635 |
General and administrative | 8,417 | 12,521 | 27,825 | 26,629 |
Total operating expenses | 40,521 | 38,105 | 91,590 | 79,380 |
Income from operations | 16,104 | 14,351 | 20,365 | 31,176 |
Other income (loss), net | 137 | 767 | (176) | 1,821 |
Income before income taxes | 16,241 | 15,118 | 20,189 | 32,997 |
Provision for income taxes | 3,326 | 2,511 | 3,562 | 6,406 |
Net income | $ 12,915 | $ 12,607 | $ 16,627 | $ 26,591 |
Net income per share: | ||||
Basic (in dollars per share) | $ 0.47 | $ 0.47 | $ 0.60 | $ 1 |
Diluted (in dollars per share) | $ 0.47 | $ 0.47 | $ 0.60 | $ 0.99 |
Shares used to compute net income per share: | ||||
Basic (in shares) | 27,735,732 | 26,660,498 | 27,600,684 | 26,718,652 |
Diluted (in shares) | 27,744,870 | 26,760,866 | 27,741,464 | 26,837,938 |
Comprehensive Income (net of tax) | ||||
Comprehensive income | $ 14,896 | $ 12,971 | $ 11,932 | $ 23,975 |
Consolidated Statements of Shar
Consolidated Statements of Shareholders' Equity (Unaudited) - USD ($) $ in Thousands | Common Stock [Member] | Additional Paid-in Capital [Member] | Retained Earnings [Member] | AOCI Attributable to Parent [Member] | Total |
Balance (in shares) at Dec. 31, 2019 | 26,786,459 | ||||
Balance at Dec. 31, 2019 | $ 27 | $ 268,059 | $ 324,722 | $ (7,018) | $ 585,790 |
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares) | 23,525 | ||||
Common shares issued on exercise of options and other, net of shares withheld for tax obligations | $ 0 | (902) | 0 | 0 | (902) |
Stock-based compensation expense | $ 0 | 3,033 | 0 | 0 | 3,033 |
Repurchases of common stock (in shares) | (161,460) | ||||
Repurchases of common stock | $ 0 | (1,616) | (9,569) | 0 | (11,185) |
Net income | 0 | 0 | 13,984 | 0 | 13,984 |
Other comprehensive loss | |||||
Foreign currency translation adjustment | $ 0 | 0 | 0 | (2,980) | (2,980) |
Comprehensive income | 11,004 | ||||
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares) | 23,525 | ||||
Common shares issued on exercise of options and other, net of shares withheld for tax obligations | $ 0 | (902) | 0 | 0 | (902) |
Stock-based compensation expense | $ 0 | 3,033 | 0 | 0 | 3,033 |
Repurchases of common stock (in shares) | (161,460) | ||||
Repurchases of common stock | $ 0 | (1,616) | (9,569) | 0 | (11,185) |
Net income | $ 0 | 0 | 13,984 | 0 | 13,984 |
Balance (in shares) at Dec. 31, 2019 | 26,786,459 | ||||
Balance at Dec. 31, 2019 | $ 27 | 268,059 | 324,722 | (7,018) | 585,790 |
Balance (in shares) at Mar. 31, 2020 | 26,648,524 | ||||
Balance at Mar. 31, 2020 | $ 27 | 268,574 | 329,137 | (9,998) | 587,740 |
Balance (in shares) at Dec. 31, 2019 | 26,786,459 | ||||
Balance at Dec. 31, 2019 | $ 27 | 268,059 | 324,722 | (7,018) | 585,790 |
Net income | 26,591 | ||||
Other comprehensive loss | |||||
Comprehensive income | 23,975 | ||||
Net income | 26,591 | ||||
Balance (in shares) at Dec. 31, 2019 | 26,786,459 | ||||
Balance at Dec. 31, 2019 | $ 27 | 268,059 | 324,722 | (7,018) | 585,790 |
Balance (in shares) at Jun. 30, 2020 | 26,706,556 | ||||
Balance at Jun. 30, 2020 | $ 27 | 272,231 | 338,625 | (9,634) | 601,249 |
Balance (in shares) at Mar. 31, 2020 | 26,648,524 | ||||
Balance at Mar. 31, 2020 | $ 27 | 268,574 | 329,137 | (9,998) | 587,740 |
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares) | 96,186 | ||||
Common shares issued on exercise of options and other, net of shares withheld for tax obligations | $ 0 | 400 | 0 | 0 | 400 |
Stock-based compensation expense | $ 0 | 3,639 | 0 | 0 | 3,639 |
Repurchases of common stock (in shares) | (38,154) | ||||
Repurchases of common stock | $ 0 | (382) | (3,119) | 0 | (3,501) |
Net income | 0 | 0 | 12,607 | 0 | 12,607 |
Other comprehensive loss | |||||
Foreign currency translation adjustment | 0 | 0 | 364 | 364 | |
Comprehensive income | 12,971 | ||||
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares) | 96,186 | ||||
Common shares issued on exercise of options and other, net of shares withheld for tax obligations | $ 0 | 400 | 0 | 0 | 400 |
Stock-based compensation expense | $ 0 | 3,639 | 0 | 0 | 3,639 |
Repurchases of common stock (in shares) | (38,154) | ||||
Repurchases of common stock | $ 0 | (382) | (3,119) | 0 | (3,501) |
Net income | $ 0 | 0 | 12,607 | 0 | 12,607 |
Balance (in shares) at Mar. 31, 2020 | 26,648,524 | ||||
Balance at Mar. 31, 2020 | $ 27 | 268,574 | 329,137 | (9,998) | 587,740 |
Balance (in shares) at Jun. 30, 2020 | 26,706,556 | ||||
Balance at Jun. 30, 2020 | $ 27 | 272,231 | 338,625 | (9,634) | $ 601,249 |
Balance (in shares) at Dec. 31, 2020 | 26,776,796 | 26,776,796 | |||
Balance at Dec. 31, 2020 | $ 27 | 284,848 | 362,901 | (3,420) | $ 644,356 |
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares) | 48,955 | ||||
Common shares issued on exercise of options and other, net of shares withheld for tax obligations | $ 0 | (290) | 0 | 0 | (290) |
Common shares issued for Hubs acquisition (in shares) | 863,995 | ||||
Common shares issued for Hubs acquisition | $ 1 | 166,708 | 0 | 0 | 166,709 |
Stock-based compensation expense | $ 0 | 5,620 | 0 | 0 | 5,620 |
Repurchases of common stock (in shares) | 0 | ||||
Repurchases of common stock | $ 0 | 0 | 0 | 0 | 0 |
Net income | 0 | 0 | 3,712 | 0 | 3,712 |
Other comprehensive loss | |||||
Foreign currency translation adjustment | 0 | 0 | 0 | (6,842) | (6,842) |
Net unrealized gains (losses) on investments in securities | $ 0 | 0 | 0 | 166 | 166 |
Comprehensive income | (2,964) | ||||
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares) | 48,955 | ||||
Common shares issued on exercise of options and other, net of shares withheld for tax obligations | $ 0 | (290) | 0 | 0 | (290) |
Stock-based compensation expense | $ 0 | 5,620 | 0 | 0 | 5,620 |
Repurchases of common stock (in shares) | 0 | ||||
Repurchases of common stock | $ 0 | 0 | 0 | 0 | 0 |
Net income | $ 0 | 0 | 3,712 | 0 | $ 3,712 |
Balance (in shares) at Dec. 31, 2020 | 26,776,796 | 26,776,796 | |||
Balance at Dec. 31, 2020 | $ 27 | 284,848 | 362,901 | (3,420) | $ 644,356 |
Balance (in shares) at Mar. 31, 2021 | 27,689,746 | ||||
Balance at Mar. 31, 2021 | $ 28 | 456,886 | 366,613 | (10,096) | $ 813,431 |
Balance (in shares) at Dec. 31, 2020 | 26,776,796 | 26,776,796 | |||
Balance at Dec. 31, 2020 | $ 27 | 284,848 | 362,901 | (3,420) | $ 644,356 |
Net income | 16,627 | ||||
Other comprehensive loss | |||||
Comprehensive income | 11,932 | ||||
Net income | $ 16,627 | ||||
Balance (in shares) at Dec. 31, 2020 | 26,776,796 | 26,776,796 | |||
Balance at Dec. 31, 2020 | $ 27 | 284,848 | 362,901 | (3,420) | $ 644,356 |
Balance (in shares) at Jun. 30, 2021 | 27,761,063 | 27,761,063 | |||
Balance at Jun. 30, 2021 | $ 28 | 461,597 | 378,467 | (8,115) | $ 831,977 |
Balance (in shares) at Mar. 31, 2021 | 27,689,746 | ||||
Balance at Mar. 31, 2021 | $ 28 | 456,886 | 366,613 | (10,096) | 813,431 |
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares) | 85,317 | ||||
Common shares issued on exercise of options and other, net of shares withheld for tax obligations | $ 0 | (81) | 0 | 0 | (81) |
Stock-based compensation expense | $ 0 | 4,941 | 0 | 0 | 4,941 |
Repurchases of common stock (in shares) | (14,000) | ||||
Repurchases of common stock | $ 0 | (149) | (1,061) | 0 | (1,210) |
Net income | 0 | 0 | 12,915 | 0 | 12,915 |
Other comprehensive loss | |||||
Foreign currency translation adjustment | 0 | 0 | 0 | 2,030 | 2,030 |
Net unrealized gains (losses) on investments in securities | $ 0 | 0 | 0 | (49) | (49) |
Comprehensive income | 14,896 | ||||
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares) | 85,317 | ||||
Common shares issued on exercise of options and other, net of shares withheld for tax obligations | $ 0 | (81) | 0 | 0 | (81) |
Stock-based compensation expense | $ 0 | 4,941 | 0 | 0 | 4,941 |
Repurchases of common stock (in shares) | (14,000) | ||||
Repurchases of common stock | $ 0 | (149) | (1,061) | 0 | (1,210) |
Net income | $ 0 | 0 | 12,915 | 0 | 12,915 |
Balance (in shares) at Mar. 31, 2021 | 27,689,746 | ||||
Balance at Mar. 31, 2021 | $ 28 | 456,886 | 366,613 | (10,096) | $ 813,431 |
Balance (in shares) at Jun. 30, 2021 | 27,761,063 | 27,761,063 | |||
Balance at Jun. 30, 2021 | $ 28 | $ 461,597 | $ 378,467 | $ (8,115) | $ 831,977 |
Consolidated Statements of Cash
Consolidated Statements of Cash Flows (Unaudited) - USD ($) $ in Thousands | 6 Months Ended | |
Jun. 30, 2021 | Jun. 30, 2020 | |
Operating activities | ||
Net income | $ 16,627 | $ 26,591 |
Adjustments to reconcile net income to net cash provided by operating activities: | ||
Depreciation and amortization | 20,127 | 15,855 |
Stock-based compensation expense | 10,561 | 6,672 |
Deferred taxes | 419 | 5,651 |
Amortization of marketable securities | 261 | 129 |
Realized gain on available-sale-securities | (117) | 0 |
Fair value of contingent consideration | (7,763) | 0 |
Other | 125 | (854) |
Changes in operating assets and liabilities: | ||
Accounts receivable | (23,296) | (4,292) |
Inventories | 1,727 | (801) |
Prepaid expenses and other | 1,810 | (1,068) |
Income taxes | (4,015) | (1,341) |
Accounts payable | 5,011 | 1,082 |
Accrued liabilities and other | (748) | 5,793 |
Net cash provided by operating activities | 20,729 | 53,417 |
Investing activities | ||
Purchases of property, equipment and other capital assets | (23,929) | (33,305) |
Cash used for acquisitions, net of cash acquired | (127,413) | 0 |
Purchases of other assets and investments | 0 | (3,000) |
Purchases of marketable securities | (15,159) | (57,212) |
Proceeds from sales of marketable securities | 47,694 | 0 |
Proceeds from maturities of marketable securities | 13,725 | 28,225 |
Net cash used in investing activities | (105,082) | (65,292) |
Financing activities | ||
Proceeds from exercises of stock options | 3,838 | 2,855 |
Purchases of shares withheld for tax obligations | (4,209) | (3,367) |
Repurchases of common stock | (1,210) | (14,686) |
Principal repayments of finance lease obligations | (275) | 0 |
Net cash used in financing activities | (1,856) | (15,198) |
Effect of exchange rate changes on cash and cash equivalents | 515 | (149) |
Net decrease in cash and cash equivalents | (85,694) | (27,222) |
Cash and cash equivalents, beginning of period | 127,603 | 125,225 |
Cash and cash equivalents, end of period | $ 41,909 | $ 98,003 |
Note 1 - Basis of Presentation
Note 1 - Basis of Presentation | 6 Months Ended |
Jun. 30, 2021 | |
Notes to Financial Statements | |
Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block] | Note 1 The unaudited interim Consolidated Financial Statements of Proto Labs, Inc. (Protolabs, the Company, we, us or our) have been prepared in accordance with accounting principles generally accepted in the United States of America (U.S. GAAP) for interim financial information and with the instructions to Form 10 10 X. not may The preparation of the financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets, liabilities, revenues, expenses, and the related disclosures at the date of the financial statements and during the reporting period. Actual results could materially differ from these estimates. For further information, refer to the audited Consolidated Financial Statements and Notes thereto included in the Company’s Annual Report on Form 10 December 31, 2020 February 19, 2021. The accompanying Consolidated Balance Sheet as of December 31, 2020 not 10 10 February 19, 2021 |
Note 2 - Recent Accounting Pron
Note 2 - Recent Accounting Pronouncements | 6 Months Ended |
Jun. 30, 2021 | |
Notes to Financial Statements | |
Significant Accounting Policies [Text Block] | Note 2 Recently Adopted Accounting Pronouncements In December 2019, 2019 12, Income Taxes (Topic 740 2019 12 2019 12 2019 12 December 15, 2020, 2019 12 January 1, 2021 no |
Note 3 - Net Income Per Common
Note 3 - Net Income Per Common Share | 6 Months Ended |
Jun. 30, 2021 | |
Notes to Financial Statements | |
Earnings Per Share [Text Block] | Note 3 Basic net income per share is computed based on the weighted-average number of common shares outstanding. Diluted net income per share is computed based on the weighted-average number of common shares outstanding, increased by the number of additional shares that would have been outstanding had potentially dilutive common shares been issued and reduced by the number of shares the Company could have repurchased from the proceeds from issuance of the potentially dilutive shares. Potentially dilutive shares of common stock include stock options, restricted stock units and restricted stock awards granted under stock-based compensation plans and shares committed to be purchased under the employee stock purchase plan. Performance stock units are excluded from the calculation of dilutive potential common shares until the performance conditions have been satisfied. The table below sets forth the computation of basic and diluted net income per share: Three Months Ended Six Months Ended June 30, June 30, (in thousands, except share and per share amounts) 2021 2020 2021 2020 Net income $ 12,915 $ 12,607 $ 16,627 $ 26,591 Basic - weighted-average shares outstanding: 27,735,732 26,660,498 27,600,684 26,718,652 Effect of dilutive securities: Employee stock options and other 9,138 100,368 140,780 119,286 Diluted - weighted-average shares outstanding: 27,744,870 26,760,866 27,741,464 26,837,938 Net income per share: Basic $ 0.47 $ 0.47 $ 0.60 $ 1.00 Diluted $ 0.47 $ 0.47 $ 0.60 $ 0.99 |
Note 4 - Business Combinations
Note 4 - Business Combinations | 6 Months Ended |
Jun. 30, 2021 | |
Notes to Financial Statements | |
Business Combination Disclosure [Text Block] | Note 4 On January 22, 2021, 3D 2021 2022, Hubs is based in Amsterdam, Netherlands and is a leading online manufacturing platform that provides customers with on-demand access to a global network of premium manufacturing partners. The acquisition enhances the Company’s value proposition by expanding the customer offerings, enabling the Company to more holistically serve its customers. The fair value of the consideration paid for this acquisition has been allocated on a preliminary basis to the assets purchased and liabilities assumed based on their estimated fair values as of the acquisition date, with any excess recorded as goodwill. The goodwill associated with the acquisition represents both the strategic and growth opportunities by significantly expanding the customer offering with a network of premium manufacturing partners. The goodwill related to the acquisition is not The Company recorded a contingent consideration liability of $13.6 million as of the acquisition date representing the estimated fair value of the amounts payable to former shareholders, as outlined under the terms of the merger agreement, payable subject to the satisfaction of performance-based targets during fiscal year 2021 2022, $25.0 143,983 $27.8 3 second 2021, The results of Hubs since the date of acquisition have been included with Protolabs' results. Pro forma disclosures of the consolidated results of the Company with the full year effects of Hubs, as if the acquisition had occurred on January 1, 2020, not not not The acquisition has been accounted for under the acquisition method of accounting in accordance with ASC 805, Business Combinations second 2021, June 30, 2021, 2021. (in thousands) Acquisition Assets acquired: Current assets $ 2,497 Intangible assets 30,770 Goodwill 281,845 Other long-term assets 1,139 Total assets acquired 316,251 Liabilities assumed: Current contingent consideration 7,093 Current liabilities 5,666 Long-term contingent consideration 6,507 Long-term deferred tax liabilities 2,608 Other long-term liabilities 255 Total liabilities assumed 22,129 Net assets acquired 294,122 Cash paid 133,847 Cash acquired (6,434 ) Net cash consideration 127,413 Equity portion of purchase price 166,709 Total purchase consideration $ 294,122 |
Note 5 - Goodwill and Other Int
Note 5 - Goodwill and Other Intangible Assets | 6 Months Ended |
Jun. 30, 2021 | |
Notes to Financial Statements | |
Goodwill and Intangible Assets Disclosure [Text Block] | Note 5 The changes in the carrying amount of goodwill during the six June 30, 2021 (in thousands) Six Months Ended June 30, 2021 Balance as of the beginning of the period $ 128,752 Goodwill acquired during the period 281,845 Foreign currency translation adjustments (3,406 ) Balance as of the end of the period $ 407,191 Goodwill increased $281.8 million during the six June 30, 2021 €106.5 Intangible assets other than goodwill at June 30, 2021 December 31, 2020 June 30, 2021 December 31, 2020 Useful Weighted Average (in thousands) Gross Accumulated Amortization Net Gross Accumulated Amortization Net Life (in years) Useful Life Remaining (in years) Intangible assets with finite lives: Marketing assets $930 $(667 ) $263 $930 $(620 ) $310 10.0 2.8 Non-compete agreement 853 (297 ) 556 270 (238 ) 32 2.0 - 5.0 3.3 Software technology 13,229 (4,330 ) 8,899 13,229 (3,645 ) 9,584 10.0 7.0 Software platform 27,170 (1,089 ) 26,081 - - - 10.0 9.6 Tradenames 365 (51 ) 314 - - - 3.0 2.6 Customer relationships 12,292 (6,731 ) 5,561 10,070 (5,646 ) 4,424 3.0 - 9.0 2.3 Total intangible assets $ 54,839 $ (13,165 ) $ 41,674 $ 24,499 $ (10,149 ) $ 14,350 Intangible assets increased $30.8 million during the six June 30, 2021 €11.6 June 30, 2021. December 31, 2020. three June 30, 2021 2020 six June 30, 2021 2020, Estimated aggregated amortization expense based on the current carrying value of the amortizable intangible assets and current exchange rates is as follows: (in thousands) Estimated Amortization Expense Remaining 2021 $ 3,130 2022 6,259 2023 6,056 2024 3,832 2025 3,750 Thereafter 18,647 Total estimated amortization expense $ 41,674 |
Note 6 - Fair Value Measurement
Note 6 - Fair Value Measurements | 6 Months Ended |
Jun. 30, 2021 | |
Notes to Financial Statements | |
Fair Value Disclosures [Text Block] | Note 6 Accounting Standards Codification, Fair Value Measuremen 820 820 three may Level 1—Quoted Level 2—Observable 1 not Level 3—Unobservable no The Company's assets and liabilities that are required to be measured or disclosed at fair value on a recurring basis include cash and cash equivalents, marketable securities and contingent consideration. The Company’s cash consists of bank deposits. The Company’s cash equivalents measured at fair value consist of money market mutual funds. The Company determines the fair value of these investments using Level 1 1 2 3 The following table summarizes financial assets as of June 30, 2021 December 31, 2020 June 30, 2021 December 31, 2020 (in thousands) Level 1 Level 2 Level 3 Level 1 Level 2 Level 3 Financial Assets: Cash and cash equivalents $ 40,694 $ - $ - $ 72,225 $ - $ - Money market mutual fund 1,215 - - 55,378 - - Marketable securities 17,951 29,090 - - - - Total $ 59,860 $ 29,090 $ - $ 127,603 $ - $ - Financial Liabilities: Contingent consideration $ - $ - $ 5,629 $ - $ - $ - Total $ - $ - $ 5,629 $ - $ - $ - In the first 2021, The Company recorded a contingent consideration liability at the acquisition date of Hubs representing the amounts payable to former shareholders, as outlined under the terms of the merger agreement, payable subject to the satisfaction of performance-based targets during fiscal year 2021 2022, 3 |
Note 7 - Marketable Securities
Note 7 - Marketable Securities | 6 Months Ended |
Jun. 30, 2021 | |
Notes to Financial Statements | |
Investment [Text Block] | Note 7 The Company invests in short-term and long-term agency, municipal, corporate and other debt securities. As of June 30, 2021 December 31, 2020, first 2021 not June 30, 2021 December 31, 2020 June 30, 2021 (in thousands) Cost Unrealized Gains Unrealized Losses Fair Value U.S. municipal securities $ 20,968 $ 43 $ (17 ) $ 20,994 Corporate debt securities 19,062 68 (29 ) 19,101 U.S. government agency securities 1,500 - (2 ) 1,498 Certificates of deposit/time deposits 5,394 54 - 5,448 Total marketable securities $ 46,924 $ 165 $ (48 ) $ 47,041 December 31, 2020 (in thousands) Cost Unrealized Gains Unrealized Losses Fair Value U.S. municipal securities $ 25,003 $ 83 $ (2 ) $ 25,084 Corporate debt securities 42,048 211 (11 ) 42,248 U.S. government agency securities 18,500 6 (10 ) 18,496 Certificates of deposit/time deposits 5,395 93 - 5,488 Commercial paper 2,499 - - 2,499 Total marketable securities $ 93,445 $ 393 $ (23 ) $ 93,815 Fair values for the corporate debt securities are primarily determined based on quoted market prices (Level 1 2 During the first 2020, 2016 13, Financial Instruments – Credit Losses. no Classification of marketable securities as current or non-current is based upon the security’s maturity date as of the date of these financial statements. The June 30, 2021 may may June 30, (in thousands) 2021 Due in one year or less $ 18,341 Due after one year through five years 28,700 Total marketable securities $ 47,041 |
Note 8 - Inventory
Note 8 - Inventory | 6 Months Ended |
Jun. 30, 2021 | |
Notes to Financial Statements | |
Inventory Disclosure [Text Block] | Note 8 Inventory consists primarily of raw materials, which are recorded at the lower of cost or market using the standard cost method, which approximates first first The Company’s inventory consisted of the following as of the dates indicated: June 30, December 31, (in thousands) 2021 2020 Total inventory $ 9,395 $ 11,122 Allowance for obsolescence (284 ) (260 ) Inventory, net of allowance $ 9,111 $ 10,862 |
Note 9 - Stock-based Compensati
Note 9 - Stock-based Compensation | 6 Months Ended |
Jun. 30, 2021 | |
Notes to Financial Statements | |
Share-based Payment Arrangement [Text Block] | Note 9 Under the Company’s 2012 2012 2012 ten may 2012 may not Employee Stock Purchase Plan The Company’s 2012 six May 15 November 15, first Stock-Based Compensation Expense Stock-based compensation expense was $4.9 million and $3.6 million for the three June 30, 2021 2020 six June 30, 2021 2020, Stock Options The following table summarizes stock option activity during the six June 30, 2021 Weighted- Average Stock Options Exercise Price Options outstanding at December 31, 2020 229,531 $ 86.46 Granted 57,901 128.14 Exercised (28,991 ) 58.78 Forfeited (8,547 ) 101.65 Options outstanding at June 30, 2021 249,894 $ 98.81 Exercisable at June 30, 2021 116,452 $ 81.38 The outstanding options generally have a term of ten four five first first The weighted-average grant date fair value of options that were granted during the six June 30, 2021 The following table provides the assumptions used in the Black-Scholes pricing model valuation of options during the six June 30, 2021 2020 Six Months Ended June 30, 2021 2020 Risk-free interest rate 0.80 - 1.12% 0.50 - 1.47% Expected life (years) 6.25 6.25 Expected volatility 45.28 - 45.53% 42.40 - 43.83% Expected dividend yield 0% 0% As of June 30, 2021 Restricted Stock Restricted stock awards are share-settled awards and restrictions lapse ratably over the vesting period, which is generally a period from three five first first The following table summarizes restricted stock activity during the six June 30, 2021 Weighted- Average Grant Date Restricted Fair Value Stock Per Share Restricted stock at December 31, 2020 307,199 $ 98.87 Granted 178,398 133.67 Restrictions lapsed (113,315 ) 91.10 Forfeited (14,525 ) 105.72 Restricted stock at June 30, 2021 357,757 $ 118.41 As of June 30, 2021 Performance Stock Performance stock units (PSUs) are expressed in terms of a target number of PSUs, with anywhere between 0 three 2017 2019 2021 2020 2021 The following table summarizes performance stock activity during the six June 30, 2021 Weighted- Average Grant Date Performance Fair Value Stock Per Share Performance stock at December 31, 2020 19,956 $ 118.66 Granted 15,078 203.64 Restrictions lapsed - - Performance change - - Forfeited (4,184 ) 99.59 Performance stock at June 30, 2021 30,850 $ 160.19 The following table provides the assumptions used in the Monte Carlo pricing model valuation of PSUs during the six June 30, 2021 2020 Six Months Ended June 30, 2021 2020 Risk-free interest rate 0.22 % 1.41 % Expected life (years) 2.87 2.88 Expected volatility 51.40 % 38.70 % Expected dividend yield 0 % 0 % As of June 30, 2021 Employee Stock Purchase Plan The following table presents the assumptions used to estimate the fair value of the ESPP during the six June 30, 2021 2020 Six Months Ended June 30, 2021 2020 Risk-free interest rate 0.06 - 0.12% 0.17 - 1.59% Expected life (months) 6.00 6.00 Expected volatility 50.85 - 65.53% 42.63 - 59.99% Expected dividend yield 0% 0% |
Note 10 - Accumulated Other Com
Note 10 - Accumulated Other Comprehensive Income (Loss) | 6 Months Ended |
Jun. 30, 2021 | |
Notes to Financial Statements | |
Disclosure of Reclassification Amount [Text Block] | Note 10 Other comprehensive income (loss) is comprised of foreign currency translation adjustments and net unrealized gains (losses) on investments in securities. The following table presents the changes in accumulated other comprehensive income (loss) balances during the three six June 30, 2021 2020 Three Months Ended Six Months Ended June 30, June 30, (in thousands) 2021 2020 2021 2020 Balance at beginning of period $ (10,096 ) $ (9,998 ) $ (3,420 ) $ (7,018 ) Foreign currency translation adjustments Other comprehensive income (loss) before reclassifications 2,030 364 (4,812 ) (2,616 ) Amounts reclassified from accumulated other comprehensive loss - - - - Net current-period other comprehensive income (loss) 2,030 364 (4,812 ) (2,616 ) Net unrealized gains (losses) on investments in securities Other comprehensive income (loss) before reclassifications (49 ) - 117 - Amounts reclassified from accumulated other comprehensive loss - - - - Net current-period other comprehensive income (loss) (49 ) - 117 - Balance at end of period $ (8,115 ) $ (9,634 ) $ (8,115 ) $ (9,634 ) |
Note 11 - Income Taxes
Note 11 - Income Taxes | 6 Months Ended |
Jun. 30, 2021 | |
Notes to Financial Statements | |
Income Tax Disclosure [Text Block] | Note 11 The Company is subject to income tax in multiple jurisdictions and the use of estimates is required to determine the provision for income taxes. For the three June 30, 2021 2020 three six June 30, 2021 not three June 30, 2021 three June 30, 2021 2020 six June 30, 2021 six June 30, 2021 2020 The effective income tax rate for the six June 30, 2021 The Company had unrecognized tax benefits totaling $5.0 million as of June 30, 2021 December 31, 2020 On March 11, 2021, not June 30, 2021 |
Note 12 - Segment Reporting
Note 12 - Segment Reporting | 6 Months Ended |
Jun. 30, 2021 | |
Notes to Financial Statements | |
Segment Reporting Disclosure [Text Block] | Note 12 The Company’s reportable segments are based on the internal reporting used by the Company’s Chief Executive Officer, who is the chief operating decision maker (CODM), to assess operating performance and make decisions about the allocation of resources. The Corporate Unallocated and Japan category includes non-reportable segments, as well as research and development and general and administrative costs that the Company does not Intercompany transactions primarily relate to intercontinental activity and have been eliminated and are excluded from the reported amounts. The difference between income from operations and pre-tax income relates to foreign currency-related gains and losses and interest income on cash balances and investments, which are not Revenue and income from operations by reportable segment for the three six June 30, 2021 2020 Three Months Ended June 30, Six Months Ended June 30, (in thousands) 2021 2020 2021 2020 Revenue: United States $ 95,344 $ 86,823 $ 186,397 $ 176,899 Europe 24,655 16,729 46,104 37,516 Japan 3,049 3,023 6,673 7,268 Total revenue $ 123,048 $ 106,575 $ 239,174 $ 221,683 Three Months Ended June 30, Six Months Ended June 30, (in thousands) 2021 2020 2021 2020 Income from Operations: United States $ 26,280 $ 24,349 $ 48,783 $ 49,438 Europe 5,063 2,261 3,692 6,625 Corporate Unallocated and Japan (15,239 ) (12,259 ) (32,110 ) (24,887 ) Total Income from Operations $ 16,104 $ 14,351 $ 20,365 $ 31,176 Total long-lived assets at June 30, 2021 December 31, 2020 June 30, December 31, (in thousands) 2021 2020 Total long-lived assets: United States $ 222,117 $ 215,721 Europe 60,140 59,388 Japan 6,238 7,557 Total Long-lived Assets $ 288,495 $ 282,666 Revenue by product line for the three six June 30, 2021 2020 Three Months Ended June 30, Six Months Ended June 30, (in thousands) 2021 2020 2021 2020 Revenue: Injection Molding $ 58,168 $ 57,894 $ 114,527 $ 112,670 CNC Machining 41,592 28,760 78,295 66,645 3D Printing 18,170 14,236 35,405 30,184 Sheet Metal 4,717 4,669 9,936 10,318 Other Revenue 401 1,016 1,011 1,866 Total revenue $ 123,048 $ 106,575 $ 239,174 $ 221,683 |
Note 3 - Net Income Per Commo_2
Note 3 - Net Income Per Common Share (Tables) | 6 Months Ended |
Jun. 30, 2021 | |
Notes Tables | |
Schedule of Earnings Per Share, Basic and Diluted [Table Text Block] | Three Months Ended Six Months Ended June 30, June 30, (in thousands, except share and per share amounts) 2021 2020 2021 2020 Net income $ 12,915 $ 12,607 $ 16,627 $ 26,591 Basic - weighted-average shares outstanding: 27,735,732 26,660,498 27,600,684 26,718,652 Effect of dilutive securities: Employee stock options and other 9,138 100,368 140,780 119,286 Diluted - weighted-average shares outstanding: 27,744,870 26,760,866 27,741,464 26,837,938 Net income per share: Basic $ 0.47 $ 0.47 $ 0.60 $ 1.00 Diluted $ 0.47 $ 0.47 $ 0.60 $ 0.99 |
Note 4 - Business Combinations
Note 4 - Business Combinations (Tables) | 6 Months Ended |
Jun. 30, 2021 | |
Acquired 3D Hubs [Member] | |
Notes Tables | |
Schedule of Recognized Identified Assets Acquired and Liabilities Assumed [Table Text Block] | (in thousands) Acquisition Assets acquired: Current assets $ 2,497 Intangible assets 30,770 Goodwill 281,845 Other long-term assets 1,139 Total assets acquired 316,251 Liabilities assumed: Current contingent consideration 7,093 Current liabilities 5,666 Long-term contingent consideration 6,507 Long-term deferred tax liabilities 2,608 Other long-term liabilities 255 Total liabilities assumed 22,129 Net assets acquired 294,122 Cash paid 133,847 Cash acquired (6,434 ) Net cash consideration 127,413 Equity portion of purchase price 166,709 Total purchase consideration $ 294,122 |
Note 5 - Goodwill and Other I_2
Note 5 - Goodwill and Other Intangible Assets (Tables) | 6 Months Ended |
Jun. 30, 2021 | |
Notes Tables | |
Schedule of Goodwill [Table Text Block] | (in thousands) Six Months Ended June 30, 2021 Balance as of the beginning of the period $ 128,752 Goodwill acquired during the period 281,845 Foreign currency translation adjustments (3,406 ) Balance as of the end of the period $ 407,191 |
Schedule of Finite-Lived Intangible Assets [Table Text Block] | June 30, 2021 December 31, 2020 Useful Weighted Average (in thousands) Gross Accumulated Amortization Net Gross Accumulated Amortization Net Life (in years) Useful Life Remaining (in years) Intangible assets with finite lives: Marketing assets $930 $(667 ) $263 $930 $(620 ) $310 10.0 2.8 Non-compete agreement 853 (297 ) 556 270 (238 ) 32 2.0 - 5.0 3.3 Software technology 13,229 (4,330 ) 8,899 13,229 (3,645 ) 9,584 10.0 7.0 Software platform 27,170 (1,089 ) 26,081 - - - 10.0 9.6 Tradenames 365 (51 ) 314 - - - 3.0 2.6 Customer relationships 12,292 (6,731 ) 5,561 10,070 (5,646 ) 4,424 3.0 - 9.0 2.3 Total intangible assets $ 54,839 $ (13,165 ) $ 41,674 $ 24,499 $ (10,149 ) $ 14,350 |
Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block] | (in thousands) Estimated Amortization Expense Remaining 2021 $ 3,130 2022 6,259 2023 6,056 2024 3,832 2025 3,750 Thereafter 18,647 Total estimated amortization expense $ 41,674 |
Note 6 - Fair Value Measureme_2
Note 6 - Fair Value Measurements (Tables) | 6 Months Ended |
Jun. 30, 2021 | |
Notes Tables | |
Fair Value, Assets Measured on Recurring Basis [Table Text Block] | June 30, 2021 December 31, 2020 (in thousands) Level 1 Level 2 Level 3 Level 1 Level 2 Level 3 Financial Assets: Cash and cash equivalents $ 40,694 $ - $ - $ 72,225 $ - $ - Money market mutual fund 1,215 - - 55,378 - - Marketable securities 17,951 29,090 - - - - Total $ 59,860 $ 29,090 $ - $ 127,603 $ - $ - Financial Liabilities: Contingent consideration $ - $ - $ 5,629 $ - $ - $ - Total $ - $ - $ 5,629 $ - $ - $ - |
Note 7 - Marketable Securities
Note 7 - Marketable Securities (Tables) | 6 Months Ended |
Jun. 30, 2021 | |
Notes Tables | |
Debt Securities, Available-for-sale [Table Text Block] | June 30, 2021 (in thousands) Cost Unrealized Gains Unrealized Losses Fair Value U.S. municipal securities $ 20,968 $ 43 $ (17 ) $ 20,994 Corporate debt securities 19,062 68 (29 ) 19,101 U.S. government agency securities 1,500 - (2 ) 1,498 Certificates of deposit/time deposits 5,394 54 - 5,448 Total marketable securities $ 46,924 $ 165 $ (48 ) $ 47,041 December 31, 2020 (in thousands) Cost Unrealized Gains Unrealized Losses Fair Value U.S. municipal securities $ 25,003 $ 83 $ (2 ) $ 25,084 Corporate debt securities 42,048 211 (11 ) 42,248 U.S. government agency securities 18,500 6 (10 ) 18,496 Certificates of deposit/time deposits 5,395 93 - 5,488 Commercial paper 2,499 - - 2,499 Total marketable securities $ 93,445 $ 393 $ (23 ) $ 93,815 |
Investments Classified by Contractual Maturity Date [Table Text Block] | June 30, (in thousands) 2021 Due in one year or less $ 18,341 Due after one year through five years 28,700 Total marketable securities $ 47,041 |
Note 8 - Inventory (Tables)
Note 8 - Inventory (Tables) | 6 Months Ended |
Jun. 30, 2021 | |
Notes Tables | |
Schedule of Inventory, Current [Table Text Block] | June 30, December 31, (in thousands) 2021 2020 Total inventory $ 9,395 $ 11,122 Allowance for obsolescence (284 ) (260 ) Inventory, net of allowance $ 9,111 $ 10,862 |
Note 9 - Stock-based Compensa_2
Note 9 - Stock-based Compensation (Tables) | 6 Months Ended |
Jun. 30, 2021 | |
Notes Tables | |
Share-based Payment Arrangement, Option, Activity [Table Text Block] | Weighted- Average Stock Options Exercise Price Options outstanding at December 31, 2020 229,531 $ 86.46 Granted 57,901 128.14 Exercised (28,991 ) 58.78 Forfeited (8,547 ) 101.65 Options outstanding at June 30, 2021 249,894 $ 98.81 Exercisable at June 30, 2021 116,452 $ 81.38 |
Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block] | Six Months Ended June 30, 2021 2020 Risk-free interest rate 0.80 - 1.12% 0.50 - 1.47% Expected life (years) 6.25 6.25 Expected volatility 45.28 - 45.53% 42.40 - 43.83% Expected dividend yield 0% 0% |
Share-based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block] | Weighted- Average Grant Date Restricted Fair Value Stock Per Share Restricted stock at December 31, 2020 307,199 $ 98.87 Granted 178,398 133.67 Restrictions lapsed (113,315 ) 91.10 Forfeited (14,525 ) 105.72 Restricted stock at June 30, 2021 357,757 $ 118.41 |
Schedule of Nonvested Performance-based Units Activity [Table Text Block] | Weighted- Average Grant Date Performance Fair Value Stock Per Share Performance stock at December 31, 2020 19,956 $ 118.66 Granted 15,078 203.64 Restrictions lapsed - - Performance change - - Forfeited (4,184 ) 99.59 Performance stock at June 30, 2021 30,850 $ 160.19 |
Schedule of Share-based Payment Award, Awards Other Than Stock Options, Valuation Assumptions [Table Text Block] | Six Months Ended June 30, 2021 2020 Risk-free interest rate 0.22 % 1.41 % Expected life (years) 2.87 2.88 Expected volatility 51.40 % 38.70 % Expected dividend yield 0 % 0 % |
Schedule of Share-based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions [Table Text Block] | Six Months Ended June 30, 2021 2020 Risk-free interest rate 0.06 - 0.12% 0.17 - 1.59% Expected life (months) 6.00 6.00 Expected volatility 50.85 - 65.53% 42.63 - 59.99% Expected dividend yield 0% 0% |
Note 10 - Accumulated Other C_2
Note 10 - Accumulated Other Comprehensive Income (Loss) (Tables) | 6 Months Ended |
Jun. 30, 2021 | |
Notes Tables | |
Comprehensive Income (Loss) [Table Text Block] | Three Months Ended Six Months Ended June 30, June 30, (in thousands) 2021 2020 2021 2020 Balance at beginning of period $ (10,096 ) $ (9,998 ) $ (3,420 ) $ (7,018 ) Foreign currency translation adjustments Other comprehensive income (loss) before reclassifications 2,030 364 (4,812 ) (2,616 ) Amounts reclassified from accumulated other comprehensive loss - - - - Net current-period other comprehensive income (loss) 2,030 364 (4,812 ) (2,616 ) Net unrealized gains (losses) on investments in securities Other comprehensive income (loss) before reclassifications (49 ) - 117 - Amounts reclassified from accumulated other comprehensive loss - - - - Net current-period other comprehensive income (loss) (49 ) - 117 - Balance at end of period $ (8,115 ) $ (9,634 ) $ (8,115 ) $ (9,634 ) |
Note 12 - Segment Reporting (Ta
Note 12 - Segment Reporting (Tables) | 6 Months Ended |
Jun. 30, 2021 | |
Notes Tables | |
Income from Operations by Geographic Area [Table Text Block] | Three Months Ended June 30, Six Months Ended June 30, (in thousands) 2021 2020 2021 2020 Income from Operations: United States $ 26,280 $ 24,349 $ 48,783 $ 49,438 Europe 5,063 2,261 3,692 6,625 Corporate Unallocated and Japan (15,239 ) (12,259 ) (32,110 ) (24,887 ) Total Income from Operations $ 16,104 $ 14,351 $ 20,365 $ 31,176 |
Long-lived Assets by Geographic Areas [Table Text Block] | June 30, December 31, (in thousands) 2021 2020 Total long-lived assets: United States $ 222,117 $ 215,721 Europe 60,140 59,388 Japan 6,238 7,557 Total Long-lived Assets $ 288,495 $ 282,666 |
Disaggregation of Revenue [Table Text Block] | Three Months Ended June 30, Six Months Ended June 30, (in thousands) 2021 2020 2021 2020 Revenue: Injection Molding $ 58,168 $ 57,894 $ 114,527 $ 112,670 CNC Machining 41,592 28,760 78,295 66,645 3D Printing 18,170 14,236 35,405 30,184 Sheet Metal 4,717 4,669 9,936 10,318 Other Revenue 401 1,016 1,011 1,866 Total revenue $ 123,048 $ 106,575 $ 239,174 $ 221,683 |
Operating Segments [Member] | |
Notes Tables | |
Revenue from External Customers by Geographic Areas [Table Text Block] | Three Months Ended June 30, Six Months Ended June 30, (in thousands) 2021 2020 2021 2020 Revenue: United States $ 95,344 $ 86,823 $ 186,397 $ 176,899 Europe 24,655 16,729 46,104 37,516 Japan 3,049 3,023 6,673 7,268 Total revenue $ 123,048 $ 106,575 $ 239,174 $ 221,683 |
Note 3 - Net Income Per Commo_3
Note 3 - Net Income Per Common Share - Computation of Basic and Diluted Net Income Per Share (Details) - USD ($) $ / shares in Units, $ in Thousands | 3 Months Ended | 6 Months Ended | ||||
Jun. 30, 2021 | Mar. 31, 2021 | Jun. 30, 2020 | Mar. 31, 2020 | Jun. 30, 2021 | Jun. 30, 2020 | |
Net income | $ 12,915 | $ 3,712 | $ 12,607 | $ 13,984 | $ 16,627 | $ 26,591 |
Basic - weighted-average shares outstanding: (in shares) | 27,735,732 | 26,660,498 | 27,600,684 | 26,718,652 | ||
Employee stock options and other (in shares) | 9,138 | 100,368 | 140,780 | 119,286 | ||
Diluted - weighted-average shares outstanding: (in shares) | 27,744,870 | 26,760,866 | 27,741,464 | 26,837,938 | ||
Basic (in dollars per share) | $ 0.47 | $ 0.47 | $ 0.60 | $ 1 | ||
Diluted (in dollars per share) | $ 0.47 | $ 0.47 | $ 0.60 | $ 0.99 |
Note 4 - Business Combination_2
Note 4 - Business Combinations (Details Textual) - USD ($) $ in Thousands | Jan. 22, 2021 | Jun. 30, 2021 | Jun. 30, 2021 | Jun. 30, 2020 | Dec. 31, 2021 |
Payments to Acquire Businesses, Net of Cash Acquired, Total | $ 127,413 | $ 0 | |||
Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability | $ (7,763) | $ 0 | |||
Acquired 3D Hubs [Member] | |||||
Business Combination, Consideration Transferred, Total | $ 294,122 | ||||
Payments to Acquire Businesses, Net of Cash Acquired, Total | $ 127,413 | ||||
Business Acquisition, Equity Interest Issued or Issuable, Number of Shares (in shares) | 863,995 | ||||
Business Combination, Consideration Transferred, Equity Interests Issued and Issuable | $ 166,709 | ||||
Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High | 52,800 | ||||
Payments to Acquire Businesses, Gross | 133,847 | ||||
Business Combination, Contingent Consideration, Liability, Total | $ 13,600 | ||||
Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability | $ (7,800) | ||||
Business Combination, Provisional Information, Initial Accounting Incomplete, Adjustment, Intangibles | (3,900) | ||||
Goodwill, Purchase Accounting Adjustments | 6,400 | ||||
Business Combination, Provisional Information, Initial Accounting Incomplete, Adjustment, Contingent Consideration | 3,300 | ||||
Business Combination, Provisional Information, Initial Accounting Incomplete, Adjustment, Deferred Tax Liabilities | (500) | ||||
Business Combination, Provisional Information, Initial Accounting Incomplete, Adjustment, Cash Paid | $ (300) | ||||
Acquired 3D Hubs [Member] | Forecast [Member] | Maximum [Member] | |||||
Business Acquisition, Equity Interest Issued or Issuable, Number of Shares (in shares) | 143,983 | ||||
Business Combination, Consideration Transferred, Equity Interests Issued and Issuable | $ 27,800 | ||||
Payments to Acquire Businesses, Gross | $ 25,000 |
Note 4 - Business Combination_3
Note 4 - Business Combinations - Allocation of Purchase Price for the Acquisition of Rapid (Details) - USD ($) $ in Thousands | Jan. 22, 2021 | Jun. 30, 2021 | Jun. 30, 2020 | Dec. 31, 2020 |
Assets acquired: | ||||
Goodwill | $ 407,191 | $ 128,752 | ||
Liabilities assumed: | ||||
Net cash consideration | $ 127,413 | $ 0 | ||
Acquired 3D Hubs [Member] | ||||
Assets acquired: | ||||
Current assets | $ 2,497 | |||
Intangible assets | 30,770 | |||
Goodwill | 281,845 | |||
Other long-term assets | 1,139 | |||
Total assets acquired | 316,251 | |||
Liabilities assumed: | ||||
Current contingent consideration | 7,093 | |||
Current liabilities | 5,666 | |||
Long-term contingent consideration | 6,507 | |||
Long-term deferred tax liabilities | 2,608 | |||
Other long-term liabilities | 255 | |||
Total liabilities assumed | 22,129 | |||
Net assets acquired | 294,122 | |||
Payments to Acquire Businesses, Gross | 133,847 | |||
Cash acquired | (6,434) | |||
Net cash consideration | 127,413 | |||
Business Combination, Consideration Transferred, Equity Interests Issued and Issuable | 166,709 | |||
Total purchase consideration | $ 294,122 |
Note 5 - Goodwill and Other I_3
Note 5 - Goodwill and Other Intangible Assets (Details Textual) $ in Thousands, € in Millions | Jan. 22, 2021USD ($) | Jan. 22, 2021EUR (€) | Jun. 30, 2021USD ($) | Jun. 30, 2020USD ($) | Jun. 30, 2021USD ($) | Jun. 30, 2020USD ($) | Dec. 31, 2020USD ($) |
Goodwill, Acquired During Period | $ 281,845 | ||||||
Finite Lived Intangible Assets, Foreign Currency Translation Gain (Loss) | $ 0 | ||||||
Amortization of Intangible Assets, Total | $ 1,500 | $ 800 | 3,000 | $ 1,500 | |||
Acquired 3D Hubs [Member] | |||||||
Goodwill, Acquired During Period | 281,800 | ||||||
Finite-lived Intangible Assets Acquired | 30,800 | ||||||
Finite Lived Intangible Assets, Foreign Currency Translation Gain (Loss) | $ (400) | ||||||
Acquired 3D Hubs [Member] | Europe [Member] | |||||||
Goodwill, Acquired During Period | € | € 106.5 | ||||||
Finite-lived Intangible Assets Acquired | € | € 11.6 | ||||||
Acquired 3D Hubs [Member] | UNITED STATES | |||||||
Goodwill, Acquired During Period | $ 152,200 | ||||||
Finite-lived Intangible Assets Acquired | $ 16,600 |
Note 5 - Goodwill and Other I_4
Note 5 - Goodwill and Other Intangible Assets - Changes in the Carrying Amount of Goodwill (Details) $ in Thousands | 6 Months Ended |
Jun. 30, 2021USD ($) | |
Goodwill | $ 128,752 |
Goodwill acquired during the period | 281,845 |
Foreign currency translation adjustments | (3,406) |
Goodwill | $ 407,191 |
Note 5 - Goodwill and Other I_5
Note 5 - Goodwill and Other Intangible Assets - Intangible Assets Other Than Goodwill (Details) - USD ($) $ in Thousands | 6 Months Ended | |
Jun. 30, 2021 | Dec. 31, 2020 | |
Gross | $ 54,839 | $ 24,499 |
Accumulated Amortization | (13,165) | (10,149) |
Net | 41,674 | 14,350 |
Marketing-Related Intangible Assets [Member] | ||
Gross | 930 | 930 |
Accumulated Amortization | 667 | 620 |
Net | $ 263 | 310 |
Useful Life (Year) | 10 years | |
Weighted average useful life remaining (Year) | 2 years 9 months 18 days | |
Noncompete Agreements [Member] | ||
Gross | $ 853 | 270 |
Accumulated Amortization | (297) | (238) |
Net | $ 556 | 32 |
Weighted average useful life remaining (Year) | 3 years 3 months 18 days | |
Noncompete Agreements [Member] | Minimum [Member] | ||
Useful Life (Year) | 2 years | |
Noncompete Agreements [Member] | Maximum [Member] | ||
Useful Life (Year) | 5 years | |
Computer Software, Intangible Asset [Member] | ||
Gross | $ 13,229 | 13,229 |
Accumulated Amortization | (4,330) | (3,645) |
Net | $ 8,899 | 9,584 |
Useful Life (Year) | 10 years | |
Weighted average useful life remaining (Year) | 7 years | |
Software Platform [Member] | ||
Gross | $ 27,170 | 0 |
Accumulated Amortization | (1,089) | 0 |
Net | $ 26,081 | 0 |
Useful Life (Year) | 10 years | |
Weighted average useful life remaining (Year) | 9 years 7 months 6 days | |
Trade Names [Member] | ||
Gross | $ 365 | 0 |
Accumulated Amortization | (51) | 0 |
Net | $ 314 | 0 |
Useful Life (Year) | 3 years | |
Weighted average useful life remaining (Year) | 2 years 7 months 6 days | |
Customer Relationships [Member] | ||
Gross | $ 12,292 | 10,070 |
Accumulated Amortization | (6,731) | (5,646) |
Net | $ 5,561 | $ 4,424 |
Weighted average useful life remaining (Year) | 2 years 3 months 18 days | |
Customer Relationships [Member] | Minimum [Member] | ||
Useful Life (Year) | 3 years | |
Customer Relationships [Member] | Maximum [Member] | ||
Useful Life (Year) | 9 years |
Note 5 - Goodwill and Other I_6
Note 5 - Goodwill and Other Intangible Assets - Estimated Aggregated Amortization Expense (Details) - USD ($) $ in Thousands | Jun. 30, 2021 | Dec. 31, 2020 |
Remaining 2021 | $ 3,130 | |
2022 | 6,259 | |
2023 | 6,056 | |
2024 | 3,832 | |
2025 | 3,750 | |
Thereafter | 18,647 | |
Total estimated amortization expense | $ 41,674 | $ 14,350 |
Note 6 - Fair Value Measureme_3
Note 6 - Fair Value Measurements (Details Textual) - Acquired 3D Hubs [Member] - USD ($) $ in Thousands | Jan. 22, 2021 | Dec. 31, 2021 |
Payments to Acquire Businesses, Gross | $ 133,847 | |
Business Acquisition, Equity Interest Issued or Issuable, Number of Shares (in shares) | 863,995 | |
Business Combination, Consideration Transferred, Equity Interests Issued and Issuable | $ 166,709 | |
Maximum [Member] | Forecast [Member] | ||
Payments to Acquire Businesses, Gross | $ 25,000 | |
Business Acquisition, Equity Interest Issued or Issuable, Number of Shares (in shares) | 143,983 | |
Business Combination, Consideration Transferred, Equity Interests Issued and Issuable | $ 27,800 |
Note 6 - Fair Value Measureme_4
Note 6 - Fair Value Measurements - Fair Value of Financial Assets Measured on a Recurring Basis (Details) - USD ($) $ in Thousands | Jun. 30, 2021 | Dec. 31, 2020 |
Marketable securities | $ 47,041 | |
Fair Value, Recurring [Member] | Fair Value, Inputs, Level 1 [Member] | ||
Cash and cash equivalents | 40,694 | $ 72,225 |
Marketable securities | 17,951 | 0 |
Total | 59,860 | 127,603 |
Contingent consideration | 0 | 0 |
Total | 0 | 0 |
Fair Value, Recurring [Member] | Fair Value, Inputs, Level 1 [Member] | Money Market Funds [Member] | ||
Cash and cash equivalents | 1,215 | 55,378 |
Fair Value, Recurring [Member] | Fair Value, Inputs, Level 2 [Member] | ||
Cash and cash equivalents | 0 | 0 |
Marketable securities | 29,090 | 0 |
Total | 29,090 | 0 |
Contingent consideration | 0 | 0 |
Total | 0 | 0 |
Fair Value, Recurring [Member] | Fair Value, Inputs, Level 2 [Member] | Money Market Funds [Member] | ||
Cash and cash equivalents | 0 | 0 |
Fair Value, Recurring [Member] | Fair Value, Inputs, Level 3 [Member] | ||
Cash and cash equivalents | 0 | 0 |
Marketable securities | 0 | 0 |
Total | 0 | 0 |
Contingent consideration | 5,629 | 0 |
Total | 5,629 | 0 |
Fair Value, Recurring [Member] | Fair Value, Inputs, Level 3 [Member] | Money Market Funds [Member] | ||
Cash and cash equivalents | $ 0 | $ 0 |
Note 7 - Marketable Securitie_2
Note 7 - Marketable Securities - Short-term and Long-term Available for Sale Securities (Details) - USD ($) $ in Thousands | Jun. 30, 2021 | Dec. 31, 2020 |
Amortized Cost | $ 46,924 | |
Unrealized Gains | 165 | |
Unrealized Losses | (48) | |
Fair Value | 47,041 | |
Amortized Cost | $ 93,445 | |
Unrealized Gains | 393 | |
Unrealized Losses | (23) | |
Fair Value | 93,815 | |
Bank Time Deposits [Member] | ||
Amortized Cost | 5,394 | |
Unrealized Gains | 54 | |
Unrealized Losses | 0 | |
Fair Value | 5,448 | |
Amortized Cost | 5,395 | |
Unrealized Gains | 93 | |
Unrealized Losses | 0 | |
Fair Value | 5,488 | |
US States and Political Subdivisions Debt Securities [Member] | ||
Amortized Cost | 20,968 | |
Unrealized Gains | 43 | |
Unrealized Losses | (17) | |
Fair Value | 20,994 | |
Amortized Cost | 25,003 | |
Unrealized Gains | 83 | |
Unrealized Losses | (2) | |
Fair Value | 25,084 | |
Corporate Debt Securities [Member] | ||
Amortized Cost | 19,062 | |
Unrealized Gains | 68 | |
Unrealized Losses | (29) | |
Fair Value | 19,101 | |
Amortized Cost | 42,048 | |
Unrealized Gains | 211 | |
Unrealized Losses | (11) | |
Fair Value | 42,248 | |
US Government Agencies Debt Securities [Member] | ||
Amortized Cost | 1,500 | |
Unrealized Gains | 0 | |
Unrealized Losses | (2) | |
Fair Value | $ 1,498 | |
Amortized Cost | 18,500 | |
Unrealized Gains | 6 | |
Unrealized Losses | (10) | |
Fair Value | 18,496 | |
Commercial Paper, Not Included with Cash and Cash Equivalents [Member] | ||
Amortized Cost | 2,499 | |
Unrealized Gains | 0 | |
Unrealized Losses | 0 | |
Fair Value | $ 2,499 |
Note 7 - Marketable Securitie_3
Note 7 - Marketable Securities - Balance of Held-to-maturity Debt Securities by Contractual Maturity (Details) $ in Thousands | Jun. 30, 2021USD ($) |
Due in one year or less | $ 18,341 |
Due after one year through five years | 28,700 |
Total marketable securities | $ 47,041 |
Note 8 - Inventory - Inventory
Note 8 - Inventory - Inventory (Details) - USD ($) $ in Thousands | Jun. 30, 2021 | Dec. 31, 2020 |
Total inventory | $ 9,395 | $ 11,122 |
Allowance for obsolescence | (284) | (260) |
Inventory, net of allowance | $ 9,111 | $ 10,862 |
Note 9 - Stock-based Compensa_3
Note 9 - Stock-based Compensation (Details Textual) - USD ($) $ / shares in Units, $ in Millions | 3 Months Ended | 6 Months Ended | ||
Jun. 30, 2021 | Jun. 30, 2020 | Jun. 30, 2021 | Jun. 30, 2020 | |
Share-based Payment Arrangement, Expense | $ 4.9 | $ 3.6 | $ 10.6 | $ 6.7 |
Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value (in dollars per share) | $ 57.26 | |||
ESPP [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award, Discount from Market Price, Offering Date | 15.00% | |||
Employee Stock Purchase Plan, Offering Period (Month) | 6 months | |||
Share-based Compensation Arrangement by Share-based Payment Award, Purchase Price of Common Stock, Percent | 85.00% | |||
Share-based Payment Arrangement, Option [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period (Year) | 10 years | |||
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total | 5.8 | $ 5.8 | ||
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year) | 3 years | |||
Share-based Payment Arrangement, Option [Member] | Minimum [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Year) | 4 years | |||
Share-based Payment Arrangement, Option [Member] | Maximum [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Year) | 5 years | |||
Restricted Stock [Member] | ||||
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total | 36 | $ 36 | ||
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year) | 2 years 9 months 18 days | |||
Restricted Stock [Member] | Minimum [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Year) | 3 years | |||
Restricted Stock [Member] | Maximum [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Year) | 5 years | |||
Performance Shares [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Year) | 3 years | |||
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total | $ 3.2 | $ 3.2 | ||
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year) | 2 years 4 months 24 days | |||
Percentage of Target Number Capable of Being Earned and Vesting, Lower Limit | 0.00% | 0.00% | ||
Percentage of Target Number Capable of Being Earned and Vesting, Upper Limit | 150.00% | 150.00% | ||
Long-Term Incentive Plan 2012 [Member] | ||||
Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period (Year) | 10 years |
Note 9 - Stock-based Compensa_4
Note 9 - Stock-based Compensation - Stock Option Activity (Details) | 6 Months Ended |
Jun. 30, 2021$ / sharesshares | |
Options outstanding (in shares) | shares | 229,531 |
Options outstanding, weighted-average exercise price (in dollars per share) | $ / shares | $ 86.46 |
Granted (in shares) | shares | 57,901 |
Granted, weighted-average exercise price (in dollars per share) | $ / shares | $ 128.14 |
Exercised (in shares) | shares | (28,991) |
Exercised, weighted-average exercise price (in dollars per share) | $ / shares | $ 58.78 |
Forfeited (in shares) | shares | (8,547) |
Forfeited, weighted-average exercise price (in dollars per share) | $ / shares | $ 101.65 |
Options outstanding (in shares) | shares | 249,894 |
Options outstanding, weighted-average exercise price (in dollars per share) | $ / shares | $ 98.81 |
Options exercisable (in shares) | shares | 116,452 |
Options exercisable, weighted-average exercise price (in dollars per share) | $ / shares | $ 81.38 |
Note 9 - Stock-based Compensa_5
Note 9 - Stock-based Compensation - Assumptions Used in the Black-Scholes Option Pricing Model (Details) - Share-based Payment Arrangement, Option [Member] | 6 Months Ended | |
Jun. 30, 2021 | Jun. 30, 2020 | |
Expected life (Year) | 6 years 3 months | 6 years 3 months |
Expected dividend yield | 0.00% | 0.00% |
Minimum [Member] | ||
Risk-free interest rate | 0.80% | 0.50% |
Expected volatility | 45.28% | 42.40% |
Maximum [Member] | ||
Risk-free interest rate | 1.12% | 1.47% |
Expected volatility | 45.53% | 43.83% |
Note 9 - Stock-based Compensa_6
Note 9 - Stock-based Compensation - Restricted Stock Options (Details) - Restricted Stock [Member] | 6 Months Ended |
Jun. 30, 2021$ / sharesshares | |
Restricted stock (in shares) | shares | 307,199 |
Restricted stock, weighted-average grant date fair value (in dollars per share) | $ / shares | $ 98.87 |
Granted (in shares) | shares | 178,398 |
Granted, weighted-average grant date fair value (in dollars per share) | $ / shares | $ 133.67 |
Restrictions lapsed (in shares) | shares | (113,315) |
Restrictions lapsed, weighted-average grant date fair value (in dollars per share) | $ / shares | $ 91.10 |
Forfeited (in shares) | shares | (14,525) |
Forfeited, weighted-average grant date fair value (in dollars per share) | $ / shares | $ 105.72 |
Restricted stock (in shares) | shares | 357,757 |
Restricted stock, weighted-average grant date fair value (in dollars per share) | $ / shares | $ 118.41 |
Note 9 - Stock-based Compensa_7
Note 9 - Stock-based Compensation - Performance Stock (Details) - Performance Shares [Member] | 6 Months Ended |
Jun. 30, 2021$ / sharesshares | |
Performance stock (in shares) | shares | 19,956 |
Restricted stock, weighted-average grant date fair value (in dollars per share) | $ / shares | $ 118.66 |
Granted (in shares) | shares | 15,078 |
Granted, weighted-average grant date fair value (in dollars per share) | $ / shares | $ 203.64 |
Restrictions lapsed (in shares) | shares | 0 |
Restrictions lapsed, weighted-average grant date fair value (in dollars per share) | $ / shares | $ 0 |
Performance change (in shares) | shares | 0 |
Performance change, weighted-average grant date fair value (in dollars per share) | $ / shares | $ 0 |
Forfeited (in shares) | shares | (4,184) |
Forfeited, weighted-average grant date fair value (in dollars per share) | $ / shares | $ 99.59 |
Performance stock (in shares) | shares | 30,850 |
Restricted stock, weighted-average grant date fair value (in dollars per share) | $ / shares | $ 160.19 |
Note 9 - Stock-based Compensa_8
Note 9 - Stock-based Compensation - Assumptions Used in the Valuation of Performance Stock (Details) - Performance Shares [Member] | 6 Months Ended | |
Jun. 30, 2021 | Jun. 30, 2020 | |
Risk-free interest rate | 0.22% | 1.41% |
Expected life (Year) | 2 years 10 months 13 days | 2 years 10 months 17 days |
Expected volatility | 51.40% | 38.70% |
Expected dividend yield | 0.00% | 0.00% |
Note 9 - Stock-based Compensa_9
Note 9 - Stock-based Compensation - Assumptions Used to Estimate the Fair Value of the ESPP (Details) - Employee Stock Purchase Plan [Member] | 6 Months Ended | |
Jun. 30, 2021 | Jun. 30, 2020 | |
Expected life (months) (Month) | 6 months | 6 months |
Expected dividend yield | 0.00% | 0.00% |
Minimum [Member] | ||
Risk-free interest rate | 0.06% | 0.17% |
Expected volatility | 50.85% | 42.63% |
Maximum [Member] | ||
Risk-free interest rate | 0.12% | 1.59% |
Expected volatility | 65.53% | 59.99% |
Note 10 - Accumulated Other C_3
Note 10 - Accumulated Other Comprehensive Income (Loss) - Other Comprehensive Loss (Details) - USD ($) $ in Thousands | 3 Months Ended | 6 Months Ended | ||
Jun. 30, 2021 | Jun. 30, 2020 | Jun. 30, 2021 | Jun. 30, 2020 | |
Balance | $ 813,431 | $ 587,740 | $ 644,356 | $ 585,790 |
Balance | 831,977 | 601,249 | 831,977 | 601,249 |
AOCI Attributable to Parent [Member] | ||||
Balance | (10,096) | (9,998) | (3,420) | (7,018) |
Balance | (8,115) | (9,634) | (8,115) | (9,634) |
Accumulated Foreign Currency Adjustment Attributable to Parent [Member] | ||||
Other comprehensive income (loss) before reclassifications | 2,030 | 364 | (4,812) | (2,616) |
Amounts reclassified from accumulated other comprehensive loss | 0 | 0 | 0 | 0 |
Net current-period other comprehensive income (loss) | 2,030 | 364 | (4,812) | (2,616) |
AOCI, Accumulated Gain (Loss), Debt Securities, Available-for-sale, Parent [Member] | ||||
Other comprehensive income (loss) before reclassifications | (49) | 0 | 117 | 0 |
Amounts reclassified from accumulated other comprehensive loss | 0 | 0 | 0 | 0 |
Net current-period other comprehensive income (loss) | $ (49) | $ 0 | $ 117 | $ 0 |
Note 11 - Income Taxes (Details
Note 11 - Income Taxes (Details Textual) - USD ($) $ in Thousands | 3 Months Ended | 6 Months Ended | |||
Jun. 30, 2021 | Jun. 30, 2020 | Jun. 30, 2021 | Jun. 30, 2020 | Dec. 31, 2020 | |
Income Tax Expense (Benefit), Total | $ 3,326 | $ 2,511 | $ 3,562 | $ 6,406 | |
Effective Income Tax Rate Reconciliation, Percent, Total | 20.50% | 16.60% | 17.60% | 19.40% | |
Effective Income Tax Rate Continuing Operations Increase (Decrease) During the Period | 3.90% | (1.80%) | |||
Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent | 21.00% | ||||
Unrecognized Tax Benefits, Ending Balance | $ 5,000 | $ 5,000 | $ 4,800 |
Note 12 - Segment Reporting - R
Note 12 - Segment Reporting - Revenue From Operations by Reportable Segment (Details) - USD ($) $ in Thousands | 3 Months Ended | 6 Months Ended | ||
Jun. 30, 2021 | Jun. 30, 2020 | Jun. 30, 2021 | Jun. 30, 2020 | |
Revenue | $ 123,048 | $ 106,575 | $ 239,174 | $ 221,683 |
Operating Segments [Member] | ||||
Revenue | 123,048 | 106,575 | 239,174 | 221,683 |
Operating Segments [Member] | United States Segment [Member] | ||||
Revenue | 95,344 | 86,823 | 186,397 | 176,899 |
Operating Segments [Member] | Europe Segment [Member] | ||||
Revenue | 24,655 | 16,729 | 46,104 | 37,516 |
Operating Segments [Member] | Japan Segment [Member] | ||||
Revenue | $ 3,049 | $ 3,023 | $ 6,673 | $ 7,268 |
Note 12 - Segment Reporting - I
Note 12 - Segment Reporting - Income From Operations (Details) - USD ($) $ in Thousands | 3 Months Ended | 6 Months Ended | ||
Jun. 30, 2021 | Jun. 30, 2020 | Jun. 30, 2021 | Jun. 30, 2020 | |
Income from operations | $ 16,104 | $ 14,351 | $ 20,365 | $ 31,176 |
Operating Segments [Member] | ||||
Income from operations | 16,104 | 14,351 | 20,365 | 31,176 |
Operating Segments [Member] | United States Segment [Member] | ||||
Income from operations | 26,280 | 24,349 | 48,783 | 49,438 |
Operating Segments [Member] | Europe Segment [Member] | ||||
Income from operations | 5,063 | 2,261 | 3,692 | 6,625 |
Operating Segments [Member] | Japan Segment [Member] | ||||
Income from operations | $ (15,239) | $ (12,259) | $ (32,110) | $ (24,887) |
Note 12 - Segment Reporting - L
Note 12 - Segment Reporting - Long-lived Assets by Geographic Region (Details) - USD ($) $ in Thousands | Jun. 30, 2021 | Dec. 31, 2020 |
Long-lived assets | $ 288,495 | $ 282,666 |
Operating Segments [Member] | ||
Long-lived assets | 288,495 | 282,666 |
Operating Segments [Member] | United States Segment [Member] | ||
Long-lived assets | 222,117 | 215,721 |
Operating Segments [Member] | Europe Segment [Member] | ||
Long-lived assets | 60,140 | 59,388 |
Operating Segments [Member] | Japan Segment [Member] | ||
Long-lived assets | $ 6,238 | $ 7,557 |
Note 12 - Segment Reporting - D
Note 12 - Segment Reporting - Disaggregation of Revenue (Details) - USD ($) $ in Thousands | 3 Months Ended | 6 Months Ended | ||
Jun. 30, 2021 | Jun. 30, 2020 | Jun. 30, 2021 | Jun. 30, 2020 | |
Revenue | $ 123,048 | $ 106,575 | $ 239,174 | $ 221,683 |
Injection Molding (Protomold) [Member] | ||||
Revenue | 58,168 | 57,894 | 114,527 | 112,670 |
CNC Machining (Firstcut) [Member] | ||||
Revenue | 41,592 | 28,760 | 78,295 | 66,645 |
3D Printing (Fineline) [Member] | ||||
Revenue | 18,170 | 14,236 | 35,405 | 30,184 |
Sheet Metal [Member] | ||||
Revenue | 4,717 | 4,669 | 9,936 | 10,318 |
Other Products [Member] | ||||
Revenue | $ 401 | $ 1,016 | $ 1,011 | $ 1,866 |