Document And Entity Information
Document And Entity Information - shares | 6 Months Ended | |
Jun. 30, 2019 | Jul. 31, 2019 | |
Document Information [Line Items] | ||
Entity Registrant Name | INTEST CORP | |
Entity Central Index Key | 0001036262 | |
Trading Symbol | intt | |
Current Fiscal Year End Date | --12-31 | |
Entity Filer Category | Non-accelerated Filer | |
Entity Current Reporting Status | Yes | |
Entity Emerging Growth Company | false | |
Entity Small Business | true | |
Entity Common Stock, Shares Outstanding (in shares) | 10,610,213 | |
Entity Shell Company | false | |
Document Type | 10-Q | |
Document Period End Date | Jun. 30, 2019 | |
Document Fiscal Year Focus | 2019 | |
Document Fiscal Period Focus | Q2 | |
Amendment Flag | false | |
Title of 12(b) Security | Common Stock |
Consolidated Balance Sheets (Cu
Consolidated Balance Sheets (Current Period Unaudited) - USD ($) $ in Thousands | Jun. 30, 2019 | Dec. 31, 2018 |
Current assets: | ||
Cash and cash equivalents | $ 7,594 | $ 17,861 |
Trade accounts receivable, net of allowance for doubtful accounts of $233 | 9,172 | 10,563 |
Inventories | 7,183 | 6,520 |
Prepaid expenses and other current assets | 544 | 677 |
Total current assets | 24,493 | 35,621 |
Property and equipment: | ||
Machinery and equipment | 5,351 | 5,166 |
Leasehold improvements | 2,341 | 2,341 |
Gross property and equipment | 7,692 | 7,507 |
Less: accumulated depreciation | (5,120) | (4,790) |
Net property and equipment | 2,572 | 2,717 |
Right-of-use assets, net | 5,548 | |
Goodwill | 13,738 | 13,738 |
Intangible assets, net | 14,279 | 14,911 |
Restricted certificates of deposit | 140 | 175 |
Other assets | 26 | 25 |
Total assets | 60,796 | 67,187 |
Current liabilities: | ||
Accounts payable | 2,412 | 1,787 |
Accrued wages and benefits | 1,979 | 2,921 |
Accrued professional fees | 877 | 774 |
Customer deposits and deferred revenue | 712 | 1,258 |
Accrued sales commission | 514 | 703 |
Current portion of operating lease liabilities | 1,348 | |
Domestic and foreign income taxes payable | 703 | 700 |
Earnout payable | 12,167 | |
Other current liabilities | 571 | 1,108 |
Total current liabilities | 9,116 | 21,418 |
Operating lease liabilities, net of current portion | 4,514 | |
Contingent liability for repayment of state and local grant funds received | 463 | 200 |
Deferred tax liabilities | 2,500 | 2,689 |
Total liabilities | 16,593 | 24,307 |
Commitments and Contingencies | ||
Stockholders' equity: | ||
Preferred stock, $0.01 par value; 5,000,000 shares authorized; no shares issued or outstanding | ||
Common stock, $0.01 par value; 20,000,000 shares authorized; 10,626,390 and 10,523,035 shares issued, respectively | 106 | 105 |
Additional paid-in capital | 26,908 | 26,513 |
Retained earnings | 16,634 | 15,683 |
Accumulated other comprehensive earnings | 759 | 783 |
Treasury stock, at cost; 33,077 shares | (204) | (204) |
Total stockholders' equity | 44,203 | 42,880 |
Total liabilities and stockholders' equity | $ 60,796 | $ 67,187 |
Consolidated Balance Sheets (_2
Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals) - USD ($) $ in Thousands | Jun. 30, 2019 | Dec. 31, 2018 |
Allowance for doubtful accounts | $ 233 | $ 233 |
Preferred stock par value (in dollars per share) | $ 0.01 | $ 0.01 |
Preferred stock, shares authorized (in shares) | 5,000,000 | 5,000,000 |
Preferred stock, shares issued (in shares) | 0 | 0 |
Preferred stock, shares outstanding (in shares) | 0 | 0 |
Common stock, par value (in dollars per share) | $ 0.01 | $ 0.01 |
Common stock, shares authorized (in shares) | 20,000,000 | 20,000,000 |
Common stock, shares issued (in shares) | 10,626,390 | 10,523,035 |
Treasury stock, shares (in shares) | 33,077 | 33,077 |
Consolidated Statements of Oper
Consolidated Statements of Operations (Unaudited) - USD ($) $ in Thousands | 3 Months Ended | 6 Months Ended | ||
Jun. 30, 2019 | Jun. 30, 2018 | Jun. 30, 2019 | Jun. 30, 2018 | |
Net revenues | $ 14,352 | $ 21,097 | $ 32,414 | $ 39,968 |
Cost of revenues | 7,633 | 10,187 | 16,859 | 19,663 |
Gross margin | 6,719 | 10,910 | 15,555 | 20,305 |
Operating expenses: | ||||
Selling expense | 2,087 | 2,538 | 4,461 | 5,014 |
Engineering and product development expense | 1,208 | 1,230 | 2,492 | 2,526 |
General and administrative expense | 3,718 | 3,335 | 7,455 | 6,325 |
Adjustment to contingent consideration liability | (710) | 1,016 | ||
Total operating expenses | 7,013 | 6,393 | 14,408 | 14,881 |
Operating income (loss) | (294) | 4,517 | 1,147 | 5,424 |
Other income (loss) | (6) | (121) | 15 | (46) |
Earnings (loss) before income tax expense (benefit) | (300) | 4,396 | 1,162 | 5,378 |
Income tax expense (benefit) | (113) | 382 | 211 | 983 |
Net earnings (loss) | $ (187) | $ 4,014 | $ 951 | $ 4,395 |
Net earnings (loss) per common share - basic (in dollars per share) | $ (0.02) | $ 0.39 | $ 0.09 | $ 0.43 |
Weighted average common shares outstanding - basic (in shares) | 10,411,276 | 10,342,674 | 10,398,147 | 10,334,492 |
Net earnings (loss) per common share - diluted (in dollars per share) | $ (0.02) | $ 0.39 | $ 0.09 | $ 0.42 |
Weighted average common shares and common share equivalents outstanding - diluted (in shares) | 10,411,276 | 10,370,318 | 10,419,914 | 10,367,812 |
Consolidated Statements of Comp
Consolidated Statements of Comprehensive Earnings (Loss) (Unaudited) - USD ($) $ in Thousands | 3 Months Ended | 6 Months Ended | ||
Jun. 30, 2019 | Jun. 30, 2018 | Jun. 30, 2019 | Jun. 30, 2018 | |
Net earnings (loss) | $ (187) | $ 4,014 | $ 951 | $ 4,395 |
Foreign currency translation adjustments | 59 | (120) | (24) | (82) |
Comprehensive earnings (loss) | $ (128) | $ 3,894 | $ 927 | $ 4,313 |
Consolidated Statements of Stoc
Consolidated Statements of Stockholders' Equity (Unaudited) - USD ($) $ in Thousands | Common Stock [Member] | Additional Paid-in Capital [Member] | Retained Earnings [Member] | AOCI Attributable to Parent [Member] | Treasury Stock [Member] | Total |
Balance (in shares) at Dec. 31, 2017 | 10,427,435 | |||||
Balance at Dec. 31, 2017 | $ 104 | $ 25,860 | $ 12,646 | $ 882 | $ (204) | $ 39,288 |
Net earnings (loss) | 381 | 381 | ||||
Other comprehensive income (loss) | 38 | 38 | ||||
Amortization of deferred compensation related to stock-based awards | 121 | 121 | ||||
Issuance of unvested shares of restricted stock (in shares) | 79,200 | |||||
Issuance of unvested shares of restricted stock | $ 1 | (1) | ||||
Balance (in shares) at Mar. 31, 2018 | 10,506,635 | |||||
Balance at Mar. 31, 2018 | $ 105 | 25,980 | 13,027 | 920 | (204) | 39,828 |
Balance (in shares) at Dec. 31, 2017 | 10,427,435 | |||||
Balance at Dec. 31, 2017 | $ 104 | 25,860 | 12,646 | 882 | (204) | 39,288 |
Net earnings (loss) | 4,395 | |||||
Balance (in shares) at Jun. 30, 2018 | 10,518,535 | |||||
Balance at Jun. 30, 2018 | $ 105 | 26,151 | 17,041 | 800 | (204) | 43,893 |
Balance (in shares) at Mar. 31, 2018 | 10,506,635 | |||||
Balance at Mar. 31, 2018 | $ 105 | 25,980 | 13,027 | 920 | (204) | 39,828 |
Net earnings (loss) | 4,014 | 4,014 | ||||
Other comprehensive income (loss) | (120) | (120) | ||||
Amortization of deferred compensation related to stock-based awards | 171 | 171 | ||||
Issuance of unvested shares of restricted stock (in shares) | 11,900 | |||||
Issuance of unvested shares of restricted stock | ||||||
Balance (in shares) at Jun. 30, 2018 | 10,518,535 | |||||
Balance at Jun. 30, 2018 | $ 105 | 26,151 | 17,041 | 800 | (204) | $ 43,893 |
Balance (in shares) at Dec. 31, 2018 | 10,523,035 | 10,523,035 | ||||
Balance at Dec. 31, 2018 | $ 105 | 26,513 | 15,683 | 783 | (204) | $ 42,880 |
Net earnings (loss) | 1,138 | 1,138 | ||||
Other comprehensive income (loss) | (83) | (83) | ||||
Amortization of deferred compensation related to stock-based awards | 183 | 183 | ||||
Issuance of unvested shares of restricted stock (in shares) | 80,300 | |||||
Issuance of unvested shares of restricted stock | $ 1 | (1) | ||||
Balance (in shares) at Mar. 31, 2019 | 10,603,335 | |||||
Balance at Mar. 31, 2019 | $ 106 | 26,695 | 16,821 | 700 | (204) | $ 44,118 |
Balance (in shares) at Dec. 31, 2018 | 10,523,035 | 10,523,035 | ||||
Balance at Dec. 31, 2018 | $ 105 | 26,513 | 15,683 | 783 | (204) | $ 42,880 |
Net earnings (loss) | $ 951 | |||||
Balance (in shares) at Jun. 30, 2019 | 10,626,390 | 10,626,390 | ||||
Balance at Jun. 30, 2019 | $ 106 | 26,908 | 16,634 | 759 | (204) | $ 44,203 |
Balance (in shares) at Mar. 31, 2019 | 10,603,335 | |||||
Balance at Mar. 31, 2019 | $ 106 | 26,695 | 16,821 | 700 | (204) | 44,118 |
Net earnings (loss) | (187) | (187) | ||||
Other comprehensive income (loss) | 59 | 59 | ||||
Amortization of deferred compensation related to stock-based awards | 213 | 213 | ||||
Issuance of unvested shares of restricted stock (in shares) | 35,380 | |||||
Issuance of unvested shares of restricted stock | ||||||
Forfeiture of unvested shares of restricted stock (in shares) | (12,325) | |||||
Balance (in shares) at Jun. 30, 2019 | 10,626,390 | 10,626,390 | ||||
Balance at Jun. 30, 2019 | $ 106 | $ 26,908 | $ 16,634 | $ 759 | $ (204) | $ 44,203 |
Consolidated Statements of Cash
Consolidated Statements of Cash Flows (Unaudited) - USD ($) $ in Thousands | 6 Months Ended | |
Jun. 30, 2019 | Jun. 30, 2018 | |
CASH FLOWS FROM OPERATING ACTIVITIES | ||
Net earnings | $ 951 | $ 4,395 |
Adjustments to reconcile net earnings to net cash provided by (used in) operating activities: | ||
Depreciation and amortization | 1,598 | 840 |
Payment of earnout related to Ambrell acquisition | (12,167) | (1,710) |
Adjustment to earnout payable | 1,016 | |
Provision for excess and obsolete inventory | 243 | 129 |
Foreign exchange (gain) loss | 17 | (49) |
Amortization of deferred compensation related to stock-based awards | 396 | 292 |
Loss on disposal of property and equipment | 17 | 11 |
Proceeds from sale of demonstration equipment, net of gain | 59 | 99 |
Deferred income tax benefit | (189) | (142) |
Changes in assets and liabilities: | ||
Trade accounts receivable | 1,364 | 606 |
Inventories | (908) | (2,025) |
Prepaid expenses and other current assets | 132 | 143 |
Restricted certificates of deposit | 35 | |
Other assets | (1) | (4) |
Accounts payable | 626 | 707 |
Accrued wages and benefits | (941) | (488) |
Accrued professional fees | 104 | 59 |
Customer deposits and deferred revenue | (542) | (153) |
Accrued sales commission | (189) | 13 |
Operating lease liabilities | (668) | |
Domestic and foreign income taxes payable | 5 | 86 |
Contingent liability for repayment of state and local grant funds received | 263 | |
Long-term portion of Federal transition tax payable | (436) | |
Other current liabilities | (156) | 114 |
Net cash provided by (used in) operating activities | (9,951) | 3,503 |
CASH FLOWS FROM INVESTING ACTIVITIES | ||
Purchase of property and equipment | (298) | (1,920) |
Net cash used in investing activities | (298) | (1,920) |
CASH FLOWS FROM FINANCING ACTIVITIES | ||
Payment of earnout related to Ambrell acquisition | (4,123) | |
Net cash used in financing activities | (4,123) | |
Effects of exchange rates on cash | (18) | (37) |
Net cash used in all activities | (10,267) | (2,577) |
Cash and cash equivalents at beginning of period | 17,861 | 13,290 |
Cash and cash equivalents at end of period | 7,594 | 10,713 |
Cash payments for: | ||
Domestic and foreign income taxes | $ 396 | $ 1,425 |
Note 1 - Nature of Operations
Note 1 - Nature of Operations | 6 Months Ended |
Jun. 30, 2019 | |
Notes to Financial Statements | |
Nature of Operations [Text Block] | ( 1 NATURE OF OPERATIONS We are a global supplier of precision-engineered solutions two Our EMS segment sells its products to semiconductor manufacturers and third third May 2017, Both of our operating segments have multiple products that we design, manufacture and market to our customers. Due to a number of factors, our products have varying levels of gross margin. The mix of products we sell in any period is ultimately determined by our customers' needs. Therefore, the mix of products sold in any given period can change significantly from the prior period. As a result, our consolidated gross margin can be significantly impacted in any given period by a change in the mix of products sold in that period. Historically, we have referred to our markets as “Semiconductor” (which includes both the broader semiconductor market as well as the more specialized ATE and wafer processing markets within the broader semiconductor market), and “Non-Semiconductor” (which includes all of the other markets we serve). Starting in the second 2019, not may may may not may not may not may |
Note 2 - Summary of Significant
Note 2 - Summary of Significant Accounting Policies | 6 Months Ended |
Jun. 30, 2019 | |
Notes to Financial Statements | |
Significant Accounting Policies [Text Block] | ( 2 SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES Basis of Presentation and Use of Estimates The accompanying consolidated financial statements include our accounts and those of our wholly-owned subsidiaries. All significant intercompany accounts and transactions have been eliminated upon consolidation. The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires us to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Actual results could differ from those estimates. Certain of our accounts, including inventories, long-lived assets, goodwill, identifiable intangibles, contingent consideration and deferred tax assets and liabilities including related valuation allowances, are particularly impacted by estimates. In the opinion of management, the accompanying unaudited consolidated financial statements include all adjustments (consisting only of normal recurring adjustments) necessary to present fairly the financial position, results of operations, and changes in cash flows for the interim periods presented. Certain footnote information has been condensed or omitted from these consolidated financial statements. Therefore, these consolidated financial statements should be read in conjunction with the consolidated financial statements and accompanying footnotes included in our Form 10 -K for the year ended December 31, 2018 ( “2018 Form 10 -K”) filed on March 26, 2019 with the Securities and Exchange Commission. Reclassification Certain prior period amounts have been reclassified to be comparable with the current period's presentation. Business Combinations Acquired businesses are accounted for using the purchase method of accounting, which requires that the purchase price be allocated to the net assets acquired at their respective fair values. Any excess of the purchase price over the estimated fair values of the net assets acquired is recorded as goodwill. Fair values of intangible assets are estimated by valuation models prepared by our management and third party advisors. The assets purchased and liabilities assumed have been reflected in our consolidated balance sheets, and the results are included in the consolidated statements of operations and consolidated statements of cash flows from the date of acquisition. Any change in the fair value of acquisition-related contingent consideration subsequent to the acquisition date, including changes from events after the acquisition date, will be recognized in the consolidated statement of operations in the period of the estimated fair value change. Acquisition-related transaction costs, including legal and accounting fees and other external costs directly related to the acquisition, are recognized separately from the acquisition and expensed as incurred in general and administrative expense in the consolidated statements of operations. Goodwill, Intangible and Long-Lived Assets We account for goodwill and intangible assets in accordance with Accounting Standards Codification (“ASC”) 350 (Intangibles - Goodwill and Other). Finite-lived intangible assets are amortized over their estimated useful economic life and are carried at cost less accumulated amortization. Goodwill is assessed for impairment annually in the fourth quarter on a reporting unit basis, or more frequently when events and circumstances occur indicating that the recorded goodwill may be impaired. Goodwill is considered to be impaired if the fair value of a reporting unit is less than its carrying amount. As a part of the goodwill impairment assessment, we have the option to perform a qualitative assessment to determine whether it is more-likely-than- not that the fair value of a reporting unit is less than its carrying amount. If, as a result of our qualitative assessment, we determine that it is more-likely-than- not that the fair value of the reporting unit is greater than its carrying amount, a quantitative goodwill impairment test is not required. However, if, as a result of our qualitative assessment, we determine it is more-likely-than- not that the fair value of a reporting unit is less than its carrying amount, or, if we choose not to perform a qualitative assessment, we are required to perform a quantitative goodwill impairment test to identify potential goodwill impairment and measure the amount of goodwill impairment loss to be recognized. The quantitative goodwill impairment test compares the fair value of a reporting unit with its carrying amount, including goodwill. If the fair value of a reporting unit exceeds its carrying amount, goodwill of the reporting unit is considered not impaired. If the carrying amount of a reporting unit exceeds its fair value, an impairment loss will be recognized in an amount equal to that excess, limited to the total amount of goodwill allocated to that reporting unit. The goodwill impairment assessment is based upon a combination of the income approach, which estimates the fair value of our reporting units based upon a discounted cash flow approach, and the market approach which estimates the fair value of our reporting units based upon comparable market multiples. This fair value is then reconciled to our market capitalization at year end with an appropriate control premium. The determination of the fair value of our reporting units requires management to make significant estimates and assumptions including the selection of appropriate peer group companies, control premiums, discount rate, terminal growth rates, forecasts of revenue and expense growth rates, income tax rates, changes in working capital, depreciation, amortization and capital expenditures. Changes in assumptions concerning future financial results or other underlying assumptions could have a significant impact on either the fair value of the reporting unit or the amount of the goodwill impairment charge. Indefinite-lived intangible assets are assessed for impairment annually in the fourth quarter, or more frequently if events or changes in circumstances indicate that the asset might be impaired. As a part of the impairment assessment, we have the option to perform a qualitative assessment to determine whether it is more likely than not that an indefinite-lived intangible asset is impaired. If, as a result of our qualitative assessment, we determine that it is more-likely-than- not that the fair value of the indefinite-lived intangible asset is less than its carrying amount, the quantitative impairment test is required; otherwise, no further testing is required. The quantitative impairment test consists of a comparison of the fair value of the intangible asset with its carrying amount. If the carrying amount of the intangible asset exceeds its fair value, an impairment loss is recognized in an amount equal to that excess. Long-lived assets, which consist of finite-lived intangible assets and property and equipment, are assessed for impairment whenever events or changes in business circumstances indicate that the carrying amount of the assets may not be fully recoverable or that the useful lives of these assets are no longer appropriate. Each impairment test is based on a comparison of the estimated undiscounted cash flows to the recorded value of the asset. If impairment is indicated, the asset is written down to its estimated fair value. The cash flow estimates used to determine the impairment, if any, contain management's best estimates using appropriate assumptions and projections at that time. Revenue Recognition We recognize revenue in accordance with the guidance in ASC 606 (Revenue from Contracts with Customers). We recognize revenue for the sale of products or services when our performance obligations under the terms of a contract with a customer are satisfied and control of the product or service has been transferred to the customer. Generally, this occurs when we ship a product or perform a service. In certain cases, recognition of revenue is deferred until the product is received by the customer or at some other point in the future when we determine that we have satisfied our performance obligations under the contract. Our contracts with customers may include a combination of products and services, which are generally capable of being distinct and accounted for as separate performance obligations. In addition to the sale of products and services, we also lease certain of our equipment under short-term lease agreements. We recognize revenue from equipment leases on a straight-line basis over the lease term. Revenue is recorded in an amount that reflects the consideration we expect to receive in exchange for those products or services. We do not have any material variable consideration arrangements or any material payment terms with our customers other than standard net 30 or net 60 day payment terms. We generally do not provide a right of return to our customers. Revenue is recognized net of any taxes collected from customers, which are subsequently remitted to governmental authorities. Nature of Products and Services We sell thermal test and thermal process products (“thermal products”) and semiconductor test products. Our thermal products include ThermoStreams, ThermoChambers and process chillers, which we sell under our Temptronic, Sigma and Thermonics product lines, and Ambrell’s precision induction heating systems, including EkoHeat and EasyHeat products. Our semiconductor test products include manipulators, docking hardware and electrical interface products. We provide post-warranty service for the equipment we sell. We sell semiconductor test products and certain thermal products to the Semi Market. We also sell our thermal products to markets outside the Semi Market (referred to collectively as “Multi Markets”) that include the automotive, defense/aerospace, industrial, telecommunications and other markets. We lease certain of our equipment under short-term leasing agreements with original lease terms of six months or less. Our lease agreements do not contain purchase options. Types of Contracts with Customers Our contracts with customers are generally structured as individual purchase orders which specify the exact products or services being sold or equipment being leased along with the selling price, service fee or monthly lease amount for each individual item on the purchase order. Payment terms and any other customer-specific acceptance criteria are also specified on the purchase order. We generally do not have any customer-specific acceptance criteria, other than that the product performs within the agreed upon specifications. We test substantially all products manufactured as part of our quality assurance process to determine that they comply with specifications prior to shipment to a customer. Contract Balances We record accounts receivable at the time of invoicing. Accounts receivable, net of the allowance for doubtful accounts, is included in current assets on our balance sheet. To the extent that we do not recognize revenue at the same time as we invoice, we record a liability for deferred revenue. In certain instances, we also receive customer deposits in advance of invoicing and recording of accounts receivable. Deferred revenue and customer deposits are included in current liabilities on our consolidated balance sheets. The allowance for doubtful accounts reflects our best estimate of probable losses inherent in the accounts receivable balance. We determine the allowance based on known troubled accounts, if any, historical experience, and other currently available evidence. Costs to Obtain a Contract with a Customer The only costs we incur associated with obtaining contracts with customers are sales commissions that we pay to our internal sales personnel or third -party sales representatives. These costs are calculated based on an established percentage of the selling price of each product or service sold. Commissions are considered earned by our internal sales personnel at the time we recognize revenue for a particular transaction. Commissions are considered earned by third -party sales representatives at the time revenue is recognized for a particular transaction. We record commission expense in our consolidated statements of operations at the time the commission is earned. Commissions earned but not yet paid are included in current liabilities on our balance sheets. Product Warranties In connection with the sale of our products, we generally provide standard one or two year product warranties which are detailed in our terms and conditions and communicated to our customers. Our standard warranties are not offered for sale separately from our products; therefore, there is no separate performance obligation related to our standard warranties. We record estimated warranty expense for our standard warranties at the time of sale based upon historical claims experience. In very limited cases, we offer customers an option to separately purchase an extended warranty for certain of our products. In the case of extended warranties, we recognize revenue in the amount of the sale price for the extended warranty on a straight-line basis over the extended warranty period. We record costs incurred to provide service under an extended warranty at the time the service is provided. Warranty expense is included in selling expense in our consolidated statements of operations. Refer to Notes 4 and 11 for further information about our revenue from contracts with customers. Inventories Inventories are valued at cost on a first -in, first -out basis, not in excess of market value. Cash flows from the sale of inventories are recorded in operating cash flows. On a quarterly basis, we review our inventories and record excess and obsolete inventory charges based upon our established objective excess and obsolete inventory criteria. These criteria identify material that has not been used in a work order during the prior twelve months and the quantity of material on hand that is greater than the average annual usage of that material over the prior three years. In certain cases, additional excess and obsolete inventory charges are recorded based upon current market conditions, anticipated product life cycles, new product introductions and expected future use of the inventory. The excess and obsolete inventory charges we record establish a new cost basis for the related inventories. Leases We account for leases in accordance with ASC 842 (Leases). We determine if an arrangement is a lease at inception. A lease contract is within scope if the contract has an identified asset (property, plant or equipment) and grants the lessee the right to control the use of the asset during the lease term. The identified asset may be either explicitly or implicitly specified in the contract. In addition, the supplier must not have any practical ability to substitute a different asset and would not economically benefit from doing so for the lease contract to be in scope. The lessee’s right to control the use of the asset during the term of the lease must include the ability to obtain substantially all of the economic benefits from the use of the asset as well as decision-making authority over how the asset will be used. Leases are classified as either operating leases or finance leases based on the guidance in ASC 842. Operating leases are included in operating lease right-of-use (“ROU”) assets and operating lease liabilities in our consolidated balance sheets. Finance leases are included in property and equipment and financing lease liabilities. We do not currently have any financing leases. ROU assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments arising from the lease. Operating lease ROU assets and liabilities are recognized at commencement date based on the present value of lease payments over the lease term. None of our leases provide an implicit rate; therefore, we use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments. The operating lease ROU asset also includes any lease payments made and excludes lease incentives. Our lease terms may include options to extend or terminate the lease. We include these options in the determination of the amount of the ROU asset and lease liability when it is reasonably certain that we will exercise that option. Lease expense for lease payments is recognized on a straight-line basis over the lease term. Certain of our operating leases contain predetermined fixed escalations of minimum rentals and rent holidays during the original lease terms. Rent holidays are periods during which we have control of the leased facility but are not obligated to pay rent. For these leases, our right-of-use asset and lease liability are calculated including any rent holiday in the determination of the life of the lease. We have lease agreements which contain both lease and non-lease components, which are generally accounted for separately. In addition to the monthly rental payments due, most of our leases for our offices and warehouse facilities include non-lease components representing our portion of the common area maintenance, property taxes and insurance charges incurred by the landlord for the facilities which we occupy. These amounts are not included in the calculation of the ROU assets and lease liabilities as they are based on actual charges incurred in the periods to which they apply. We have made an accounting policy election not to apply the recognition requirements of ASC 842 to short-term leases (leases with a term of one year or less at the commencement date of the lease). Lease expense for short-term lease payments is recognized on a straight-line basis over the lease term. See “Effect of Recently Adopted Amendments to Authoritative Accounting Guidance” below and Note 7 for further disclosures regarding our leases. Contingent Liability for Repayment of State and Local Grant Funds Received In connection with a new facility in Rochester, New York, which our subsidiary, Ambrell Corporation (“Ambrell”), occupied in May 2018, we entered into agreements with the city of Rochester and the state of New York under which we may receive grants totaling up to $550 to help offset a portion of the cost of the leasehold improvements we have made to this facility. In exchange for the funds we may receive under these agreements, we are required to create and maintain specified levels of employment in this location through various dates ending in 2023. If we fail to meet these employment targets, we will be required to repay a proportionate share of the funds received. As of June 30, 2019, we have received $463 in grant funds. We do not expect to receive the remaining $87 of grant funds during 2019, as we currently do not expect to increase our number of employees to the level required to receive these funds during 2019. We have recorded the amounts received under these agreements as a contingent liability on our balance sheet. As time passes, portions of the funds received will no longer be subject to repayment if we have met the employment requirements of the agreements. Amounts that we are irrevocably entitled to keep will be reclassified to deferred revenue and amortized to income on a straight-line basis over the remaining lease term for the Rochester facility. Stock-Based Compensation We account for stock-based compensation in accordance with ASC 718 (Compensation - Stock Compensation), which requires that employee share-based equity awards be accounted for under the fair value method and requires the use of an option pricing model for estimating fair value of stock options granted, which is then amortized to expense over the service periods. See further disclosures related to our stock-based compensation plan in Note 9. Subsequent Events We have made an assessment of our operations and determined that there were no material subsequent events requiring adjustment to, or disclosure in, our consolidated financial statements for the six months ended June 30, 2019 other than those described in Note 12. Income Taxes The asset and liability method is used in accounting for income taxes. Under this method, deferred tax assets and liabilities are recognized for operating loss and tax credit carryforwards and for the future tax consequences attributable to differences between the financial statement carrying amounts of existing assets and liabilities and their respective tax bases. Deferred tax assets and liabilities are measured using enacted tax rates expected to apply to taxable income in the years in which those temporary differences are expected to be recovered or settled. The effect on deferred tax assets and liabilities of a change in tax rates is recognized in the results of operations in the period that includes the enactment date. A valuation allowance is recorded to reduce the carrying amounts of deferred tax assets if it is more likely than not that such assets will not be realized. On December 22, 2017, the President of the United States signed into law the Tax Cuts and Jobs Act. This legislation made significant changes in the U.S. tax laws including reducing the corporate tax rate to 21% and creating a territorial tax system with a one -time mandatory transition tax payable on previously unremitted earnings of foreign subsidiaries, among other things. See Note 12 to the consolidated financial statements in our 2018 Form 10 -K for additional information regarding income taxes. Net Earnings (Loss) Per Common Share Net earnings (loss) per common share - basic is computed by dividing net earnings by the weighted average number of common shares outstanding during each period. Net earnings (loss) per common share - diluted is computed by dividing net earnings by the weighted average number of common shares and common share equivalents outstanding during each period. Common share equivalents represent unvested shares of restricted stock and stock options and are calculated using the treasury stock method. Common share equivalents are excluded from the calculation if their effect is anti-dilutive. The table below sets forth, for the periods indicated, a reconciliation of weighted average common shares outstanding - basic to weighted average common shares and common share equivalents outstanding - diluted and the average number of potentially dilutive securities that were excluded from the calculation of diluted earnings per share because their effect was anti-dilutive: Three Months Ended June 30, Six Months Ended June 30, 201 9 201 8 201 9 201 8 Weighted average common shares outstanding - basic 10,411,276 10,342,674 10,398,147 10,334,492 Potentially dilutive securities: Unvested shares of restricted stock and employee stock options - 27,644 21,767 33,320 Weighted average common shares and common share equivalents outstanding - diluted 10,411,276 10,370,318 10,419,914 10,367,812 Average number of potentially dilutive securities excluded from calculation 618,071 275,831 423,962 189,794 Effect of Recently Adopted Amendments to Authoritative Accounting Guidance In February 2016, the FASB issued amendments to the current guidance on accounting for lease transactions, which is presented in ASC 842. Subsequent to February 2016, the FASB has issued additional clarifying guidance on certain aspects of this new guidance, along with certain practical expedients that may be applied. The intent of the updated guidance is to increase transparency and comparability among organizations by requiring lessees to recognize assets and liabilities on the balance sheet for the rights and obligations created by leases and to disclose key information about leasing arrangements. Under the new guidance, a lessee is required to record a right-of-use asset and a lease liability on the balance sheet for all leases with terms longer than 12 months. Leases are classified as either finance or operating, with classification affecting the pattern of expense recognition in the income statement. The two permitted transition methods under the guidance are the modified retrospective transition approach, which requires application of the guidance for all comparative periods presented, and the cumulative effect adjustment approach, which requires prospective application at the adoption date. The amendments were effective for us as of January 1, 2019. We adopted the amendments on January 1, 2019 using the cumulative effect adjustment approach. Accordingly, prior periods have not been restated. We have decided to elect the package of practical expedients, which includes the grandfathering of lease classification and, accordingly, we have not re-evaluated any of our leases for classification purposes in connection with the implementation of ASC 842. They are all still being treated as operating leases under ASC 842. We do not currently have any lease contracts that meet the criteria to be categorized as financing leases under ASC 842. We have no embedded leases, nor do we have any initial direct costs. We are not electing the hindsight practical expedient and therefore are not reevaluating the lease terms that we used under ASC 840.The implementation of this new guidance had a significant impact on our consolidated balance sheet as a result of recording right-of-use assets and lease liabilities for all of our multi-year leases. Under prior guidance, none of these leases had any related asset recorded on our balance sheets. The only related liability recorded on our balance sheets was the amount which represented the difference between the lease payments we had made and the straight-line rent expense we had recorded in our statements of operations. The implementation of this new guidance did not have a significant impact on our pattern of expense recognition for any of our multi-year leases. See “Leases” above and Note 7 for further disclosures regarding our leases. |
Note 3 - Goodwill and Intangibl
Note 3 - Goodwill and Intangible Assets | 6 Months Ended |
Jun. 30, 2019 | |
Notes to Financial Statements | |
Goodwill and Intangible Assets Disclosure [Text Block] | ( 3 ) GOODWILL AND INTANGIBLE ASSETS Goodwill and intangible assets on our balance sheets are the result of our acquisitions of Sigma Systems Corp. ("Sigma") in October 2008, January 2012 May 2017. $13,738 June 30, 2019 December 31, 2018. Intangible Assets six June 30, 2019 Balance - January 1, 2019 $ 8,201 Amortization (632 ) Balance - June 30, 2019 $ 7,569 The following tables provide further detail about our intangible assets as of June 30, 2019 December 31, 2018: June 30, 201 9 Gross Accumulated Amortization Net Finite-lived intangible assets: Customer relationships $ 10,480 $ 3,258 $ 7,222 Technology 600 321 279 Patents 590 522 68 Software 270 270 - Trade name 140 140 - Customer backlog 500 500 - Total finite-lived intangible assets 12,580 5,011 7,569 Indefinite-lived intangible assets: Trademarks 6,710 - 6,710 Total intangible assets $ 19,290 $ 5,011 $ 14,279 December 31, 2018 Gross Carrying Amount Accumulated Amortization Net Amount Finite-lived intangible assets: Customer relationships $ 10,480 $ 2,717 $ 7,763 Technology 600 250 350 Patents 590 502 88 Software 270 270 - Trade name 140 140 - Customer backlog 500 500 - Total finite-lived intangible assets 12,580 4,379 8,201 Indefinite-lived intangible assets: Trademarks 6,710 - 6,710 Total intangible assets $ 19,290 $ 4,379 $ 14,911 We generally amortize our finite-lived intangible assets over their estimated useful lives on a straight-line basis, unless an alternate amortization method can be reliably determined. Any such alternate amortization method would be based on the pattern in which the economic benefits of the intangible asset are expected to be consumed. None Total amortization expense for our finite-lived intangible assets was $315 $632 three six June 30, 2019, $247 $463 three six June 30, 2018, five 2019 (remainder) $ 625 2020 $ 1,233 2021 $ 1,227 2022 $ 1,167 2023 $ 1,067 |
Note 4 - Revenue From Contracts
Note 4 - Revenue From Contracts With Customers | 6 Months Ended |
Jun. 30, 2019 | |
Notes to Financial Statements | |
Revenue from Contract with Customer [Text Block] | ( 4 ) REVENUE FROM CONTRACTS WITH CUSTOMERS The following tables provide additional information about our revenue from contracts with customers, including revenue by customer and product type and revenue by market. See also Note 11 Three Months Ended Six Months Ended 2019 201 8 201 9 201 8 Net revenues by customer type: End user $ 13,106 $ 18,173 $ 29,143 $ 34,502 OEM/Integrator 1,246 2,924 3,271 5,466 $ 14,352 $ 21,097 $ 32,414 $ 39,968 Net revenues by product type: Thermal test $ 4,282 $ 5,885 $ 9,249 $ 11,722 Induction heating 4,321 5,937 10,072 11,559 Semiconductor test 3,609 6,809 8,893 12,148 Service/other 2,140 2,466 4,200 4,539 $ 14,352 $ 21,097 $ 32,414 $ 39,968 Net revenues by market: Semi Market $ 7,641 $ 13,043 $ 17,752 $ 23,582 Industrial 4,279 5,000 10,225 10,653 Telecommunications 691 1,343 1,284 2,622 Other Multi Markets 1,741 1,711 3,153 3,111 $ 14,352 $ 21,097 $ 32,414 $ 39,968 There was no six June 30, 2019. |
Note 5 - Major Customers
Note 5 - Major Customers | 6 Months Ended |
Jun. 30, 2019 | |
Notes to Financial Statements | |
Concentration Risk Disclosure [Text Block] | ( 5 ) MAJOR CUSTOMERS During the six June 30, 2019 2018, 12% 13% No 10% six June 30, 2019 2018. |
Note 6 - Inventories
Note 6 - Inventories | 6 Months Ended |
Jun. 30, 2019 | |
Notes to Financial Statements | |
Inventory Disclosure [Text Block] | ( 6 ) INVENTORIES Inventories held at June 30, 2019 December 31, 2018 June 30, 9 December 31, 8 Raw materials $ 5,331 $ 4,654 Work in process 962 1,026 Inventory consigned to others 65 62 Finished goods 825 778 Total inventories $ 7,183 $ 6,520 Total charges incurred for excess and obsolete inventory for the three six June 30, 2019 2018, Three Months Ended Six Months Ended 2019 2018 2019 2018 Excess and obsolete inventory charges $ 136 $ 68 $ 243 $ 129 |
Note 7 - Leases
Note 7 - Leases | 6 Months Ended |
Jun. 30, 2019 | |
Notes to Financial Statements | |
Lessee, Operating Leases [Text Block] | ( 7 LEASES As previously discussed in Note 2, 842, January 1, 2019. 842, $5,197 $4,816, 2028. three six June 30, 2019 2018, Three Months Ended Six Months Ended 2019 2018 2019 2018 Operating lease cost $ 370 $ 417 $ 736 $ 835 Short-term lease cost $ 14 $ 13 $ 27 $ 27 The following is additional information about our leases as of June 30, 2019: Range of remaining lease terms (in years) 0.3 to 8.9 Weighted average remaining lease term (in years) 5.7 Weighted average discount rate 5.0 % Supplemental cash flow information related to leases for the six June 30, 2019 Non-cash increases (decreases) in operating lease liabilities and right-of-use assets as a result of lease modifications: Modification to Ambrell’s U.K. facility lease $ (486 ) Modification to lease for facility in Mansfield, Massachusetts $ 1,819 The lease for Ambrell’s U.K. facility had an original term of 15 August 2029. March 2019, September 2019. $486. On April 8, 2019, forty December 31, 2024 6,100 August 31, 2021 ( not August 31, 2021, $1,819. Maturities of lease liabilities as of June 30, 2019 2019 (remainder) $ 807 2020 1,572 2021 1,064 2022 825 2023 834 Thereafter 1,626 Total lease payments $ 6,728 Less imputed interest (866 ) Total $ 5,862 |
Note 8 - Debt
Note 8 - Debt | 6 Months Ended |
Jun. 30, 2019 | |
Notes to Financial Statements | |
Debt Disclosure [Text Block] | ( 8 ) DEBT Letters of Credit 30 not one $125 $90 April 1, 2019. April 8, 2019, Letters of Credit Original L/C L/C Lease June 30, 9 December 31, 8 Mt. Laurel, NJ 3/29/2010 3/31/2020 4/30/2021 $ 90 $ 125 Mansfield, MA 10/27/2010 11/08/2019 12/31/2024 50 50 $ 140 $ 175 |
Note 9 - Stock-based Compensati
Note 9 - Stock-based Compensation | 6 Months Ended |
Jun. 30, 2019 | |
Notes to Financial Statements | |
Share-based Payment Arrangement [Text Block] | ( 9 ) STOCK-BASED COMPENSATION As of June 30, 2019, 14 2018 10 As of June 30, 2019, $2,168. 3.1 three six June 30, 2019 2018, Three Months Ended Six Months Ended 201 9 201 8 201 9 201 8 Cost of revenues $ - $ - $ - $ - Selling expense 4 - 4 - Engineering and product development expense 12 2 15 3 General and administrative expense 197 169 377 289 $ 213 $ 171 $ 396 $ 292 There was no three six June 30, 2019 2018. Restricted Stock Awards four one March 2019 2018, 36,000 32,000 25% March 31, June 30, September 30, December 31 $257 $270, The following table summarizes the activity related to unvested shares of restricted stock for the six June 30, 2019: Number Weighted Unvested shares outstanding, January 1, 2019 114,750 $ 6.92 Granted 115,680 6.57 Vested (43,724 ) 6.90 Forfeited (12,325 ) 7.14 Unvested shares outstanding, June 30, 2019 174,381 6.68 The total fair value of the shares that vested during the six June 30, 2019 2018 $292 $238, Stock Options No may ten four six June 30, 2019 2018 201 9 201 8 Risk-free interest rate 2.38 % 2.74 % Dividend yield 0.00 % 0.00 % Expected common stock market price volatility factor .41 .39 Weighted average expected life of stock options (years) 6.25 6.25 The per share weighted average fair value of stock options issued during the six June 30, 2019 2018 $2.78 $3.52, The following table summarizes the activity related to stock options for the six June 30, 2019: Number Weighted Options outstanding, January 1, 2019 (21,800 exercisable) 264,400 $ 7.54 Granted 239,160 6.32 Exercised - - Forfeited (7,050 ) 8.45 Options outstanding, June 30, 2019 (84,550 exercisable) 496,510 6.94 |
Note 10 - Employee Benefit Plan
Note 10 - Employee Benefit Plans | 6 Months Ended |
Jun. 30, 2019 | |
Notes to Financial Statements | |
Pension and Other Postretirement Benefits Disclosure [Text Block] | ( 1 0 ) EMPLOYEE BENEFIT PLANS We have defined contribution 401 18 10% $5. four three six June 30, 2019, $92 $282 three six June 30, 2018 $84 $205 one 100% 25% 2% three six June 30, 2019, $14 $37 three six June 30, 2018 $10 $36 |
Note 11 - Segment Information
Note 11 - Segment Information | 6 Months Ended |
Jun. 30, 2019 | |
Notes to Financial Statements | |
Segment Reporting Disclosure [Text Block] | ( 1 1 ) SEGMENT INFORMATION We have two We operate our business worldwide and sell our products both domestically and internationally. Both of our segments sell to semiconductor manufacturers, third Three Months Ended Six Months Ended 201 9 201 8 2019 201 8 Net Revenues: Thermal $ 10,519 $ 13,999 $ 23,153 $ 27,233 EMS 3,833 7,098 9,261 12,735 $ 14,352 $ 21,097 $ 32,414 $ 39,968 Earnings (loss) before income tax expense (benefit): Thermal $ 309 $ 2,592 $ 1,453 $ 2,500 EMS 102 2,194 1,149 3,486 Corporate (711 ) (390 ) (1,440 ) (608 ) $ (300 ) $ 4,396 $ 1,162 $ 5,378 Net earnings (loss): Thermal $ 298 $ 2,415 $ 1,189 $ 1,960 EMS 125 1,945 940 2,950 Corporate (610 ) (346 ) (1,178 ) (515 ) $ (187 ) $ 4,014 $ 951 $ 4,395 June 30, December 31, Identifiable assets: Thermal $ 53,052 $ 55,343 EMS 7,101 6,692 Corporate 643 5,152 $ 60,796 $ 67,187 The following table provides information about our geographic areas of operation. Net revenues from unaffiliated customers are based on the location to which the goods are shipped. Three Months Ended Six Months Ended 201 9 201 8 2019 201 8 Net revenues: U.S. $ 6,283 $ 6,818 $ 13,093 $ 13,361 Foreign 8,069 14,279 19,321 26,607 $ 14,352 $ 21,097 $ 32,414 $ 39,968 June 30, 9 December 31, 8 Property and equipment: U.S. $ 2,239 $ 2,327 Foreign 333 390 $ 2,572 $ 2,717 |
Note 12 - Subsequent Events
Note 12 - Subsequent Events | 6 Months Ended |
Jun. 30, 2019 | |
Notes to Financial Statements | |
Subsequent Events [Text Block] | ( 12 SUBSEQUENT EVENT S On July 31, 2019, 2015 October 27, 2015 297,020 $1,195. October 2015 January 2017. July 31, 2019, $3,000 10b 18 1934, “2019 may 10b5 1 2019 2019 not may 2019 |
Significant Accounting Policies
Significant Accounting Policies (Policies) | 6 Months Ended |
Jun. 30, 2019 | |
Accounting Policies [Abstract] | |
Basis Of Presentation And Use Of Estimates [Policy Text Block] | Basis of Presentation and Use of Estimates In the opinion of management, the accompanying unaudited consolidated financial statements include all adjustments (consisting only of normal recurring adjustments) necessary to present fairly the financial position, results of operations, and changes in cash flows for the interim periods presented. Certain footnote information has been condensed or omitted from these consolidated financial statements. Therefore, these consolidated financial statements should be read in conjunction with the consolidated financial statements and accompanying footnotes included in our Form 10 December 31, 2018 ( “2018 10 March 26, 2019 |
Reclassification, Policy [Policy Text Block] | Reclassification |
Business Combinations Policy [Policy Text Block] | Business Combinations third |
Goodwill Intangible And Long Lived Assets [Policy Text Block] | Goodwill, Intangible and Long-Lived Assets 350 fourth may not not not not not The quantitative goodwill impairment test compares the fair value of a reporting unit with its carrying amount, including goodwill. If the fair value of a reporting unit exceeds its carrying amount, goodwill of the reporting unit is considered not fourth not not no may not no |
Revenue [Policy Text Block] | Revenue Recognition 606 may Revenue is recorded in an amount that reflects the consideration we expect to receive in exchange for those products or services. We do not 30 60 not Nature of Products and Services We sell thermal test and thermal process products (“thermal products”) and semiconductor test products. Our thermal products include ThermoStreams, ThermoChambers and process chillers, which we sell under our Temptronic, Sigma and Thermonics product lines, and Ambrell’s precision induction heating systems, including EkoHeat and EasyHeat products. Our semiconductor test products include manipulators, docking hardware and electrical interface products. We provide post-warranty service for the equipment we sell. We sell semiconductor test products and certain thermal products to the Semi Market. We also sell our thermal products to markets outside the Semi Market (referred to collectively as “Multi Markets”) that include the automotive, defense/aerospace, industrial, telecommunications and other markets. We lease certain of our equipment under short-term leasing agreements with original lease terms of six not Types of Contracts with Customers Our contracts with customers are generally structured as individual purchase orders which specify the exact products or services being sold or equipment being leased along with the selling price, service fee or monthly lease amount for each individual item on the purchase order. Payment terms and any other customer-specific acceptance criteria are also specified on the purchase order. We generally do not Contract Balances We record accounts receivable at the time of invoicing. Accounts receivable, net of the allowance for doubtful accounts, is included in current assets on our balance sheet. To the extent that we do not The allowance for doubtful accounts reflects our best estimate of probable losses inherent in the accounts receivable balance. We determine the allowance based on known troubled accounts, if any, historical experience, and other currently available evidence. Costs to Obtain a Contract with a Customer The only costs we incur associated with obtaining contracts with customers are sales commissions that we pay to our internal sales personnel or third third not Product Warranties In connection with the sale of our products, we generally provide standard one two not no Refer to Notes 4 11 |
Inventory, Policy [Policy Text Block] | Inventories first first not not twelve three |
Lessee, Leases [Policy Text Block] | Leases 842 may not not 842. not ROU assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments arising from the lease. Operating lease ROU assets and liabilities are recognized at commencement date based on the present value of lease payments over the lease term. None may not We have lease agreements which contain both lease and non-lease components, which are generally accounted for separately. In addition to the monthly rental payments due, most of our leases for our offices and warehouse facilities include non-lease components representing our portion of the common area maintenance, property taxes and insurance charges incurred by the landlord for the facilities which we occupy. These amounts are not not 842 one See “Effect of Recently Adopted Amendments to Authoritative Accounting Guidance” below and Note 7 |
Contingent Liability, Repayment of State and Local Grant Funds Received, Policy [Policy Text Block] | Contingent Liability for Repayment of State and Local Grant Funds Received In connection with a new facility in Rochester, New York, which our subsidiary, Ambrell Corporation (“Ambrell”), occupied in May 2018, may $550 may 2023. June 30, 2019, $463 not $87 2019, not 2019. no |
Share-based Payment Arrangement [Policy Text Block] | Stock-Based Compensation 718 9. |
Subsequent Events, Policy [Policy Text Block] | Subsequent Events no six June 30, 2019 12. |
Income Tax, Policy [Policy Text Block] | Income Taxes not not On December 22, 2017, 21% one 12 2018 10 |
Earnings Per Share, Policy [Policy Text Block] | Net Earnings (Loss) Per Common Share Three Months Ended Six Months Ended 201 9 201 8 201 9 201 8 Weighted average common shares outstanding - basic 10,411,276 10,342,674 10,398,147 10,334,492 Potentially dilutive securities: Unvested shares of restricted stock and employee stock options - 27,644 21,767 33,320 Weighted average common shares and common share equivalents outstanding - diluted 10,411,276 10,370,318 10,419,914 10,367,812 Average number of potentially dilutive securities excluded from calculation 618,071 275,831 423,962 189,794 |
New Accounting Pronouncements, Policy [Policy Text Block] | Effect of Recently Adopted Amendments to Authoritative Accounting Guidance In February 2016, 842. February 2016, may 12 two The amendments were effective for us as of January 1, 2019. January 1, 2019 not not 842. 842. not 842. no not not 840.The none not 7 |
Note 2 - Summary of Significa_2
Note 2 - Summary of Significant Accounting Policies (Tables) | 6 Months Ended |
Jun. 30, 2019 | |
Notes Tables | |
Schedule of Weighted Average Number of Shares [Table Text Block] | Three Months Ended June 30, Six Months Ended June 30, 201 9 201 8 201 9 201 8 Weighted average common shares outstanding - basic 10,411,276 10,342,674 10,398,147 10,334,492 Potentially dilutive securities: Unvested shares of restricted stock and employee stock options - 27,644 21,767 33,320 Weighted average common shares and common share equivalents outstanding - diluted 10,411,276 10,370,318 10,419,914 10,367,812 Average number of potentially dilutive securities excluded from calculation 618,071 275,831 423,962 189,794 |
Note 3 - Goodwill and Intangi_2
Note 3 - Goodwill and Intangible Assets (Tables) | 6 Months Ended |
Jun. 30, 2019 | |
Notes Tables | |
Schedule of Carrying Value of Finite-lived Intangible Assets [Table Text Block] | Balance - January 1, 2019 $ 8,201 Amortization (632 ) Balance - June 30, 2019 $ 7,569 |
Schedule Of Intangible Assets [Table Text Block] | <table style="margin-right: 10%; font-size: 10pt; font-family: "Times New Roman", Times, serif; text-indent: 0px; margin-left: 45pt; min-; min-width: 700px;" cellspacing="0" cellpadding="0" border="0"> <tr style="vertical-align: bottom;"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="10" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">June 30, 201</div><div style="display: inline; font-weight: bold;">9</div><div style="display: inline; font-weight: bold;"> </div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> </tr> <tr style="vertical-align: bottom;"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Gross<br /> Carrying<br /> Amount</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><br /> <div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Accumulated</div></div></div> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Amortization </div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Net<br /> Carrying<br /> Amount</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 49%;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Finite-lived intangible assets:</div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="text-align: left; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="text-align: left; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="text-align: left; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-bottom: 0pt; margin-top: 0pt; text-indent: 9pt;">Customer relationships</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10,480</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,258</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,222</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-bottom: 0pt; margin-top: 0pt; text-indent: 9pt;">Technology</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">600</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">321</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">279</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-bottom: 0pt; margin-top: 0pt; text-indent: 9pt;">Patents</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">590</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">522</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">68</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-bottom: 0pt; margin-top: 0pt; text-indent: 9pt;">Software</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">270</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">270</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-bottom: 0pt; margin-top: 0pt; text-indent: 9pt;">Trade name</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">140</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">140</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-bottom: 0pt; margin-top: 0pt; text-indent: 9pt;">Customer backlog</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">500</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">500</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;" nowrap="nowrap"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Total finite-lived intangible assets</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12,580</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,011</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,569</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Indefinite-lived intangible assets:</div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="text-align: left; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="text-align: left; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="text-align: left; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-bottom: 0pt; margin-top: 0pt; text-indent: 9pt;">Trademarks</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6,710</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6,710</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;" nowrap="nowrap"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Total intangible assets</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">19,290</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,011</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">14,279</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;" nowrap="nowrap"> </td> </tr> </table></div><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="margin-right: 10%; font-size: 10pt; font-family: "Times New Roman", Times, serif; text-indent: 0px; margin-left: 45pt; min-; min-width: 700px;" cellspacing="0" cellpadding="0" border="0"> <tr style="vertical-align: bottom;"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="10" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">December 31, 2018 </div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> </tr> <tr style="vertical-align: bottom;"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Gross </div></div></div> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Carrying </div></div></div> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Amount</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><br /> <div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Accumulated </div></div></div> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Amortization </div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Net<br /> Carrying</div></div></div> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Amount</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 49%;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Finite-lived intangible assets:</div> </t" id="sjs-B5"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="margin-right: 10%; font-size: 10pt; font-family: "Times New Roman", Times, serif; text-indent: 0px; margin-left: 45pt; min-; min-width: 700px;" cellspacing="0" cellpadding="0" border="0"> <tr style="vertical-align: bottom;"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="10" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">June 30, 201</div><div style="display: inline; font-weight: bold;">9</div><div style="display: inline; font-weight: bold;"> </div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> </tr> <tr style="vertical-align: bottom;"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Gross<br /> Carrying<br /> Amount</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><br /> <div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Accumulated</div></div></div> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Amortization </div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Net<br /> Carrying<br /> Amount</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 49%;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Finite-lived intangible assets:</div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="text-align: left; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="text-align: left; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="text-align: left; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-bottom: 0pt; margin-top: 0pt; text-indent: 9pt;">Customer relationships</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10,480</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,258</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,222</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-bottom: 0pt; margin-top: 0pt; text-indent: 9pt;">Technology</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">600</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">321</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">279</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-bottom: 0pt; margin-top: 0pt; text-indent: 9pt;">Patents</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">590</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">522</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">68</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-bottom: 0pt; margin-top: 0pt; text-indent: 9pt;">Software</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">270</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">270</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-bottom: 0pt; margin-top: 0pt; text-indent: 9pt;">Trade name</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">140</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">140</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-bottom: 0pt; margin-top: 0pt; text-indent: 9pt;">Customer backlog</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">500</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">500</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;" nowrap="nowrap"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Total finite-lived intangible assets</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12,580</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,011</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,569</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Indefinite-lived intangible assets:</div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="text-align: left; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="text-align: left; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="text-align: left; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-bottom: 0pt; margin-top: 0pt; text-indent: 9pt;">Trademarks</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6,710</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6,710</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;" nowrap="nowrap"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Total intangible assets</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">19,290</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,011</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td> <td style="width: 14%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">14,279</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;" nowrap="nowrap"> </td> </tr> </table></div><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="margin-right: 10%; font-size: 10pt; font-family: "Times New Roman", Times, serif; text-indent: 0px; margin-left: 45pt; min-; min-width: 700px;" cellspacing="0" cellpadding="0" border="0"> <tr style="vertical-align: bottom;"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="10" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">December 31, 2018 </div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> </tr> <tr style="vertical-align: bottom;"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Gross </div></div></div> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Carrying </div></div></div> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Amount</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><br /> <div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Accumulated </div></div></div> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Amortization </div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Net<br /> Carrying</div></div></div> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Amount</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 49%;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Finite-lived intangible assets:</div> </t |
Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block] | 2019 (remainder) $ 625 2020 $ 1,233 2021 $ 1,227 2022 $ 1,167 2023 $ 1,067 |
Note 4 - Revenue From Contrac_2
Note 4 - Revenue From Contracts With Customers (Tables) | 6 Months Ended |
Jun. 30, 2019 | |
Notes Tables | |
Disaggregation of Revenue [Table Text Block] | Three Months Ended Six Months Ended 2019 201 8 201 9 201 8 Net revenues by customer type: End user $ 13,106 $ 18,173 $ 29,143 $ 34,502 OEM/Integrator 1,246 2,924 3,271 5,466 $ 14,352 $ 21,097 $ 32,414 $ 39,968 Net revenues by product type: Thermal test $ 4,282 $ 5,885 $ 9,249 $ 11,722 Induction heating 4,321 5,937 10,072 11,559 Semiconductor test 3,609 6,809 8,893 12,148 Service/other 2,140 2,466 4,200 4,539 $ 14,352 $ 21,097 $ 32,414 $ 39,968 Net revenues by market: Semi Market $ 7,641 $ 13,043 $ 17,752 $ 23,582 Industrial 4,279 5,000 10,225 10,653 Telecommunications 691 1,343 1,284 2,622 Other Multi Markets 1,741 1,711 3,153 3,111 $ 14,352 $ 21,097 $ 32,414 $ 39,968 |
Note 6 - Inventories (Tables)
Note 6 - Inventories (Tables) | 6 Months Ended |
Jun. 30, 2019 | |
Notes Tables | |
Schedule of Inventory, Current [Table Text Block] | June 30, 9 December 31, 8 Raw materials $ 5,331 $ 4,654 Work in process 962 1,026 Inventory consigned to others 65 62 Finished goods 825 778 Total inventories $ 7,183 $ 6,520 |
Changes Incurred for Excess and Obsolete Inventory [Table Text Block] | <table style="margin-right: 10%; font-size: 10pt; font-family: "Times New Roman", Times, serif; text-indent: 0px; margin-left: 45pt; min-; min-width: 700px;" cellspacing="0" cellpadding="0" border="0"> <tr style="vertical-align: bottom;"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="6" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Three Months Ended<br /> June 30,</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="6" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Six Months Ended<br /> June 30, </div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> </tr> <tr style="vertical-align: bottom;"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;text-indent:6.85pt;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">2019</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">2018</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">2019 </div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">2018 </div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> </tr> <tr style="vertical-align: bottom;"> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 44%;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Excess and obsolete inventory charges</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 11%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">136</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 11%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">68</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 11%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">243</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 11%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">129</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> </tr> </table></div>" id="sjs-B5"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="margin-right: 10%; font-size: 10pt; font-family: "Times New Roman", Times, serif; text-indent: 0px; margin-left: 45pt; min-; min-width: 700px;" cellspacing="0" cellpadding="0" border="0"> <tr style="vertical-align: bottom;"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="6" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Three Months Ended<br /> June 30,</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="6" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Six Months Ended<br /> June 30, </div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> </tr> <tr style="vertical-align: bottom;"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;text-indent:6.85pt;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">2019</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">2018</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">2019 </div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">2018 </div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> </tr> <tr style="vertical-align: bottom;"> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 44%;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Excess and obsolete inventory charges</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 11%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">136</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 11%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">68</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 11%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">243</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 11%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">129</div></td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;" nowrap="nowrap"> </td> </tr> </table></div> |
Note 7 - Leases (Tables)
Note 7 - Leases (Tables) | 6 Months Ended |
Jun. 30, 2019 | |
Notes Tables | |
Lease, Cost [Table Text Block] | Three Months Ended Six Months Ended 2019 2018 2019 2018 Operating lease cost $ 370 $ 417 $ 736 $ 835 Short-term lease cost $ 14 $ 13 $ 27 $ 27 Range of remaining lease terms (in years) 0.3 to 8.9 Weighted average remaining lease term (in years) 5.7 Weighted average discount rate 5.0 % |
Schedule of Leases Cash Flow Information [Table Text Block] | Non-cash increases (decreases) in operating lease liabilities and right-of-use assets as a result of lease modifications: Modification to Ambrell’s U.K. facility lease $ (486 ) Modification to lease for facility in Mansfield, Massachusetts $ 1,819 |
Lessee, Operating Lease, Liability, Maturity [Table Text Block] | 2019 (remainder) $ 807 2020 1,572 2021 1,064 2022 825 2023 834 Thereafter 1,626 Total lease payments $ 6,728 Less imputed interest (866 ) Total $ 5,862 |
Note 8 - Debt (Tables)
Note 8 - Debt (Tables) | 6 Months Ended |
Jun. 30, 2019 | |
Notes Tables | |
Schedule Of Outstanding Letters Of Credit [Table Text Block] | Letters of Credit Original L/C L/C Lease June 30, 9 December 31, 8 Mt. Laurel, NJ 3/29/2010 3/31/2020 4/30/2021 $ 90 $ 125 Mansfield, MA 10/27/2010 11/08/2019 12/31/2024 50 50 $ 140 $ 175 |
Note 9 - Stock-based Compensa_2
Note 9 - Stock-based Compensation (Tables) | 6 Months Ended |
Jun. 30, 2019 | |
Notes Tables | |
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block] | Three Months Ended Six Months Ended 201 9 201 8 201 9 201 8 Cost of revenues $ - $ - $ - $ - Selling expense 4 - 4 - Engineering and product development expense 12 2 15 3 General and administrative expense 197 169 377 289 $ 213 $ 171 $ 396 $ 292 |
Schedule of Nonvested Share Activity [Table Text Block] | Number Weighted Unvested shares outstanding, January 1, 2019 114,750 $ 6.92 Granted 115,680 6.57 Vested (43,724 ) 6.90 Forfeited (12,325 ) 7.14 Unvested shares outstanding, June 30, 2019 174,381 6.68 |
Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block] | 201 9 201 8 Risk-free interest rate 2.38 % 2.74 % Dividend yield 0.00 % 0.00 % Expected common stock market price volatility factor .41 .39 Weighted average expected life of stock options (years) 6.25 6.25 |
Share-based Payment Arrangement, Option, Activity [Table Text Block] | Number Weighted Options outstanding, January 1, 2019 (21,800 exercisable) 264,400 $ 7.54 Granted 239,160 6.32 Exercised - - Forfeited (7,050 ) 8.45 Options outstanding, June 30, 2019 (84,550 exercisable) 496,510 6.94 |
Note 11 - Segment Information (
Note 11 - Segment Information (Tables) | 6 Months Ended |
Jun. 30, 2019 | |
Notes Tables | |
Schedule of Segment Reporting Information, by Segment [Table Text Block] | Three Months Ended Six Months Ended 201 9 201 8 2019 201 8 Net Revenues: Thermal $ 10,519 $ 13,999 $ 23,153 $ 27,233 EMS 3,833 7,098 9,261 12,735 $ 14,352 $ 21,097 $ 32,414 $ 39,968 Earnings (loss) before income tax expense (benefit): Thermal $ 309 $ 2,592 $ 1,453 $ 2,500 EMS 102 2,194 1,149 3,486 Corporate (711 ) (390 ) (1,440 ) (608 ) $ (300 ) $ 4,396 $ 1,162 $ 5,378 Net earnings (loss): Thermal $ 298 $ 2,415 $ 1,189 $ 1,960 EMS 125 1,945 940 2,950 Corporate (610 ) (346 ) (1,178 ) (515 ) $ (187 ) $ 4,014 $ 951 $ 4,395 |
Revenue from External Customers by Geographic Areas [Table Text Block] | Three Months Ended Six Months Ended 201 9 201 8 2019 201 8 Net revenues: U.S. $ 6,283 $ 6,818 $ 13,093 $ 13,361 Foreign 8,069 14,279 19,321 26,607 $ 14,352 $ 21,097 $ 32,414 $ 39,968 |
Long-lived Assets by Geographic Areas [Table Text Block] | June 30, 9 December 31, 8 Property and equipment: U.S. $ 2,239 $ 2,327 Foreign 333 390 $ 2,572 $ 2,717 |
Asset [Member] | |
Notes Tables | |
Schedule of Segment Reporting Information, by Segment [Table Text Block] | June 30, December 31, Identifiable assets: Thermal $ 53,052 $ 55,343 EMS 7,101 6,692 Corporate 643 5,152 $ 60,796 $ 67,187 |
Note 1 - Nature of Operations (
Note 1 - Nature of Operations (Details Textual) | 6 Months Ended |
Jun. 30, 2019 | |
Number of Reportable Segments | 2 |
Number of Operating Segments | 2 |
Note 2 - Summary of Significa_3
Note 2 - Summary of Significant Accounting Policies (Details Textual) - USD ($) $ in Thousands | 6 Months Ended | ||
Jun. 30, 2019 | Dec. 31, 2018 | May 31, 2018 | |
Contingent Liability, Repayment of State and Local Grant Funds Received | $ 463 | $ 200 | |
Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent | 21.00% | ||
City of Rochester and State of New York [Member] | |||
Covenant, Future Amount Receivable | $ 87 | $ 550 | |
Thermal Products and Mechanical Products [Member] | |||
Equipment Leased To Customers Initial Term | 180 days |
Note 2 - Summary of Significa_4
Note 2 - Summary of Significant Accounting Policies - Weighted Average Common Shares (Details) - shares | 3 Months Ended | 6 Months Ended | ||
Jun. 30, 2019 | Jun. 30, 2018 | Jun. 30, 2019 | Jun. 30, 2018 | |
Weighted average common shares outstanding - basic (in shares) | 10,411,276 | 10,342,674 | 10,398,147 | 10,334,492 |
Potentially dilutive securities: | ||||
Unvested shares of restricted stock and employee stock options (in shares) | 27,644 | 21,767 | 33,320 | |
Weighted average common shares and common share equivalents outstanding - diluted (in shares) | 10,411,276 | 10,370,318 | 10,419,914 | 10,367,812 |
Average number of potentially dilutive securities excluded from calculation (in shares) | 618,071 | 275,831 | 423,962 | 189,794 |
Note 3 - Goodwill and Intangi_3
Note 3 - Goodwill and Intangible Assets (Details Textual) - USD ($) $ in Thousands | 3 Months Ended | 6 Months Ended | |||
Jun. 30, 2019 | Jun. 30, 2018 | Jun. 30, 2019 | Jun. 30, 2018 | Dec. 31, 2018 | |
Goodwill, Ending Balance | $ 13,738 | $ 13,738 | $ 13,738 | ||
Amortization of Intangible Assets, Total | $ 315 | $ 247 | $ 632 | $ 463 |
Note 3 - Goodwill and Intangi_4
Note 3 - Goodwill and Intangible Assets - Changes in the Amount of the Carrying Value of Intangible Assets (Details) - USD ($) $ in Thousands | 3 Months Ended | 6 Months Ended | ||
Jun. 30, 2019 | Jun. 30, 2018 | Jun. 30, 2019 | Jun. 30, 2018 | |
Balance | $ 8,201 | |||
Amortization | $ (315) | $ (247) | (632) | $ (463) |
Balance | $ 7,569 | $ 7,569 |
Note 3 - Goodwill and Intangi_5
Note 3 - Goodwill and Intangible Assets - Intangible Assets (Details) - USD ($) $ in Thousands | Jun. 30, 2019 | Dec. 31, 2018 |
Finite-lived, Gross Carrying Amount | $ 12,580 | $ 12,580 |
Finite-lived, Accumulated Amortization | 5,011 | 4,379 |
Net Carrying Amount | 7,569 | 8,201 |
Indefinite-lived intangible assets: | ||
Intangible Assets, Gross Carrying Amount | 19,290 | 19,290 |
Finite-lived, Accumulated Amortization | 5,011 | 4,379 |
Net Carrying Amount | 14,279 | 14,911 |
Finite-lived, Gross Carrying Amount | 12,580 | 12,580 |
Net Carrying Amount | 7,569 | 8,201 |
Trademarks [Member] | ||
Indefinite-lived intangible assets: | ||
Indefinite-lived, Gross Carrying Amount | 6,710 | 6,710 |
Net Carrying Amount | 6,710 | 6,710 |
Customer Relationships [Member] | ||
Finite-lived, Gross Carrying Amount | 10,480 | 10,480 |
Finite-lived, Accumulated Amortization | 3,258 | 2,717 |
Net Carrying Amount | 7,222 | 7,763 |
Indefinite-lived intangible assets: | ||
Finite-lived, Accumulated Amortization | 3,258 | 2,717 |
Finite-lived, Gross Carrying Amount | 10,480 | 10,480 |
Net Carrying Amount | 7,222 | 7,763 |
Patented Technology [Member] | ||
Finite-lived, Gross Carrying Amount | 600 | 600 |
Finite-lived, Accumulated Amortization | 321 | 250 |
Net Carrying Amount | 279 | 350 |
Indefinite-lived intangible assets: | ||
Finite-lived, Accumulated Amortization | 321 | 250 |
Finite-lived, Gross Carrying Amount | 600 | 600 |
Net Carrying Amount | 279 | 350 |
Patents [Member] | ||
Finite-lived, Gross Carrying Amount | 590 | 590 |
Finite-lived, Accumulated Amortization | 522 | 502 |
Net Carrying Amount | 68 | 88 |
Indefinite-lived intangible assets: | ||
Finite-lived, Accumulated Amortization | 522 | 502 |
Finite-lived, Gross Carrying Amount | 590 | 590 |
Net Carrying Amount | 68 | 88 |
Computer Software, Intangible Asset [Member] | ||
Finite-lived, Gross Carrying Amount | 270 | 270 |
Finite-lived, Accumulated Amortization | 270 | 270 |
Net Carrying Amount | ||
Indefinite-lived intangible assets: | ||
Finite-lived, Accumulated Amortization | 270 | 270 |
Finite-lived, Gross Carrying Amount | 270 | 270 |
Net Carrying Amount | ||
Trade Names [Member] | ||
Finite-lived, Gross Carrying Amount | 140 | 140 |
Finite-lived, Accumulated Amortization | 140 | 140 |
Net Carrying Amount | ||
Indefinite-lived intangible assets: | ||
Finite-lived, Accumulated Amortization | 140 | 140 |
Finite-lived, Gross Carrying Amount | 140 | 140 |
Net Carrying Amount | ||
Order or Production Backlog [Member] | ||
Finite-lived, Gross Carrying Amount | 500 | 500 |
Finite-lived, Accumulated Amortization | 500 | 500 |
Net Carrying Amount | ||
Indefinite-lived intangible assets: | ||
Finite-lived, Accumulated Amortization | 500 | 500 |
Finite-lived, Gross Carrying Amount | 500 | 500 |
Net Carrying Amount |
Note 3 - Goodwill and Intangi_6
Note 3 - Goodwill and Intangible Assets - Future Amortization Expense (Details) $ in Thousands | Jun. 30, 2019USD ($) |
2019 (remainder) | $ 625 |
2020 | 1,233 |
2021 | 1,227 |
2022 | 1,167 |
2023 | $ 1,067 |
Note 4 - Revenue From Contrac_3
Note 4 - Revenue From Contracts With Customers (Details Textual) $ in Thousands | 6 Months Ended |
Jun. 30, 2019USD ($) | |
Accounts Receivable, Allowance for Credit Loss, Period Increase (Decrease), Total | $ 0 |
Note 4 - Revenue From Contrac_4
Note 4 - Revenue From Contracts With Customers - Disaggregation of Revenues (Details) - USD ($) $ in Thousands | 3 Months Ended | 6 Months Ended | ||
Jun. 30, 2019 | Jun. 30, 2018 | Jun. 30, 2019 | Jun. 30, 2018 | |
Net revenues | $ 14,352 | $ 21,097 | $ 32,414 | $ 39,968 |
Semiconductor Market [Member] | ||||
Net revenues | 7,641 | 13,043 | 17,752 | 23,582 |
Industrial Market [Member] | ||||
Net revenues | 4,279 | 5,000 | 10,225 | 10,653 |
Telecommunications Market [Member] | ||||
Net revenues | 691 | 1,343 | 1,284 | 2,622 |
Other Non-semiconductors Markets [Member] | ||||
Net revenues | 1,741 | 1,711 | 3,153 | 3,111 |
Thermal Testing Products [Member] | ||||
Net revenues | 4,282 | 5,885 | 9,249 | 11,722 |
Induction Heating Products [Member] | ||||
Net revenues | 4,321 | 5,937 | 10,072 | 11,559 |
Semiconductor Production Test Products [Member] | ||||
Net revenues | 3,609 | 6,809 | 8,893 | 12,148 |
Service and Other Products [Member] | ||||
Net revenues | 2,140 | 2,466 | 4,200 | 4,539 |
End User [Member] | ||||
Net revenues | 13,106 | 18,173 | 29,143 | 34,502 |
OEM and Integrators [Member] | ||||
Net revenues | $ 1,246 | $ 2,924 | $ 3,271 | $ 5,466 |
Note 5 - Major Customers (Detai
Note 5 - Major Customers (Details Textual) | 6 Months Ended | |
Jun. 30, 2019 | Jun. 30, 2018 | |
Revenue Benchmark [Member] | Customer Concentration Risk [Member] | Texas Instruments Incorporated [Member] | ||
Concentration Risk, Percentage | 12.00% | 13.00% |
Note 6 - Inventories - Inventor
Note 6 - Inventories - Inventories Held (Details) - USD ($) $ in Thousands | Jun. 30, 2019 | Dec. 31, 2018 |
Raw materials | $ 5,331 | $ 4,654 |
Work in process | 962 | 1,026 |
Inventory consigned to others | 65 | 62 |
Finished goods | 825 | 778 |
Total inventories | $ 7,183 | $ 6,520 |
Note 6 - Inventories - Charges
Note 6 - Inventories - Charges Incurred for Excess and Obsolete Inventory (Details) - USD ($) $ in Thousands | 3 Months Ended | 6 Months Ended | ||
Jun. 30, 2019 | Jun. 30, 2018 | Jun. 30, 2019 | Jun. 30, 2018 | |
Excess and obsolete inventory charges | $ 136 | $ 68 | $ 243 | $ 129 |
Note 7 - Leases (Details Textua
Note 7 - Leases (Details Textual) $ in Thousands | Apr. 08, 2019USD ($)ft² | Jan. 01, 2019USD ($) | Mar. 31, 2019USD ($) | Jun. 30, 2019USD ($) | Jun. 30, 2018USD ($) |
Increase (Decrease) in Operating Lease Liabilities | $ (668) | ||||
UNITED KINGDOM | |||||
Decrease In Operating Lease Liabilities and Right-of-Use Assets, Non-cash | $ 486 | $ 486 | |||
UNITED KINGDOM | Previous Accounting Guidance [Member] | |||||
Lessee, Operating Lease, Term of Contract | 15 years | ||||
Mansfield, Massachusetts [Member] | |||||
Operating Lease, Remaining Lease Term | 3 years 120 days | ||||
Operating Lease, Increase in Area | ft² | 6,100 | ||||
Increase in Operating Lease Liabilities and Right-of-Use Assets, Non-cash | $ 1,819 | $ 1,819 | |||
Accounting Standards Update 2016-02 [Member] | |||||
Increase (Decrease) in Operating Lease Liabilities | $ 5,197 | ||||
Increase (Decrease) in Operating Lease Right-of-Use Assets | $ 4,816 |
Note 7 - Leases - Lease Costs (
Note 7 - Leases - Lease Costs (Details) - USD ($) $ in Thousands | 3 Months Ended | 6 Months Ended | ||
Jun. 30, 2019 | Jun. 30, 2018 | Jun. 30, 2019 | Jun. 30, 2018 | |
Operating lease cost | $ 370 | $ 417 | $ 736 | $ 835 |
Short-term lease cost | $ 14 | $ 13 | $ 27 | $ 27 |
Weighted average remaining lease term (in years) (Year) | 5 years 255 days | 5 years 255 days | ||
Weighted average discount rate | 5.00% | 5.00% | ||
Minimum [Member] | ||||
Range of remaining lease terms (in years) (Year) | 109 days | |||
Maximum [Member] | ||||
Range of remaining lease terms (in years) (Year) | 8 years 328 days |
Note 7 - Leases - Supplemental
Note 7 - Leases - Supplemental Cash Flow Information (Details) - USD ($) $ in Thousands | Apr. 08, 2019 | Mar. 31, 2019 | Jun. 30, 2019 |
UNITED KINGDOM | |||
Non-cash decreases in operating lease liabilities and right-of-use assets as a result of lease modifications | $ (486) | $ (486) | |
Mansfield, Massachusetts [Member] | |||
Non-cash increases in operating lease liabilities and right-of-use assets as a result of lease modifications | $ 1,819 | $ 1,819 |
Note 7 - Leases - Maturities of
Note 7 - Leases - Maturities of Lease Liabilities (Details) $ in Thousands | Jun. 30, 2019USD ($) |
2019 (remainder) | $ 807 |
2020 | 1,572 |
2021 | 1,064 |
2022 | 825 |
2023 | 834 |
Thereafter | 1,626 |
Total lease payments | 6,728 |
Less imputed interest | (866) |
Total | $ 5,862 |
Note 8 - Debt (Details Textual)
Note 8 - Debt (Details Textual) - Letter of Credit [Member] - USD ($) $ in Thousands | Jun. 30, 2019 | Apr. 01, 2019 | Mar. 31, 2019 | Dec. 31, 2018 |
Letters of Credit Outstanding, Amount | $ 140 | $ 175 | ||
Mt Laurel [Member] | ||||
Letters of Credit Outstanding, Amount | $ 90 | $ 90 | $ 125 | $ 125 |
Note 8 - Debt - Outstanding Let
Note 8 - Debt - Outstanding Letters of Credit (Details) - Letter of Credit [Member] - USD ($) $ in Thousands | 6 Months Ended | |||
Jun. 30, 2019 | Apr. 01, 2019 | Mar. 31, 2019 | Dec. 31, 2018 | |
Letters of Credit Amount Outstanding | $ 140 | $ 175 | ||
Mt Laurel [Member] | ||||
Line of Credit, Issue Date | Mar. 29, 2010 | |||
Line of Credit, Expiration Date | Mar. 31, 2020 | |||
Lease Expiration Date | Apr. 30, 2021 | |||
Letters of Credit Amount Outstanding | $ 90 | $ 90 | $ 125 | 125 |
Mansfield [Member] | ||||
Line of Credit, Issue Date | Oct. 27, 2010 | |||
Line of Credit, Expiration Date | Nov. 8, 2019 | |||
Lease Expiration Date | Dec. 31, 2024 | |||
Letters of Credit Amount Outstanding | $ 50 | $ 50 |
Note 9 - Stock-based Compensa_3
Note 9 - Stock-based Compensation (Details Textual) - USD ($) $ / shares in Units, $ in Thousands | 3 Months Ended | 6 Months Ended | ||||
Jun. 30, 2019 | Mar. 31, 2019 | Jun. 30, 2018 | Mar. 31, 2018 | Jun. 30, 2019 | Jun. 30, 2018 | |
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total | $ 2,168 | $ 2,168 | ||||
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition | 3 years 36 days | |||||
Share-based Payment Arrangement, Amount Capitalized | $ 0 | $ 0 | ||||
Restricted Stock [Member] | ||||||
Share-based Payment Arrangement, Expense | $ 213 | $ 171 | 396 | 292 | ||
Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value | $ 292 | 238 | ||||
Restricted Stock [Member] | Employees [Member] | ||||||
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period | 4 years | |||||
Restricted Stock [Member] | Independent Directors [Member] | ||||||
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period | 1 year | |||||
Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period | 36,000 | 32,000 | ||||
Share-based Payment Arrangement, Expense | $ 257 | $ 270 | ||||
Restricted Stock [Member] | Independent Directors [Member] | Share-based Compensation Award, Tranche Four [Member] | ||||||
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Rights, Percentage | 25.00% | |||||
Restricted Stock [Member] | Independent Directors [Member] | Share-based Payment Arrangement, Tranche One [Member] | ||||||
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Rights, Percentage | 25.00% | |||||
Restricted Stock [Member] | Independent Directors [Member] | Share-based Payment Arrangement, Tranche Two [Member] | ||||||
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Rights, Percentage | 25.00% | |||||
Restricted Stock [Member] | Independent Directors [Member] | Share-based Payment Arrangement, Tranche Three [Member] | ||||||
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Rights, Percentage | 25.00% | |||||
Share-based Payment Arrangement, Option [Member] | ||||||
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period | 4 years | |||||
Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period | 10 years | |||||
Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value | $ 2.78 | $ 3.52 |
Note 9 - Stock-based Compensa_4
Note 9 - Stock-based Compensation - Allocation of Share-based Compensation Expense (Details) - Restricted Stock [Member] - USD ($) $ in Thousands | 3 Months Ended | 6 Months Ended | ||
Jun. 30, 2019 | Jun. 30, 2018 | Jun. 30, 2019 | Jun. 30, 2018 | |
Share-based Payment Arrangement, Expense | $ 213 | $ 171 | $ 396 | $ 292 |
Cost of Sales [Member] | ||||
Share-based Payment Arrangement, Expense | ||||
Selling and Marketing Expense [Member] | ||||
Share-based Payment Arrangement, Expense | 4 | 4 | ||
Research and Development Expense [Member] | ||||
Share-based Payment Arrangement, Expense | 12 | 2 | 15 | 3 |
General and Administrative Expense [Member] | ||||
Share-based Payment Arrangement, Expense | $ 197 | $ 169 | $ 377 | $ 289 |
Note 9 - Stock-based Compensa_5
Note 9 - Stock-based Compensation - Unvested Stock Activity (Details) | 6 Months Ended |
Jun. 30, 2019$ / sharesshares | |
Granted, number of shares (in shares) | 239,160 |
Restricted Stock [Member] | |
Unvested shares (in shares) | 114,750 |
Unvested shares, weighted average exercise price (in dollars per share) | $ / shares | $ 6.92 |
Granted, number of shares (in shares) | 115,680 |
Granted, weighted average exercise price (in dollars per share) | $ / shares | $ 6.57 |
Vested, number of shares (in shares) | (43,724) |
Vested, weighted average exercise price (in dollars per share) | $ / shares | $ 6.90 |
Forfeited, number of shares (in shares) | (12,325) |
Forfeited, weighted average exercise price (in dollars per share) | $ / shares | $ 7.14 |
Unvested shares (in shares) | 174,381 |
Unvested shares, weighted average exercise price (in dollars per share) | $ / shares | $ 6.68 |
Note 9 - Stock-based Compensa_6
Note 9 - Stock-based Compensation - Stock Options Valuation Assumptions (Details) - Share-based Payment Arrangement, Option [Member] | 6 Months Ended | |
Jun. 30, 2019 | Jun. 30, 2018 | |
Risk-free interest rate | 2.38% | 2.74% |
Dividend yield | 0.00% | 0.00% |
Expected common stock market price volatility factor | 0.41% | 0.39% |
Weighted average expected life of stock options (years) (Year) | 6 years 91 days | 6 years 91 days |
Note 9 - Stock-based Compensa_7
Note 9 - Stock-based Compensation - Stock Option Activity (Details) | 6 Months Ended |
Jun. 30, 2019$ / sharesshares | |
Options outstanding, number of shares (in shares) | 264,400 |
Options outstanding, weighted average exercise price (in dollars per share) | $ / shares | $ 7.54 |
Granted, number of shares (in shares) | 239,160 |
Granted, weighted average exercise price (in dollars per share) | $ / shares | $ 6.32 |
Exercised, number of shares (in shares) | |
Forfeited, number of shares (in shares) | 7,050 |
Forfeited, weighted average exercise price (in dollars per share) | $ / shares | $ 8.45 |
Options outstanding, number of shares (in shares) | 496,510 |
Options outstanding, weighted average exercise price (in dollars per share) | $ / shares | $ 6.94 |
Note 9 - Stock-based Compensa_8
Note 9 - Stock-based Compensation - Stock Option Activity (Details) (Parentheticals) - shares | Jun. 30, 2019 | Dec. 31, 2018 |
Options exercisable (in shares) | 75,625 | 21,800 |
Note 10 - Employee Benefit Pl_2
Note 10 - Employee Benefit Plans (Details Textual) - USD ($) $ in Thousands | 3 Months Ended | 6 Months Ended | ||
Jun. 30, 2019 | Jun. 30, 2018 | Jun. 30, 2019 | Jun. 30, 2018 | |
401(k) Plan [Member] | ||||
Defined Contribution Plan, Employer Matching Contribution, Percent of Employees' Gross Pay | 10.00% | |||
Defined Contribution Plan Maximum Annual Employer Matching Contribution Per Emplyee Amount | $ 5 | |||
Defined Contribution Plan Employer Matching Contribution Vesting Period | 4 years | |||
Defined Contribution Plan, Employer Discretionary Contribution Amount | $ 92 | $ 84 | $ 282 | $ 205 |
The Ambrell Plan [Member] | ||||
Defined Contribution Plan, Employer Matching Contribution, Percent of Employees' Gross Pay | 2.00% | |||
Defined Contribution Plan, Employer Discretionary Contribution Amount | $ 14 | $ 10 | $ 37 | $ 36 |
Defined Contribution Plan, Maximum Annual Contributions Per Employee, Percent | 100.00% | |||
Defined Contribution Plan, Employer Matching Contribution, Percent of Match | 25.00% |
Note 11 - Segment Information_2
Note 11 - Segment Information (Details Textual) | 6 Months Ended |
Jun. 30, 2019 | |
Number of Reportable Segments | 2 |
Note 11 - Segment Information -
Note 11 - Segment Information - Segment Information (Details) - USD ($) $ in Thousands | 3 Months Ended | 6 Months Ended | ||||
Jun. 30, 2019 | Mar. 31, 2019 | Jun. 30, 2018 | Mar. 31, 2018 | Jun. 30, 2019 | Jun. 30, 2018 | |
Net revenues | $ 14,352 | $ 21,097 | $ 32,414 | $ 39,968 | ||
Earnings (loss) before income tax expense (benefit) | (300) | 4,396 | 1,162 | 5,378 | ||
Net earnings | (187) | $ 1,138 | 4,014 | $ 381 | 951 | 4,395 |
Corporate, Non-Segment [Member] | ||||||
Earnings (loss) before income tax expense (benefit) | (711) | (390) | (1,440) | (608) | ||
Net earnings | (610) | (346) | (1,178) | (515) | ||
Thermal Testing Products [Member] | Operating Segments [Member] | ||||||
Net revenues | 10,519 | 13,999 | 23,153 | 27,233 | ||
Earnings (loss) before income tax expense (benefit) | 309 | 2,592 | 1,453 | 2,500 | ||
Net earnings | 298 | 2,415 | 1,189 | 1,960 | ||
EMS [Member] | Operating Segments [Member] | ||||||
Net revenues | 3,833 | 7,098 | 9,261 | 12,735 | ||
Earnings (loss) before income tax expense (benefit) | 102 | 2,194 | 1,149 | 3,486 | ||
Net earnings | $ 125 | $ 1,945 | $ 940 | $ 2,950 |
Note 11 - Segment Information_3
Note 11 - Segment Information - Identifiable Assets (Details) - USD ($) $ in Thousands | Jun. 30, 2019 | Dec. 31, 2018 |
Identifiable assets: | ||
Identifiable Assets | $ 60,796 | $ 67,187 |
Corporate, Non-Segment [Member] | ||
Identifiable assets: | ||
Identifiable Assets | 643 | 5,152 |
Thermal Testing Products [Member] | ||
Identifiable assets: | ||
Identifiable Assets | 53,052 | 55,343 |
EMS [Member] | ||
Identifiable assets: | ||
Identifiable Assets | $ 7,101 | $ 6,692 |
Note 11 - Segment Information_4
Note 11 - Segment Information - Net Revenue From Unaffiliated Customers (Details) - USD ($) $ in Thousands | 3 Months Ended | 6 Months Ended | ||
Jun. 30, 2019 | Jun. 30, 2018 | Jun. 30, 2019 | Jun. 30, 2018 | |
Net revenues | $ 14,352 | $ 21,097 | $ 32,414 | $ 39,968 |
UNITED STATES | ||||
Net revenues | 6,283 | 6,818 | 13,093 | 13,361 |
Non-US [Member] | ||||
Net revenues | $ 8,069 | $ 14,279 | $ 19,321 | $ 26,607 |
Note 11 - Segment Information_5
Note 11 - Segment Information - Long-lived Assets by Geographical Area (Details) - USD ($) $ in Thousands | Jun. 30, 2019 | Dec. 31, 2018 |
Property and equipment: | ||
Property and Equipment | $ 2,572 | $ 2,717 |
UNITED STATES | ||
Property and equipment: | ||
Property and Equipment | 2,239 | 2,327 |
Non-US [Member] | ||
Property and equipment: | ||
Property and Equipment | $ 333 | $ 390 |
Note 12 - Subsequent Events (De
Note 12 - Subsequent Events (Details Textual) - USD ($) $ in Thousands | 15 Months Ended | |
Jan. 31, 2017 | Jul. 31, 2019 | |
The 2015 Stock Repurchase Program [Member] | ||
Stock Repurchased and Retired During Period, Shares | 297,020 | |
Stock Repurchased and Retired During Period, Value | $ 1,195 | |
The 2019 Repurchase Plan [Member] | Subsequent Event [Member] | ||
Stock Repurchase Program, Authorized Amount | $ 3,000 |