2019 Q1 Form 10-K Financial Statement
#000123981920000032 Filed on March 13, 2020
Income Statement
Concept | 2019 Q1 | 2019 | 2018 Q4 |
---|---|---|---|
Revenue | $14.83M | $70.52M | $13.54M |
YoY Change | 21.65% | 64.31% | 2.44% |
Cost Of Revenue | $8.065M | $35.33M | $6.966M |
YoY Change | 12.53% | 50.49% | 22.86% |
Gross Profit | $6.768M | $35.18M | $6.572M |
YoY Change | 76.25% | 81.0% | 49.91% |
Gross Profit Margin | 45.63% | 49.89% | 48.54% |
Selling, General & Admin | $6.207M | $23.34M | $4.896M |
YoY Change | 86.2% | 57.79% | 24.27% |
% of Gross Profit | 91.71% | 66.35% | 74.5% |
Research & Development | $1.458M | $7.500M | $1.253M |
YoY Change | 65.76% | 99.14% | 81.55% |
% of Gross Profit | 21.54% | 21.32% | 19.06% |
Depreciation & Amortization | $620.0K | $1.000M | $320.0K |
YoY Change | 100.0% | 100.0% | 10.34% |
% of Gross Profit | 9.16% | 2.84% | 4.87% |
Operating Expenses | $7.665M | $31.87M | $6.149M |
YoY Change | 81.93% | 71.69% | 32.52% |
Operating Profit | -$897.0K | $3.316M | $423.0K |
YoY Change | 140.48% | 277.88% | -793.44% |
Interest Expense | -$11.00K | $16.00K | -$21.14K |
YoY Change | -72.94% | -87.13% | -47.16% |
% of Operating Profit | 0.48% | -5.0% | |
Other Income/Expense, Net | $158.0K | $373.0K | $176.3K |
YoY Change | 547.25% | -8.6% | |
Pretax Income | -$739.0K | $3.689M | $599.8K |
YoY Change | 111.72% | 186.94% | -224.96% |
Income Tax | -$1.865M | -$1.654M | $722.1K |
% Of Pretax Income | -44.84% | 120.4% | |
Net Earnings | $1.126M | $5.343M | $940.0K |
YoY Change | 655.7% | -51.45% | -6.56% |
Net Earnings / Revenue | 7.59% | 7.58% | 6.94% |
Basic Earnings Per Share | $0.04 | $0.18 | $0.03 |
Diluted Earnings Per Share | $0.03 | $0.16 | $0.03 |
COMMON SHARES | |||
Basic Shares Outstanding | 28.04M shares | 28.69M shares | 28.07M shares |
Diluted Shares Outstanding | 33.48M shares | 31.84M shares | 28.07M shares |
Balance Sheet
Concept | 2019 Q1 | 2019 | 2018 Q4 |
---|---|---|---|
SHORT-TERM ASSETS | |||
Cash & Short-Term Investments | $24.60M | $25.00M | $42.50M |
YoY Change | -26.35% | -41.18% | 14.86% |
Cash & Equivalents | $24.58M | $25.00M | $42.46M |
Short-Term Investments | |||
Other Short-Term Assets | $1.100M | $1.300M | $900.0K |
YoY Change | 0.0% | 44.44% | -83.33% |
Inventory | $9.996M | $10.30M | $6.874M |
Prepaid Expenses | |||
Receivables | $13.51M | $19.00M | $13.04M |
Other Receivables | $2.500M | $2.500M | $2.500M |
Total Short-Term Assets | $54.50M | $58.10M | $68.23M |
YoY Change | -1.93% | -14.81% | 16.03% |
LONG-TERM ASSETS | |||
Property, Plant & Equipment | $3.537M | $5.800M | $3.628M |
YoY Change | 3.27% | 61.11% | 27.09% |
Goodwill | $10.35M | $101.0K | |
YoY Change | 1960.81% | ||
Intangibles | $10.19M | $3.302M | |
YoY Change | 218.08% | 91.17% | |
Long-Term Investments | |||
YoY Change | |||
Other Assets | $3.538M | $1.500M | $1.995K |
YoY Change | 19530.09% | 0.0% | |
Total Long-Term Assets | $29.07M | $28.40M | $7.370M |
YoY Change | 292.03% | 283.78% | -0.69% |
TOTAL ASSETS | |||
Total Short-Term Assets | $54.50M | $58.10M | $68.23M |
Total Long-Term Assets | $29.07M | $28.40M | $7.370M |
Total Assets | $83.56M | $86.50M | $75.60M |
YoY Change | 32.67% | 14.42% | 14.16% |
SHORT-TERM LIABILITIES | |||
YoY Change | |||
Accounts Payable | $4.946M | $2.800M | $2.396M |
YoY Change | 109.78% | 16.67% | 13.5% |
Accrued Expenses | $7.840M | $9.600M | $6.597M |
YoY Change | 36.52% | 54.84% | 0.77% |
Deferred Revenue | $2.792M | $2.486M | |
YoY Change | 54.76% | -25.08% | |
Short-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Long-Term Debt Due | $247.7K | $100.0K | $619.3K |
YoY Change | -85.84% | -85.71% | -66.22% |
Total Short-Term Liabilities | $16.58M | $17.00M | $12.14M |
YoY Change | 41.84% | 40.5% | -18.12% |
LONG-TERM LIABILITIES | |||
Long-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | -100.0% | -100.0% | -100.0% |
Other Long-Term Liabilities | $2.971M | $2.000M | $0.00 |
YoY Change | 170.08% | 100.0% | -100.0% |
Total Long-Term Liabilities | $2.971M | $2.000M | $0.00 |
YoY Change | 1180.09% | 81.82% | -100.0% |
TOTAL LIABILITIES | |||
Total Short-Term Liabilities | $16.58M | $17.00M | $12.14M |
Total Long-Term Liabilities | $2.971M | $2.000M | $0.00 |
Total Liabilities | $19.56M | $19.10M | $13.24M |
YoY Change | 48.87% | 44.7% | -20.62% |
SHAREHOLDERS EQUITY | |||
Retained Earnings | -$20.26M | -$21.31M | |
YoY Change | -36.78% | -34.26% | |
Common Stock | $30.33K | $30.12K | |
YoY Change | 3.81% | 3.2% | |
Preferred Stock | |||
YoY Change | |||
Treasury Stock (at cost) | $2.117M | $2.117M | |
YoY Change | 8.22% | 28.3% | |
Treasury Stock Shares | 1.253M shares | 1.253M shares | |
Shareholders Equity | $64.01M | $67.50M | $62.35M |
YoY Change | |||
Total Liabilities & Shareholders Equity | $83.56M | $86.50M | $75.60M |
YoY Change | 32.67% | 14.42% | 14.16% |
Cashflow Statement
Concept | 2019 Q1 | 2019 | 2018 Q4 |
---|---|---|---|
OPERATING ACTIVITIES | |||
Net Income | $1.126M | $5.343M | $940.0K |
YoY Change | 655.7% | -51.45% | -6.56% |
Depreciation, Depletion And Amortization | $620.0K | $1.000M | $320.0K |
YoY Change | 100.0% | 100.0% | 10.34% |
Cash From Operating Activities | $1.597M | $4.798M | $130.0K |
YoY Change | -162.87% | -245.01% | -61.76% |
INVESTING ACTIVITIES | |||
Capital Expenditures | $215.0K | $541.0K | -$120.0K |
YoY Change | 65.74% | 39.83% | -73.91% |
Acquisitions | $19.00M | ||
YoY Change | 279.95% | ||
Other Investing Activities | -$19.06M | -$19.27M | -$4.080M |
YoY Change | 17227.27% | -284.93% | 3609.09% |
Cash From Investing Activities | -$19.28M | -$19.82M | -$4.190M |
YoY Change | 7839.78% | -297.42% | 648.21% |
FINANCING ACTIVITIES | |||
Cash Dividend Paid | |||
YoY Change | |||
Common Stock Issuance & Retirement, Net | $0.00 | $2.220M | |
YoY Change | -100.0% | 375.48% | |
Debt Paid & Issued, Net | |||
YoY Change | |||
Cash From Financing Activities | -$197.0K | -$2.437M | -630.0K |
YoY Change | -73.93% | 95.03% | -51.91% |
NET CHANGE | |||
Cash From Operating Activities | $1.597M | $4.798M | 130.0K |
Cash From Investing Activities | -$19.28M | -$19.82M | -4.190M |
Cash From Financing Activities | -$197.0K | -$2.437M | -630.0K |
Net Change In Cash | -$17.88M | -$17.45M | -4.690M |
YoY Change | 405.25% | -418.58% | 206.54% |
FREE CASH FLOW | |||
Cash From Operating Activities | $1.597M | $4.798M | $130.0K |
Capital Expenditures | $215.0K | $541.0K | -$120.0K |
Free Cash Flow | $1.382M | $4.257M | $250.0K |
YoY Change | -151.76% | -215.19% | -68.75% |
Facts In Submission
Frame | Concept Type | Concept / XBRL Key | Value | Unit |
---|---|---|---|---|
CY2019 | dei |
Amendment Flag
AmendmentFlag
|
false | |
CY2019 | dei |
Current Fiscal Year End Date
CurrentFiscalYearEndDate
|
--12-31 | |
CY2019 | dei |
Document Fiscal Period Focus
DocumentFiscalPeriodFocus
|
FY | |
CY2019 | dei |
Document Fiscal Year Focus
DocumentFiscalYearFocus
|
2019 | |
CY2019 | dei |
Document Period End Date
DocumentPeriodEndDate
|
2019-12-31 | |
CY2019 | dei |
Document Type
DocumentType
|
10-K | |
CY2019 | dei |
Entity Central Index Key
EntityCentralIndexKey
|
0001239819 | |
CY2020Q1 | dei |
Entity Common Stock Shares Outstanding
EntityCommonStockSharesOutstanding
|
30391879 | shares |
CY2019 | dei |
Entity Current Reporting Status
EntityCurrentReportingStatus
|
Yes | |
CY2019 | dei |
Entity Emerging Growth Company
EntityEmergingGrowthCompany
|
false | |
CY2019 | dei |
Entity Filer Category
EntityFilerCategory
|
Accelerated Filer | |
CY2019Q2 | dei |
Entity Public Float
EntityPublicFloat
|
100400000 | USD |
CY2019 | luna |
Share Based Compensation Shares Authorized Under Stock Option Plans Grants In Period Exercise Price Range Lower Range Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantsInPeriodExercisePriceRangeLowerRangeLimit
|
3.21 | |
CY2018 | luna |
Share Based Compensation Shares Authorized Under Stock Option Plans Grants In Period Exercise Price Range Upper Range Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantsInPeriodExercisePriceRangeUpperRangeLimit
|
3.53 | |
CY2018 | us-gaap |
Nonoperating Income Expense
NonoperatingIncomeExpense
|
408093 | USD |
CY2019 | dei |
Entity Registrant Name
EntityRegistrantName
|
LUNA INNOVATIONS INC | |
CY2019Q4 | luna |
Contract With Customer Assets Liabilities Net
ContractWithCustomerAssetsLiabilitiesNet
|
-679479 | USD |
CY2019 | luna |
Share Based Compensation Shares Authorized Under Stock Option Plans Grants In Period Exercise Price Range Upper Range Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantsInPeriodExercisePriceRangeUpperRangeLimit
|
7.37 | |
CY2018Q4 | luna |
Working Capital Payable Current
WorkingCapitalPayableCurrent
|
542983 | USD |
CY2019 | dei |
Entity Shell Company
EntityShellCompany
|
false | |
CY2019 | dei |
Entity Small Business
EntitySmallBusiness
|
true | |
CY2019 | dei |
Entity Voluntary Filers
EntityVoluntaryFilers
|
No | |
CY2019 | dei |
Entity Well Known Seasoned Issuer
EntityWellKnownSeasonedIssuer
|
No | |
CY2018Q4 | luna |
Contract With Customer Assets Liabilities Net
ContractWithCustomerAssetsLiabilitiesNet
|
273204 | USD |
CY2018Q4 | luna |
Deferred Tax Assets Operating Lease Liability
DeferredTaxAssetsOperatingLeaseLiability
|
288017 | USD |
CY2019Q4 | luna |
Deferred Tax Assets Operating Lease Liability
DeferredTaxAssetsOperatingLeaseLiability
|
796864 | USD |
CY2018Q4 | luna |
Deferred Tax Assets Restricted Stock
DeferredTaxAssetsRestrictedStock
|
60681 | USD |
CY2019Q4 | luna |
Deferred Tax Assets Restricted Stock
DeferredTaxAssetsRestrictedStock
|
102741 | USD |
CY2018Q4 | luna |
Deferred Tax Assets Transaction Costs Noncurrent
DeferredTaxAssetsTransactionCostsNoncurrent
|
63668 | USD |
CY2019Q4 | luna |
Deferred Tax Assets Transaction Costs Noncurrent
DeferredTaxAssetsTransactionCostsNoncurrent
|
58540 | USD |
CY2018Q4 | luna |
Deferred Tax Liabilities Operating Lease Right Of Use Assets
DeferredTaxLiabilitiesOperatingLeaseRightOfUseAssets
|
0 | USD |
CY2019Q4 | luna |
Deferred Tax Liabilities Operating Lease Right Of Use Assets
DeferredTaxLiabilitiesOperatingLeaseRightOfUseAssets
|
544539 | USD |
CY2018 | luna |
Disposal Group Including Discontinued Operation Intangible Property Costs
DisposalGroupIncludingDiscontinuedOperationIntangiblePropertyCosts
|
10000 | USD |
CY2018 | luna |
Disposal Group Including Discontinued Operation Other Income Expense
DisposalGroupIncludingDiscontinuedOperationOtherIncomeExpense
|
13330 | USD |
CY2018 | luna |
Dividend On Preferred Stock Value Of Common Stock Issuable
DividendOnPreferredStockValueOfCommonStockIssuable
|
257302 | USD |
CY2019 | luna |
Dividend On Preferred Stock Value Of Common Stock Issuable
DividendOnPreferredStockValueOfCommonStockIssuable
|
285450 | USD |
CY2018 | luna |
Effective Income Tax Rate Reconciliation Alternative Minimum Tax Carryover Percent
EffectiveIncomeTaxRateReconciliationAlternativeMinimumTaxCarryoverPercent
|
-0.0983 | |
CY2019 | luna |
Effective Income Tax Rate Reconciliation Alternative Minimum Tax Carryover Percent
EffectiveIncomeTaxRateReconciliationAlternativeMinimumTaxCarryoverPercent
|
0.0000 | |
CY2018 | luna |
Effective Income Tax Rate Reconciliation Permanent Differences
EffectiveIncomeTaxRateReconciliationPermanentDifferences
|
-0.0088 | |
CY2019 | luna |
Effective Income Tax Rate Reconciliation Permanent Differences
EffectiveIncomeTaxRateReconciliationPermanentDifferences
|
0.0420 | |
CY2019 | luna |
Finance Lease Cost
FinanceLeaseCost
|
51424 | USD |
CY2019Q4 | luna |
Lease Liability
LeaseLiability
|
3345104 | USD |
CY2019Q4 | luna |
Lease Right Of Use Asset
LeaseRightOfUseAsset
|
2305914 | USD |
CY2019Q4 | luna |
Minimum Royalty Payments For Purchase Obligations
MinimumRoyaltyPaymentsForPurchaseObligations
|
200000 | USD |
CY2018Q1 | luna |
Numberof Purchase Commitments Executed
NumberofPurchaseCommitmentsExecuted
|
1 | purchase_order |
CY2018Q4 | luna |
Numberof Purchase Commitments Executed
NumberofPurchaseCommitmentsExecuted
|
1 | purchase_order |
CY2018 | luna |
Proceeds From Stock Option And Warrant Exercises
ProceedsFromStockOptionAndWarrantExercises
|
1097316 | USD |
CY2019 | luna |
Proceeds From Stock Option And Warrant Exercises
ProceedsFromStockOptionAndWarrantExercises
|
447954 | USD |
CY2017Q4 | luna |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Lower Range Limit Balance
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitBalance
|
0.61 | |
CY2018Q4 | luna |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Lower Range Limit Balance
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitBalance
|
0.61 | |
CY2019Q4 | luna |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Lower Range Limit Balance
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitBalance
|
1.18 | |
CY2017Q4 | luna |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Upper Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperLimit
|
6.55 | |
CY2018Q4 | luna |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Upper Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperLimit
|
6.55 | |
CY2019Q4 | luna |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Upper Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperLimit
|
7.37 | |
CY2018 | luna |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercised In Period Exercise Price Range Lower Range Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisedInPeriodExercisePriceRangeLowerRangeLimit
|
0.65 | |
CY2019 | luna |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercised In Period Exercise Price Range Lower Range Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisedInPeriodExercisePriceRangeLowerRangeLimit
|
0.61 | |
CY2018 | luna |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercised In Period Exercise Price Range Upper Range Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisedInPeriodExercisePriceRangeUpperRangeLimit
|
2.46 | |
CY2019 | luna |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercised In Period Exercise Price Range Upper Range Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisedInPeriodExercisePriceRangeUpperRangeLimit
|
1.81 | |
CY2018 | luna |
Share Based Compensation Shares Authorized Under Stock Option Plans Forfeitures In Period Exercise Price Range Lower Range Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansForfeituresInPeriodExercisePriceRangeLowerRangeLimit
|
1.15 | |
CY2019 | luna |
Share Based Compensation Shares Authorized Under Stock Option Plans Forfeitures In Period Exercise Price Range Lower Range Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansForfeituresInPeriodExercisePriceRangeLowerRangeLimit
|
1.47 | |
CY2018 | luna |
Share Based Compensation Shares Authorized Under Stock Option Plans Forfeitures In Period Exercise Price Range Upper Range Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansForfeituresInPeriodExercisePriceRangeUpperRangeLimit
|
6.55 | |
CY2019 | luna |
Share Based Compensation Shares Authorized Under Stock Option Plans Forfeitures In Period Exercise Price Range Upper Range Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansForfeituresInPeriodExercisePriceRangeUpperRangeLimit
|
3.37 | |
CY2018 | luna |
Share Based Compensation Shares Authorized Under Stock Option Plans Grants In Period Exercise Price Range Lower Range Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansGrantsInPeriodExercisePriceRangeLowerRangeLimit
|
2.67 | |
CY2019Q4 | luna |
Working Capital Payable Current
WorkingCapitalPayableCurrent
|
0 | USD |
CY2018Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
2395984 | USD |
CY2019Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
2786825 | USD |
CY2018Q4 | us-gaap |
Accounts Receivable Gross Current
AccountsReceivableGrossCurrent
|
13321151 | USD |
CY2019Q4 | us-gaap |
Accounts Receivable Gross Current
AccountsReceivableGrossCurrent
|
17198924 | USD |
CY2018Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
13037068 | USD |
CY2019Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
16268645 | USD |
CY2018Q4 | us-gaap |
Accrued Income Taxes Current
AccruedIncomeTaxesCurrent
|
236636 | USD |
CY2019Q4 | us-gaap |
Accrued Income Taxes Current
AccruedIncomeTaxesCurrent
|
715916 | USD |
CY2018Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
6597458 | USD |
CY2019Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
10369545 | USD |
CY2019Q1 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
7840127 | USD |
CY2018Q4 | us-gaap |
Accrued Professional Fees Current
AccruedProfessionalFeesCurrent
|
198062 | USD |
CY2019Q4 | us-gaap |
Accrued Professional Fees Current
AccruedProfessionalFeesCurrent
|
113303 | USD |
CY2018Q4 | us-gaap |
Accrued Rent Current
AccruedRentCurrent
|
146542 | USD |
CY2019Q4 | us-gaap |
Accrued Rent Current
AccruedRentCurrent
|
0 | USD |
CY2018Q4 | us-gaap |
Accrued Royalties Current
AccruedRoyaltiesCurrent
|
302428 | USD |
CY2019Q4 | us-gaap |
Accrued Royalties Current
AccruedRoyaltiesCurrent
|
364951 | USD |
CY2018Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
12496308 | USD |
CY2019Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
13319327 | USD |
CY2018Q4 | us-gaap |
Additional Paid In Capital
AdditionalPaidInCapital
|
85744750 | USD |
CY2019Q4 | us-gaap |
Additional Paid In Capital
AdditionalPaidInCapital
|
88021903 | USD |
CY2018 | us-gaap |
Advertising Expense
AdvertisingExpense
|
100000 | USD |
CY2019 | us-gaap |
Advertising Expense
AdvertisingExpense
|
100000 | USD |
CY2018 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
600000 | USD |
CY2019 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
1500000 | USD |
CY2018Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
284083 | USD |
CY2019Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
930279 | USD |
CY2018 | us-gaap |
Amortization Of Financing Costs
AmortizationOfFinancingCosts
|
16308 | USD |
CY2019 | us-gaap |
Amortization Of Financing Costs
AmortizationOfFinancingCosts
|
5685 | USD |
CY2018 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
400000 | USD |
CY2019 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
1600000 | USD |
CY2018Q4 | us-gaap |
Assets
Assets
|
75598736 | USD |
CY2019Q4 | us-gaap |
Assets
Assets
|
86524060 | USD |
CY2018Q4 | us-gaap |
Assets Current
AssetsCurrent
|
68228757 | USD |
CY2019Q4 | us-gaap |
Assets Current
AssetsCurrent
|
58116293 | USD |
CY2018Q4 | us-gaap |
Billed Contract Receivables
BilledContractReceivables
|
13289790 | USD |
CY2019Q4 | us-gaap |
Billed Contract Receivables
BilledContractReceivables
|
17193742 | USD |
CY2018Q4 | us-gaap |
Buildings And Improvements Gross
BuildingsAndImprovementsGross
|
69556 | USD |
CY2019Q4 | us-gaap |
Buildings And Improvements Gross
BuildingsAndImprovementsGross
|
69556 | USD |
CY2018 | us-gaap |
Business Acquisitions Pro Forma Income Loss From Continuing Operations Before Changes In Accounting And Extraordinary Items Net Of Tax
BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax
|
1559008 | USD |
CY2019 | us-gaap |
Business Acquisitions Pro Forma Income Loss From Continuing Operations Before Changes In Accounting And Extraordinary Items Net Of Tax
BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax
|
6912802 | USD |
CY2018 | us-gaap |
Business Acquisitions Pro Forma Revenue
BusinessAcquisitionsProFormaRevenue
|
60249896 | USD |
CY2019 | us-gaap |
Business Acquisitions Pro Forma Revenue
BusinessAcquisitionsProFormaRevenue
|
72576902 | USD |
CY2018 | us-gaap |
Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
|
0 | USD |
CY2019 | us-gaap |
Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
|
900000 | USD |
CY2018 | us-gaap |
Capital Expenditure Discontinued Operations
CapitalExpenditureDiscontinuedOperations
|
100000 | USD |
CY2018Q4 | us-gaap |
Capital Lease Obligations Current
CapitalLeaseObligationsCurrent
|
40586 | USD |
CY2018Q4 | us-gaap |
Capital Lease Obligations Noncurrent
CapitalLeaseObligationsNoncurrent
|
68978 | USD |
CY2019 | us-gaap |
Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
|
1000000 | USD |
CY2018 | us-gaap |
Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
|
0 | USD |
CY2018Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
42460267 | USD |
CY2019Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
25005917 | USD |
CY2018 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
5478733 | USD |
CY2019 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
-17454350 | USD |
CY2018Q4 | us-gaap |
Capitalized Computer Software Gross
CapitalizedComputerSoftwareGross
|
1122231 | USD |
CY2019Q4 | us-gaap |
Capitalized Computer Software Gross
CapitalizedComputerSoftwareGross
|
1178210 | USD |
CY2018Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
42460267 | USD |
CY2019Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
25005917 | USD |
CY2017Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
36981534 | USD |
CY2018Q4 | us-gaap |
Cash Uninsured Amount
CashUninsuredAmount
|
4000000 | USD |
CY2019Q4 | us-gaap |
Cash Uninsured Amount
CashUninsuredAmount
|
5000000 | USD |
CY2018Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
USD | |
CY2019Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
USD | |
CY2018Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.001 | |
CY2019Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.001 | |
CY2018Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
100000000 | shares |
CY2019Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
100000000 | shares |
CY2018Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
29209506 | shares |
CY2019Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
31788896 | shares |
CY2018Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
27956401 | shares |
CY2019Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
30149105 | shares |
CY2018Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
30120 | USD |
CY2019Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
31849 | USD |
CY2019 | us-gaap |
Contract With Customer Asset Cumulative Catch Up Adjustment To Revenue Change In Measure Of Progress
ContractWithCustomerAssetCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress
|
-1000000 | USD |
CY2018Q4 | us-gaap |
Contract With Customer Asset Net
ContractWithCustomerAssetNet
|
2759315 | USD |
CY2019Q4 | us-gaap |
Contract With Customer Asset Net
ContractWithCustomerAssetNet
|
3208206 | USD |
CY2018Q4 | us-gaap |
Contract With Customer Asset Net Current
ContractWithCustomerAssetNetCurrent
|
2422495 | USD |
CY2019Q4 | us-gaap |
Contract With Customer Asset Net Current
ContractWithCustomerAssetNetCurrent
|
2758946 | USD |
CY2018Q4 | us-gaap |
Contract With Customer Asset Net Noncurrent
ContractWithCustomerAssetNetNoncurrent
|
336820 | USD |
CY2019Q4 | us-gaap |
Contract With Customer Asset Net Noncurrent
ContractWithCustomerAssetNetNoncurrent
|
449260 | USD |
CY2018Q4 | us-gaap |
Contract With Customer Liability
ContractWithCustomerLiability
|
2486111 | USD |
CY2019Q4 | us-gaap |
Contract With Customer Liability
ContractWithCustomerLiability
|
3887685 | USD |
CY2018Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
2486111 | USD |
CY2019Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
3887685 | USD |
CY2018 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
23479345 | USD |
CY2019 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
35333333 | USD |
CY2018 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
-44727 | USD |
CY2019 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
1466770 | USD |
CY2018 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
92545 | USD |
CY2019 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
227912 | USD |
CY2018 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
0 | USD |
CY2019 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
-2849371 | USD |
CY2018Q4 | us-gaap |
Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
|
0 | USD |
CY2019Q4 | us-gaap |
Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
|
1415563 | USD |
CY2018Q4 | us-gaap |
Deferred Rent Credit Noncurrent
DeferredRentCreditNoncurrent
|
1035974 | USD |
CY2018 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
0 | USD |
CY2019 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
-499661 | USD |
CY2018Q4 | us-gaap |
Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
|
115676 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
|
130058 | USD |
CY2018Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
3267533 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
1775487 | USD |
CY2018Q4 | us-gaap |
Deferred Tax Assets Net
DeferredTaxAssetsNet
|
0 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Assets Net
DeferredTaxAssetsNet
|
1415563 | USD |
CY2018Q4 | us-gaap |
Deferred Tax Assets Property Plant And Equipment
DeferredTaxAssetsPropertyPlantAndEquipment
|
2804 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Assets Property Plant And Equipment
DeferredTaxAssetsPropertyPlantAndEquipment
|
4828 | USD |
CY2018Q4 | us-gaap |
Deferred Tax Assets State Taxes
DeferredTaxAssetsStateTaxes
|
44861 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Assets State Taxes
DeferredTaxAssetsStateTaxes
|
33791 | USD |
CY2018Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits
|
216944 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits
|
294190 | USD |
CY2018Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Employee Compensation
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation
|
0 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Employee Compensation
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation
|
9499 | USD |
CY2018Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
|
803757 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
|
373658 | USD |
CY2018Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
|
394118 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
|
594450 | USD |
CY2018Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
|
332721 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
|
376331 | USD |
CY2018Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
3267533 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
359924 | USD |
CY2018Q4 | us-gaap |
Deferred Tax Liabilities Deferred Expense Capitalized Inventory Costs
DeferredTaxLiabilitiesDeferredExpenseCapitalizedInventoryCosts
|
21785 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Deferred Expense Capitalized Inventory Costs
DeferredTaxLiabilitiesDeferredExpenseCapitalizedInventoryCosts
|
0 | USD |
CY2018Q4 | us-gaap |
Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
|
838540 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
|
2134569 | USD |
CY2018 | us-gaap |
Defined Benefit Plan Contributions By Employer
DefinedBenefitPlanContributionsByEmployer
|
300000 | USD |
CY2019 | us-gaap |
Defined Benefit Plan Contributions By Employer
DefinedBenefitPlanContributionsByEmployer
|
400000 | USD |
CY2019 | us-gaap |
Defined Contribution Plan Employer Matching Contribution Percent
DefinedContributionPlanEmployerMatchingContributionPercent
|
0.1 | |
CY2019 | us-gaap |
Defined Contribution Plan Employers Matching Contribution Annual Vesting Percentage
DefinedContributionPlanEmployersMatchingContributionAnnualVestingPercentage
|
0.30 | |
CY2018 | us-gaap |
Depreciation
Depreciation
|
500000 | USD |
CY2019 | us-gaap |
Depreciation
Depreciation
|
1000000 | USD |
CY2018 | us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
1218559 | USD |
CY2019 | us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
2503291 | USD |
CY2018 | us-gaap |
Depreciation And Amortization Discontinued Operations
DepreciationAndAmortizationDiscontinuedOperations
|
200000 | USD |
CY2018 | us-gaap |
Discontinued Operation Gain Loss On Disposal Of Discontinued Operation Net Of Tax
DiscontinuedOperationGainLossOnDisposalOfDiscontinuedOperationNetOfTax
|
8600000 | USD |
CY2018 | us-gaap |
Discontinued Operation Gain Loss On Disposal Of Discontinued Operation Net Of Tax
DiscontinuedOperationGainLossOnDisposalOfDiscontinuedOperationNetOfTax
|
8595798 | USD |
CY2018 | us-gaap |
Discontinued Operation Gain Loss On Disposal Of Discontinued Operation Net Of Tax
DiscontinuedOperationGainLossOnDisposalOfDiscontinuedOperationNetOfTax
|
8595797 | USD |
CY2019 | us-gaap |
Discontinued Operation Gain Loss On Disposal Of Discontinued Operation Net Of Tax
DiscontinuedOperationGainLossOnDisposalOfDiscontinuedOperationNetOfTax
|
0 | USD |
CY2018 | us-gaap |
Discontinued Operation Income Loss From Discontinued Operation During Phase Out Period Before Income Tax
DiscontinuedOperationIncomeLossFromDiscontinuedOperationDuringPhaseOutPeriodBeforeIncomeTax
|
1354555 | USD |
CY2018 | us-gaap |
Discontinued Operation Income Loss From Discontinued Operation During Phase Out Period Net Of Tax
DiscontinuedOperationIncomeLossFromDiscontinuedOperationDuringPhaseOutPeriodNetOfTax
|
1170634 | USD |
CY2018 | us-gaap |
Discontinued Operation Tax Effect Of Income Loss From Discontinued Operation During Phase Out Period
DiscontinuedOperationTaxEffectOfIncomeLossFromDiscontinuedOperationDuringPhaseOutPeriod
|
183921 | USD |
CY2018 | us-gaap |
Discontinued Operation Tax Effect Of Income Loss From Disposal Of Discontinued Operation
DiscontinuedOperationTaxEffectOfIncomeLossFromDisposalOfDiscontinuedOperation
|
1572244 | USD |
CY2018 | us-gaap |
Disposal Group Including Discontinued Operation Costs Of Goods Sold
DisposalGroupIncludingDiscontinuedOperationCostsOfGoodsSold
|
5294268 | USD |
CY2018 | us-gaap |
Disposal Group Including Discontinued Operation Operating Expense
DisposalGroupIncludingDiscontinuedOperationOperatingExpense
|
1728113 | USD |
CY2018 | us-gaap |
Disposal Group Including Discontinued Operation Revenue
DisposalGroupIncludingDiscontinuedOperationRevenue
|
8363606 | USD |
CY2018Q4 | us-gaap |
Due To Related Parties Current
DueToRelatedPartiesCurrent
|
298468 | USD |
CY2019Q4 | us-gaap |
Due To Related Parties Current
DueToRelatedPartiesCurrent
|
0 | USD |
CY2018Q1 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.00 | |
CY2018Q2 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.04 | |
CY2018Q3 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.31 | |
CY2018Q4 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.03 | |
CY2018 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.39 | |
CY2019Q1 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.04 | |
CY2019Q2 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.03 | |
CY2019Q3 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.04 | |
CY2019Q4 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.07 | |
CY2019 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.18 | |
CY2018Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.00 | |
CY2018Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.03 | |
CY2018Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.27 | |
CY2018Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.03 | |
CY2018 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.33 | |
CY2019Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.03 | |
CY2019Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.02 | |
CY2019Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.03 | |
CY2019Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.07 | |
CY2019 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.16 | |
CY2018 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.0380 | |
CY2019 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
-0.4485 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.21 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.21 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
-0.2765 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
-0.6739 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation Nondeductible Expense Meals And Entertainment
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment
|
0.0097 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Nondeductible Expense Meals And Entertainment
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment
|
0.0050 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation Nondeductible Expense Share Based Compensation Cost
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
|
0.0105 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Nondeductible Expense Share Based Compensation Cost
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
|
0.0175 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
|
0.2124 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
|
0.0726 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.0000 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
-0.0867 | |
CY2018Q4 | us-gaap |
Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
|
4467587 | USD |
CY2019Q4 | us-gaap |
Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
|
6416163 | USD |
CY2018Q4 | us-gaap |
Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
|
4000000 | USD |
CY2019Q4 | us-gaap |
Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
|
4000000 | USD |
CY2018 | us-gaap |
Excess Tax Benefit From Share Based Compensation Operating Activities
ExcessTaxBenefitFromShareBasedCompensationOperatingActivities
|
0 | USD |
CY2019 | us-gaap |
Excess Tax Benefit From Share Based Compensation Operating Activities
ExcessTaxBenefitFromShareBasedCompensationOperatingActivities
|
3349032 | USD |
CY2018Q4 | us-gaap |
Fifo Inventory Amount
FIFOInventoryAmount
|
1339832 | USD |
CY2019Q4 | us-gaap |
Fifo Inventory Amount
FIFOInventoryAmount
|
1695461 | USD |
CY2019 | us-gaap |
Finance Lease Interest Expense
FinanceLeaseInterestExpense
|
4926 | USD |
CY2019Q4 | us-gaap |
Finance Lease Liability
FinanceLeaseLiability
|
73399 | USD |
CY2019Q4 | us-gaap |
Finance Lease Liability Current
FinanceLeaseLiabilityCurrent
|
50307 | USD |
CY2019Q4 | us-gaap |
Finance Lease Liability Noncurrent
FinanceLeaseLiabilityNoncurrent
|
23092 | USD |
CY2019Q1 | us-gaap |
Finance Lease Liability Noncurrent
FinanceLeaseLiabilityNoncurrent
|
76803 | USD |
CY2019Q4 | us-gaap |
Finance Lease Liability Payments Due
FinanceLeaseLiabilityPaymentsDue
|
81855 | USD |
CY2019Q4 | us-gaap |
Finance Lease Liability Payments Due Next Twelve Months
FinanceLeaseLiabilityPaymentsDueNextTwelveMonths
|
56020 | USD |
CY2019Q4 | us-gaap |
Finance Lease Liability Payments Due Year Five
FinanceLeaseLiabilityPaymentsDueYearFive
|
0 | USD |
CY2019Q4 | us-gaap |
Finance Lease Liability Payments Due Year Four
FinanceLeaseLiabilityPaymentsDueYearFour
|
5042 | USD |
CY2019Q4 | us-gaap |
Finance Lease Liability Payments Due Year Three
FinanceLeaseLiabilityPaymentsDueYearThree
|
10083 | USD |
CY2019Q4 | us-gaap |
Finance Lease Liability Payments Due Year Two
FinanceLeaseLiabilityPaymentsDueYearTwo
|
10710 | USD |
CY2019Q4 | us-gaap |
Finance Lease Liability Undiscounted Excess Amount
FinanceLeaseLiabilityUndiscountedExcessAmount
|
8456 | USD |
CY2019 | us-gaap |
Finance Lease Principal Payments
FinanceLeasePrincipalPayments
|
40047 | USD |
CY2019Q4 | us-gaap |
Finance Lease Right Of Use Asset
FinanceLeaseRightOfUseAsset
|
70183 | USD |
CY2019 | us-gaap |
Finance Lease Right Of Use Asset Amortization
FinanceLeaseRightOfUseAssetAmortization
|
46498 | USD |
CY2019Q4 | us-gaap |
Finance Lease Weighted Average Discount Rate Percent
FinanceLeaseWeightedAverageDiscountRatePercent
|
0.07 | |
CY2019Q4 | us-gaap |
Finance Lease Weighted Average Remaining Lease Term1
FinanceLeaseWeightedAverageRemainingLeaseTerm1
|
P2Y1M2D | |
CY2018Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
4739190 | USD |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
7726768 | USD |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense After Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
|
2699706 | USD |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Next Twelve Months
FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
|
1640851 | USD |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
|
1247195 | USD |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Four
FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
|
1437195 | USD |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
|
1509418 | USD |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
|
1660112 | USD |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
10194477 | USD |
CY2018Q4 | us-gaap |
Furniture And Fixtures Gross
FurnitureAndFixturesGross
|
640890 | USD |
CY2019Q4 | us-gaap |
Furniture And Fixtures Gross
FurnitureAndFixturesGross
|
684812 | USD |
CY2018 | us-gaap |
Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
|
1000 | USD |
CY2019 | us-gaap |
Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
|
0 | USD |
CY2018Q4 | us-gaap |
Goodwill
Goodwill
|
101008 | USD |
CY2019Q4 | us-gaap |
Goodwill
Goodwill
|
10541676 | USD |
CY2019 | us-gaap |
Goodwill Acquired During Period
GoodwillAcquiredDuringPeriod
|
10511916 | USD |
CY2019 | us-gaap |
Goodwill Purchase Accounting Adjustments
GoodwillPurchaseAccountingAdjustments
|
-71248 | USD |
CY2018Q1 | us-gaap |
Gross Profit
GrossProfit
|
3840000 | USD |
CY2018Q2 | us-gaap |
Gross Profit
GrossProfit
|
4231000 | USD |
CY2018Q3 | us-gaap |
Gross Profit
GrossProfit
|
4689000 | USD |
CY2018Q4 | us-gaap |
Gross Profit
GrossProfit
|
6572000 | USD |
CY2018 | us-gaap |
Gross Profit
GrossProfit
|
19437900 | USD |
CY2019Q1 | us-gaap |
Gross Profit
GrossProfit
|
6768000 | USD |
CY2019Q2 | us-gaap |
Gross Profit
GrossProfit
|
8752000 | USD |
CY2019Q3 | us-gaap |
Gross Profit
GrossProfit
|
9275000 | USD |
CY2019Q4 | us-gaap |
Gross Profit
GrossProfit
|
10388000 | USD |
CY2019 | us-gaap |
Gross Profit
GrossProfit
|
35182382 | USD |
CY2018 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
1285628 | USD |
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
3688195 | USD |
CY2018Q1 | us-gaap |
Income Loss From Continuing Operations Including Portion Attributable To Noncontrolling Interest
IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
|
-272000 | USD |
CY2018Q2 | us-gaap |
Income Loss From Continuing Operations Including Portion Attributable To Noncontrolling Interest
IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
|
299000 | USD |
CY2018Q3 | us-gaap |
Income Loss From Continuing Operations Including Portion Attributable To Noncontrolling Interest
IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
|
1293000 | USD |
CY2018Q4 | us-gaap |
Income Loss From Continuing Operations Including Portion Attributable To Noncontrolling Interest
IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
|
-122000 | USD |
CY2018 | us-gaap |
Income Loss From Continuing Operations Including Portion Attributable To Noncontrolling Interest
IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
|
1237810 | USD |
CY2019Q2 | us-gaap |
Income Loss From Continuing Operations Including Portion Attributable To Noncontrolling Interest
IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
|
840000 | USD |
CY2019Q3 | us-gaap |
Income Loss From Continuing Operations Including Portion Attributable To Noncontrolling Interest
IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
|
1231000 | USD |
CY2019 | us-gaap |
Income Loss From Continuing Operations Including Portion Attributable To Noncontrolling Interest
IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
|
5342545 | USD |
CY2018Q1 | us-gaap |
Income Loss From Continuing Operations Per Basic Share
IncomeLossFromContinuingOperationsPerBasicShare
|
-0.01 | |
CY2019Q1 | us-gaap |
Income Loss From Continuing Operations Including Portion Attributable To Noncontrolling Interest
IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
|
1126000 | USD |
CY2019Q4 | us-gaap |
Income Loss From Continuing Operations Including Portion Attributable To Noncontrolling Interest
IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
|
2146000 | USD |
CY2018Q2 | us-gaap |
Income Loss From Continuing Operations Per Basic Share
IncomeLossFromContinuingOperationsPerBasicShare
|
0.01 | |
CY2018Q3 | us-gaap |
Income Loss From Continuing Operations Per Basic Share
IncomeLossFromContinuingOperationsPerBasicShare
|
0.05 | |
CY2018Q4 | us-gaap |
Income Loss From Continuing Operations Per Basic Share
IncomeLossFromContinuingOperationsPerBasicShare
|
0.00 | |
CY2018 | us-gaap |
Income Loss From Continuing Operations Per Basic Share
IncomeLossFromContinuingOperationsPerBasicShare
|
0.04 | |
CY2019Q1 | us-gaap |
Income Loss From Continuing Operations Per Basic Share
IncomeLossFromContinuingOperationsPerBasicShare
|
0.04 | |
CY2019Q2 | us-gaap |
Income Loss From Continuing Operations Per Basic Share
IncomeLossFromContinuingOperationsPerBasicShare
|
0.03 | |
CY2019Q3 | us-gaap |
Income Loss From Continuing Operations Per Basic Share
IncomeLossFromContinuingOperationsPerBasicShare
|
0.04 | |
CY2019Q4 | us-gaap |
Income Loss From Continuing Operations Per Basic Share
IncomeLossFromContinuingOperationsPerBasicShare
|
0.07 | |
CY2019 | us-gaap |
Income Loss From Continuing Operations Per Basic Share
IncomeLossFromContinuingOperationsPerBasicShare
|
0.19 | |
CY2018Q1 | us-gaap |
Income Loss From Continuing Operations Per Diluted Share
IncomeLossFromContinuingOperationsPerDilutedShare
|
-0.01 | |
CY2018Q2 | us-gaap |
Income Loss From Continuing Operations Per Diluted Share
IncomeLossFromContinuingOperationsPerDilutedShare
|
0.01 | |
CY2018Q3 | us-gaap |
Income Loss From Continuing Operations Per Diluted Share
IncomeLossFromContinuingOperationsPerDilutedShare
|
0.04 | |
CY2018Q4 | us-gaap |
Income Loss From Continuing Operations Per Diluted Share
IncomeLossFromContinuingOperationsPerDilutedShare
|
0.00 | |
CY2018 | us-gaap |
Income Loss From Continuing Operations Per Diluted Share
IncomeLossFromContinuingOperationsPerDilutedShare
|
0.04 | |
CY2019Q1 | us-gaap |
Income Loss From Continuing Operations Per Diluted Share
IncomeLossFromContinuingOperationsPerDilutedShare
|
0.03 | |
CY2019Q2 | us-gaap |
Income Loss From Continuing Operations Per Diluted Share
IncomeLossFromContinuingOperationsPerDilutedShare
|
0.02 | |
CY2019Q3 | us-gaap |
Income Loss From Continuing Operations Per Diluted Share
IncomeLossFromContinuingOperationsPerDilutedShare
|
0.04 | |
CY2019Q4 | us-gaap |
Income Loss From Continuing Operations Per Diluted Share
IncomeLossFromContinuingOperationsPerDilutedShare
|
0.07 | |
CY2019 | us-gaap |
Income Loss From Continuing Operations Per Diluted Share
IncomeLossFromContinuingOperationsPerDilutedShare
|
0.17 | |
CY2018Q1 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax
IncomeLossFromDiscontinuedOperationsNetOfTax
|
421000 | USD |
CY2018Q2 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax
IncomeLossFromDiscontinuedOperationsNetOfTax
|
768000 | USD |
CY2018Q3 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax
IncomeLossFromDiscontinuedOperationsNetOfTax
|
7556000 | USD |
CY2018Q4 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax
IncomeLossFromDiscontinuedOperationsNetOfTax
|
1062000 | USD |
CY2018 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax
IncomeLossFromDiscontinuedOperationsNetOfTax
|
9766431 | USD |
CY2019Q1 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax
IncomeLossFromDiscontinuedOperationsNetOfTax
|
0 | USD |
CY2019Q2 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax
IncomeLossFromDiscontinuedOperationsNetOfTax
|
0 | USD |
CY2019Q3 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax
IncomeLossFromDiscontinuedOperationsNetOfTax
|
0 | USD |
CY2019Q4 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax
IncomeLossFromDiscontinuedOperationsNetOfTax
|
0 | USD |
CY2019 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax
IncomeLossFromDiscontinuedOperationsNetOfTax
|
0 | USD |
CY2018Q1 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax Per Basic Share
IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
|
0.02 | |
CY2018Q2 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax Per Basic Share
IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
|
0.03 | |
CY2018Q3 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax Per Basic Share
IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
|
0.27 | |
CY2018Q4 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax Per Basic Share
IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
|
0.04 | |
CY2018 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax Per Basic Share
IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
|
0.35 | |
CY2019Q1 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax Per Basic Share
IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
|
0.00 | |
CY2019Q2 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax Per Basic Share
IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
|
0.00 | |
CY2019Q3 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax Per Basic Share
IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
|
0.00 | |
CY2019Q4 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax Per Basic Share
IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
|
0.00 | |
CY2019 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax Per Basic Share
IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
|
0.00 | |
CY2018Q1 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax Per Diluted Share
IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
|
0.02 | |
CY2018Q2 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax Per Diluted Share
IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
|
0.02 | |
CY2018Q3 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax Per Diluted Share
IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
|
0.23 | |
CY2018Q4 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax Per Diluted Share
IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
|
0.04 | |
CY2018 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax Per Diluted Share
IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
|
0.30 | |
CY2019Q1 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax Per Diluted Share
IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
|
0.00 | |
CY2019Q2 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax Per Diluted Share
IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
|
0.00 | |
CY2019Q3 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax Per Diluted Share
IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
|
0.00 | |
CY2019Q4 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax Per Diluted Share
IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
|
0.00 | |
CY2018Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
3302270 | USD |
CY2019 | us-gaap |
Income Loss From Discontinued Operations Net Of Tax Per Diluted Share
IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
|
0.00 | |
CY2018 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
47818 | USD |
CY2019 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
-1654350 | USD |
CY2018 | us-gaap |
Income Taxes Paid
IncomeTaxesPaid
|
1828203 | USD |
CY2019 | us-gaap |
Income Taxes Paid
IncomeTaxesPaid
|
1160276 | USD |
CY2018 | us-gaap |
Increase Decrease In Accounts Payable And Accrued Liabilities
IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
|
-461927 | USD |
CY2019 | us-gaap |
Increase Decrease In Accounts Payable And Accrued Liabilities
IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
|
591585 | USD |
CY2018 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
6240377 | USD |
CY2019 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
2248925 | USD |
CY2018 | us-gaap |
Increase Decrease In Contract With Customer Asset
IncreaseDecreaseInContractWithCustomerAsset
|
761714 | USD |
CY2019 | us-gaap |
Increase Decrease In Contract With Customer Asset
IncreaseDecreaseInContractWithCustomerAsset
|
448891 | USD |
CY2018 | us-gaap |
Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
|
-986498 | USD |
CY2019 | us-gaap |
Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
|
1245000 | USD |
CY2018 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
967797 | USD |
CY2019 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
722690 | USD |
CY2018 | us-gaap |
Increase Decrease In Other Noncurrent Assets
IncreaseDecreaseInOtherNoncurrentAssets
|
0 | USD |
CY2019 | us-gaap |
Increase Decrease In Other Noncurrent Assets
IncreaseDecreaseInOtherNoncurrentAssets
|
-44976 | USD |
CY2018 | us-gaap |
Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
|
-1849629 | USD |
CY2019 | us-gaap |
Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
|
242112 | USD |
CY2018Q4 | us-gaap |
Intangible Assets Gross Excluding Goodwill
IntangibleAssetsGrossExcludingGoodwill
|
8041460 | USD |
CY2019Q4 | us-gaap |
Intangible Assets Gross Excluding Goodwill
IntangibleAssetsGrossExcludingGoodwill
|
17921245 | USD |
CY2019Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
10194477 | USD |
CY2018 | us-gaap |
Interest Expense
InterestExpense
|
124344 | USD |
CY2019 | us-gaap |
Interest Expense
InterestExpense
|
15878 | USD |
CY2018 | us-gaap |
Interest Expense Debt Excluding Amortization
InterestExpenseDebtExcludingAmortization
|
101087 | USD |
CY2019 | us-gaap |
Interest Expense Debt Excluding Amortization
InterestExpenseDebtExcludingAmortization
|
8073 | USD |
CY2018 | us-gaap |
Interest Expense Other
InterestExpenseOther
|
6949 | USD |
CY2019 | us-gaap |
Interest Expense Other
InterestExpenseOther
|
2120 | USD |
CY2018 | us-gaap |
Interest Income Expense Nonoperating Net
InterestIncomeExpenseNonoperatingNet
|
-124344 | USD |
CY2019 | us-gaap |
Interest Income Expense Nonoperating Net
InterestIncomeExpenseNonoperatingNet
|
-15878 | USD |
CY2018 | us-gaap |
Interest Paid Net
InterestPaidNet
|
117616 | USD |
CY2019 | us-gaap |
Interest Paid Net
InterestPaidNet
|
18359 | USD |
CY2018Q4 | us-gaap |
Inventory Gross
InventoryGross
|
6873742 | USD |
CY2019Q4 | us-gaap |
Inventory Gross
InventoryGross
|
10294431 | USD |
CY2018Q4 | us-gaap |
Inventory Net
InventoryNet
|
6873742 | USD |
CY2019Q4 | us-gaap |
Inventory Net
InventoryNet
|
10294431 | USD |
CY2018Q4 | us-gaap |
Inventory Raw Materials And Supplies
InventoryRawMaterialsAndSupplies
|
4890490 | USD |
CY2019Q4 | us-gaap |
Inventory Raw Materials And Supplies
InventoryRawMaterialsAndSupplies
|
7591251 | USD |
CY2018Q4 | us-gaap |
Inventory Work In Process
InventoryWorkInProcess
|
643420 | USD |
CY2019Q4 | us-gaap |
Inventory Work In Process
InventoryWorkInProcess
|
1007719 | USD |
CY2018 | us-gaap |
Investment Income Nonoperating
InvestmentIncomeNonoperating
|
549580 | USD |
CY2019 | us-gaap |
Investment Income Nonoperating
InvestmentIncomeNonoperating
|
393556 | USD |
CY2018 | us-gaap |
Lease And Rental Expense
LeaseAndRentalExpense
|
1000000 | USD |
CY2019 | us-gaap |
Lease Cost
LeaseCost
|
1475934 | USD |
CY2018Q4 | us-gaap |
Leasehold Improvements Gross
LeaseholdImprovementsGross
|
4950510 | USD |
CY2019Q4 | us-gaap |
Leasehold Improvements Gross
LeaseholdImprovementsGross
|
5287935 | USD |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
|
3742613 | USD |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
|
1467701 | USD |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
|
544704 | USD |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
|
544704 | USD |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
|
544704 | USD |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
|
640800 | USD |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
|
470908 | USD |
CY2018Q4 | us-gaap |
Liabilities
Liabilities
|
13244406 | USD |
CY2019Q4 | us-gaap |
Liabilities
Liabilities
|
19055542 | USD |
CY2018Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
75598736 | USD |
CY2019Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
86524060 | USD |
CY2018Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
12139454 | USD |
CY2019Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
17044055 | USD |
CY2018Q4 | us-gaap |
Long Term Debt Current
LongTermDebtCurrent
|
619315 | USD |
CY2019Q4 | us-gaap |
Long Term Debt Current
LongTermDebtCurrent
|
0 | USD |
CY2018Q4 | us-gaap |
Loss Contingency Accrual Carrying Value Current
LossContingencyAccrualCarryingValueCurrent
|
0 | USD |
CY2019Q4 | us-gaap |
Loss Contingency Accrual Carrying Value Current
LossContingencyAccrualCarryingValueCurrent
|
1000000 | USD |
CY2018Q4 | us-gaap |
Machinery And Equipment Gross
MachineryAndEquipmentGross
|
9341007 | USD |
CY2019Q4 | us-gaap |
Machinery And Equipment Gross
MachineryAndEquipmentGross
|
9564426 | USD |
CY2018 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-1249564 | USD |
CY2019 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-2437560 | USD |
CY2018 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
10037123 | USD |
CY2019 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-19814991 | USD |
CY2018 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
-3308826 | USD |
CY2019 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
4798201 | USD |
CY2018Q1 | us-gaap |
Net Income Loss
NetIncomeLoss
|
149000 | USD |
CY2018Q2 | us-gaap |
Net Income Loss
NetIncomeLoss
|
1067000 | USD |
CY2018Q3 | us-gaap |
Net Income Loss
NetIncomeLoss
|
8849000 | USD |
CY2018Q4 | us-gaap |
Net Income Loss
NetIncomeLoss
|
940000 | USD |
CY2018 | us-gaap |
Net Income Loss
NetIncomeLoss
|
11004241 | USD |
CY2019Q1 | us-gaap |
Net Income Loss
NetIncomeLoss
|
1126000 | USD |
CY2019Q2 | us-gaap |
Net Income Loss
NetIncomeLoss
|
840000 | USD |
CY2019Q3 | us-gaap |
Net Income Loss
NetIncomeLoss
|
1231000 | USD |
CY2019Q4 | us-gaap |
Net Income Loss
NetIncomeLoss
|
2146000 | USD |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
5342545 | USD |
CY2018Q1 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
84000 | USD |
CY2018Q2 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
1004000 | USD |
CY2018Q3 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
8785000 | USD |
CY2018Q4 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
873000 | USD |
CY2018 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
10746939 | USD |
CY2019Q1 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
1043000 | USD |
CY2019Q2 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
751000 | USD |
CY2019Q3 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
1117000 | USD |
CY2019Q4 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
2146000 | USD |
CY2019 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
5057095 | USD |
CY2019 | us-gaap |
Nonoperating Income Expense
NonoperatingIncomeExpense
|
373174 | USD |
CY2018Q4 | us-gaap |
Nontrade Receivables Current
NontradeReceivablesCurrent
|
2500000 | USD |
CY2019Q4 | us-gaap |
Nontrade Receivables Current
NontradeReceivablesCurrent
|
2501386 | USD |
CY2019 | us-gaap |
Number Of Operating Segments
NumberOfOperatingSegments
|
2 | segment |
CY2019 | us-gaap |
Number Of Reportable Segments
NumberOfReportableSegments
|
2 | segment |
CY2018 | us-gaap |
Operating Expenses
OperatingExpenses
|
18560365 | USD |
CY2019 | us-gaap |
Operating Expenses
OperatingExpenses
|
31867361 | USD |
CY2018Q1 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
-373000 | USD |
CY2018Q2 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
205000 | USD |
CY2018Q3 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
581000 | USD |
CY2018Q4 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
423000 | USD |
CY2018 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
877535 | USD |
CY2019Q1 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
-898000 | USD |
CY2019Q2 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
1014000 | USD |
CY2019Q3 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
1481000 | USD |
CY2019Q4 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
1718000 | USD |
CY2019 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
3315021 | USD |
CY2019 | us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
1622476 | USD |
CY2019Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
3271705 | USD |
CY2019Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
1283310 | USD |
CY2019Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
1988395 | USD |
CY2019Q1 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
3271705 | USD |
CY2019 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
1622476 | USD |
CY2019Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
2235731 | USD |
CY2019Q4 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.07 | |
CY2019Q4 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P3Y8M27D | |
CY2018Q4 | us-gaap |
Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
|
404752 | USD |
CY2019Q4 | us-gaap |
Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
|
425595 | USD |
CY2018Q4 | us-gaap |
Other Assets Noncurrent
OtherAssetsNoncurrent
|
1995 | USD |
CY2019Q4 | us-gaap |
Other Assets Noncurrent
OtherAssetsNoncurrent
|
2341179 | USD |
CY2019Q1 | us-gaap |
Other Assets Noncurrent
OtherAssetsNoncurrent
|
3538128 | USD |
CY2019Q4 | us-gaap |
Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
|
2011487 | USD |
CY2018 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
-17143 | USD |
CY2019 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
-4504 | USD |
CY2018Q4 | us-gaap |
Other Receivables Gross Current
OtherReceivablesGrossCurrent
|
31361 | USD |
CY2019Q4 | us-gaap |
Other Receivables Gross Current
OtherReceivablesGrossCurrent
|
5182 | USD |
CY2018 | us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
466894 | USD |
CY2019 | us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
2220467 | USD |
CY2018 | us-gaap |
Payments To Acquire Business Two Net Of Cash Acquired
PaymentsToAcquireBusinessTwoNetOfCashAcquired
|
0 | USD |
CY2019 | us-gaap |
Payments To Acquire Business Two Net Of Cash Acquired
PaymentsToAcquireBusinessTwoNetOfCashAcquired
|
19004250 | USD |
CY2018 | us-gaap |
Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
|
5001750 | USD |
CY2019 | us-gaap |
Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
|
0 | USD |
CY2018 | us-gaap |
Payments To Acquire Intangible Assets
PaymentsToAcquireIntangibleAssets
|
374766 | USD |
CY2019 | us-gaap |
Payments To Acquire Intangible Assets
PaymentsToAcquireIntangibleAssets
|
270106 | USD |
CY2018 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
386890 | USD |
CY2019 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
540635 | USD |
CY2018Q4 | us-gaap |
Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
|
0.001 | |
CY2019Q4 | us-gaap |
Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
|
0.001 | |
CY2018Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
1321514 | shares |
CY2019Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
1321514 | shares |
CY2018Q4 | us-gaap |
Preferred Stock Shares Issued
PreferredStockSharesIssued
|
1321514 | shares |
CY2019Q4 | us-gaap |
Preferred Stock Shares Issued
PreferredStockSharesIssued
|
0 | shares |
CY2018Q4 | us-gaap |
Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
|
1321514 | shares |
CY2019Q4 | us-gaap |
Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
|
0 | shares |
CY2018Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
1322 | USD |
CY2019Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
0 | USD |
CY2018Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
935185 | USD |
CY2018 | us-gaap |
Preferred Stock Dividends Income Statement Impact
PreferredStockDividendsIncomeStatementImpact
|
257302 | USD |
CY2019 | us-gaap |
Preferred Stock Dividends Income Statement Impact
PreferredStockDividendsIncomeStatementImpact
|
285450 | USD |
CY2019Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
1286968 | USD |
CY2018 | us-gaap |
Proceeds From Divestiture Of Businesses
ProceedsFromDivestitureOfBusinesses
|
15799529 | USD |
CY2019 | us-gaap |
Proceeds From Divestiture Of Businesses
ProceedsFromDivestitureOfBusinesses
|
0 | USD |
CY2018 | us-gaap |
Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
|
1000 | USD |
CY2019 | us-gaap |
Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
|
0 | USD |
CY2018Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
16124194 | USD |
CY2019Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
16784939 | USD |
CY2018Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
3627886 | USD |
CY2019Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
3465612 | USD |
CY2019Q1 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
3537392 | USD |
CY2018 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
6000 | USD |
CY2019 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
538298 | USD |
CY2018 | us-gaap |
Repayments Of Debt
RepaymentsOfDebt
|
1833333 | USD |
CY2019 | us-gaap |
Repayments Of Debt
RepaymentsOfDebt
|
625000 | USD |
CY2018 | us-gaap |
Repayments Of Long Term Capital Lease Obligations
RepaymentsOfLongTermCapitalLeaseObligations
|
46653 | USD |
CY2019 | us-gaap |
Repayments Of Long Term Capital Lease Obligations
RepaymentsOfLongTermCapitalLeaseObligations
|
40047 | USD |
CY2018 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
3766160 | USD |
CY2019 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
7496012 | USD |
CY2018Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
-21305222 | USD |
CY2019Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
-16248127 | USD |
CY2018Q1 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
8768000 | USD |
CY2018Q2 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
9923000 | USD |
CY2018Q3 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
10687000 | USD |
CY2018Q4 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
13538000 | USD |
CY2018 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
42917245 | USD |
CY2019Q1 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
14833000 | USD |
CY2019Q2 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
17814000 | USD |
CY2019Q3 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
18389000 | USD |
CY2019Q4 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
19480000 | USD |
CY2019 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
70515715 | USD |
CY2019 | us-gaap |
Right Of Use Asset Obtained In Exchange For Finance Lease Liability
RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
|
14541 | USD |
CY2018 | us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
14794205 | USD |
CY2019 | us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
24371349 | USD |
CY2018 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
627856 | USD |
CY2019 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
1544156 | USD |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Dividend Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
|
0 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Dividend Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
|
0 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Volatility Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
|
0.67 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Volatility Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
|
0.65 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Risk Free Interest Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
|
0.0304 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Risk Free Interest Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
|
0.025 | |
CY2017Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
|
2590030 | shares |
CY2018Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
|
1986740 | shares |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
|
1835799 | shares |
CY2017Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
|
1.89 | |
CY2018Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
|
1.81 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
|
2.28 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
|
112213 | USD |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
|
1641687 | USD |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
|
675607 | shares |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
|
14707 | shares |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
|
1166339 | shares |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
|
625070 | shares |
CY2017Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
2098195 | USD |
CY2018Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
3669794 | USD |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
14459884 | USD |
CY2017Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
2714561 | shares |
CY2018Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
3108868 | shares |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
3160397 | shares |
CY2017Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
1.88 | |
CY2018Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
2.26 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
2.72 | |
CY2018 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
|
2.07 | |
CY2019 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
|
1.21 | |
CY2018 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Forfeitures In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
|
1.90 | |
CY2019 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Forfeitures In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
|
2.51 | |
CY2018 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
|
3.09 | |
CY2019 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
|
3.63 | |
CY2018 | us-gaap |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Lower Range Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit
|
0.61 | |
CY2019 | us-gaap |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Lower Range Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit
|
1.18 | |
CY2018 | us-gaap |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Upper Range Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit
|
6.55 | |
CY2019 | us-gaap |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Upper Range Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit
|
7.37 | |
CY2018 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
|
P7Y0M | |
CY2019 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
|
P7Y0M | |
CY2017Q4 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercisable Intrinsic Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
|
2013034 | USD |
CY2018Q4 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercisable Intrinsic Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
|
3314494 | USD |
CY2019Q4 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercisable Intrinsic Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
|
9197775 | USD |
CY2018 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested In Period Fair Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
|
2980110 | USD |
CY2019 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested In Period Fair Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
|
3267672 | USD |
CY2018 | us-gaap |
Stock Issued1
StockIssued1
|
200202 | USD |
CY2019 | us-gaap |
Stock Issued1
StockIssued1
|
0 | USD |
CY2018 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
96425 | shares |
CY2019 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
558834 | shares |
CY2018 | us-gaap |
Stock Issued During Period Value New Issues
StockIssuedDuringPeriodValueNewIssues
|
1097033 | USD |
CY2019 | us-gaap |
Stock Issued During Period Value New Issues
StockIssuedDuringPeriodValueNewIssues
|
447954 | USD |
CY2018 | us-gaap |
Stock Issued During Period Value Restricted Stock Award Gross
StockIssuedDuringPeriodValueRestrictedStockAwardGross
|
200002 | USD |
CY2018 | us-gaap |
Stock Issued During Period Value Share Based Compensation
StockIssuedDuringPeriodValueShareBasedCompensation
|
628139 | USD |
CY2019 | us-gaap |
Stock Issued During Period Value Share Based Compensation
StockIssuedDuringPeriodValueShareBasedCompensation
|
1544156 | USD |
CY2017Q3 | us-gaap |
Stock Repurchase Program Authorized Amount1
StockRepurchaseProgramAuthorizedAmount1
|
2000000.0 | USD |
CY2019Q3 | us-gaap |
Stock Repurchase Program Authorized Amount1
StockRepurchaseProgramAuthorizedAmount1
|
2000000.0 | USD |
CY2017Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
49891809 | USD |
CY2018Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
62354330 | USD |
CY2019Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
67468518 | USD |
CY2019 | us-gaap |
Sublease Income
SubleaseIncome
|
146542 | USD |
CY2019 | us-gaap |
Tax Cuts And Jobs Act Of2017 Incomplete Accounting Change In Tax Rate Deferred Tax Asset Provisional Income Tax Expense
TaxCutsAndJobsActOf2017IncompleteAccountingChangeInTaxRateDeferredTaxAssetProvisionalIncomeTaxExpense
|
1200000 | USD |
CY2018Q4 | us-gaap |
Treasury Stock Shares
TreasuryStockShares
|
1253105 | shares |
CY2019Q4 | us-gaap |
Treasury Stock Shares
TreasuryStockShares
|
1639791 | shares |
CY2019Q3 | us-gaap |
Treasury Stock Shares Acquired
TreasuryStockSharesAcquired
|
333953 | shares |
us-gaap |
Treasury Stock Shares Acquired
TreasuryStockSharesAcquired
|
565629 | shares | |
CY2018Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
2116640 | USD |
CY2019Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
4337107 | USD |
CY2019Q3 | us-gaap |
Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
|
2000000 | USD |
us-gaap |
Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
|
1100000 | USD | |
CY2018 | us-gaap |
Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
|
466894 | USD |
CY2019 | us-gaap |
Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
|
2220467 | USD |
CY2017Q4 | us-gaap |
Valuation Allowances And Reserves Balance
ValuationAllowancesAndReservesBalance
|
5307461 | USD |
CY2018Q4 | us-gaap |
Valuation Allowances And Reserves Balance
ValuationAllowancesAndReservesBalance
|
3551616 | USD |
CY2019Q4 | us-gaap |
Valuation Allowances And Reserves Balance
ValuationAllowancesAndReservesBalance
|
1290203 | USD |
CY2018 | us-gaap |
Valuation Allowances And Reserves Charged To Cost And Expense
ValuationAllowancesAndReservesChargedToCostAndExpense
|
3500 | USD |
CY2019 | us-gaap |
Valuation Allowances And Reserves Charged To Cost And Expense
ValuationAllowancesAndReservesChargedToCostAndExpense
|
646196 | USD |
CY2018 | us-gaap |
Valuation Allowances And Reserves Deductions
ValuationAllowancesAndReservesDeductions
|
1759345 | USD |
CY2019 | us-gaap |
Valuation Allowances And Reserves Deductions
ValuationAllowancesAndReservesDeductions
|
2907609 | USD |
CY2018 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
4900000 | shares |
CY2019 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
3200000 | shares |
CY2018Q1 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
27204989 | shares |
CY2018Q2 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
31506745 | shares |
CY2018Q3 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
33055881 | shares |
CY2018Q4 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
28067348 | shares |
CY2018 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
32452228 | shares |
CY2019Q1 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
33479935 | shares |
CY2019Q2 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
33650790 | shares |
CY2019Q3 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
32115847 | shares |
CY2019Q4 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
32211847 | shares |
CY2019 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
31840584 | shares |
CY2018Q1 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
27204989 | shares |
CY2018Q2 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
27531361 | shares |
CY2018Q3 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
27901631 | shares |
CY2018Q4 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
28067348 | shares |
CY2018 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
27596401 | shares |
CY2019Q1 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
28039080 | shares |
CY2019Q2 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
28246840 | shares |
CY2019Q3 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
28291297 | shares |
CY2019Q4 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
30159322 | shares |
CY2019 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
28688867 | shares |
CY2019 | us-gaap |
Use Of Estimates
UseOfEstimates
|
<div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;padding-top:18px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;font-style:italic;">Use of Estimates</font></div><div style="line-height:120%;padding-top:6px;text-indent:32px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">The preparation of our consolidated financial statements in accordance with GAAP requires us to make estimates and assumptions that affect the reported amounts of assets, liabilities, revenues and expenses and the disclosure of contingent assets and liabilities in our consolidated financial statements and accompanying notes.</font></div><div style="line-height:120%;padding-top:12px;text-indent:32px;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;">Although these estimates are based on our knowledge of current events and actions we may undertake in the future, actual results may differ from such estimates and assumptions.</font></div></div> |