2019 Q4 Form 10-K Financial Statement

#000114036121021895 Filed on June 22, 2021

View on sec.gov

Income Statement

Concept 2019 Q4 2019 Q1 2018 Q4
Revenue $20.47M $20.94M $24.64M
YoY Change -16.92% 2.15% 0.55%
Cost Of Revenue $8.973M $8.696M $10.52M
YoY Change -14.66% 11.32% 14.17%
Gross Profit $11.50M $12.25M $14.12M
YoY Change -18.61% -3.5% -7.68%
Gross Profit Margin 56.16% 58.47% 57.32%
Selling, General & Admin
YoY Change
% of Gross Profit
Research & Development
YoY Change
% of Gross Profit
Depreciation & Amortization $268.6K $495.4K $488.0K
YoY Change -44.95% 6.43% 19.02%
% of Gross Profit 2.34% 4.05% 3.46%
Operating Expenses $12.66M $11.28M $12.70M
YoY Change -0.32% 1.87% 5.01%
Operating Profit -$1.160M $2.213M $1.427M
YoY Change -181.29% 7.73% -55.5%
Interest Expense -$3.880K $32.00K -$81.42K
YoY Change -95.23% -50.5% 35.7%
% of Operating Profit 1.45% -5.71%
Other Income/Expense, Net $32.99K -$142.0K $227.5K
YoY Change -85.5% -260.03% 2175.1%
Pretax Income -$1.130M $2.071M $1.573M
YoY Change -171.85% -3.35% -50.06%
Income Tax -$300.8K $551.0K $457.9K
% Of Pretax Income 26.61% 29.11%
Net Earnings -$829.0K $1.520M $1.115M
YoY Change -174.33% 0.22% -33.27%
Net Earnings / Revenue -4.05% 7.26% 4.53%
Basic Earnings Per Share -$0.09 $0.17 $0.12
Diluted Earnings Per Share -$0.09 $0.17 $0.12
COMMON SHARES
Basic Shares Outstanding 9.020M 9.010M 9.144M
Diluted Shares Outstanding 9.020M 9.011M 9.144M

Balance Sheet

Concept 2019 Q4 2019 Q1 2018 Q4
SHORT-TERM ASSETS
Cash & Short-Term Investments $25.06M $17.68M $24.07M
YoY Change 4.1% -8.17% 31.25%
Cash & Equivalents $15.91M $12.68M $24.07M
Short-Term Investments $9.152M $5.000M $0.00
Other Short-Term Assets $297.0K $280.4K $331.8K
YoY Change -10.49% 65.37% 1.0%
Inventory $24.04M $30.17M $33.30M
Prepaid Expenses $1.537M $1.245M
Receivables $409.0K $456.5K $408.2K
Other Receivables $0.00 $0.00 $0.00
Total Short-Term Assets $52.52M $50.50M $59.82M
YoY Change -12.2% -9.57% 9.13%
LONG-TERM ASSETS
Property, Plant & Equipment $12.92M $13.96M $14.52M
YoY Change -11.0% -8.51% -6.76%
Goodwill $0.00 $956.9K $954.8K
YoY Change -100.0% -0.35% -0.85%
Intangibles
YoY Change
Long-Term Investments
YoY Change
Other Assets $345.0K $379.7K $386.1K
YoY Change -10.65% 0.1% 1.69%
Total Long-Term Assets $27.60M $32.99M $16.96M
YoY Change 62.66% 86.75% -6.06%
TOTAL ASSETS
Total Short-Term Assets $52.52M $50.50M $59.82M
Total Long-Term Assets $27.60M $32.99M $16.96M
Total Assets $80.11M $83.49M $76.78M
YoY Change 4.34% 13.58% 5.37%
SHORT-TERM LIABILITIES
YoY Change
Accounts Payable $5.753M $897.2K $2.154M
YoY Change 167.04% -69.3% -10.6%
Accrued Expenses $2.656M $4.107M $5.402M
YoY Change -50.83% 15.81% 7.07%
Deferred Revenue $0.00 $647.3K
YoY Change -100.0% -28.53%
Short-Term Debt $0.00 $0.00 $0.00
YoY Change
Long-Term Debt Due $0.00 $519.5K
YoY Change -100.0% -15.43%
Total Short-Term Liabilities $12.23M $9.053M $8.075M
YoY Change 51.47% 11.55% -4.14%
LONG-TERM LIABILITIES
Long-Term Debt $0.00 $8.449M
YoY Change -100.0% 25.03%
Other Long-Term Liabilities $509.0K $555.8K $555.3K
YoY Change -8.34% -6.94% -6.95%
Total Long-Term Liabilities $509.0K $555.8K $9.004M
YoY Change -94.35% -92.44% 22.43%
TOTAL LIABILITIES
Total Short-Term Liabilities $12.23M $9.053M $8.075M
Total Long-Term Liabilities $509.0K $555.8K $9.004M
Total Liabilities $12.74M $9.608M $17.08M
YoY Change -25.4% -37.89% 8.25%
SHAREHOLDERS EQUITY
Retained Earnings $62.21M $65.63M $64.48M
YoY Change -3.51% 6.56% 7.32%
Common Stock $25.00K $24.85K $24.85K
YoY Change 0.61% 0.17% 0.32%
Preferred Stock
YoY Change
Treasury Stock (at cost) $9.773M $9.752M $9.038M
YoY Change 8.13% 23.05% 22.39%
Treasury Stock Shares $1.424M $1.421M $1.293M
Shareholders Equity $56.42M $59.23M $58.29M
YoY Change
Total Liabilities & Shareholders Equity $80.11M $83.49M $76.78M
YoY Change 4.34% 13.58% 5.37%

Cashflow Statement

Concept 2019 Q4 2019 Q1 2018 Q4
OPERATING ACTIVITIES
Net Income -$829.0K $1.520M $1.115M
YoY Change -174.33% 0.22% -33.27%
Depreciation, Depletion And Amortization $268.6K $495.4K $488.0K
YoY Change -44.95% 6.43% 19.02%
Cash From Operating Activities $2.552M $3.133M $8.406M
YoY Change -69.65% 142.74% 32.17%
INVESTING ACTIVITIES
Capital Expenditures -$105.9K $31.00K -$200.7K
YoY Change -47.24% 75.93% -225.41%
Acquisitions
YoY Change
Other Investing Activities $26.04K -$4.981M $15.96K
YoY Change 63.16% -518928.13% -20.2%
Cash From Investing Activities -$79.82K -$5.018M -$184.7K
YoY Change -56.78% 28377.38% 31.92%
FINANCING ACTIVITIES
Cash Dividend Paid
YoY Change
Common Stock Issuance & Retirement, Net $715.0K
YoY Change 32.18%
Debt Paid & Issued, Net $8.968M
YoY Change
Cash From Financing Activities 0.000 -9.683M -44.68K
YoY Change -100.0% -36.17%
NET CHANGE
Cash From Operating Activities 2.552M 3.133M 8.406M
Cash From Investing Activities -79.82K -5.018M -184.7K
Cash From Financing Activities 0.000 -9.683M -44.68K
Net Change In Cash 2.472M -11.39M 8.177M
YoY Change -69.77% -1073.57% 32.95%
FREE CASH FLOW
Cash From Operating Activities $2.552M $3.133M $8.406M
Capital Expenditures -$105.9K $31.00K -$200.7K
Free Cash Flow $2.657M $3.102M $8.607M
YoY Change -69.12% 143.67% 38.82%

Facts In Submission

Frame Concept Type Concept / XBRL Key Value Unit
CY2019Q4 us-gaap Aoci Tax Attributable To Parent
AociTaxAttributableToParent
358646
CY2017Q4 us-gaap Aoci Tax Attributable To Parent
AociTaxAttributableToParent
240045
CY2018Q4 us-gaap Aoci Tax Attributable To Parent
AociTaxAttributableToParent
480112
CY2018Q1 us-gaap Aoci Tax Attributable To Parent
AociTaxAttributableToParent
240045
CY2017Q4 us-gaap Accounts Payable Current
AccountsPayableCurrent
2409845
CY2019Q4 us-gaap Accounts Payable Current
AccountsPayableCurrent
5752613
CY2018Q4 us-gaap Accounts Payable Current
AccountsPayableCurrent
2154394
CY2018Q2 us-gaap Accounts Payable Current
AccountsPayableCurrent
3115778
CY2019Q1 us-gaap Accounts Payable Current
AccountsPayableCurrent
897196
CY2018Q1 us-gaap Accounts Payable Current
AccountsPayableCurrent
2922764
CY2018Q3 us-gaap Accounts Payable Current
AccountsPayableCurrent
3718393
CY2019Q4 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
408711
CY2018Q4 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
408170
CY2017Q4 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
461212
CY2018Q1 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
503322
CY2018Q2 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
496255
CY2018Q3 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
418612
CY2019Q1 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
456537
CY2018Q4 us-gaap Accrued Liabilities Current
AccruedLiabilitiesCurrent
5401508
CY2019Q4 us-gaap Accrued Liabilities Current
AccruedLiabilitiesCurrent
2656718
CY2017Q4 us-gaap Accrued Liabilities Current
AccruedLiabilitiesCurrent
5045015
CY2018Q1 us-gaap Accrued Liabilities Current
AccruedLiabilitiesCurrent
3546711
CY2019Q1 us-gaap Accrued Liabilities Current
AccruedLiabilitiesCurrent
4107279
CY2018Q3 us-gaap Accrued Liabilities Current
AccruedLiabilitiesCurrent
3409797
CY2018Q2 us-gaap Accrued Liabilities Current
AccruedLiabilitiesCurrent
3136191
CY2018Q4 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
-1444185
CY2019Q4 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
-1080546
CY2017Q4 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
-762313
CY2018Q2 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
-1106079
CY2018Q1 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
-821305
CY2019Q1 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
-1129692
CY2018Q3 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
-1017455
CY2019Q4 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
14551645
CY2017Q4 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
11765416
CY2018Q4 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
13625261
CY2018Q1 us-gaap Adjustments To Reconcile Net Income Loss To Cash Provided By Used In Operating Activities
AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities
-226000
us-gaap Adjustments To Reconcile Net Income Loss To Cash Provided By Used In Operating Activities
AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities
-3287750
us-gaap Adjustments To Reconcile Net Income Loss To Cash Provided By Used In Operating Activities
AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities
-957811
CY2019Q1 us-gaap Adjustments To Reconcile Net Income Loss To Cash Provided By Used In Operating Activities
AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities
1612449
CY2017 us-gaap Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
239599
CY2019 us-gaap Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
770188
CY2018 us-gaap Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
327629
CY2017 us-gaap Advertising Expense
AdvertisingExpense
5000000
CY2018 us-gaap Advertising Expense
AdvertisingExpense
3900000
CY2019Q1 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
13941530
CY2018Q3 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
12993965
CY2018Q1 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
12177897
CY2018Q2 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
12569534
CY2019Q4 us-gaap Additional Paid In Capital
AdditionalPaidInCapital
5037102
CY2018Q4 us-gaap Additional Paid In Capital
AdditionalPaidInCapital
4267138
CY2017Q4 us-gaap Additional Paid In Capital
AdditionalPaidInCapital
3939589
CY2019Q1 us-gaap Additional Paid In Capital
AdditionalPaidInCapital
4452960
CY2018Q2 us-gaap Additional Paid In Capital
AdditionalPaidInCapital
3992237
CY2018Q3 us-gaap Additional Paid In Capital
AdditionalPaidInCapital
4015996
CY2018Q1 us-gaap Additional Paid In Capital
AdditionalPaidInCapital
3968518
CY2019 us-gaap Adjustments To Reconcile Net Income Loss To Cash Provided By Used In Operating Activities
AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities
12375074
CY2017 us-gaap Adjustments To Reconcile Net Income Loss To Cash Provided By Used In Operating Activities
AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities
-12669
CY2018 us-gaap Adjustments To Reconcile Net Income Loss To Cash Provided By Used In Operating Activities
AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivities
3373375
CY2019 us-gaap Advertising Expense
AdvertisingExpense
3400000
CY2017Q4 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
22642
CY2018Q4 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
15703
CY2019Q4 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
15940
CY2018Q2 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
9911
CY2018Q1 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
16075
CY2018Q3 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
9839
CY2019Q1 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
12940
CY2019Q3 us-gaap Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
2704
CY2019Q4 us-gaap Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
8387
CY2019Q2 us-gaap Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
2290
CY2019 us-gaap Asset Impairment Charges
AssetImpairmentCharges
1001835
CY2018 us-gaap Asset Impairment Charges
AssetImpairmentCharges
285477
CY2017 us-gaap Asset Impairment Charges
AssetImpairmentCharges
0
CY2018Q4 us-gaap Assets
Assets
76781327
CY2017Q4 us-gaap Assets
Assets
72870607
CY2019Q4 us-gaap Assets
Assets
80111171
CY2018Q3 us-gaap Assets
Assets
75282832
CY2018Q2 us-gaap Assets
Assets
73838699
CY2018Q1 us-gaap Assets
Assets
73509471
CY2019Q1 us-gaap Assets
Assets
83488878
CY2019Q4 us-gaap Assets Current
AssetsCurrent
52515700
CY2017Q4 us-gaap Assets Current
AssetsCurrent
54810953
CY2018Q4 us-gaap Assets Current
AssetsCurrent
59816578
CY2019Q1 us-gaap Assets Current
AssetsCurrent
50497878
CY2018Q3 us-gaap Assets Current
AssetsCurrent
57506977
CY2018Q1 us-gaap Assets Current
AssetsCurrent
55843994
CY2018Q2 us-gaap Assets Current
AssetsCurrent
56176269
CY2019 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
-8165193
CY2018 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
5987494
CY2017 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
1220553
CY2018Q1 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
1170021
us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
-1267885
us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
872471
CY2019Q1 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
-11390978
CY2018Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
24070351
CY2017Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
18082857
CY2016Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
16862304
CY2019Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
15905158
CY2018Q2 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
18955328
CY2019Q1 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
12679373
CY2018Q1 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
19252878
CY2018Q3 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
16814972
CY2017Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
18082857
CY2019Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
15905158
CY2018Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
24070351
CY2018Q2 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
18955328
CY2018Q3 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
16814972
CY2019Q1 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
12679373
CY2018Q1 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
19252878
CY2019Q4 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
CY2018Q4 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
CY2017Q4 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
CY2019Q1 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
CY2018Q2 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
CY2018Q3 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
CY2018Q1 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
CY2019Q4 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
10446563
CY2018Q4 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
10353155
CY2017Q4 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
10320069
CY2018 us-gaap Comprehensive Income Net Of Tax Including Portion Attributable To Noncontrolling Interest
ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
3716493
CY2018Q1 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
10336717
CY2018Q2 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
10336717
CY2019Q1 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
10354563
CY2018Q3 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
10336717
CY2017Q4 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.0024
CY2019Q4 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.0024
CY2018Q4 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.0024
CY2018Q3 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.0024
CY2018Q2 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.0024
CY2018Q1 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.0024
CY2019Q1 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.0024
CY2018Q4 us-gaap Common Stock Value
CommonStockValue
24848
CY2017Q4 us-gaap Common Stock Value
CommonStockValue
24768
CY2019Q4 us-gaap Common Stock Value
CommonStockValue
25072
CY2018Q2 us-gaap Common Stock Value
CommonStockValue
24808
CY2019Q1 us-gaap Common Stock Value
CommonStockValue
24851
CY2018Q3 us-gaap Common Stock Value
CommonStockValue
24808
CY2018Q1 us-gaap Common Stock Value
CommonStockValue
24808
CY2019Q4 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
25000000
CY2017Q4 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
25000000
CY2018Q4 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
25000000
CY2019Q1 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
25000000
CY2018Q1 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
25000000
CY2018Q2 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
25000000
CY2018Q3 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
25000000
CY2019 us-gaap Comprehensive Income Net Of Tax Including Portion Attributable To Noncontrolling Interest
ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
-1540142
CY2017 us-gaap Comprehensive Income Net Of Tax Including Portion Attributable To Noncontrolling Interest
ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
2889871
CY2019Q1 us-gaap Comprehensive Income Net Of Tax Including Portion Attributable To Noncontrolling Interest
ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
1834304
CY2018Q2 us-gaap Comprehensive Income Net Of Tax Including Portion Attributable To Noncontrolling Interest
ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
872969
CY2018Q1 us-gaap Comprehensive Income Net Of Tax Including Portion Attributable To Noncontrolling Interest
ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
1457664
us-gaap Comprehensive Income Net Of Tax Including Portion Attributable To Noncontrolling Interest
ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
3027958
us-gaap Comprehensive Income Net Of Tax Including Portion Attributable To Noncontrolling Interest
ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
2330633
CY2018Q3 us-gaap Comprehensive Income Net Of Tax Including Portion Attributable To Noncontrolling Interest
ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
697325
CY2017 us-gaap Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
2999960
CY2019 us-gaap Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
-582502
CY2018 us-gaap Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
1540045
CY2019 us-gaap Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
-559998
CY2017 us-gaap Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
3934351
CY2019Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
0
CY2017Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
905657
CY2018Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
647277
CY2017 us-gaap Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
200000
CY2019 us-gaap Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
100000
CY2018 us-gaap Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
200000
CY2019Q4 us-gaap Contract With Customer Asset Accumulated Allowance For Credit Loss
ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss
300000
CY2017Q4 us-gaap Contract With Customer Asset Accumulated Allowance For Credit Loss
ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss
300000
CY2018Q4 us-gaap Contract With Customer Asset Accumulated Allowance For Credit Loss
ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss
400000
CY2019 us-gaap Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
32958708
CY2018 us-gaap Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
32262624
CY2017 us-gaap Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
33334934
us-gaap Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
21747628
CY2018Q3 us-gaap Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
6982380
CY2018Q1 us-gaap Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
7811518
CY2018Q2 us-gaap Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
6953730
CY2019Q1 us-gaap Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
8696652
us-gaap Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
14765248
CY2019 us-gaap Cost Of Goods And Services Sold Depreciation
CostOfGoodsAndServicesSoldDepreciation
1655223
CY2018 us-gaap Cost Of Goods And Services Sold Depreciation
CostOfGoodsAndServicesSoldDepreciation
1798762
CY2017 us-gaap Cost Of Goods And Services Sold Depreciation
CostOfGoodsAndServicesSoldDepreciation
1884043
CY2019Q1 us-gaap Cost Of Goods And Services Sold Depreciation
CostOfGoodsAndServicesSoldDepreciation
494295
us-gaap Cost Of Goods And Services Sold Depreciation
CostOfGoodsAndServicesSoldDepreciation
880094
CY2018Q1 us-gaap Cost Of Goods And Services Sold Depreciation
CostOfGoodsAndServicesSoldDepreciation
466633
us-gaap Cost Of Goods And Services Sold Depreciation
CostOfGoodsAndServicesSoldDepreciation
1312830
CY2019 us-gaap Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
-10477
CY2017 us-gaap Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
544495
CY2018 us-gaap Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
356199
CY2017 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
343954
CY2018 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
223156
CY2019 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
7341
CY2018 us-gaap Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
879822
CY2018Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
0
CY2018Q1 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
0
CY2018Q3 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
0
CY2017Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
0
CY2018Q2 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
0
CY2019Q1 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
0
CY2018 us-gaap Deferred Revenue Revenue Recognized1
DeferredRevenueRevenueRecognized1
1900000
CY2019 us-gaap Deferred Revenue Revenue Recognized1
DeferredRevenueRevenueRecognized1
1100000
CY2017 us-gaap Deferred Revenue Revenue Recognized1
DeferredRevenueRevenueRecognized1
2100000
CY2017Q4 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
1130905
CY2018Q4 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
1092293
CY2019Q4 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
427333
CY2018Q2 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
1285548
CY2018Q1 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
1048140
CY2019Q1 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
908500
CY2018Q3 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
1421196
CY2017Q4 us-gaap Deferred Tax Assets Goodwill And Intangible Assets
DeferredTaxAssetsGoodwillAndIntangibleAssets
0
CY2019Q4 us-gaap Deferred Tax Assets Goodwill And Intangible Assets
DeferredTaxAssetsGoodwillAndIntangibleAssets
32670
CY2018Q4 us-gaap Deferred Tax Assets Goodwill And Intangible Assets
DeferredTaxAssetsGoodwillAndIntangibleAssets
0
CY2018Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
1054895
CY2017Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
1156146
CY2019Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
829712
CY2017 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
-59918
CY2019 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
-94001
CY2018 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
194735
CY2019 us-gaap Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
-130465
CY2018 us-gaap Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
273409
CY2017 us-gaap Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
-74519
CY2018 us-gaap Deferred Income Taxes And Tax Credits
DeferredIncomeTaxesAndTaxCredits
257249
CY2019 us-gaap Deferred Income Taxes And Tax Credits
DeferredIncomeTaxesAndTaxCredits
-334343
CY2017 us-gaap Deferred Income Taxes And Tax Credits
DeferredIncomeTaxesAndTaxCredits
638056
us-gaap Deferred Income Taxes And Tax Credits
DeferredIncomeTaxesAndTaxCredits
-290291
CY2019Q1 us-gaap Deferred Income Taxes And Tax Credits
DeferredIncomeTaxesAndTaxCredits
183793
CY2018Q1 us-gaap Deferred Income Taxes And Tax Credits
DeferredIncomeTaxesAndTaxCredits
82765
us-gaap Deferred Income Taxes And Tax Credits
DeferredIncomeTaxesAndTaxCredits
-154643
CY2019 us-gaap Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
-12905
CY2018 us-gaap Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
42045
CY2017 us-gaap Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
38036
CY2018 us-gaap Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
36629
CY2017 us-gaap Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
-52637
CY2019 us-gaap Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
-23559
CY2019Q4 us-gaap Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
459196
CY2018Q4 us-gaap Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
344578
CY2017Q4 us-gaap Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
337904
CY2019Q4 us-gaap Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
468438
CY2017Q4 us-gaap Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
542820
CY2018Q4 us-gaap Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
578029
CY2017Q4 us-gaap Deferred Tax Assets Net
DeferredTaxAssetsNet
2287051
CY2019Q4 us-gaap Deferred Tax Assets Net
DeferredTaxAssetsNet
1257045
CY2018Q4 us-gaap Deferred Tax Assets Net
DeferredTaxAssetsNet
2147188
CY2019Q4 us-gaap Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
427333
CY2017Q4 us-gaap Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
1130905
CY2018Q4 us-gaap Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
1092293
CY2019Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
1638917
CY2018Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
2407501
CY2017Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
2495401
CY2019Q4 us-gaap Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
0
CY2018Q4 us-gaap Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
48878
CY2017Q4 us-gaap Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
67642
CY2018Q4 us-gaap Deferred Tax Assets Other
DeferredTaxAssetsOther
0
CY2017Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Employee Bonuses
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBonuses
363710
CY2018Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Employee Bonuses
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBonuses
250355
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Employee Bonuses
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBonuses
0
CY2017Q4 us-gaap Deferred Tax Liabilities Deferred Expense
DeferredTaxLiabilitiesDeferredExpense
0
CY2018Q4 us-gaap Deferred Tax Liabilities Deferred Expense
DeferredTaxLiabilitiesDeferredExpense
0
CY2018 us-gaap Defined Contribution Plan Employer Discretionary Contribution Amount
DefinedContributionPlanEmployerDiscretionaryContributionAmount
0
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
51430
CY2017Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
29332
CY2018Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
46165
CY2017Q4 us-gaap Deferred Tax Assets Other
DeferredTaxAssetsOther
0
CY2019Q4 us-gaap Deferred Tax Assets Other
DeferredTaxAssetsOther
25
CY2019Q4 us-gaap Deferred Tax Liabilities Deferred Expense
DeferredTaxLiabilitiesDeferredExpense
90079
CY2017Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Returns And Allowances
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReturnsAndAllowances
52205
CY2018Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Returns And Allowances
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReturnsAndAllowances
61251
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Returns And Allowances
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReturnsAndAllowances
119404
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
0
CY2017Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
227489
CY2018Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
222538
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Deferred Rent
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsDeferredRent
144699
CY2017Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Deferred Rent
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsDeferredRent
0
CY2018Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Deferred Rent
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsDeferredRent
0
CY2018Q4 us-gaap Deferred Tax Assets Unrealized Currency Losses
DeferredTaxAssetsUnrealizedCurrencyLosses
480112
CY2017Q4 us-gaap Deferred Tax Assets Unrealized Currency Losses
DeferredTaxAssetsUnrealizedCurrencyLosses
240045
CY2019Q4 us-gaap Deferred Tax Assets Unrealized Currency Losses
DeferredTaxAssetsUnrealizedCurrencyLosses
359078
CY2018Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
260313
CY2019Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
381872
CY2017Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
208350
CY2017Q4 us-gaap Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
1004163
CY2019Q4 us-gaap Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
739633
CY2018Q4 us-gaap Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
897494
CY2019Q4 us-gaap Deferred Tax Liabilities Goodwill And Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssets
0
CY2017Q4 us-gaap Deferred Tax Liabilities Goodwill And Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssets
151983
CY2018Q4 us-gaap Deferred Tax Liabilities Goodwill And Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssets
157401
CY2017 us-gaap Defined Contribution Plan Employer Discretionary Contribution Amount
DefinedContributionPlanEmployerDiscretionaryContributionAmount
0
CY2019 us-gaap Defined Contribution Plan Employer Discretionary Contribution Amount
DefinedContributionPlanEmployerDiscretionaryContributionAmount
0
CY2017 us-gaap Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
300000
CY2019 us-gaap Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
300000
CY2018 us-gaap Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
400000
CY2017 us-gaap Depreciation
Depreciation
1900000
CY2018 us-gaap Depreciation
Depreciation
1800000
CY2019 us-gaap Depreciation
Depreciation
1700000
CY2017 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.27
CY2018 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.48
CY2019 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
-0.21
us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.36
CY2018Q4 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.12
CY2019Q3 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
-0.19
CY2019Q4 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
-0.09
us-gaap Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
-380975
CY2018 us-gaap Effective Income Tax Rate Reconciliation Change In Enacted Tax Rate
EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate
0
CY2019 us-gaap Effective Income Tax Rate Reconciliation Change In Enacted Tax Rate
EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate
0
CY2017 us-gaap Effective Income Tax Rate Reconciliation Change In Enacted Tax Rate
EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate
0.2
CY2017 us-gaap Effective Income Tax Rate Reconciliation Foreign Income Tax Rate Differential
EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
-0.03
CY2019Q1 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.17
CY2018Q2 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.13
CY2018Q3 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.07
us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.29
CY2018Q1 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.16
CY2019Q2 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
-0.10
CY2017 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.27
CY2018 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.48
CY2019 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
-0.21
CY2018Q3 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.07
us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.36
CY2019Q1 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.17
CY2018Q2 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.13
CY2018Q1 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.16
us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.29
CY2019Q3 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
-0.19
CY2018Q4 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.12
CY2019Q4 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
-0.09
CY2019Q2 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
-0.10
CY2019 us-gaap Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
222878
CY2017 us-gaap Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
260096
CY2018 us-gaap Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
-666879
us-gaap Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
-417036
CY2019Q1 us-gaap Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
177495
CY2018Q1 us-gaap Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
-103014
CY2018 us-gaap Effective Income Tax Rate Reconciliation Foreign Income Tax Rate Differential
EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
0.03
CY2019 us-gaap Effective Income Tax Rate Reconciliation Foreign Income Tax Rate Differential
EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
0
CY2019 us-gaap Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
0.01
CY2017 us-gaap Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
0.03
CY2018 us-gaap Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
0
CY2018 us-gaap Effective Income Tax Rate Reconciliation Prior Year Income Taxes
EffectiveIncomeTaxRateReconciliationPriorYearIncomeTaxes
0
CY2019 us-gaap Effective Income Tax Rate Reconciliation Prior Year Income Taxes
EffectiveIncomeTaxRateReconciliationPriorYearIncomeTaxes
0.03
CY2017 us-gaap Effective Income Tax Rate Reconciliation Prior Year Income Taxes
EffectiveIncomeTaxRateReconciliationPriorYearIncomeTaxes
0
CY2018 us-gaap Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
0.01
CY2017 us-gaap Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
0.01
CY2019 us-gaap Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
-0.05
us-gaap Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
0.35
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
CY2017 us-gaap Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
0.34
CY2017 us-gaap Effective Income Tax Rate Reconciliation Tax Exempt Income
EffectiveIncomeTaxRateReconciliationTaxExemptIncome
0.01
CY2019 us-gaap Effective Income Tax Rate Reconciliation Tax Exempt Income
EffectiveIncomeTaxRateReconciliationTaxExemptIncome
-0.06
CY2018 us-gaap Effective Income Tax Rate Reconciliation Tax Exempt Income
EffectiveIncomeTaxRateReconciliationTaxExemptIncome
0
CY2019 us-gaap Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
0.27
CY2018 us-gaap Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
0.29
CY2017 us-gaap Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
0.61
CY2017 us-gaap Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
0.05
CY2019 us-gaap Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
0
CY2018 us-gaap Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
0.04
CY2019Q4 us-gaap Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
1104757
CY2017Q4 us-gaap Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
2904294
CY2018Q4 us-gaap Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
2762170
CY2019Q4 us-gaap Fair Value Assets Level1 To Level2 Transfers Amount
FairValueAssetsLevel1ToLevel2TransfersAmount
0
CY2018Q4 us-gaap Fair Value Assets Level1 To Level2 Transfers Amount
FairValueAssetsLevel1ToLevel2TransfersAmount
0
CY2017Q4 us-gaap Fair Value Assets Level1 To Level2 Transfers Amount
FairValueAssetsLevel1ToLevel2TransfersAmount
0
CY2019Q4 us-gaap Fair Value Assets Level2 To Level1 Transfers Amount
FairValueAssetsLevel2ToLevel1TransfersAmount
0
CY2017Q4 us-gaap Fair Value Assets Level2 To Level1 Transfers Amount
FairValueAssetsLevel2ToLevel1TransfersAmount
0
CY2018Q4 us-gaap Fair Value Assets Level2 To Level1 Transfers Amount
FairValueAssetsLevel2ToLevel1TransfersAmount
0
CY2019 us-gaap Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Asset Transfers Net
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet
0
CY2018 us-gaap Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Asset Transfers Net
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet
0
CY2017 us-gaap Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Asset Transfers Net
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersNet
0
CY2017Q4 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
688147
CY2019Q4 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
547369
CY2018Q4 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
690869
CY2019Q1 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
714000
CY2018Q2 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
712000
CY2018Q1 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
711000
CY2018Q3 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
712000
CY2019Q4 us-gaap Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
554369
CY2018Q4 us-gaap Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
707369
CY2017Q4 us-gaap Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
707369
CY2018Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
16500
CY2019Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
7000
CY2017Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
19222
CY2018Q2 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
18083
CY2018Q3 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
17166
CY2018Q1 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
18667
CY2019Q1 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
15833
CY2018 us-gaap Foreign Currency Transaction Gain Loss Before Tax
ForeignCurrencyTransactionGainLossBeforeTax
406832
CY2019 us-gaap Foreign Currency Transaction Gain Loss Before Tax
ForeignCurrencyTransactionGainLossBeforeTax
-137241
CY2017 us-gaap Foreign Currency Transaction Gain Loss Before Tax
ForeignCurrencyTransactionGainLossBeforeTax
-32999
us-gaap Foreign Currency Transaction Gain Loss Before Tax
ForeignCurrencyTransactionGainLossBeforeTax
215866
us-gaap Foreign Currency Transaction Gain Loss Before Tax
ForeignCurrencyTransactionGainLossBeforeTax
136898
CY2019Q1 us-gaap Foreign Currency Transaction Gain Loss Before Tax
ForeignCurrencyTransactionGainLossBeforeTax
-136267
CY2018Q1 us-gaap Foreign Currency Transaction Gain Loss Before Tax
ForeignCurrencyTransactionGainLossBeforeTax
121723
CY2018 us-gaap Foreign Currency Transaction Gain Loss Realized
ForeignCurrencyTransactionGainLossRealized
400000
CY2017 us-gaap Foreign Currency Transaction Gain Loss Realized
ForeignCurrencyTransactionGainLossRealized
100000
CY2017 us-gaap Gain Loss On Disposition Of Assets1
GainLossOnDispositionOfAssets1
-3139
CY2019 us-gaap Gain Loss On Disposition Of Assets1
GainLossOnDispositionOfAssets1
-8795
CY2018 us-gaap Gain Loss On Disposition Of Assets1
GainLossOnDispositionOfAssets1
-1321
CY2018Q1 us-gaap Gain Loss On Disposition Of Assets1
GainLossOnDispositionOfAssets1
-1929
us-gaap Gain Loss On Disposition Of Assets1
GainLossOnDispositionOfAssets1
-4556
CY2019Q1 us-gaap Gain Loss On Disposition Of Assets1
GainLossOnDispositionOfAssets1
3794
us-gaap Gain Loss On Disposition Of Assets1
GainLossOnDispositionOfAssets1
-4556
CY2019Q4 us-gaap Goodwill
Goodwill
0
CY2017Q4 us-gaap Goodwill
Goodwill
962949
CY2018Q4 us-gaap Goodwill
Goodwill
954765
CY2018Q3 us-gaap Goodwill
Goodwill
960304
CY2018Q1 us-gaap Goodwill
Goodwill
960353
CY2018Q2 us-gaap Goodwill
Goodwill
958464
CY2019Q1 us-gaap Goodwill
Goodwill
956945
CY2019Q4 us-gaap Goodwill Impairment Loss
GoodwillImpairmentLoss
1000000
CY2017 us-gaap Gross Profit
GrossProfit
49085661
CY2018 us-gaap Gross Profit
GrossProfit
50940945
CY2019 us-gaap Gross Profit
GrossProfit
41959452
us-gaap Gross Profit
GrossProfit
24922552
CY2018Q3 us-gaap Gross Profit
GrossProfit
11895883
us-gaap Gross Profit
GrossProfit
36818435
CY2019Q1 us-gaap Gross Profit
GrossProfit
12244670
CY2018Q1 us-gaap Gross Profit
GrossProfit
12689060
CY2018Q2 us-gaap Gross Profit
GrossProfit
12233492
CY2019Q3 us-gaap Gross Profit
GrossProfit
8848648
CY2018Q4 us-gaap Gross Profit
GrossProfit
14122510
CY2019Q4 us-gaap Gross Profit
GrossProfit
11495688
CY2019Q2 us-gaap Gross Profit
GrossProfit
9370446
CY2017Q4 us-gaap Held To Maturity Securities Current
HeldToMaturitySecuritiesCurrent
0
CY2018Q4 us-gaap Held To Maturity Securities Current
HeldToMaturitySecuritiesCurrent
0
CY2019Q4 us-gaap Held To Maturity Securities Current
HeldToMaturitySecuritiesCurrent
9152166
CY2018Q3 us-gaap Held To Maturity Securities Current
HeldToMaturitySecuritiesCurrent
0
CY2019Q1 us-gaap Held To Maturity Securities Current
HeldToMaturitySecuritiesCurrent
5006578
CY2018 us-gaap Impairment Of Long Lived Assets Held For Use
ImpairmentOfLongLivedAssetsHeldForUse
285477
CY2019 us-gaap Impairment Of Long Lived Assets Held For Use
ImpairmentOfLongLivedAssetsHeldForUse
1001835
CY2017 us-gaap Impairment Of Long Lived Assets Held For Use
ImpairmentOfLongLivedAssetsHeldForUse
0
CY2017Q4 us-gaap Income Tax Expense Benefit Continuing Operations Adjustment Of Deferred Tax Asset Liability
IncomeTaxExpenseBenefitContinuingOperationsAdjustmentOfDeferredTaxAssetLiability
402135
CY2019 us-gaap Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
-2594244
CY2018 us-gaap Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
6211819
CY2017 us-gaap Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
6338276
us-gaap Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
3778639
us-gaap Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
4638669
CY2018Q3 us-gaap Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
860030
CY2018Q2 us-gaap Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
1635766
CY2019Q1 us-gaap Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
2071016
CY2018Q1 us-gaap Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
2142873
CY2017 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
3859832
CY2018 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
1813454
CY2019 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
-690463
CY2018Q3 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
251329
us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
1355569
CY2019Q1 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
551205
CY2018Q1 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
626217
us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
1104240
CY2018Q2 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
478023
us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
1716588
us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
-1920897
CY2017 us-gaap Increase Decrease In Deferred Income Taxes
IncreaseDecreaseInDeferredIncomeTaxes
-1148313
CY2019 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
3499627
CY2018Q1 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
-1012412
us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
721717
CY2019Q1 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
-1281147
us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
1403219
CY2018 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
314937
CY2017 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
-2266301
CY2019 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
-2718611
CY2019 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
714620
CY2017 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
2243018
CY2018 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
1361400
CY2019 us-gaap Increase Decrease In Other Noncurrent Assets
IncreaseDecreaseInOtherNoncurrentAssets
325691
CY2018 us-gaap Increase Decrease In Other Noncurrent Assets
IncreaseDecreaseInOtherNoncurrentAssets
-583281
CY2017 us-gaap Increase Decrease In Other Noncurrent Assets
IncreaseDecreaseInOtherNoncurrentAssets
-365622
us-gaap Increase Decrease In Other Noncurrent Assets
IncreaseDecreaseInOtherNoncurrentAssets
-422302
CY2019Q1 us-gaap Increase Decrease In Other Noncurrent Assets
IncreaseDecreaseInOtherNoncurrentAssets
41970
us-gaap Increase Decrease In Other Noncurrent Assets
IncreaseDecreaseInOtherNoncurrentAssets
-352313
CY2018Q1 us-gaap Increase Decrease In Other Noncurrent Assets
IncreaseDecreaseInOtherNoncurrentAssets
-77175
CY2017 us-gaap Increase Decrease In Other Current Assets
IncreaseDecreaseInOtherCurrentAssets
0
CY2019 us-gaap Increase Decrease In Other Current Assets
IncreaseDecreaseInOtherCurrentAssets
96492
CY2018 us-gaap Increase Decrease In Other Current Assets
IncreaseDecreaseInOtherCurrentAssets
0
CY2019Q1 us-gaap Increase Decrease In Other Current Assets
IncreaseDecreaseInOtherCurrentAssets
193647
CY2018Q1 us-gaap Increase Decrease In Other Current Assets
IncreaseDecreaseInOtherCurrentAssets
1197098
us-gaap Increase Decrease In Other Current Assets
IncreaseDecreaseInOtherCurrentAssets
0
us-gaap Increase Decrease In Other Current Assets
IncreaseDecreaseInOtherCurrentAssets
0
CY2017 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
-88445
CY2018 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
-49155
CY2019 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
22703
CY2018Q1 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
298158
us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
10900
us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
22534
CY2019Q1 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
56063
CY2018 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
-148340
CY2017 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
764889
CY2019Q1 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
-1155895
us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
-1652826
CY2018Q1 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
-532200
CY2018Q3 us-gaap Interest Expense
InterestExpense
80710
CY2018Q2 us-gaap Interest Expense
InterestExpense
78182
us-gaap Interest Expense
InterestExpense
223534
CY2019Q1 us-gaap Interest Expense
InterestExpense
32383
us-gaap Interest Expense
InterestExpense
142824
CY2018Q1 us-gaap Interest Expense
InterestExpense
64642
CY2018 us-gaap Increase Decrease In Deferred Income Taxes
IncreaseDecreaseInDeferredIncomeTaxes
795609
CY2019 us-gaap Increase Decrease In Deferred Income Taxes
IncreaseDecreaseInDeferredIncomeTaxes
1219596
us-gaap Increase Decrease In Deferred Income Taxes
IncreaseDecreaseInDeferredIncomeTaxes
418970
CY2018Q1 us-gaap Increase Decrease In Deferred Income Taxes
IncreaseDecreaseInDeferredIncomeTaxes
-136504
us-gaap Increase Decrease In Deferred Income Taxes
IncreaseDecreaseInDeferredIncomeTaxes
202651
CY2019Q1 us-gaap Increase Decrease In Deferred Income Taxes
IncreaseDecreaseInDeferredIncomeTaxes
-108710
CY2017 us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
2978285
CY2019 us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
-9329998
CY2018 us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
-1034430
us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
3961731
us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
688434
CY2019Q1 us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
-3172163
CY2018Q1 us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
-521525
CY2019 us-gaap Increase Decrease In Prepaid Expense
IncreaseDecreaseInPrepaidExpense
-596071
CY2018 us-gaap Increase Decrease In Prepaid Expense
IncreaseDecreaseInPrepaidExpense
-71915
CY2017 us-gaap Increase Decrease In Prepaid Expense
IncreaseDecreaseInPrepaidExpense
-66812
us-gaap Increase Decrease In Prepaid Expense
IncreaseDecreaseInPrepaidExpense
-165857
CY2018Q1 us-gaap Increase Decrease In Prepaid Expense
IncreaseDecreaseInPrepaidExpense
-1620091
us-gaap Increase Decrease In Prepaid Expense
IncreaseDecreaseInPrepaidExpense
-34501
CY2019Q1 us-gaap Increase Decrease In Prepaid Expense
IncreaseDecreaseInPrepaidExpense
-32552
CY2019 us-gaap Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
9203
CY2017 us-gaap Interest Expense
InterestExpense
205555
CY2018 us-gaap Interest Expense
InterestExpense
304957
CY2019 us-gaap Interest Expense
InterestExpense
36260
CY2017 us-gaap Interest Paid Net
InterestPaidNet
205555
CY2018 us-gaap Interest Paid Net
InterestPaidNet
304957
CY2019 us-gaap Interest Paid Net
InterestPaidNet
36260
CY2017Q4 us-gaap Inventory Finished Goods
InventoryFinishedGoods
32042251
CY2018Q4 us-gaap Inventory Finished Goods
InventoryFinishedGoods
31263806
CY2019Q4 us-gaap Inventory Finished Goods
InventoryFinishedGoods
20575216
CY2017Q4 us-gaap Inventory Work In Process And Raw Materials
InventoryWorkInProcessAndRawMaterials
1155680
CY2019Q4 us-gaap Inventory Work In Process And Raw Materials
InventoryWorkInProcessAndRawMaterials
717053
CY2018Q4 us-gaap Inventory Work In Process And Raw Materials
InventoryWorkInProcessAndRawMaterials
919202
CY2017Q4 us-gaap Inventory Net
InventoryNet
34546084
CY2019Q4 us-gaap Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
1837187
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
1309459
CY2018Q4 us-gaap Inventory Net
InventoryNet
33302549
CY2019Q4 us-gaap Inventory Net
InventoryNet
24041827
CY2018Q3 us-gaap Inventory Net
InventoryNet
38411757
CY2019Q1 us-gaap Inventory Net
InventoryNet
30174483
CY2018Q2 us-gaap Inventory Net
InventoryNet
35122333
CY2018Q1 us-gaap Inventory Net
InventoryNet
34277634
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
3891153
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due After Year Five
LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
3697717
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
16314566
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
1722991
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
2411124
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
3282122
CY2019 us-gaap Lease Cost
LeaseCost
5046593
CY2017 us-gaap Lease And Rental Expense
LeaseAndRentalExpense
4600000
CY2018 us-gaap Lease And Rental Expense
LeaseAndRentalExpense
5000000
CY2018Q1 us-gaap Long Term Debt Noncurrent
LongTermDebtNoncurrent
6758739
CY2018Q3 us-gaap Long Term Debt Noncurrent
LongTermDebtNoncurrent
8180613
CY2018Q4 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
76781327
CY2019Q4 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
80111171
CY2017Q4 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
72870607
CY2019Q1 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
83488878
CY2018Q1 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
73509471
CY2018Q3 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
75282832
CY2018Q2 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
73838699
CY2019Q4 us-gaap Liabilities Current
LiabilitiesCurrent
12232079
CY2017Q4 us-gaap Liabilities Current
LiabilitiesCurrent
8423800
CY2018Q4 us-gaap Liabilities Current
LiabilitiesCurrent
8075418
CY2019Q1 us-gaap Liabilities Current
LiabilitiesCurrent
9052636
CY2018Q3 us-gaap Liabilities Current
LiabilitiesCurrent
7302246
CY2018Q1 us-gaap Liabilities Current
LiabilitiesCurrent
8115177
CY2018Q2 us-gaap Liabilities Current
LiabilitiesCurrent
8146118
CY2018Q4 us-gaap Long Term Debt Current
LongTermDebtCurrent
519516
CY2017Q4 us-gaap Long Term Debt Current
LongTermDebtCurrent
614311
CY2019Q4 us-gaap Long Term Debt Current
LongTermDebtCurrent
0
CY2018Q1 us-gaap Long Term Debt Current
LongTermDebtCurrent
1153931
CY2018Q2 us-gaap Long Term Debt Current
LongTermDebtCurrent
1740556
CY2018Q3 us-gaap Long Term Debt Current
LongTermDebtCurrent
174056
CY2017Q4 us-gaap Long Term Debt Noncurrent
LongTermDebtNoncurrent
6757419
CY2019Q4 us-gaap Long Term Debt Noncurrent
LongTermDebtNoncurrent
0
CY2018Q4 us-gaap Long Term Debt Noncurrent
LongTermDebtNoncurrent
8448502
CY2018Q2 us-gaap Long Term Debt Noncurrent
LongTermDebtNoncurrent
6614112
CY2017 us-gaap Marketing Expense
MarketingExpense
200000
CY2018 us-gaap Marketing Expense
MarketingExpense
200000
CY2018 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
-56978
CY2019 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
-9703217
CY2017 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
150718
us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
-12299
CY2018Q1 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
0
us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
-12248
CY2019Q1 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
-9682635
CY2018 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
7771740
CY2017 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
2465775
CY2019 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
10471293
CY2019Q1 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
3132260
us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
-4650
CY2018Q1 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
1290656
CY2019 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-9156147
CY2017 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-1656036
CY2018 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-1060389
CY2019Q4 us-gaap Number Of Stores
NumberOfStores
115
CY2019 us-gaap Number Of Reportable Segments
NumberOfReportableSegments
1
CY2018 us-gaap Number Of Reportable Segments
NumberOfReportableSegments
2
CY2018 us-gaap Number Of Operating Segments
NumberOfOperatingSegments
2
CY2019 us-gaap Number Of Operating Segments
NumberOfOperatingSegments
1
CY2017Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
0
us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-414833
CY2018Q1 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-17621
us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-869961
CY2019Q1 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-5018098
CY2017 us-gaap Net Income Loss
NetIncomeLoss
2478444
CY2019 us-gaap Net Income Loss
NetIncomeLoss
-1903781
CY2018 us-gaap Net Income Loss
NetIncomeLoss
4398365
us-gaap Net Income Loss
NetIncomeLoss
2674399
CY2018Q1 us-gaap Net Income Loss
NetIncomeLoss
1516656
CY2019Q1 us-gaap Net Income Loss
NetIncomeLoss
1519811
us-gaap Net Income Loss
NetIncomeLoss
3283100
CY2018Q3 us-gaap Net Income Loss
NetIncomeLoss
608701
CY2018Q2 us-gaap Net Income Loss
NetIncomeLoss
1157743
CY2019Q4 us-gaap Net Income Loss
NetIncomeLoss
-829473
CY2019Q3 us-gaap Net Income Loss
NetIncomeLoss
-1718452
CY2019Q2 us-gaap Net Income Loss
NetIncomeLoss
-875667
CY2018Q4 us-gaap Net Income Loss
NetIncomeLoss
1115265
CY2017 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-38443
CY2019 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
3965
CY2018 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
248616
us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
142396
us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
102532
CY2018Q2 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
53660
CY2018Q3 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-39864
CY2018Q1 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
88736
CY2019Q1 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-142001
CY2019Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
3822748
CY2018Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
0
CY2019Q1 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
4048161
CY2019Q4 us-gaap Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
0.041
CY2018Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
0
CY2019Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
10654631
CY2017Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
0
CY2019Q1 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
13234659
CY2019 us-gaap Operating Lease Payments
OperatingLeasePayments
4078695
CY2018Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
0
us-gaap Operating Income Loss
OperatingIncomeLoss
3636243
CY2018 us-gaap Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
-681872
CY2019 us-gaap Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
363639
CY2017 us-gaap Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
411427
us-gaap Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
-255142
us-gaap Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
-343766
CY2019Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
13897422
CY2017Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
0
CY2019Q1 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
16769384
CY2019Q4 us-gaap Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
P6Y
CY2019Q4 us-gaap Operating Lease Liability
OperatingLeaseLiability
14477379
CY2019 us-gaap Operating Lease Right Of Use Asset Amortization Expense
OperatingLeaseRightOfUseAssetAmortizationExpense
3481931
CY2018 us-gaap Operating Lease Right Of Use Asset Amortization Expense
OperatingLeaseRightOfUseAssetAmortizationExpense
0
CY2017 us-gaap Operating Lease Right Of Use Asset Amortization Expense
OperatingLeaseRightOfUseAssetAmortizationExpense
0
CY2019Q1 us-gaap Operating Lease Right Of Use Asset Amortization Expense
OperatingLeaseRightOfUseAssetAmortizationExpense
865050
CY2018Q4 us-gaap Operating Leases Future Minimum Payments Due Current
OperatingLeasesFutureMinimumPaymentsDueCurrent
4417806
CY2018Q4 us-gaap Operating Leases Future Minimum Payments Due Thereafter
OperatingLeasesFutureMinimumPaymentsDueThereafter
2139218
CY2018Q4 us-gaap Operating Leases Future Minimum Payments Due In Two Years
OperatingLeasesFutureMinimumPaymentsDueInTwoYears
3750324
CY2018Q4 us-gaap Operating Leases Future Minimum Payments Due In Five Years
OperatingLeasesFutureMinimumPaymentsDueInFiveYears
1289874
CY2018 us-gaap Operating Costs And Expenses
OperatingCostsAndExpenses
44692265
CY2019 us-gaap Operating Costs And Expenses
OperatingCostsAndExpenses
43555826
CY2017 us-gaap Operating Costs And Expenses
OperatingCostsAndExpenses
42708942
CY2018Q1 us-gaap Operating Costs And Expenses
OperatingCostsAndExpenses
10634923
us-gaap Operating Costs And Expenses
OperatingCostsAndExpenses
21286309
CY2019Q1 us-gaap Operating Costs And Expenses
OperatingCostsAndExpenses
10031653
us-gaap Operating Costs And Expenses
OperatingCostsAndExpenses
32282298
CY2018Q2 us-gaap Operating Costs And Expenses
OperatingCostsAndExpenses
10651386
CY2018Q3 us-gaap Operating Costs And Expenses
OperatingCostsAndExpenses
10995989
CY2018Q4 us-gaap Operating Leases Future Minimum Payments Due
OperatingLeasesFutureMinimumPaymentsDue
16742464
CY2018Q4 us-gaap Operating Leases Future Minimum Payments Due In Three Years
OperatingLeasesFutureMinimumPaymentsDueInThreeYears
3042779
CY2018Q4 us-gaap Operating Leases Future Minimum Payments Due In Four Years
OperatingLeasesFutureMinimumPaymentsDueInFourYears
2102463
CY2017 us-gaap Operating Income Loss
OperatingIncomeLoss
6376719
CY2018 us-gaap Operating Income Loss
OperatingIncomeLoss
5963203
CY2019 us-gaap Operating Income Loss
OperatingIncomeLoss
-2598209
CY2018Q1 us-gaap Operating Income Loss
OperatingIncomeLoss
2054137
CY2019Q1 us-gaap Operating Income Loss
OperatingIncomeLoss
2213017
us-gaap Operating Income Loss
OperatingIncomeLoss
4536137
CY2018Q2 us-gaap Operating Income Loss
OperatingIncomeLoss
1582106
CY2018Q3 us-gaap Operating Income Loss
OperatingIncomeLoss
899894
CY2018Q3 us-gaap Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
88624
CY2019Q1 us-gaap Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
314493
CY2018Q1 us-gaap Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
-58992
CY2018Q2 us-gaap Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
-284774
CY2017 us-gaap Other Comprehensive Income Loss Foreign Currency Translation Adjustment Tax
OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
500000
CY2018 us-gaap Other Comprehensive Income Loss Foreign Currency Translation Adjustment Tax
OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
-200000
CY2019 us-gaap Other Comprehensive Income Loss Foreign Currency Translation Adjustment Tax
OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
100000
CY2017Q4 us-gaap Other Assets Current
OtherAssetsCurrent
328522
CY2019 us-gaap Payments To Acquire Short Term Investments
PaymentsToAcquireShortTermInvestments
18094775
CY2017 us-gaap Payments To Acquire Short Term Investments
PaymentsToAcquireShortTermInvestments
0
CY2019Q1 us-gaap Payments To Acquire Short Term Investments
PaymentsToAcquireShortTermInvestments
4999750
CY2019 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
268961
CY2018 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
1088328
CY2017 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
1691999
us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
421861
us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
887679
CY2018Q1 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
17621
CY2019Q4 us-gaap Other Assets Current
OtherAssetsCurrent
296994
CY2018Q2 us-gaap Other Assets Current
OtherAssetsCurrent
163016
CY2019Q1 us-gaap Other Assets Current
OtherAssetsCurrent
280406
CY2018Q3 us-gaap Other Assets Current
OtherAssetsCurrent
383336
CY2018Q1 us-gaap Other Assets Current
OtherAssetsCurrent
169562
CY2019Q4 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
344816
CY2018Q4 us-gaap Other Assets Current
OtherAssetsCurrent
331805
CY2018Q4 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
386107
CY2017Q4 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
379695
CY2018Q1 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
379292
CY2019Q1 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
379661
CY2018Q2 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
384744
CY2018Q3 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
387487
CY2019Q4 us-gaap Other Inventory In Transit
OtherInventoryInTransit
2749558
CY2017Q4 us-gaap Other Inventory In Transit
OtherInventoryInTransit
1348153
CY2018Q4 us-gaap Other Inventory In Transit
OtherInventoryInTransit
1119541
CY2019Q4 us-gaap Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
508907
CY2018Q4 us-gaap Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
555296
CY2017Q4 us-gaap Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
596770
CY2019Q1 us-gaap Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
555778
CY2018Q3 us-gaap Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
598188
CY2018Q1 us-gaap Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
597243
CY2018Q2 us-gaap Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
597716
CY2019 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
40225
CY2017 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
167112
CY2018 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
553573
CY2018Q2 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
131842
CY2019Q1 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
-109618
CY2018Q1 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
153378
us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
326066
CY2018Q3 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
40846
us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
285220
CY2019Q4 us-gaap Other Prepaid Expense Current
OtherPrepaidExpenseCurrent
1081859
CY2018Q4 us-gaap Other Prepaid Expense Current
OtherPrepaidExpenseCurrent
1283795
CY2017Q4 us-gaap Other Prepaid Expense Current
OtherPrepaidExpenseCurrent
1392278
CY2018Q2 us-gaap Other Prepaid Expense Current
OtherPrepaidExpenseCurrent
1439337
CY2018Q3 us-gaap Other Prepaid Expense Current
OtherPrepaidExpenseCurrent
1412506
CY2019Q1 us-gaap Other Prepaid Expense Current
OtherPrepaidExpenseCurrent
1592043
CY2018Q1 us-gaap Other Prepaid Expense Current
OtherPrepaidExpenseCurrent
1640598
CY2017 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
0
CY2018 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
1653266
CY2019 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
735199
us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
995238
CY2019Q1 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
714617
us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
995186
CY2018Q1 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
540940
CY2018 us-gaap Payments To Acquire Short Term Investments
PaymentsToAcquireShortTermInvestments
0
CY2019Q1 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
30900
CY2019Q1 us-gaap Stockholders Equity
StockholdersEquity
59230090
CY2017Q4 us-gaap Preferred Stock Value
PreferredStockValue
0
CY2019Q4 us-gaap Preferred Stock Value
PreferredStockValue
0
CY2018Q4 us-gaap Preferred Stock Value
PreferredStockValue
0
CY2018Q3 us-gaap Preferred Stock Value
PreferredStockValue
0
CY2018Q2 us-gaap Preferred Stock Value
PreferredStockValue
0
CY2019Q1 us-gaap Preferred Stock Value
PreferredStockValue
0
CY2018Q1 us-gaap Preferred Stock Value
PreferredStockValue
0
CY2017Q4 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
20000000
CY2018Q4 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
20000000
CY2019Q4 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
20000000
CY2018Q1 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
20000000
CY2019Q1 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
20000000
CY2018Q2 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
20000000
CY2018Q3 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
20000000
CY2017Q4 us-gaap Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
0.10
CY2019Q4 us-gaap Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
0.10
CY2018Q4 us-gaap Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
0.10
CY2019Q1 us-gaap Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
0.10
CY2018Q3 us-gaap Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
0.10
CY2018Q2 us-gaap Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
0.10
CY2018Q1 us-gaap Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
0.10
CY2017Q4 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2019Q4 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2018Q4 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2018Q1 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2019Q1 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2018Q2 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2018Q3 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2017Q4 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2019Q4 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2018Q4 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2018Q1 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2018Q3 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2019Q1 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2018Q2 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2018Q4 us-gaap Prepaid Taxes
PrepaidTaxes
419908
CY2017 us-gaap Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
0
CY2019Q1 us-gaap Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
8968018
us-gaap Proceeds From Issuance Of Long Term Debt
ProceedsFromIssuanceOfLongTermDebt
982939
CY2019Q4 us-gaap Prepaid Taxes
PrepaidTaxes
1628985
CY2017Q4 us-gaap Prepaid Taxes
PrepaidTaxes
0
CY2019Q1 us-gaap Prepaid Taxes
PrepaidTaxes
308458
CY2018Q2 us-gaap Prepaid Taxes
PrepaidTaxes
0
CY2018Q3 us-gaap Prepaid Taxes
PrepaidTaxes
65794
CY2017 us-gaap Proceeds From Issuance Of Long Term Debt
ProceedsFromIssuanceOfLongTermDebt
0
CY2019 us-gaap Proceeds From Issuance Of Long Term Debt
ProceedsFromIssuanceOfLongTermDebt
0
CY2018 us-gaap Proceeds From Issuance Of Long Term Debt
ProceedsFromIssuanceOfLongTermDebt
1596288
us-gaap Proceeds From Issuance Of Long Term Debt
ProceedsFromIssuanceOfLongTermDebt
982938
CY2018Q1 us-gaap Proceeds From Issuance Of Long Term Debt
ProceedsFromIssuanceOfLongTermDebt
540940
CY2019 us-gaap Proceeds From Sale Of Short Term Investments
ProceedsFromSaleOfShortTermInvestments
9095000
CY2017 us-gaap Proceeds From Sale Of Short Term Investments
ProceedsFromSaleOfShortTermInvestments
0
CY2018 us-gaap Proceeds From Sale Of Short Term Investments
ProceedsFromSaleOfShortTermInvestments
0
CY2018 us-gaap Proceeds From Sale Of Productive Assets
ProceedsFromSaleOfProductiveAssets
27939
CY2019 us-gaap Proceeds From Sale Of Productive Assets
ProceedsFromSaleOfProductiveAssets
112589
CY2017 us-gaap Proceeds From Sale Of Productive Assets
ProceedsFromSaleOfProductiveAssets
35963
CY2019Q1 us-gaap Proceeds From Sale Of Productive Assets
ProceedsFromSaleOfProductiveAssets
12552
us-gaap Proceeds From Sale Of Productive Assets
ProceedsFromSaleOfProductiveAssets
17718
us-gaap Proceeds From Sale Of Productive Assets
ProceedsFromSaleOfProductiveAssets
7028
CY2017 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
223404
CY2018 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
0
CY2019 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
0
CY2018Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
14515084
CY2019Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
12918900
CY2017Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
15566883
CY2018Q3 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
14989702
CY2019Q1 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
13960677
CY2018Q2 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
15015591
CY2018Q1 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
15259025
CY2017Q4 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
27332299
CY2018Q4 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
28140345
CY2019Q4 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
27470545
CY2018Q2 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
27585125
CY2018Q3 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
27983667
CY2018Q1 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
27436922
CY2019Q1 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
27902207
CY2019 us-gaap Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
18076962
CY2018 us-gaap Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
0
CY2019 us-gaap Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
8968018
CY2018Q1 us-gaap Stockholders Equity
StockholdersEquity
56841234
CY2017 us-gaap Tax Cuts And Jobs Act Of2017 Measurement Period Adjustment Income Tax Expense Benefit
TaxCutsAndJobsActOf2017MeasurementPeriodAdjustmentIncomeTaxExpenseBenefit
1300000
CY2017Q4 us-gaap Tax Cuts And Jobs Act Of2017 Transition Tax For Accumulated Foreign Earnings Income Tax Expense
TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsIncomeTaxExpense
603976
CY2017 us-gaap Repayments Of Long Term Capital Lease Obligations
RepaymentsOfLongTermCapitalLeaseObligations
72686
CY2018 us-gaap Repayments Of Long Term Capital Lease Obligations
RepaymentsOfLongTermCapitalLeaseObligations
0
CY2019 us-gaap Repayments Of Long Term Capital Lease Obligations
RepaymentsOfLongTermCapitalLeaseObligations
0
CY2017Q4 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
60078013
CY2019Q4 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
62210781
CY2018Q4 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
64476378
CY2018Q3 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
63361113
CY2018Q2 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
62752412
CY2019Q1 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
65634371
CY2018Q1 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
61594670
CY2019Q1 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
20941322
CY2019Q2 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
17196815
CY2018Q4 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
24637506
CY2018Q1 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
20500578
CY2019Q3 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
16310887
CY2018Q2 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
19187222
CY2018Q3 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
18878263
CY2019Q4 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
20469136
CY2017 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
82420595
CY2018 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
83203569
CY2019 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
74918160
us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
39687800
CY2018Q2 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
19187222
CY2018Q1 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
20500578
CY2019Q1 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
20941322
CY2018Q3 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
18878263
us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
58566063
CY2017 us-gaap Stock Issued During Period Value Restricted Stock Award Gross
StockIssuedDuringPeriodValueRestrictedStockAwardGross
0
CY2018Q4 us-gaap Stockholders Equity
StockholdersEquity
58286396
CY2019Q4 us-gaap Stockholders Equity
StockholdersEquity
56419427
CY2017Q4 us-gaap Stockholders Equity
StockholdersEquity
55895540
CY2016Q4 us-gaap Stockholders Equity
StockholdersEquity
52542666
CY2019 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Award Vesting Period1
ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
P6M
CY2019 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
0
CY2018 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
0
CY2015 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
0
CY2017 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
0
CY2016 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
0
CY2017 us-gaap Share Based Compensation
ShareBasedCompensation
239599
CY2018 us-gaap Share Based Compensation
ShareBasedCompensation
327629
CY2019 us-gaap Share Based Compensation
ShareBasedCompensation
770188
us-gaap Share Based Compensation
ShareBasedCompensation
52688
us-gaap Share Based Compensation
ShareBasedCompensation
76447
CY2018Q1 us-gaap Share Based Compensation
ShareBasedCompensation
28969
CY2019Q1 us-gaap Share Based Compensation
ShareBasedCompensation
185825
CY2016Q4 us-gaap Shares Outstanding
SharesOutstanding
9193162
CY2019Q4 us-gaap Shares Outstanding
SharesOutstanding
9022187
CY2018Q4 us-gaap Shares Outstanding
SharesOutstanding
9060561
CY2017Q4 us-gaap Shares Outstanding
SharesOutstanding
9270862
CY2019Q4 us-gaap Stock Repurchase Program Remaining Number Of Shares Authorized To Be Repurchased
StockRepurchaseProgramRemainingNumberOfSharesAuthorizedToBeRepurchased
996163
CY2016Q3 us-gaap Stock Repurchase Program Number Of Shares Authorized To Be Repurchased
StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased
2200000
CY2015Q3 us-gaap Stock Repurchase Program Number Of Shares Authorized To Be Repurchased
StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased
1200000
CY2019Q2 us-gaap Stock Repurchase Program Number Of Shares Authorized To Be Repurchased
StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased
1000000
CY2017 us-gaap Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
223404
CY2019 us-gaap Stock Issued During Period Value Restricted Stock Award Gross
StockIssuedDuringPeriodValueRestrictedStockAwardGross
0
CY2018 us-gaap Stock Issued During Period Value Restricted Stock Award Gross
StockIssuedDuringPeriodValueRestrictedStockAwardGross
0
CY2018Q2 us-gaap Stockholders Equity
StockholdersEquity
57283675
CY2018Q3 us-gaap Stockholders Equity
StockholdersEquity
58004707
CY2017Q4 us-gaap Tax Cuts And Jobs Act Of2017 Income Tax Expense Benefit
TaxCutsAndJobsActOf2017IncomeTaxExpenseBenefit
1296239
CY2018Q4 us-gaap Taxes Payable Current
TaxesPayableCurrent
0
CY2017Q4 us-gaap Taxes Payable Current
TaxesPayableCurrent
354629
CY2019Q4 us-gaap Taxes Payable Current
TaxesPayableCurrent
0
CY2018Q1 us-gaap Taxes Payable Current
TaxesPayableCurrent
491771
CY2018Q2 us-gaap Taxes Payable Current
TaxesPayableCurrent
153593
CY2017Q4 us-gaap Treasury Stock Value
TreasuryStockValue
7384517
CY2018Q4 us-gaap Treasury Stock Value
TreasuryStockValue
9037783
CY2019Q4 us-gaap Treasury Stock Value
TreasuryStockValue
9772982
CY2019Q1 us-gaap Treasury Stock Value
TreasuryStockValue
9752400
CY2018Q1 us-gaap Treasury Stock Value
TreasuryStockValue
7925457
CY2018Q2 us-gaap Treasury Stock Value
TreasuryStockValue
8379703
CY2018Q3 us-gaap Treasury Stock Value
TreasuryStockValue
8379755
CY2018 us-gaap Treasury Stock Shares Acquired
TreasuryStockSharesAcquired
243387
CY2019 us-gaap Treasury Stock Shares Acquired
TreasuryStockSharesAcquired
131782
CY2019 us-gaap Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
735199
CY2018 us-gaap Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
1653266
CY2017Q4 us-gaap Treasury Stock Shares
TreasuryStockShares
1049207
CY2019Q4 us-gaap Treasury Stock Shares
TreasuryStockShares
1424376
CY2018Q4 us-gaap Treasury Stock Shares
TreasuryStockShares
1292594
CY2019Q1 us-gaap Treasury Stock Shares
TreasuryStockShares
1420539
CY2018Q3 us-gaap Treasury Stock Shares
TreasuryStockShares
1182509
CY2018Q1 us-gaap Treasury Stock Shares
TreasuryStockShares
1121607
CY2018Q2 us-gaap Treasury Stock Shares
TreasuryStockShares
1182502
CY2019 us-gaap Treasury Stock Acquired Average Cost Per Share
TreasuryStockAcquiredAverageCostPerShare
5.58
CY2018 us-gaap Treasury Stock Acquired Average Cost Per Share
TreasuryStockAcquiredAverageCostPerShare
6.79
CY2017Q4 us-gaap Unrecognized Tax Benefits
UnrecognizedTaxBenefits
1197077
CY2016Q4 us-gaap Unrecognized Tax Benefits
UnrecognizedTaxBenefits
937705
CY2018Q4 us-gaap Unrecognized Tax Benefits
UnrecognizedTaxBenefits
1415714
CY2019Q4 us-gaap Unrecognized Tax Benefits
UnrecognizedTaxBenefits
296127
CY2017 us-gaap Unrecognized Tax Benefits Decreases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
0
CY2019 us-gaap Unrecognized Tax Benefits Decreases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
1145227
CY2018 us-gaap Unrecognized Tax Benefits Decreases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
102236
CY2017 us-gaap Unrecognized Tax Benefits Reductions Resulting From Lapse Of Applicable Statute Of Limitations
UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
0
CY2018 us-gaap Unrecognized Tax Benefits Reductions Resulting From Lapse Of Applicable Statute Of Limitations
UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
111300
CY2019 us-gaap Unrecognized Tax Benefits Reductions Resulting From Lapse Of Applicable Statute Of Limitations
UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
0
CY2017Q4 us-gaap Unrecognized Tax Benefits That Would Impact Effective Tax Rate
UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate
200000
CY2018Q4 us-gaap Unrecognized Tax Benefits That Would Impact Effective Tax Rate
UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate
100000
CY2019Q4 us-gaap Unrecognized Tax Benefits That Would Impact Effective Tax Rate
UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate
100000
CY2017 us-gaap Unrecognized Tax Benefits Increases Resulting From Current Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
213430
CY2018 us-gaap Unrecognized Tax Benefits Increases Resulting From Current Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
351304
CY2019 us-gaap Unrecognized Tax Benefits Increases Resulting From Current Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
0
CY2018 us-gaap Unrecognized Tax Benefits Interest On Income Taxes Expense
UnrecognizedTaxBenefitsInterestOnIncomeTaxesExpense
80868
CY2019 us-gaap Unrecognized Tax Benefits Interest On Income Taxes Expense
UnrecognizedTaxBenefitsInterestOnIncomeTaxesExpense
25640
CY2017 us-gaap Unrecognized Tax Benefits Interest On Income Taxes Expense
UnrecognizedTaxBenefitsInterestOnIncomeTaxesExpense
45942
CY2019 dei Entity Central Index Key
EntityCentralIndexKey
0000909724
CY2019 dei Current Fiscal Year End Date
CurrentFiscalYearEndDate
--12-31
CY2019 dei Entity Well Known Seasoned Issuer
EntityWellKnownSeasonedIssuer
No
CY2019 dei Entity Voluntary Filers
EntityVoluntaryFilers
No
CY2019 dei Entity Current Reporting Status
EntityCurrentReportingStatus
No
CY2019 dei Entity Shell Company
EntityShellCompany
false
CY2019 dei Entity Filer Category
EntityFilerCategory
Non-accelerated Filer
CY2019 us-gaap Use Of Estimates
UseOfEstimates
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><div style="text-align: justify; font-style: italic;">Management estimates and reporting</div><div><br /></div><div style="text-align: justify;">The preparation of the Company&#8217;s Consolidated Financial Statements in accordance with accounting principles generally accepted in the United States (&#8220;GAAP&#8221;) requires the use of estimates that affect the reported value of assets, liabilities, revenues and expenses.&#160; These estimates are based on historical experience and various other factors that are believed to be reasonable under the circumstances, the results of which form the basis for the Company&#8217;s conclusions.&#160; The Company continually evaluates the information used to make these estimates as the business and the economic environment changes.&#160; Actual results may differ from these estimates, and estimates are subject to change due to modifications in the underlying conditions or assumptions.&#160; The policies discussed below require estimates that contain a significant degree of judgement.&#160; The use of estimates is pervasive throughout the Consolidated Financial Statements, but the accounting policies and estimates considered most significant are as follows.</div></div>
CY2017 us-gaap Valuation Allowance Deferred Tax Asset Change In Amount
ValuationAllowanceDeferredTaxAssetChangeInAmount
100000
CY2019 us-gaap Valuation Allowance Deferred Tax Asset Change In Amount
ValuationAllowanceDeferredTaxAssetChangeInAmount
100000
CY2018 us-gaap Valuation Allowance Deferred Tax Asset Change In Amount
ValuationAllowanceDeferredTaxAssetChangeInAmount
100000
CY2019 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
8973246
CY2017 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
9245537
CY2018 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
9205008
us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
9223086
us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
9201577
CY2018Q3 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
9160022
CY2018Q1 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
9264604
CY2018Q2 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
9182527
CY2019Q1 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
9011107
CY2019Q4 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
9020187
CY2018Q4 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
9144020
CY2019Q2 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
8933648
CY2019Q3 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
8932246
CY2018 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
9185203
CY2019 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
8973246
CY2017 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
9242092
CY2018Q1 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
9264446
CY2019Q1 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
9009752
CY2018Q2 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
9180076
CY2018Q3 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
9154215
us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
9222028
us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
9199173
CY2019Q4 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
9020187
CY2019Q3 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
8932246
CY2019Q2 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
8933648
CY2018Q4 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
9143746
CY2019 dei Document Type
DocumentType
10-K
CY2019 dei Entity Interactive Data Current
EntityInteractiveDataCurrent
No
CY2019 dei Amendment Flag
AmendmentFlag
false
CY2019 dei Icfr Auditor Attestation Flag
IcfrAuditorAttestationFlag
false
CY2019 dei Document Fiscal Year Focus
DocumentFiscalYearFocus
2019
CY2019 dei Document Fiscal Period Focus
DocumentFiscalPeriodFocus
FY
CY2019 dei Document Period End Date
DocumentPeriodEndDate
2019-12-31
CY2019 dei Entity Registrant Name
EntityRegistrantName
TANDY LEATHER FACTORY INC
CY2018 tlf Number Of Underperforming Stores
NumberOfUnderperformingStores
4
CY2019 tlf Number Of Underperforming Stores
NumberOfUnderperformingStores
3
CY2019Q4 tlf Percentage Of Discount Rate On Long Lived Assets
PercentageOfDiscountRateOnLongLivedAssets
0.125
CY2019Q4 tlf Sales And Payroll Taxes Payable
SalesAndPayrollTaxesPayable
458882
CY2019 dei Entity Small Business
EntitySmallBusiness
true
CY2019 dei Entity Emerging Growth Company
EntityEmergingGrowthCompany
false
CY2019Q2 dei Entity Public Float
EntityPublicFloat
28164961
CY2019 dei Entity Address State Or Province
EntityAddressStateOrProvince
TX
CY2021Q2 dei Entity Common Stock Shares Outstanding
EntityCommonStockSharesOutstanding
8663921
CY2019 tlf Weighting Basis
WeightingBasis
0.5
CY2018Q4 tlf Sales And Payroll Taxes Payable
SalesAndPayrollTaxesPayable
572497
CY2017Q4 tlf Sales And Payroll Taxes Payable
SalesAndPayrollTaxesPayable
584726
CY2017Q4 tlf Accrued Business Exit Costs
AccruedBusinessExitCosts
0
CY2019Q4 tlf Accrued Business Exit Costs
AccruedBusinessExitCosts
0
CY2018 tlf Cumulative Effect Of Change In Accounting Principle
CumulativeEffectOfChangeInAccountingPrinciple
0
CY2019 tlf Cumulative Effect Of Change In Accounting Principle
CumulativeEffectOfChangeInAccountingPrinciple
-361816
CY2017 tlf Cumulative Effect Of Change In Accounting Principle
CumulativeEffectOfChangeInAccountingPrinciple
0
CY2019 tlf Increase Decrease In Operating Lease Liabilities
IncreaseDecreaseInOperatingLeaseLiabilities
-3388399
CY2018 tlf Increase Decrease In Operating Lease Liabilities
IncreaseDecreaseInOperatingLeaseLiabilities
0
CY2017 tlf Increase Decrease In Operating Lease Liabilities
IncreaseDecreaseInOperatingLeaseLiabilities
0
CY2019Q1 tlf Increase Decrease In Operating Lease Liabilities
IncreaseDecreaseInOperatingLeaseLiabilities
-833690
CY2017 tlf Right Of Use Asset Obtained In Exchange For Operating Lease Liability Net Cumulative Effect Adjustment
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiabilityNetCumulativeEffectAdjustment
0
CY2019 tlf Right Of Use Asset Obtained In Exchange For Operating Lease Liability Net Cumulative Effect Adjustment
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiabilityNetCumulativeEffectAdjustment
17328019
CY2018 tlf Right Of Use Asset Obtained In Exchange For Operating Lease Liability Net Cumulative Effect Adjustment
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiabilityNetCumulativeEffectAdjustment
0
CY2019Q4 tlf Uncertain Tax Positions Noncurrent
UncertainTaxPositionsNoncurrent
296127
CY2017Q4 tlf Uncertain Tax Positions Noncurrent
UncertainTaxPositionsNoncurrent
1197078
CY2018Q4 tlf Uncertain Tax Positions Noncurrent
UncertainTaxPositionsNoncurrent
1415715
CY2019Q1 tlf Uncertain Tax Positions Noncurrent
UncertainTaxPositionsNoncurrent
1415715
CY2018Q1 tlf Uncertain Tax Positions Noncurrent
UncertainTaxPositionsNoncurrent
1197078
CY2018Q3 tlf Uncertain Tax Positions Noncurrent
UncertainTaxPositionsNoncurrent
1197078
CY2018Q2 tlf Uncertain Tax Positions Noncurrent
UncertainTaxPositionsNoncurrent
1197078
CY2017Q4 tlf Unrecognized Tax Benefits That Would Impact Deferred Taxes
UnrecognizedTaxBenefitsThatWouldImpactDeferredTaxes
1000000
CY2019Q4 tlf Unrecognized Tax Benefits That Would Impact Deferred Taxes
UnrecognizedTaxBenefitsThatWouldImpactDeferredTaxes
200000
CY2018Q4 tlf Unrecognized Tax Benefits That Would Impact Deferred Taxes
UnrecognizedTaxBenefitsThatWouldImpactDeferredTaxes
1300000
CY2017Q4 tlf Accrued Vendor Payables Current
AccruedVendorPayablesCurrent
30497
CY2019Q4 tlf Accrued Vendor Payables Current
AccruedVendorPayablesCurrent
451439
CY2018Q4 tlf Accrued Vendor Payables Current
AccruedVendorPayablesCurrent
289656
CY2017Q4 tlf Expected Merchandise Returns
ExpectedMerchandiseReturns
348732
CY2019Q4 tlf Expected Merchandise Returns
ExpectedMerchandiseReturns
284734
CY2018Q4 tlf Expected Merchandise Returns
ExpectedMerchandiseReturns
416091
CY2018Q4 tlf Contract With Customer Accrued Liabilities For Unredeemed Gift Cards
ContractWithCustomerAccruedLiabilitiesForUnredeemedGiftCards
195901
CY2017Q4 tlf Contract With Customer Accrued Liabilities For Unredeemed Gift Cards
ContractWithCustomerAccruedLiabilitiesForUnredeemedGiftCards
271109
CY2019Q4 tlf Contract With Customer Accrued Liabilities For Unredeemed Gift Cards
ContractWithCustomerAccruedLiabilitiesForUnredeemedGiftCards
319124
CY2018Q4 tlf Accrued Business Exit Costs
AccruedBusinessExitCosts
150529
CY2017Q4 tlf Accrued Severance Costs
AccruedSeveranceCosts
0
CY2019Q4 tlf Accrued Severance Costs
AccruedSeveranceCosts
37782
CY2018Q4 tlf Accrued Severance Costs
AccruedSeveranceCosts
367387
CY2017Q1 tlf Number Of Stock Option Plans Expired
NumberOfStockOptionPlansExpired
1
CY2017Q4 tlf Deferred Tax Assets Accounts Receivable
DeferredTaxAssetsAccountsReceivable
3239
CY2018Q4 tlf Deferred Tax Assets Accounts Receivable
DeferredTaxAssetsAccountsReceivable
0
CY2019Q4 tlf Deferred Tax Assets Accounts Receivable
DeferredTaxAssetsAccountsReceivable
3977
CY2019Q4 tlf Deferred Tax Assets Change In Tax Method
DeferredTaxAssetsChangeInTaxMethod
0
CY2018Q4 tlf Deferred Tax Assets Change In Tax Method
DeferredTaxAssetsChangeInTaxMethod
375595
CY2017Q4 tlf Deferred Tax Assets Change In Tax Method
DeferredTaxAssetsChangeInTaxMethod
631015
CY2019 tlf Deferred Revenue Recognized Period
DeferredRevenueRecognizedPeriod
P1Y
CY2019 tlf Gift Card Redemption Period
GiftCardRedemptionPeriod
P1Y
CY2019Q4 tlf Inventory Merchandise Expected To Be Returned
InventoryMerchandiseExpectedToBeReturned
100000
CY2017Q4 tlf Inventory Merchandise Expected To Be Returned
InventoryMerchandiseExpectedToBeReturned
100000
CY2018Q4 tlf Inventory Merchandise Expected To Be Returned
InventoryMerchandiseExpectedToBeReturned
200000
CY2019 tlf Allowance For Uncollectible Accounts
AllowanceForUncollectibleAccounts
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><div style="text-align: justify; font-weight: bold;">4.&#160; ALLOWANCE FOR UNCOLLECTIBLE ACCOUNTS</div><div><br /></div><div style="text-align: justify;">Our receivables primarily arise from the sale of merchandise to customers that have applied for and been granted credit.&#160; Accounts receivable are stated at amounts due, net of an allowance for doubtful accounts.&#160; Accounts receivable are generally due within 30 days of invoicing.&#160; We maintain allowances for bad debts based on factors such as the composition of accounts receivable, the age of the accounts, historical bad debt experience, and our evaluation of the financial condition and past collection history of each customer.&#160; Write-offs have historically not been material, but receivables are evaluated for write off as they are deemed uncollectible based on a periodic review of accounts.</div></div>
CY2017Q4 tlf Tax Cuts And Jobs Act Transition Tax For Accumulated Foreign Earnings Foreign Withholding Taxes
TaxCutsAndJobsActTransitionTaxForAccumulatedForeignEarningsForeignWithholdingTaxes
290128
CY2019 tlf Number Of Websites
NumberOfWebsites
4
CY2017Q4 tlf Reclassification Of Liabilities
ReclassificationOfLiabilities
1100000
CY2018Q4 tlf Reclassification Of Liabilities
ReclassificationOfLiabilities
800000
CY2019Q4 tlf Lessee Operating Lease Lease Not Yet Commenced Minimum To Be Paid
LesseeOperatingLeaseLeaseNotYetCommencedMinimumToBePaid
300000
CY2019 tlf Lessee Operating Lease Assets And Liabilities
LesseeOperatingLeaseAssetsAndLiabilities
<div style="font-family: 'Times New Roman'; font-size: 10pt;"><div style="text-align: justify;">Additional information regarding the Company&#8217;s operating leases is as follows:</div><div><br /></div><table cellpadding="0" cellspacing="0" style="width: 100%; text-align: left; color: rgb(0, 0, 0); font-family: Arial; font-size: 9pt;"><tr><td nowrap="nowrap" valign="bottom" style="width: 44%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"><div style="color: rgb(0, 0, 0); font-weight: bold;">Leases</div></td><td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td><td nowrap="nowrap" valign="bottom" style="width: 44%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"><div style="color: rgb(0, 0, 0); font-weight: bold;">Balance Sheet Classification</div></td><td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td><td colspan="2" nowrap="nowrap" valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0);"><div style="text-align: center; color: rgb(0, 0, 0); font-weight: bold;">December 31, 2019</div></td><td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td></tr><tr><td valign="bottom" style="width: 44%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;"><div style="color: rgb(0, 0, 0); font-weight: bold;">Assets:</div></td><td colspan="1" valign="bottom" style="width: 1%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td><td valign="bottom" style="width: 44%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td><td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td><td colspan="2" nowrap="nowrap" valign="bottom" style="font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td><td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td></tr><tr><td valign="bottom" style="width: 44%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; background-color: rgb(204, 238, 255);"><div style="color: rgb(0, 0, 0);">Non-current</div></td><td colspan="1" valign="bottom" style="width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td><td valign="bottom" style="width: 44%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; background-color: rgb(204, 238, 255);"><div style="color: rgb(0, 0, 0);">Operating lease assets</div></td><td colspan="1" valign="bottom" style="width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td><td colspan="1" valign="bottom" style="width: 1%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"><div>$</div></td><td colspan="1" valign="bottom" style="width: 9%; text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; border-bottom: 4px double rgb(0, 0, 0); background-color: rgb(204, 238, 255);"><div>13,897,422</div></td><td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td></tr><tr><td valign="bottom" style="width: 44%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td><td colspan="1" valign="bottom" style="width: 1%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td><td valign="bottom" style="width: 44%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td><td colspan="1" valign="bottom" style="width: 1%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td><td colspan="1" valign="bottom" style="width: 1%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td><td colspan="1" valign="bottom" style="width: 9%; text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td><td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td></tr><tr><td valign="bottom" style="width: 44%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; background-color: rgb(204, 238, 255);"><div style="color: rgb(0, 0, 0); font-weight: bold;">Liabilities:</div></td><td colspan="1" valign="bottom" style="width: 1%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td><td valign="bottom" style="width: 44%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td><td colspan="1" valign="bottom" style="width: 1%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td><td colspan="1" valign="bottom" style="width: 1%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td><td colspan="1" valign="bottom" style="width: 9%; text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td><td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td></tr><tr><td valign="bottom" style="width: 44%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;"><div style="color: rgb(0, 0, 0);">Current</div></td><td colspan="1" valign="bottom" style="width: 1%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td><td valign="bottom" style="width: 44%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;"><div style="color: rgb(0, 0, 0);">Operating lease liabilities</div></td><td colspan="1" valign="bottom" style="width: 1%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td><td colspan="1" valign="bottom" style="width: 1%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;"><div>$</div></td><td colspan="1" valign="bottom" style="width: 9%; text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;"><div>3,822,748</div></td><td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td></tr><tr><td valign="bottom" style="width: 44%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; background-color: rgb(204, 238, 255);"><div style="color: rgb(0, 0, 0);">Non-current</div></td><td colspan="1" valign="bottom" style="width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td><td valign="bottom" style="width: 44%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; background-color: rgb(204, 238, 255);"><div style="color: rgb(0, 0, 0);">Operating lease liabilities, noncurrent</div></td><td colspan="1" valign="bottom" style="width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td><td colspan="1" valign="bottom" style="width: 1%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);">&#160;</td><td colspan="1" valign="bottom" style="width: 9%; text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; border-bottom: 2px solid rgb(0, 0, 0); background-color: rgb(204, 238, 255);"><div>10,654,631</div></td><td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; padding-bottom: 2px; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; background-color: rgb(204, 238, 255);">&#160;</td></tr><tr><td valign="bottom" style="width: 44%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;"><div style="color: rgb(0, 0, 0); font-weight: bold; margin-left: 9pt;">Total lease liabilities</div></td><td colspan="1" valign="bottom" style="width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td><td valign="bottom" style="width: 44%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td><td colspan="1" valign="bottom" style="width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td><td colspan="1" valign="bottom" style="width: 1%; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; border-bottom: 4px double rgb(0, 0, 0);"><div style="font-weight: bold;">$</div></td><td colspan="1" valign="bottom" style="width: 9%; text-align: right; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom; border-bottom: 4px double rgb(0, 0, 0);"><div style="font-weight: bold;">14,477,379</div></td><td colspan="1" nowrap="nowrap" valign="bottom" style="width: 1%; padding-bottom: 4px; font-family: 'Times New Roman'; font-size: 10pt; vertical-align: bottom;">&#160;</td></tr></table></div>
CY2019 tlf Number Of Major Suppliers
NumberOfMajorSuppliers
1
CY2019 tlf Effective Income Tax Rate Reconciliation Rate Difference On Unrecognized Tax Benefits Reversals Percent
EffectiveIncomeTaxRateReconciliationRateDifferenceOnUnrecognizedTaxBenefitsReversalsPercent
0.13
CY2017 tlf Effective Income Tax Rate Reconciliation Rate Difference On Unrecognized Tax Benefits Reversals Percent
EffectiveIncomeTaxRateReconciliationRateDifferenceOnUnrecognizedTaxBenefitsReversalsPercent
0
CY2018 tlf Effective Income Tax Rate Reconciliation Rate Difference On Unrecognized Tax Benefits Reversals Percent
EffectiveIncomeTaxRateReconciliationRateDifferenceOnUnrecognizedTaxBenefitsReversalsPercent
0

Files In Submission

Name View Source Status
0001140361-21-021895-index-headers.html Edgar Link pending
0001140361-21-021895-index.html Edgar Link pending
0001140361-21-021895.txt Edgar Link pending
0001140361-21-021895-xbrl.zip Edgar Link pending
brhc10025894_10k.htm Edgar Link pending
brhc10025894_ex21-1.htm Edgar Link pending
brhc10025894_ex23-1.htm Edgar Link pending
brhc10025894_ex31-1.htm Edgar Link pending
brhc10025894_ex31-2.htm Edgar Link pending
brhc10025894_ex32-1.htm Edgar Link pending
FilingSummary.xml Edgar Link unprocessable
Financial_Report.xlsx Edgar Link pending
image0.jpg Edgar Link pending
R1.htm Edgar Link pending
R10.htm Edgar Link pending
R11.htm Edgar Link pending
R12.htm Edgar Link pending
R13.htm Edgar Link pending
R14.htm Edgar Link pending
R15.htm Edgar Link pending
R16.htm Edgar Link pending
R17.htm Edgar Link pending
R18.htm Edgar Link pending
R19.htm Edgar Link pending
R2.htm Edgar Link pending
R20.htm Edgar Link pending
R21.htm Edgar Link pending
R22.htm Edgar Link pending
R23.htm Edgar Link pending
R24.htm Edgar Link pending
R25.htm Edgar Link pending
R26.htm Edgar Link pending
R27.htm Edgar Link pending
R28.htm Edgar Link pending
R29.htm Edgar Link pending
R3.htm Edgar Link pending
R30.htm Edgar Link pending
R31.htm Edgar Link pending
R32.htm Edgar Link pending
R33.htm Edgar Link pending
R34.htm Edgar Link pending
R35.htm Edgar Link pending
R36.htm Edgar Link pending
R37.htm Edgar Link pending
R38.htm Edgar Link pending
R39.htm Edgar Link pending
R4.htm Edgar Link pending
R40.htm Edgar Link pending
R41.htm Edgar Link pending
R42.htm Edgar Link pending
R43.htm Edgar Link pending
R44.htm Edgar Link pending
R45.htm Edgar Link pending
R46.htm Edgar Link pending
R47.htm Edgar Link pending
R48.htm Edgar Link pending
R49.htm Edgar Link pending
R5.htm Edgar Link pending
R50.htm Edgar Link pending
R51.htm Edgar Link pending
R52.htm Edgar Link pending
R53.htm Edgar Link pending
R54.htm Edgar Link pending
R55.htm Edgar Link pending
R56.htm Edgar Link pending
R57.htm Edgar Link pending
R58.htm Edgar Link pending
R59.htm Edgar Link pending
R6.htm Edgar Link pending
R60.htm Edgar Link pending
R61.htm Edgar Link pending
R62.htm Edgar Link pending
R63.htm Edgar Link pending
R64.htm Edgar Link pending
R65.htm Edgar Link pending
R66.htm Edgar Link pending
R67.htm Edgar Link pending
R68.htm Edgar Link pending
R69.htm Edgar Link pending
R7.htm Edgar Link pending
R70.htm Edgar Link pending
R71.htm Edgar Link pending
R72.htm Edgar Link pending
R73.htm Edgar Link pending
R8.htm Edgar Link pending
R9.htm Edgar Link pending
report.css Edgar Link pending
Show.js Edgar Link pending
tlf-20191231.xml Edgar Link completed
tlf-20191231.xsd Edgar Link pending
tlf-20191231_cal.xml Edgar Link unprocessable
tlf-20191231_def.xml Edgar Link unprocessable
tlf-20191231_lab.xml Edgar Link unprocessable
tlf-20191231_pre.xml Edgar Link unprocessable