2020 Q4 Form 10-K Financial Statement
#000155837021001985 Filed on February 26, 2021
Income Statement
Concept | 2020 Q4 | 2020 | 2019 Q4 |
---|---|---|---|
Revenue | $264.9M | $934.8M | $170.6M |
YoY Change | 55.25% | 30.99% | 17.0% |
Cost Of Revenue | $65.70M | $237.0M | $42.60M |
YoY Change | 54.23% | 34.05% | 15.76% |
Gross Profit | $199.2M | $697.8M | $128.1M |
YoY Change | 55.57% | 29.98% | 17.4% |
Gross Profit Margin | 75.21% | 74.65% | 75.06% |
Selling, General & Admin | $160.4M | $563.7M | $108.5M |
YoY Change | 47.83% | 26.43% | 21.5% |
% of Gross Profit | 80.51% | 80.77% | 84.72% |
Research & Development | $900.0K | $2.800M | $900.0K |
YoY Change | 0.0% | 3.7% | |
% of Gross Profit | 0.45% | 0.4% | 0.7% |
Depreciation & Amortization | $2.000M | $4.316M | $1.200M |
YoY Change | 66.67% | -6.66% | 33.33% |
% of Gross Profit | 1.0% | 0.62% | 0.94% |
Operating Expenses | $161.2M | $566.5M | $109.3M |
YoY Change | 47.48% | 26.29% | 22.53% |
Operating Profit | $38.04M | $134.2M | $18.77M |
YoY Change | 102.68% | 47.36% | -5.65% |
Interest Expense | $0.00 | $246.0K | $200.0K |
YoY Change | -100.0% | -81.0% | -50.0% |
% of Operating Profit | 0.0% | 0.18% | 1.07% |
Other Income/Expense, Net | -$200.0K | $106.0K | $0.00 |
YoY Change | -91.99% | ||
Pretax Income | $37.85M | $134.3M | $18.98M |
YoY Change | 99.41% | 45.37% | -5.89% |
Income Tax | $9.900M | $31.41M | -$900.0K |
% Of Pretax Income | 26.16% | 23.39% | -4.74% |
Net Earnings | $27.99M | $102.9M | $19.88M |
YoY Change | 40.81% | 32.01% | 27.01% |
Net Earnings / Revenue | 10.57% | 11.0% | 11.65% |
Basic Earnings Per Share | $2.38 | $8.74 | $1.71 |
Diluted Earnings Per Share | $2.36 | $8.68 | $1.66 |
COMMON SHARES | |||
Basic Shares Outstanding | 11.77M | 11.77M shares | 11.62M |
Diluted Shares Outstanding | 11.85M shares |
Balance Sheet
Concept | 2020 Q4 | 2020 | 2019 Q4 |
---|---|---|---|
SHORT-TERM ASSETS | |||
Cash & Short-Term Investments | $338.2M | $174.5M | $169.7M |
YoY Change | 99.35% | 88.24% | -6.99% |
Cash & Equivalents | $163.7M | $163.7M | $76.97M |
Short-Term Investments | $174.5M | $10.80M | $92.68M |
Other Short-Term Assets | $5.900M | $5.900M | $6.100M |
YoY Change | -3.28% | -3.28% | 32.61% |
Inventory | $53.39M | $53.40M | $48.77M |
Prepaid Expenses | |||
Receivables | $584.0K | $600.0K | $1.437M |
Other Receivables | $0.00 | $0.00 | $5.200M |
Total Short-Term Assets | $234.3M | $234.3M | $154.2M |
YoY Change | 52.0% | 51.95% | 5.93% |
LONG-TERM ASSETS | |||
Property, Plant & Equipment | $27.63M | $38.10M | $26.04M |
YoY Change | 6.12% | -1.8% | 31.86% |
Goodwill | |||
YoY Change | |||
Intangibles | |||
YoY Change | |||
Long-Term Investments | |||
YoY Change | |||
Other Assets | $2.937M | $3.600M | $353.0K |
YoY Change | 732.01% | 111.76% | -70.16% |
Total Long-Term Assets | $41.77M | $41.80M | $40.50M |
YoY Change | 3.13% | 3.21% | 69.39% |
TOTAL ASSETS | |||
Total Short-Term Assets | $234.3M | $234.3M | $154.2M |
Total Long-Term Assets | $41.77M | $41.80M | $40.50M |
Total Assets | $276.1M | $276.1M | $194.7M |
YoY Change | 41.83% | 41.81% | 14.89% |
SHORT-TERM LIABILITIES | |||
YoY Change | |||
Accounts Payable | $107.7M | $35.80M | $76.20M |
YoY Change | 41.34% | 58.41% | 26.37% |
Accrued Expenses | $3.700M | $54.10M | $3.200M |
YoY Change | 15.63% | 39.79% | |
Deferred Revenue | $7.606M | $4.333M | |
YoY Change | 75.54% | 54.92% | |
Short-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Long-Term Debt Due | |||
YoY Change | |||
Total Short-Term Liabilities | $111.4M | $111.4M | $79.39M |
YoY Change | 40.26% | 40.3% | 31.6% |
LONG-TERM LIABILITIES | |||
Long-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Other Long-Term Liabilities | $7.500M | $7.500M | $10.40M |
YoY Change | -27.88% | -27.88% | |
Total Long-Term Liabilities | $7.500M | $7.500M | $10.40M |
YoY Change | -27.88% | -27.88% | |
TOTAL LIABILITIES | |||
Total Short-Term Liabilities | $111.4M | $111.4M | $79.39M |
Total Long-Term Liabilities | $7.500M | $7.500M | $10.40M |
Total Liabilities | $118.8M | $118.8M | $89.82M |
YoY Change | 32.31% | 32.29% | 48.9% |
SHAREHOLDERS EQUITY | |||
Retained Earnings | $154.4M | $168.8M | |
YoY Change | -8.55% | 28.51% | |
Common Stock | $12.00K | $12.00K | |
YoY Change | 0.0% | 0.0% | |
Preferred Stock | |||
YoY Change | |||
Treasury Stock (at cost) | |||
YoY Change | |||
Treasury Stock Shares | |||
Shareholders Equity | $157.2M | $157.2M | $104.8M |
YoY Change | |||
Total Liabilities & Shareholders Equity | $276.1M | $276.1M | $194.7M |
YoY Change | 41.83% | 41.81% | 14.89% |
Cashflow Statement
Concept | 2020 Q4 | 2020 | 2019 Q4 |
---|---|---|---|
OPERATING ACTIVITIES | |||
Net Income | $27.99M | $102.9M | $19.88M |
YoY Change | 40.81% | 32.01% | 27.01% |
Depreciation, Depletion And Amortization | $2.000M | $4.316M | $1.200M |
YoY Change | 66.67% | -6.66% | 33.33% |
Cash From Operating Activities | $19.80M | $145.2M | $19.20M |
YoY Change | 3.12% | 72.32% | 25.49% |
INVESTING ACTIVITIES | |||
Capital Expenditures | -$2.000M | $5.887M | -$900.0K |
YoY Change | 122.22% | -41.47% | -47.06% |
Acquisitions | |||
YoY Change | |||
Other Investing Activities | $2.600M | $4.600M | $0.00 |
YoY Change | 24.32% | -100.0% | |
Cash From Investing Activities | $600.0K | -$1.282M | -$800.0K |
YoY Change | -175.0% | -79.74% | 100.0% |
FINANCING ACTIVITIES | |||
Cash Dividend Paid | $53.19M | ||
YoY Change | 50.27% | ||
Common Stock Issuance & Retirement, Net | $5.000M | ||
YoY Change | -84.9% | ||
Debt Paid & Issued, Net | |||
YoY Change | |||
Cash From Financing Activities | -13.10M | -$57.14M | -22.50M |
YoY Change | -41.78% | -30.59% | 41.51% |
NET CHANGE | |||
Cash From Operating Activities | 19.80M | $145.2M | 19.20M |
Cash From Investing Activities | 600.0K | -$1.282M | -800.0K |
Cash From Financing Activities | -13.10M | -$57.14M | -22.50M |
Net Change In Cash | 7.300M | $86.75M | -4.100M |
YoY Change | -278.05% | -2076.06% | 310.0% |
FREE CASH FLOW | |||
Cash From Operating Activities | $19.80M | $145.2M | $19.20M |
Capital Expenditures | -$2.000M | $5.887M | -$900.0K |
Free Cash Flow | $21.80M | $139.3M | $20.10M |
YoY Change | 8.46% | 87.74% | 18.24% |
Facts In Submission
Frame | Concept Type | Concept / XBRL Key | Value | Unit |
---|---|---|---|---|
CY2018 | us-gaap |
Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
|
196000 | |
CY2020 | dei |
Local Phone Number
LocalPhoneNumber
|
581-8042 | |
CY2020 | dei |
Security12b Title
Security12bTitle
|
Common Stock, $0.001 par value per share | |
CY2018 | us-gaap |
Cost Of Revenue
CostOfRevenue
|
121104000 | |
CY2020 | dei |
Document Fiscal Year Focus
DocumentFiscalYearFocus
|
2020 | |
CY2020 | dei |
Entity Central Index Key
EntityCentralIndexKey
|
0000910329 | |
CY2020 | dei |
Current Fiscal Year End Date
CurrentFiscalYearEndDate
|
--12-31 | |
CY2020 | dei |
Document Fiscal Period Focus
DocumentFiscalPeriodFocus
|
FY | |
CY2020 | dei |
Amendment Flag
AmendmentFlag
|
false | |
CY2020 | us-gaap |
Lessee Operating Lease Existence Of Option To Extend
LesseeOperatingLeaseExistenceOfOptionToExtend
|
true | |
CY2020 | dei |
Entity Filer Category
EntityFilerCategory
|
Large Accelerated Filer | |
CY2020 | dei |
Document Type
DocumentType
|
10-K | |
CY2020 | dei |
Document Annual Report
DocumentAnnualReport
|
true | |
CY2020 | dei |
Document Period End Date
DocumentPeriodEndDate
|
2020-12-31 | |
CY2020 | dei |
Document Transition Report
DocumentTransitionReport
|
false | |
CY2020 | dei |
Entity File Number
EntityFileNumber
|
001-31573 | |
CY2020 | dei |
Entity Registrant Name
EntityRegistrantName
|
Medifast, Inc. | |
CY2020 | dei |
Entity Incorporation State Country Code
EntityIncorporationStateCountryCode
|
DE | |
CY2020 | dei |
Entity Tax Identification Number
EntityTaxIdentificationNumber
|
13-3714405 | |
CY2020 | dei |
Entity Address Address Line1
EntityAddressAddressLine1
|
100 International Drive | |
CY2020 | dei |
Entity Address City Or Town
EntityAddressCityOrTown
|
Baltimore | |
CY2020 | dei |
Entity Address State Or Province
EntityAddressStateOrProvince
|
MD | |
CY2020 | dei |
Entity Address Postal Zip Code
EntityAddressPostalZipCode
|
21202 | |
CY2020 | dei |
City Area Code
CityAreaCode
|
410 | |
CY2020 | dei |
Trading Symbol
TradingSymbol
|
MED | |
CY2020 | dei |
Security Exchange Name
SecurityExchangeName
|
NYSE | |
CY2020 | dei |
Entity Well Known Seasoned Issuer
EntityWellKnownSeasonedIssuer
|
Yes | |
CY2020 | dei |
Entity Voluntary Filers
EntityVoluntaryFilers
|
No | |
CY2020 | dei |
Entity Current Reporting Status
EntityCurrentReportingStatus
|
Yes | |
CY2020 | dei |
Entity Interactive Data Current
EntityInteractiveDataCurrent
|
Yes | |
CY2020 | dei |
Entity Small Business
EntitySmallBusiness
|
false | |
CY2020 | dei |
Entity Small Business
EntitySmallBusiness
|
false | |
CY2020 | dei |
Entity Emerging Growth Company
EntityEmergingGrowthCompany
|
false | |
CY2020 | dei |
Icfr Auditor Attestation Flag
IcfrAuditorAttestationFlag
|
true | |
CY2020 | dei |
Entity Shell Company
EntityShellCompany
|
false | |
CY2020Q2 | dei |
Entity Public Float
EntityPublicFloat
|
1500000000 | |
CY2021Q1 | dei |
Entity Common Stock Shares Outstanding
EntityCommonStockSharesOutstanding
|
11774446 | |
CY2020 | us-gaap |
Revenues
Revenues
|
934842000 | |
CY2019 | us-gaap |
Revenues
Revenues
|
713672000 | |
CY2018 | us-gaap |
Revenues
Revenues
|
501003000 | |
CY2020 | us-gaap |
Cost Of Revenue
CostOfRevenue
|
237027000 | |
CY2019 | us-gaap |
Cost Of Revenue
CostOfRevenue
|
176814000 | |
CY2020 | us-gaap |
Gross Profit
GrossProfit
|
697815000 | |
CY2019 | us-gaap |
Gross Profit
GrossProfit
|
536858000 | |
CY2018 | us-gaap |
Gross Profit
GrossProfit
|
379899000 | |
CY2020 | us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
563656000 | |
CY2019 | us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
445819000 | |
CY2018 | us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
310836000 | |
CY2020 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
134159000 | |
CY2019 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
91039000 | |
CY2018 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
69063000 | |
CY2020 | us-gaap |
Interest Income Expense Nonoperating Net
InterestIncomeExpenseNonoperatingNet
|
246000 | |
CY2019 | us-gaap |
Interest Income Expense Nonoperating Net
InterestIncomeExpenseNonoperatingNet
|
1295000 | |
CY2018 | us-gaap |
Interest Income Expense Nonoperating Net
InterestIncomeExpenseNonoperatingNet
|
1306000 | |
CY2020 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
-140000 | |
CY2019 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
29000 | |
CY2018 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
179000 | |
CY2020 | us-gaap |
Nonoperating Income Expense
NonoperatingIncomeExpense
|
106000 | |
CY2019 | us-gaap |
Nonoperating Income Expense
NonoperatingIncomeExpense
|
1324000 | |
CY2018 | us-gaap |
Nonoperating Income Expense
NonoperatingIncomeExpense
|
1485000 | |
CY2020 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
134265000 | |
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
92363000 | |
CY2018 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
70548000 | |
CY2020 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
31406000 | |
CY2019 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
14447000 | |
CY2018 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
14759000 | |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
102859000 | |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
77916000 | |
CY2018 | us-gaap |
Net Income Loss
NetIncomeLoss
|
55789000 | |
CY2020 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
8.74 | |
CY2019 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
6.62 | |
CY2018 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
4.67 | |
CY2020 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
8.68 | |
CY2019 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
6.43 | |
CY2018 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
4.62 | |
CY2020 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
11771000 | |
CY2019 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
11771000 | |
CY2018 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
11947000 | |
CY2020 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
11850000 | |
CY2019 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
12117000 | |
CY2018 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
12079000 | |
CY2020 | us-gaap |
Common Stock Dividends Per Share Declared
CommonStockDividendsPerShareDeclared
|
4.52 | |
CY2019 | us-gaap |
Common Stock Dividends Per Share Declared
CommonStockDividendsPerShareDeclared
|
3.38 | |
CY2018 | us-gaap |
Common Stock Dividends Per Share Declared
CommonStockDividendsPerShareDeclared
|
2.19 | |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
102859000 | |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
77916000 | |
CY2018 | us-gaap |
Net Income Loss
NetIncomeLoss
|
55789000 | |
CY2020 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
|
-21000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
|
1000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
|
-2000 | |
CY2020 | us-gaap |
Other Comprehensive Income Loss Available For Sale Securities Adjustment Net Of Tax
OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
|
37000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Available For Sale Securities Adjustment Net Of Tax
OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
|
197000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Available For Sale Securities Adjustment Net Of Tax
OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
|
-11000 | |
CY2020 | us-gaap |
Other Comprehensive Income Loss Net Of Tax
OtherComprehensiveIncomeLossNetOfTax
|
16000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Net Of Tax
OtherComprehensiveIncomeLossNetOfTax
|
198000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Net Of Tax
OtherComprehensiveIncomeLossNetOfTax
|
-13000 | |
CY2020 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
102875000 | |
CY2019 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
78114000 | |
CY2018 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
55776000 | |
CY2020Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
163723000 | |
CY2019Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
76974000 | |
CY2020Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
219000 | |
CY2019Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
235000 | |
CY2020Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
584000 | |
CY2019Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
1437000 | |
CY2020Q4 | us-gaap |
Inventory Net
InventoryNet
|
53392000 | |
CY2019Q4 | us-gaap |
Inventory Net
InventoryNet
|
48771000 | |
CY2020Q4 | us-gaap |
Short Term Investments
ShortTermInvestments
|
10752000 | |
CY2019Q4 | us-gaap |
Short Term Investments
ShortTermInvestments
|
15704000 | |
CY2019Q4 | us-gaap |
Prepaid Taxes
PrepaidTaxes
|
5169000 | |
CY2020Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
5863000 | |
CY2019Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
6096000 | |
CY2020Q4 | us-gaap |
Assets Current
AssetsCurrent
|
234314000 | |
CY2019Q4 | us-gaap |
Assets Current
AssetsCurrent
|
154151000 | |
CY2020Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
27633000 | |
CY2019Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
26039000 | |
CY2020Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
10508000 | |
CY2019Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
12803000 | |
CY2020Q4 | us-gaap |
Other Assets Noncurrent
OtherAssetsNoncurrent
|
2937000 | |
CY2019Q4 | us-gaap |
Other Assets Noncurrent
OtherAssetsNoncurrent
|
353000 | |
CY2020Q4 | us-gaap |
Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
|
692000 | |
CY2019Q4 | us-gaap |
Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
|
1307000 | |
CY2020Q4 | us-gaap |
Assets
Assets
|
276084000 | |
CY2019Q4 | us-gaap |
Assets
Assets
|
194653000 | |
CY2020Q4 | us-gaap |
Accounts Payable And Accrued Liabilities Current
AccountsPayableAndAccruedLiabilitiesCurrent
|
107677000 | |
CY2019Q4 | us-gaap |
Accounts Payable And Accrued Liabilities Current
AccountsPayableAndAccruedLiabilitiesCurrent
|
76220000 | |
CY2020Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
3673000 | |
CY2019Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
3168000 | |
CY2020Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
111350000 | |
CY2019Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
79388000 | |
CY2020Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
7488000 | |
CY2019Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
10433000 | |
CY2020Q4 | us-gaap |
Liabilities
Liabilities
|
118838000 | |
CY2019Q4 | us-gaap |
Liabilities
Liabilities
|
89821000 | |
CY2019Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.001 | |
CY2020Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.001 | |
CY2019Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
20000000 | |
CY2020Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
20000000 | |
CY2020Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
11822000 | |
CY2019Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
12272000 | |
CY2020Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
11772000 | |
CY2019Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
11764000 | |
CY2020Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
12000 | |
CY2019Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
12000 | |
CY2020Q4 | us-gaap |
Additional Paid In Capital
AdditionalPaidInCapital
|
7842000 | |
CY2020Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
41000 | |
CY2019Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
25000 | |
CY2020Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
154351000 | |
CY2019 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
1510000 | |
CY2020 | us-gaap |
Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
|
-212000 | |
CY2019 | us-gaap |
Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
|
-17000 | |
CY2018 | us-gaap |
Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
|
-48000 | |
CY2020 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
556000 | |
CY2018 | us-gaap |
Increase Decrease In Prepaid Taxes
IncreaseDecreaseInPrepaidTaxes
|
-2272000 | |
CY2020 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
-233000 | |
CY2019Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
168788000 | |
CY2020Q4 | us-gaap |
Treasury Stock Common Shares
TreasuryStockCommonShares
|
46000 | |
CY2019Q4 | us-gaap |
Treasury Stock Common Shares
TreasuryStockCommonShares
|
489000 | |
CY2020Q4 | us-gaap |
Treasury Stock Common Value
TreasuryStockCommonValue
|
5000000 | |
CY2019Q4 | us-gaap |
Treasury Stock Common Value
TreasuryStockCommonValue
|
63993000 | |
CY2020Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
157246000 | |
CY2019Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
104832000 | |
CY2020Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
276084000 | |
CY2019Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
194653000 | |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
102859000 | |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
77916000 | |
CY2018 | us-gaap |
Net Income Loss
NetIncomeLoss
|
55789000 | |
CY2020 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
7270000 | |
CY2019 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
7248000 | |
CY2018 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
4435000 | |
CY2020 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
6796000 | |
CY2019 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
4520000 | |
CY2018 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
3124000 | |
CY2019 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
3638000 | |
CY2018 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
1058000 | |
CY2020 | us-gaap |
Other Amortization Of Deferred Charges
OtherAmortizationOfDeferredCharges
|
320000 | |
CY2019 | us-gaap |
Other Amortization Of Deferred Charges
OtherAmortizationOfDeferredCharges
|
454000 | |
CY2018 | us-gaap |
Other Amortization Of Deferred Charges
OtherAmortizationOfDeferredCharges
|
571000 | |
CY2020 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
601000 | |
CY2019 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
1598000 | |
CY2018 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
-2687000 | |
CY2020 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
-297000 | |
CY2019 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
4064000 | |
CY2018 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
936000 | |
CY2020 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
4621000 | |
CY2019 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
9883000 | |
CY2018 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
18658000 | |
CY2020 | us-gaap |
Increase Decrease In Prepaid Taxes
IncreaseDecreaseInPrepaidTaxes
|
-5169000 | |
CY2019 | us-gaap |
Increase Decrease In Prepaid Taxes
IncreaseDecreaseInPrepaidTaxes
|
5169000 | |
CY2018 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
282000 | |
CY2020 | us-gaap |
Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
|
2506000 | |
CY2019 | us-gaap |
Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
|
2615000 | |
CY2018 | us-gaap |
Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
|
-65000 | |
CY2020 | us-gaap |
Increase Decrease In Accounts Payable And Accrued Liabilities
IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
|
28010000 | |
CY2019 | us-gaap |
Increase Decrease In Accounts Payable And Accrued Liabilities
IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
|
12111000 | |
CY2018 | us-gaap |
Increase Decrease In Accounts Payable And Accrued Liabilities
IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
|
16017000 | |
CY2020 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
5887000 | |
CY2018 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
60816000 | |
CY2020 | us-gaap |
Proceeds From Sale Of Short Term Investments
ProceedsFromSaleOfShortTermInvestments
|
4605000 | |
CY2019 | us-gaap |
Proceeds From Sale Of Short Term Investments
ProceedsFromSaleOfShortTermInvestments
|
3730000 | |
CY2018 | us-gaap |
Proceeds From Sale Of Short Term Investments
ProceedsFromSaleOfShortTermInvestments
|
3545000 | |
CY2020 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
145196000 | |
CY2019 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
84261000 | |
CY2020 | us-gaap |
Effect Of Exchange Rate On Cash And Cash Equivalents
EffectOfExchangeRateOnCashAndCashEquivalents
|
-21000 | |
CY2018 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
547000 | |
CY2020 | us-gaap |
Payments For Repurchase Of Other Equity
PaymentsForRepurchaseOfOtherEquity
|
551000 | |
CY2019 | us-gaap |
Payments For Repurchase Of Other Equity
PaymentsForRepurchaseOfOtherEquity
|
14092000 | |
CY2018 | us-gaap |
Payments For Repurchase Of Other Equity
PaymentsForRepurchaseOfOtherEquity
|
720000 | |
CY2020 | us-gaap |
Payments Of Dividends
PaymentsOfDividends
|
53190000 | |
CY2019 | us-gaap |
Payments Of Dividends
PaymentsOfDividends
|
35396000 | |
CY2018 | us-gaap |
Payments Of Dividends
PaymentsOfDividends
|
23160000 | |
CY2020 | us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
5000000 | |
CY2019 | us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
33114000 | |
CY2019 | us-gaap |
Effect Of Exchange Rate On Cash And Cash Equivalents
EffectOfExchangeRateOnCashAndCashEquivalents
|
1000 | |
CY2018 | us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
29995000 | |
CY2020 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-57144000 | |
CY2019 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-82324000 | |
CY2018 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-53328000 | |
CY2018 | us-gaap |
Income Taxes Paid
IncomeTaxesPaid
|
14606000 | |
CY2020 | us-gaap |
Dividends Cash
DividendsCash
|
13831000 | |
CY2019 | us-gaap |
Dividends Cash
DividendsCash
|
13719000 | |
CY2018 | us-gaap |
Dividends Cash
DividendsCash
|
9137000 | |
CY2017Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
106563000 | |
CY2018 | us-gaap |
Net Income Loss
NetIncomeLoss
|
55789000 | |
CY2018 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation And Exercise Of Stock Options
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions
|
3124000 | |
CY2019 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
10058000 | |
CY2018 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
4940000 | |
CY2020 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-1282000 | |
CY2019 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-6328000 | |
CY2018 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-1199000 | |
CY2020 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
1597000 | |
CY2019 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
278000 | |
CY2018 | us-gaap |
Effect Of Exchange Rate On Cash And Cash Equivalents
EffectOfExchangeRateOnCashAndCashEquivalents
|
-2000 | |
CY2020 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
86749000 | |
CY2019 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
-4390000 | |
CY2018 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
6287000 | |
CY2019Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
76974000 | |
CY2018Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
81364000 | |
CY2017Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
75077000 | |
CY2020Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
163723000 | |
CY2019Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
76974000 | |
CY2018Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
81364000 | |
CY2020 | us-gaap |
Income Taxes Paid
IncomeTaxesPaid
|
24636000 | |
CY2019 | us-gaap |
Income Taxes Paid
IncomeTaxesPaid
|
17314000 | |
CY2018 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
547000 | |
CY2018 | us-gaap |
Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
|
720000 | |
CY2018 | us-gaap |
Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
|
29995000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Net Of Tax
OtherComprehensiveIncomeLossNetOfTax
|
-13000 | |
CY2018 | us-gaap |
Dividends Common Stock Cash
DividendsCommonStockCash
|
26189000 | |
CY2018Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
109106000 | |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
77916000 | |
CY2019 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation And Exercise Of Stock Options
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions
|
4520000 | |
CY2019 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
278000 | |
CY2019 | us-gaap |
Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
|
14092000 | |
CY2019 | us-gaap |
Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
|
33114000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Net Of Tax
OtherComprehensiveIncomeLossNetOfTax
|
198000 | |
CY2019 | us-gaap |
Dividends Common Stock Cash
DividendsCommonStockCash
|
39980000 | |
CY2019Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
104832000 | |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
102859000 | |
CY2020 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation And Exercise Of Stock Options
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationAndExerciseOfStockOptions
|
6796000 | |
CY2020 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
1597000 | |
CY2020 | us-gaap |
Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
|
551000 | |
CY2020 | us-gaap |
Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
|
5000000 | |
CY2020 | us-gaap |
Other Comprehensive Income Loss Net Of Tax
OtherComprehensiveIncomeLossNetOfTax
|
16000 | |
CY2020 | us-gaap |
Dividends Common Stock Cash
DividendsCommonStockCash
|
53303000 | |
CY2020Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
157246000 | |
CY2020 | us-gaap |
Prior Period Reclassification Adjustment Description
PriorPeriodReclassificationAdjustmentDescription
|
<p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Reclassification</b> - Certain amounts reported for prior periods have been reclassified to be consistent with the current period presentation. No reclassification in the consolidated financial statements had a material impact on the presentation.</p> | |
CY2020 | us-gaap |
Use Of Estimates
UseOfEstimates
|
<p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Use of Estimates</b> - The preparation of financial statements in conformity with generally accepted accounting principles in the United States requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and reported amounts of revenue and expenses during the reporting period. Actual results could differ materially from those estimates.</p> | |
CY2020 | us-gaap |
Concentration Risk Credit Risk
ConcentrationRiskCreditRisk
|
<p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Concentration of Credit Risk</b> - Our cash and cash equivalents and available-for-sale securities are maintained at several financial institutions and the balances with these financial institutions often exceed the amount of insurance provided on such accounts by the Federal Deposit Insurance Corporation. The cash and cash equivalents generally are maintained with financial institutions with reputable credit, and therefore bear minimal credit risk. Historically, we have not experienced any losses due to such concentration of credit risk.</p> | |
CY2019Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
200000 | |
CY2020Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
200000 | |
CY2020 | us-gaap |
Advertising Expense
AdvertisingExpense
|
4400000 | |
CY2019 | us-gaap |
Advertising Expense
AdvertisingExpense
|
5300000 | |
CY2018 | us-gaap |
Advertising Expense
AdvertisingExpense
|
6000000.0 | |
CY2020 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
2800000 | |
CY2019 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
2700000 | |
CY2018 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
2200000 | |
CY2020Q4 | us-gaap |
Capitalized Computer Software Gross
CapitalizedComputerSoftwareGross
|
2900000 | |
CY2020 | us-gaap |
Capitalized Computer Software Amortization1
CapitalizedComputerSoftwareAmortization1
|
200000 | |
CY2020Q4 | us-gaap |
Inventory Raw Materials
InventoryRawMaterials
|
13428000 | |
CY2019Q4 | us-gaap |
Inventory Raw Materials
InventoryRawMaterials
|
10880000 | |
CY2020Q4 | us-gaap |
Retail Related Inventory Packaging And Other Supplies
RetailRelatedInventoryPackagingAndOtherSupplies
|
4071000 | |
CY2019Q4 | us-gaap |
Retail Related Inventory Packaging And Other Supplies
RetailRelatedInventoryPackagingAndOtherSupplies
|
4109000 | |
CY2020Q4 | med |
Inventory Non Food Finished Goods
InventoryNonFoodFinishedGoods
|
8078000 | |
CY2019Q4 | med |
Inventory Non Food Finished Goods
InventoryNonFoodFinishedGoods
|
4421000 | |
CY2020Q4 | us-gaap |
Inventory Finished Goods
InventoryFinishedGoods
|
29858000 | |
CY2019Q4 | us-gaap |
Inventory Finished Goods
InventoryFinishedGoods
|
31314000 | |
CY2020Q4 | us-gaap |
Inventory Valuation Reserves
InventoryValuationReserves
|
2043000 | |
CY2019Q4 | us-gaap |
Inventory Valuation Reserves
InventoryValuationReserves
|
1953000 | |
CY2020Q4 | us-gaap |
Inventory Net
InventoryNet
|
53392000 | |
CY2019Q4 | us-gaap |
Inventory Net
InventoryNet
|
48771000 | |
CY2020Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
54725000 | |
CY2019Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
49055000 | |
CY2020Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
27092000 | |
CY2019Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
23016000 | |
CY2020Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
27633000 | |
CY2019Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
26039000 | |
CY2020Q4 | us-gaap |
Accounts Payable Trade Current
AccountsPayableTradeCurrent
|
35767000 | |
CY2019Q4 | us-gaap |
Accounts Payable Trade Current
AccountsPayableTradeCurrent
|
22608000 | |
CY2020Q4 | us-gaap |
Accrued Sales Commission Current
AccruedSalesCommissionCurrent
|
22598000 | |
CY2019Q4 | us-gaap |
Accrued Sales Commission Current
AccruedSalesCommissionCurrent
|
13186000 | |
CY2020Q4 | us-gaap |
Dividends Payable Current
DividendsPayableCurrent
|
13831000 | |
CY2019Q4 | us-gaap |
Dividends Payable Current
DividendsPayableCurrent
|
13719000 | |
CY2020Q4 | us-gaap |
Accrued Salaries Current
AccruedSalariesCurrent
|
16948000 | |
CY2019Q4 | us-gaap |
Accrued Salaries Current
AccruedSalariesCurrent
|
10409000 | |
CY2020Q4 | us-gaap |
Accrued Marketing Costs Current
AccruedMarketingCostsCurrent
|
325000 | |
CY2019Q4 | us-gaap |
Accrued Marketing Costs Current
AccruedMarketingCostsCurrent
|
5598000 | |
CY2020Q4 | med |
Promotional Sales Incentive Accruals
PromotionalSalesIncentiveAccruals
|
7621000 | |
CY2019Q4 | med |
Promotional Sales Incentive Accruals
PromotionalSalesIncentiveAccruals
|
4818000 | |
CY2020Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
7606000 | |
CY2020 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
8.74 | |
CY2020Q4 | us-gaap |
Capital Units Authorized
CapitalUnitsAuthorized
|
21500000 | |
CY2019 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
6.62 | |
CY2020Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
20000000 | |
CY2020Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.001 | |
CY2020Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
1500000 | |
CY2020Q4 | us-gaap |
Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
|
0.001 | |
CY2020Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
11822000 | |
CY2020Q4 | us-gaap |
Preferred Stock Shares Issued
PreferredStockSharesIssued
|
0 | |
CY2017Q2 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Number Of Additional Shares Authorized
ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized
|
600000 | |
CY2019Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
4333000 | |
CY2020Q4 | us-gaap |
Sales And Excise Tax Payable Current
SalesAndExciseTaxPayableCurrent
|
2981000 | |
CY2019Q4 | us-gaap |
Sales And Excise Tax Payable Current
SalesAndExciseTaxPayableCurrent
|
1549000 | |
CY2020Q4 | us-gaap |
Accounts Payable And Accrued Liabilities Current
AccountsPayableAndAccruedLiabilitiesCurrent
|
107677000 | |
CY2019Q4 | us-gaap |
Accounts Payable And Accrued Liabilities Current
AccountsPayableAndAccruedLiabilitiesCurrent
|
76220000 | |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
102859000 | |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
77916000 | |
CY2018 | us-gaap |
Net Income Loss
NetIncomeLoss
|
55789000 | |
CY2020 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
11771000 | |
CY2019 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
11771000 | |
CY2018 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
11947000 | |
CY2020 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
79000 | |
CY2019 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
346000 | |
CY2018 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
132000 | |
CY2020 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
11850000 | |
CY2019 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
12117000 | |
CY2018 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
12079000 | |
CY2018 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
4.67 | |
CY2020 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
8.68 | |
CY2019 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
6.43 | |
CY2018 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
4.62 | |
CY2017Q2 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Number Of Shares Authorized
ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
|
1600000 | |
CY2019Q3 | med |
Stock Repurchase Program Additional Shares Authorized
StockRepurchaseProgramAdditionalSharesAuthorized
|
2000000 | |
CY2020 | us-gaap |
Stock Repurchased During Period Shares
StockRepurchasedDuringPeriodShares
|
46000 | |
CY2019 | us-gaap |
Stock Repurchased During Period Shares
StockRepurchasedDuringPeriodShares
|
296000 | |
CY2020Q4 | us-gaap |
Stock Repurchase Program Remaining Number Of Shares Authorized To Be Repurchased
StockRepurchaseProgramRemainingNumberOfSharesAuthorizedToBeRepurchased
|
2323000 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
0 | |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
0 | |
CY2020Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
8450000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
8830000 | |
CY2019 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
1825000 | |
CY2018 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
1048000 | |
CY2020 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
30805000 | |
CY2019 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
12849000 | |
CY2018 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
17446000 | |
CY2020 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
477000 | |
CY2019 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
2323000 | |
CY2018 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
|
P6Y4M24D | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Risk Free Interest Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
|
0.0264 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Volatility Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
|
0.3330 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Dividend Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
|
0.0287 | |
CY2020 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
1600000 | |
CY2019 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
300000 | |
CY2018 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
500000 | |
CY2020 | us-gaap |
Shares Paid For Tax Withholding For Share Based Compensation
SharesPaidForTaxWithholdingForShareBasedCompensation
|
0.0 | |
CY2019 | us-gaap |
Shares Paid For Tax Withholding For Share Based Compensation
SharesPaidForTaxWithholdingForShareBasedCompensation
|
100000 | |
CY2018 | us-gaap |
Shares Paid For Tax Withholding For Share Based Compensation
SharesPaidForTaxWithholdingForShareBasedCompensation
|
0.0 | |
CY2020 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
6800000 | |
CY2019 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
4500000 | |
CY2018 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
3100000 | |
CY2020Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Foreign Currency Translation Adjustment Net Of Tax
AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
|
-22000 | |
CY2019Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Foreign Currency Translation Adjustment Net Of Tax
AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
|
-1000 | |
CY2020Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Available For Sale Securities Adjustment Net Of Tax
AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
|
63000 | |
CY2019Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Available For Sale Securities Adjustment Net Of Tax
AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
|
26000 | |
CY2020Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
41000 | |
CY2019Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
25000 | |
CY2020Q4 | us-gaap |
Marketable Securities
MarketableSecurities
|
174241000 | |
CY2020 | us-gaap |
Marketable Securities Unrealized Gain Loss
MarketableSecuritiesUnrealizedGainLoss
|
87000 | |
CY2020Q4 | us-gaap |
Interest Receivable
InterestReceivable
|
147000 | |
CY2020Q4 | us-gaap |
Available For Sale Securities Debt Securities Current
AvailableForSaleSecuritiesDebtSecuritiesCurrent
|
174475000 | |
CY2020Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
163723000 | |
CY2020Q4 | us-gaap |
Investment Owned At Fair Value
InvestmentOwnedAtFairValue
|
10752000 | |
CY2019Q4 | us-gaap |
Marketable Securities
MarketableSecurities
|
92416000 | |
CY2019 | us-gaap |
Marketable Securities Unrealized Gain Loss
MarketableSecuritiesUnrealizedGainLoss
|
36000 | |
CY2019Q4 | us-gaap |
Interest Receivable
InterestReceivable
|
226000 | |
CY2019Q4 | us-gaap |
Available For Sale Securities Debt Securities Current
AvailableForSaleSecuritiesDebtSecuritiesCurrent
|
92678000 | |
CY2019Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
76974000 | |
CY2019Q4 | us-gaap |
Investment Owned At Fair Value
InvestmentOwnedAtFairValue
|
15704000 | |
CY2018 | us-gaap |
Debt And Equity Securities Realized Gain Loss
DebtAndEquitySecuritiesRealizedGainLoss
|
0 | |
CY2019 | us-gaap |
Debt And Equity Securities Realized Gain Loss
DebtAndEquitySecuritiesRealizedGainLoss
|
0 | |
CY2020 | us-gaap |
Debt And Equity Securities Realized Gain Loss
DebtAndEquitySecuritiesRealizedGainLoss
|
0 | |
CY2020 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
28520000 | |
CY2019 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
11024000 | |
CY2018 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
16398000 | |
CY2020 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
2285000 | |
CY2018 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
-2393000 | |
CY2020 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
-77000 | |
CY2019 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
-729000 | |
CY2018 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
-89000 | |
CY2020 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
201000 | |
CY2019 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
4000 | |
CY2018 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
-205000 | |
CY2020 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
601000 | |
CY2019 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
1598000 | |
CY2018 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
-2687000 | |
CY2020 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
31406000 | |
CY2019 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
14447000 | |
CY2018 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
14759000 | |
CY2020 | us-gaap |
Income Tax Expense Benefit Intraperiod Tax Allocation
IncomeTaxExpenseBenefitIntraperiodTaxAllocation
|
31400000 | |
CY2019 | us-gaap |
Income Tax Expense Benefit Intraperiod Tax Allocation
IncomeTaxExpenseBenefitIntraperiodTaxAllocation
|
14500000 | |
CY2018 | us-gaap |
Income Tax Expense Benefit Intraperiod Tax Allocation
IncomeTaxExpenseBenefitIntraperiodTaxAllocation
|
14800000 | |
CY2020 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
31406000 | |
CY2019 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
14447000 | |
CY2018 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
14759000 | |
CY2020 | med |
Unrealized Gain Loss On Investment Securities And Foreign Currency Income Tax Effects Allocated To Equity
UnrealizedGainLossOnInvestmentSecuritiesAndForeignCurrencyIncomeTaxEffectsAllocatedToEquity
|
14000 | |
CY2019 | med |
Unrealized Gain Loss On Investment Securities And Foreign Currency Income Tax Effects Allocated To Equity
UnrealizedGainLossOnInvestmentSecuritiesAndForeignCurrencyIncomeTaxEffectsAllocatedToEquity
|
75000 | |
CY2018 | med |
Unrealized Gain Loss On Investment Securities And Foreign Currency Income Tax Effects Allocated To Equity
UnrealizedGainLossOnInvestmentSecuritiesAndForeignCurrencyIncomeTaxEffectsAllocatedToEquity
|
43000 | |
CY2020 | us-gaap |
Income Tax Expense Benefit Intraperiod Tax Allocation
IncomeTaxExpenseBenefitIntraperiodTaxAllocation
|
31420000 | |
CY2019 | us-gaap |
Income Tax Expense Benefit Intraperiod Tax Allocation
IncomeTaxExpenseBenefitIntraperiodTaxAllocation
|
14522000 | |
CY2018 | us-gaap |
Income Tax Expense Benefit Intraperiod Tax Allocation
IncomeTaxExpenseBenefitIntraperiodTaxAllocation
|
14802000 | |
CY2020Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
|
753000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
|
745000 | |
CY2020Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
|
2546000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
|
1269000 | |
CY2020Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
|
1015000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
|
756000 | |
CY2020Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
|
3274000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
|
2465000 | |
CY2020Q4 | us-gaap |
Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
|
120000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
|
307000 | |
CY2020Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Other
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther
|
2178000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Other
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther
|
3288000 | |
CY2020Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
1436000 | |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
|
2032000 | |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
|
3114000 | |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities Investments
DeferredTaxLiabilitiesInvestments
|
24000 | |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Investments
DeferredTaxLiabilitiesInvestments
|
10000 | |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities Prepaid Expenses
DeferredTaxLiabilitiesPrepaidExpenses
|
1022000 | |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Prepaid Expenses
DeferredTaxLiabilitiesPrepaidExpenses
|
1034000 | |
CY2020Q4 | us-gaap |
Gross Profit
GrossProfit
|
199239000 | |
CY2020Q1 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
23624000 | |
CY2020Q2 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
28158000 | |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities Deferred Expense
DeferredTaxLiabilitiesDeferredExpense
|
4680000 | |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Deferred Expense
DeferredTaxLiabilitiesDeferredExpense
|
3365000 | |
CY2020Q4 | us-gaap |
Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
|
7758000 | |
CY2019Q4 | us-gaap |
Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
|
7523000 | |
CY2020Q4 | us-gaap |
Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
|
692000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
|
1307000 | |
CY2020 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
28196000 | |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.210 | |
CY2019 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
19396000 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.210 | |
CY2018 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
14815000 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.210 | |
CY2020 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
1470000 | |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.011 | |
CY2019 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
864000 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.009 | |
CY2018 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
769000 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.011 | |
CY2020 | us-gaap |
Income Tax Reconciliation Nondeductible Expense Share Based Compensation Cost
IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost
|
-415000 | |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Nondeductible Expense Share Based Compensation Cost
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
|
-0.003 | |
CY2019 | us-gaap |
Income Tax Reconciliation Nondeductible Expense Share Based Compensation Cost
IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost
|
-6424000 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Nondeductible Expense Share Based Compensation Cost
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
|
-0.070 | |
CY2018 | us-gaap |
Income Tax Reconciliation Nondeductible Expense Share Based Compensation Cost
IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost
|
-1852000 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation Nondeductible Expense Share Based Compensation Cost
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
|
-0.026 | |
CY2020 | us-gaap |
Income Tax Reconciliation Nondeductible Expense Other
IncomeTaxReconciliationNondeductibleExpenseOther
|
1218000 | |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Nondeductible Expense Other
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther
|
0.009 | |
CY2019 | us-gaap |
Income Tax Reconciliation Nondeductible Expense Other
IncomeTaxReconciliationNondeductibleExpenseOther
|
1004000 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Nondeductible Expense Other
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther
|
0.011 | |
CY2018 | us-gaap |
Income Tax Reconciliation Nondeductible Expense Other
IncomeTaxReconciliationNondeductibleExpenseOther
|
615000 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation Nondeductible Expense Other
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther
|
0.008 | |
CY2020 | us-gaap |
Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
|
370000 | |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Credits Research
EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
|
0.003 | |
CY2019 | us-gaap |
Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
|
579000 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Credits Research
EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
|
0.006 | |
CY2018 | us-gaap |
Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
|
85000 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Credits Research
EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
|
0.001 | |
CY2020 | us-gaap |
Income Tax Reconciliation Change In Deferred Tax Assets Valuation Allowance
IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
1342000 | |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
0.010 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
0.000 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
0.000 | |
CY2020 | us-gaap |
Income Tax Reconciliation Other Reconciling Items
IncomeTaxReconciliationOtherReconcilingItems
|
-236000 | |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Other Reconciling Items Percent
EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent
|
-0.002 | |
CY2019 | us-gaap |
Income Tax Reconciliation Other Reconciling Items
IncomeTaxReconciliationOtherReconcilingItems
|
182000 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Other Reconciling Items Percent
EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent
|
0.002 | |
CY2018 | us-gaap |
Income Tax Reconciliation Other Reconciling Items
IncomeTaxReconciliationOtherReconcilingItems
|
323000 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation Other Reconciling Items Percent
EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent
|
0.004 | |
CY2020 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
31406000 | |
CY2020 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.234 | |
CY2020Q1 | us-gaap |
Revenues
Revenues
|
178461000 | |
CY2020 | us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
887000 | |
CY2019 | us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
3489000 | |
CY2020Q4 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P3Y8M12D | |
CY2020Q4 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.035 | |
CY2019 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
14447000 | |
CY2019 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.156 | |
CY2018 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
14759000 | |
CY2018 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.209 | |
CY2020Q4 | us-gaap |
Operating Loss Carryforwards
OperatingLossCarryforwards
|
25600000 | |
CY2020 | us-gaap |
Operating Lease Expense
OperatingLeaseExpense
|
3600000 | |
CY2019 | us-gaap |
Operating Lease Expense
OperatingLeaseExpense
|
3100000 | |
CY2020 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
3775000 | |
CY2019 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
3025000 | |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
|
3991000 | |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
|
3397000 | |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
|
1851000 | |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
|
1234000 | |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
|
1248000 | |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due After Year Five
LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
|
203000 | |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
|
11924000 | |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
|
763000 | |
CY2020Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
11161000 | |
CY2020Q2 | us-gaap |
Revenues
Revenues
|
219999000 | |
CY2020Q3 | us-gaap |
Revenues
Revenues
|
271470000 | |
CY2020Q4 | us-gaap |
Revenues
Revenues
|
264912000 | |
CY2020Q1 | us-gaap |
Gross Profit
GrossProfit
|
135240000 | |
CY2020Q2 | us-gaap |
Gross Profit
GrossProfit
|
159300000 | |
CY2020Q3 | us-gaap |
Gross Profit
GrossProfit
|
204036000 | |
CY2020Q3 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
44633000 | |
CY2020Q4 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
37850000 | |
CY2020Q1 | us-gaap |
Net Income Loss
NetIncomeLoss
|
18477000 | |
CY2020Q2 | us-gaap |
Net Income Loss
NetIncomeLoss
|
21935000 | |
CY2020Q3 | us-gaap |
Net Income Loss
NetIncomeLoss
|
34453000 | |
CY2020Q4 | us-gaap |
Net Income Loss
NetIncomeLoss
|
27994000 | |
CY2020Q1 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.57 | |
CY2020Q2 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.86 | |
CY2020Q3 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
2.93 | |
CY2020Q4 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
2.38 | |
CY2020Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.56 | |
CY2020Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.86 | |
CY2020Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
2.91 | |
CY2020Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
2.36 | |
CY2019Q1 | us-gaap |
Revenues
Revenues
|
165876000 | |
CY2019Q2 | us-gaap |
Revenues
Revenues
|
187103000 | |
CY2019Q3 | us-gaap |
Revenues
Revenues
|
190061000 | |
CY2019Q4 | us-gaap |
Revenues
Revenues
|
170632000 | |
CY2019Q1 | us-gaap |
Gross Profit
GrossProfit
|
125147000 | |
CY2019Q2 | us-gaap |
Gross Profit
GrossProfit
|
140710000 | |
CY2019Q3 | us-gaap |
Gross Profit
GrossProfit
|
142933000 | |
CY2019Q4 | us-gaap |
Gross Profit
GrossProfit
|
128068000 | |
CY2019Q1 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
25021000 | |
CY2019Q2 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
27778000 | |
CY2019Q3 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
20583000 | |
CY2019Q4 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
18981000 | |
CY2019Q1 | us-gaap |
Net Income Loss
NetIncomeLoss
|
20750000 | |
CY2019Q2 | us-gaap |
Net Income Loss
NetIncomeLoss
|
21383000 | |
CY2019Q3 | us-gaap |
Net Income Loss
NetIncomeLoss
|
15902000 | |
CY2019Q4 | us-gaap |
Net Income Loss
NetIncomeLoss
|
19881000 | |
CY2019Q1 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.75 | |
CY2019Q2 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.80 | |
CY2019Q3 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.36 | |
CY2019Q4 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.71 | |
CY2019Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.70 | |
CY2019Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.75 | |
CY2019Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.32 | |
CY2019Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.66 |