2021 Form 10-K Financial Statement

#000156459022005952 Filed on February 22, 2022

View on sec.gov

Income Statement

Concept 2021 2020 Q4 2020
Revenue $385.3M $83.31M $312.6M
YoY Change 23.24% 14.54% 12.0%
Cost Of Revenue $131.7M $26.92M $99.84M
YoY Change 31.89% 12.59% 8.24%
Gross Profit $253.6M $56.39M $212.8M
YoY Change 19.18% 15.5% 13.86%
Gross Profit Margin 65.82% 67.69% 68.07%
Selling, General & Admin $149.3M $33.34M $126.1M
YoY Change 18.44% 15.84% 9.79%
% of Gross Profit 58.89% 59.12% 59.26%
Research & Development $39.04M $7.940M $31.00M
YoY Change 25.93% 1.02% 9.52%
% of Gross Profit 15.39% 14.08% 14.57%
Depreciation & Amortization $14.79M $5.210M $13.13M
YoY Change 12.65% 18.41% 18.02%
% of Gross Profit 5.83% 9.24% 6.17%
Operating Expenses $198.5M $42.83M $162.6M
YoY Change 22.06% 12.53% 9.53%
Operating Profit $55.09M $13.56M $50.16M
YoY Change 9.82% 25.98% 30.6%
Interest Expense -$1.178M $120.0K $1.100M
YoY Change -207.09% -83.1% -62.07%
% of Operating Profit -2.14% 0.88% 2.19%
Other Income/Expense, Net -$1.544M $1.180M $2.522M
YoY Change -161.22% 268.75% -31.17%
Pretax Income $53.54M $14.86M $52.68M
YoY Change 1.63% 25.93% 25.22%
Income Tax $8.944M $1.390M $7.094M
% Of Pretax Income 16.7% 9.35% 13.47%
Net Earnings $44.60M $13.47M $45.59M
YoY Change -2.17% 47.02% 35.22%
Net Earnings / Revenue 11.58% 16.17% 14.58%
Basic Earnings Per Share $1.24 $1.29
Diluted Earnings Per Share $1.21 $366.7K $1.26
COMMON SHARES
Basic Shares Outstanding 35.93M 35.23M
Diluted Shares Outstanding 36.96M 36.29M

Balance Sheet

Concept 2021 2020 Q4 2020
SHORT-TERM ASSETS
Cash & Short-Term Investments $257.3M $187.5M $187.5M
YoY Change 37.23% -12.18% -12.18%
Cash & Equivalents $207.6M $149.7M $149.7M
Short-Term Investments $49.76M $37.80M $37.80M
Other Short-Term Assets $60.57M $12.31M $50.30M
YoY Change 20.42% 9.16% 7.94%
Inventory
Prepaid Expenses
Receivables $34.56M $33.58M $33.60M
Other Receivables $0.00 $0.00 $0.00
Total Short-Term Assets $352.4M $271.4M $271.4M
YoY Change 29.86% -6.95% -6.93%
LONG-TERM ASSETS
Property, Plant & Equipment $42.75M $26.43M $42.00M
YoY Change 1.79% 11.28% 6.33%
Goodwill $134.9M
YoY Change 75.49%
Intangibles
YoY Change
Long-Term Investments $0.00 $2.500M $2.500M
YoY Change -100.0%
Other Assets $18.40M $2.705M $15.50M
YoY Change 18.72% 7.64% -7.74%
Total Long-Term Assets $263.4M $255.1M $255.1M
YoY Change 3.25% 63.72% 63.74%
TOTAL ASSETS
Total Short-Term Assets $352.4M $271.4M $271.4M
Total Long-Term Assets $263.4M $255.1M $255.1M
Total Assets $615.8M $526.5M $526.5M
YoY Change 16.97% 17.66% 17.68%
SHORT-TERM LIABILITIES
YoY Change
Accounts Payable $8.330M $5.354M $5.400M
YoY Change 54.26% 25.27% 25.58%
Accrued Expenses $44.11M $11.16M $36.80M
YoY Change 19.88% 79.81% 13.93%
Deferred Revenue $37.95M
YoY Change 20.61%
Short-Term Debt $0.00 $0.00 $0.00
YoY Change
Long-Term Debt Due
YoY Change
Total Short-Term Liabilities $102.9M $80.13M $80.10M
YoY Change 28.43% 17.79% 17.79%
LONG-TERM LIABILITIES
Long-Term Debt $0.00 $0.00 $0.00
YoY Change
Other Long-Term Liabilities $21.57M $22.70M $22.70M
YoY Change -4.98% 5504.94% -2.58%
Total Long-Term Liabilities $21.57M $22.70M $22.70M
YoY Change -4.98% 5504.94% -2.58%
TOTAL LIABILITIES
Total Short-Term Liabilities $102.9M $80.13M $80.10M
Total Long-Term Liabilities $21.57M $22.70M $22.70M
Total Liabilities $131.6M $105.7M $105.7M
YoY Change 24.49% 14.23% 14.15%
SHAREHOLDERS EQUITY
Retained Earnings $93.49M
YoY Change 90.9%
Common Stock $393.5M
YoY Change 11.11%
Preferred Stock
YoY Change
Treasury Stock (at cost)
YoY Change
Treasury Stock Shares
Shareholders Equity $484.3M $420.7M $420.7M
YoY Change
Total Liabilities & Shareholders Equity $615.8M $526.5M $526.5M
YoY Change 16.97% 17.66% 17.68%

Cashflow Statement

Concept 2021 2020 Q4 2020
OPERATING ACTIVITIES
Net Income $44.60M $13.47M $45.59M
YoY Change -2.17% 47.02% 35.22%
Depreciation, Depletion And Amortization $14.79M $5.210M $13.13M
YoY Change 12.65% 18.41% 18.02%
Cash From Operating Activities $112.9M $23.03M $88.56M
YoY Change 27.47% 10.56% 23.36%
INVESTING ACTIVITIES
Capital Expenditures -$19.59M -$4.830M $16.47M
YoY Change -218.95% -7.12% 21.21%
Acquisitions $17.07M
YoY Change
Other Investing Activities -$27.12M -$83.66M -$104.0M
YoY Change -73.93% -577.78% 14146.58%
Cash From Investing Activities -$46.70M -$88.49M -$120.5M
YoY Change -61.23% -818.26% 741.68%
FINANCING ACTIVITIES
Cash Dividend Paid
YoY Change
Common Stock Issuance & Retirement, Net $18.95M
YoY Change -8.09%
Debt Paid & Issued, Net
YoY Change
Cash From Financing Activities -8.361M 6.180M 2.328M
YoY Change -459.15% -271.67% -119.17%
NET CHANGE
Cash From Operating Activities 112.9M 23.03M 88.56M
Cash From Investing Activities -46.70M -88.49M -120.5M
Cash From Financing Activities -8.361M 6.180M 2.328M
Net Change In Cash 57.86M -59.28M -29.56M
YoY Change -295.74% -300.61% -165.12%
FREE CASH FLOW
Cash From Operating Activities $112.9M $23.03M $88.56M
Capital Expenditures -$19.59M -$4.830M $16.47M
Free Cash Flow $132.5M $27.86M $72.10M
YoY Change 83.76% 7.03% 23.86%

Facts In Submission

Frame Concept Type Concept / XBRL Key Value Unit
CY2021Q4 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
CY2020Q4 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
CY2021Q4 us-gaap Preferred Stock Value
PreferredStockValue
CY2020Q4 us-gaap Preferred Stock Value
PreferredStockValue
CY2021 dei Auditor Firm
AuditorFirmId
185
CY2021 dei Auditor Name
AuditorName
KPMG, LLP
CY2021 dei Auditor Location
AuditorLocation
Minneapolis, MN
CY2021Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
207552000
CY2020Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
149692000
CY2021Q4 us-gaap Short Term Investments
ShortTermInvestments
49758000
CY2020Q4 us-gaap Short Term Investments
ShortTermInvestments
37786000
CY2021Q4 us-gaap Accounts Receivable Gross Current
AccountsReceivableGrossCurrent
38811000
CY2020Q4 us-gaap Accounts Receivable Gross Current
AccountsReceivableGrossCurrent
37811000
CY2021Q4 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
4249000
CY2020Q4 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
2705000
CY2021Q4 us-gaap Assets
Assets
615846000
CY2020Q4 us-gaap Assets
Assets
526458000
CY2021Q4 us-gaap Accounts Payable Current
AccountsPayableCurrent
8330000
CY2020Q4 us-gaap Accounts Payable Current
AccountsPayableCurrent
5354000
CY2021Q4 us-gaap Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
31661000
CY2020Q4 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
4233000
CY2021Q4 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
34562000
CY2020Q4 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
33578000
CY2021Q4 us-gaap Deferred Costs Current
DeferredCostsCurrent
44529000
CY2020Q4 us-gaap Deferred Costs Current
DeferredCostsCurrent
37988000
CY2021Q4 us-gaap Other Assets Current
OtherAssetsCurrent
16042000
CY2020Q4 us-gaap Other Assets Current
OtherAssetsCurrent
12312000
CY2021Q4 us-gaap Assets Current
AssetsCurrent
352443000
CY2020Q4 us-gaap Assets Current
AssetsCurrent
271356000
CY2021Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
31901000
CY2020Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
26432000
CY2021Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
10851000
CY2020Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
15581000
CY2021Q4 us-gaap Goodwill
Goodwill
143663000
CY2020Q4 us-gaap Goodwill
Goodwill
134853000
CY2021Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
58587000
CY2020Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
60230000
CY2020Q4 us-gaap Marketable Securities Noncurrent
MarketableSecuritiesNoncurrent
2500000
CY2021Q4 us-gaap Deferred Costs
DeferredCosts
15191000
CY2020Q4 us-gaap Deferred Costs
DeferredCosts
12607000
CY2021Q4 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
182000
CY2020Q4 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
194000
CY2021Q4 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
3028000
CY2020Q4 us-gaap Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
22872000
CY2021Q4 us-gaap Accrued Liabilities Current
AccruedLiabilitiesCurrent
8345000
CY2020Q4 us-gaap Accrued Liabilities Current
AccruedLiabilitiesCurrent
11161000
CY2021Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
50428000
CY2020Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
37947000
CY2021Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
4108000
CY2020Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
2798000
CY2021Q4 us-gaap Liabilities Current
LiabilitiesCurrent
102872000
CY2020Q4 us-gaap Liabilities Current
LiabilitiesCurrent
80132000
CY2021Q4 us-gaap Contract With Customer Liability Noncurrent
ContractWithCustomerLiabilityNoncurrent
5144000
CY2020Q4 us-gaap Contract With Customer Liability Noncurrent
ContractWithCustomerLiabilityNoncurrent
2996000
CY2021Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
16426000
CY2020Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
19672000
CY2021Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
7145000
CY2020Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
2937000
CY2021Q4 us-gaap Liabilities
Liabilities
131587000
CY2020Q4 us-gaap Liabilities
Liabilities
105737000
CY2021Q4 us-gaap Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
0.001
CY2020Q4 us-gaap Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
0.001
CY2021Q4 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
5000000
CY2020Q4 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
5000000
CY2021Q4 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2020Q4 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2021Q4 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2020Q4 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2021Q4 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
CY2021Q4 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
110000000
CY2020Q4 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
110000000
CY2021Q4 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
37798610
CY2020Q4 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
37100467
CY2021Q4 us-gaap Common Stock Shares Outstanding
CommonStockSharesOutstanding
36009257
CY2020Q4 us-gaap Common Stock Shares Outstanding
CommonStockSharesOutstanding
35487217
CY2021Q4 us-gaap Common Stock Value
CommonStockValue
38000
CY2020Q4 us-gaap Common Stock Value
CommonStockValue
37000
CY2021Q4 us-gaap Treasury Stock Common Shares
TreasuryStockCommonShares
1789353
CY2020Q4 us-gaap Treasury Stock Common Shares
TreasuryStockCommonShares
1613250
CY2021Q4 us-gaap Treasury Stock Common Value
TreasuryStockCommonValue
85677000
CY2020Q4 us-gaap Treasury Stock Common Value
TreasuryStockCommonValue
65247000
CY2021Q4 us-gaap Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
433258000
CY2020Q4 us-gaap Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
393462000
CY2021Q4 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
138087000
CY2020Q4 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
93490000
CY2021Q4 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
-1447000
CY2020Q4 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
-1021000
CY2021Q4 us-gaap Stockholders Equity
StockholdersEquity
484259000
CY2020Q4 us-gaap Stockholders Equity
StockholdersEquity
420721000
CY2021Q4 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
615846000
CY2020Q4 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
526458000
CY2020 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
312630000
CY2019 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
279124000
CY2020 us-gaap Cost Of Revenue
CostOfRevenue
99836000
CY2019 us-gaap Cost Of Revenue
CostOfRevenue
92239000
CY2019 us-gaap Gross Profit
GrossProfit
186885000
CY2020 us-gaap Operating Income Loss
OperatingIncomeLoss
50158000
CY2019 us-gaap Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
13365000
CY2019 spsc Stock Issued During Period Value Pursuant To Stock Awards
StockIssuedDuringPeriodValuePursuantToStockAwards
6207000
CY2019 us-gaap Stock Issued During Period Value Employee Stock Purchase Plan
StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
2269000
CY2019 us-gaap Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
20618000
CY2020 us-gaap Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
18950000
CY2020 us-gaap Stock Issued During Period Value Employee Stock Purchase Plan
StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
3374000
CY2019 us-gaap Other Comprehensive Income Unrealized Holding Gain Loss On Securities Arising During Period Tax
OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
122000
CY2019 us-gaap Other Comprehensive Income Unrealized Holding Gain Loss On Securities Arising During Period Net Of Tax
OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
367000
CY2019 us-gaap Other Comprehensive Income Loss Reclassification Adjustment From Aoci For Sale Of Securities Net Of Tax
OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
398000
CY2021 us-gaap Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
-426000
CY2020 us-gaap Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
930000
CY2019 us-gaap Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
1259000
CY2021 us-gaap Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
44171000
CY2020 us-gaap Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
46516000
CY2019 us-gaap Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
34971000
CY2021 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.24
CY2020 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.29
CY2019 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.96
CY2021 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.21
CY2020 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.26
CY2019 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.94
CY2021 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
35928000
CY2020 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
35226000
CY2019 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
35024000
CY2021 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
36962000
CY2020 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
36285000
CY2019 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
36002000
CY2018Q4 us-gaap Stockholders Equity
StockholdersEquity
318974000
CY2019 us-gaap Stock Repurchased And Retired During Period Value
StockRepurchasedAndRetiredDuringPeriodValue
300000
CY2019 us-gaap Net Income Loss
NetIncomeLoss
33712000
CY2019 us-gaap Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
1290000
CY2019 us-gaap Other Comprehensive Income Loss Available For Sale Securities Adjustment Net Of Tax
OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
367000
CY2019 spsc Reclassification Of Gain Loss On Investments In To Earnings Net Of Tax
ReclassificationOfGainLossOnInvestmentsInToEarningsNetOfTax
-398000
CY2019Q4 us-gaap Stockholders Equity
StockholdersEquity
354876000
CY2020 us-gaap Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
17382000
CY2020 spsc Stock Issued During Period Value Pursuant To Stock Awards
StockIssuedDuringPeriodValuePursuantToStockAwards
18592000
CY2020 us-gaap Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
1097000
CY2020 us-gaap Other Comprehensive Income Loss Available For Sale Securities Adjustment Net Of Tax
OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
-10000
CY2020 spsc Reclassification Of Gain Loss On Investments In To Earnings Net Of Tax
ReclassificationOfGainLossOnInvestmentsInToEarningsNetOfTax
-157000
CY2020Q4 us-gaap Stockholders Equity
StockholdersEquity
420721000
CY2021 us-gaap Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
25686000
CY2021 spsc Stock Issued During Period Value Pursuant To Stock Awards
StockIssuedDuringPeriodValuePursuantToStockAwards
9374000
CY2021 us-gaap Stock Issued During Period Value Employee Stock Purchase Plan
StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
4737000
CY2021 us-gaap Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
20430000
CY2021 us-gaap Net Income Loss
NetIncomeLoss
44597000
CY2021 us-gaap Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
-514000
CY2021 us-gaap Other Comprehensive Income Loss Available For Sale Securities Adjustment Net Of Tax
OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
-102000
CY2021 spsc Reclassification Of Gain Loss On Investments In To Earnings Net Of Tax
ReclassificationOfGainLossOnInvestmentsInToEarningsNetOfTax
190000
CY2020 us-gaap Net Income Loss
NetIncomeLoss
45586000
CY2019 spsc Increase Decrease In Operating Leases
IncreaseDecreaseInOperatingLeases
971000
CY2020 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
88562000
CY2019 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
71794000
CY2020 spsc Increase Decrease In Operating Leases
IncreaseDecreaseInOperatingLeases
-1234000
CY2019 us-gaap Net Income Loss
NetIncomeLoss
33712000
CY2020 us-gaap Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
4241000
CY2019 us-gaap Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
7581000
CY2020 us-gaap Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
-85000
CY2019 us-gaap Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
-445000
CY2020 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
13127000
CY2019 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
11123000
CY2020 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
5538000
CY2019 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
5315000
CY2020 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
5660000
CY2019 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
3499000
CY2020 us-gaap Share Based Compensation
ShareBasedCompensation
18936000
CY2019 us-gaap Share Based Compensation
ShareBasedCompensation
14690000
CY2020 us-gaap Other Noncash Income Expense
OtherNoncashIncomeExpense
24000
CY2019 us-gaap Other Noncash Income Expense
OtherNoncashIncomeExpense
574000
CY2020 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
5922000
CY2019 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
6771000
CY2020 us-gaap Increase Decrease In Deferred Charges
IncreaseDecreaseInDeferredCharges
3414000
CY2019 us-gaap Increase Decrease In Deferred Charges
IncreaseDecreaseInDeferredCharges
1441000
CY2020 us-gaap Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
-1201000
CY2019 us-gaap Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
2768000
CY2020 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
1214000
CY2019 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
-489000
CY2020 us-gaap Increase Decrease In Employee Related Liabilities
IncreaseDecreaseInEmployeeRelatedLiabilities
-1257000
CY2019 us-gaap Increase Decrease In Employee Related Liabilities
IncreaseDecreaseInEmployeeRelatedLiabilities
319000
CY2020 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
563000
CY2019 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
706000
CY2020 us-gaap Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
4432000
CY2019 us-gaap Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
6366000
CY2020 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
16467000
CY2019 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
13585000
CY2020 us-gaap Payments To Acquire Other Investments
PaymentsToAcquireOtherInvestments
74797000
CY2019 us-gaap Payments To Acquire Other Investments
PaymentsToAcquireOtherInvestments
73700000
CY2020 us-gaap Proceeds From Sale And Maturity Of Available For Sale Securities
ProceedsFromSaleAndMaturityOfAvailableForSaleSecurities
69461000
CY2019 us-gaap Proceeds From Sale And Maturity Of Available For Sale Securities
ProceedsFromSaleAndMaturityOfAvailableForSaleSecurities
84472000
CY2020 spsc Payments To Acquire Businesses And Intangible Assets Net Of Cash Acquired
PaymentsToAcquireBusinessesAndIntangibleAssetsNetOfCashAcquired
98666000
CY2019 spsc Payments To Acquire Businesses And Intangible Assets Net Of Cash Acquired
PaymentsToAcquireBusinessesAndIntangibleAssetsNetOfCashAcquired
11500000
CY2020 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-120469000
CY2019 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-14313000
CY2020 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
18950000
CY2019 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
20618000
CY2020 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
18592000
CY2019 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
6207000
CY2020 us-gaap Proceeds From Stock Plans
ProceedsFromStockPlans
3374000
CY2019 us-gaap Proceeds From Stock Plans
ProceedsFromStockPlans
2269000
CY2021 us-gaap Payment For Contingent Consideration Liability Financing Activities
PaymentForContingentConsiderationLiabilityFinancingActivities
2042000
CY2020 us-gaap Payment For Contingent Consideration Liability Financing Activities
PaymentForContingentConsiderationLiabilityFinancingActivities
688000
CY2021 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
-8361000
CY2020 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
2328000
CY2019 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
-12142000
CY2021 us-gaap Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
31000
CY2020 us-gaap Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
19000
CY2019 us-gaap Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
54000
CY2021 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
57860000
CY2020 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
-29560000
CY2019 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
45393000
CY2018Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
133859000
CY2021Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
207552000
CY2020Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
149692000
CY2019Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
179252000
CY2021 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
9979000
CY2020 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
1656000
CY2019 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
1545000
CY2021 spsc Non Cash Financing Payments Proceeds From Property And Equipment
NonCashFinancingPaymentsProceedsFromPropertyAndEquipment
-683000
CY2020 spsc Non Cash Financing Payments Proceeds From Property And Equipment
NonCashFinancingPaymentsProceedsFromPropertyAndEquipment
-551000
CY2019 spsc Non Cash Financing Payments Proceeds From Property And Equipment
NonCashFinancingPaymentsProceedsFromPropertyAndEquipment
322000
CY2019Q3 spsc Stock Dividend Percentage In Stock Split
StockDividendPercentageInStockSplit
1
CY2019Q3 us-gaap Stockholders Equity Note Stock Split Conversion Ratio1
StockholdersEquityNoteStockSplitConversionRatio1
2
CY2021 us-gaap Use Of Estimates
UseOfEstimates
<p style="margin-bottom:0pt;margin-top:18pt;text-indent:0%;font-weight:bold;font-style:italic;font-size:10pt;font-family:Times New Roman;text-transform:none;font-variant: normal;">Use of Estimates</p> <p style="margin-bottom:0pt;margin-top:6pt;text-indent:4.54%;color:#000000;font-size:10pt;font-family:Times New Roman;font-weight:normal;font-style:normal;text-transform:none;font-variant: normal;">Preparing financial statements in conformity with GAAP 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 the reported amounts of revenues and expenses during the reporting periods. Actual results could differ from those estimates.</p>
CY2021 us-gaap Number Of Reportable Segments
NumberOfReportableSegments
1
CY2021 us-gaap Number Of Operating Segments
NumberOfOperatingSegments
1
CY2021 us-gaap Concentration Risk Credit Risk
ConcentrationRiskCreditRisk
<p style="margin-bottom:0pt;margin-top:18pt;text-indent:0%;font-weight:bold;font-style:italic;font-size:10pt;font-family:Times New Roman;text-transform:none;font-variant: normal;">Concentration of Credit Risk</p> <p style="margin-bottom:0pt;margin-top:6pt;text-indent:4.54%;font-size:10pt;font-family:Times New Roman;font-weight:normal;font-style:normal;text-transform:none;font-variant: normal;">Financial instruments that potentially subject us to concentrations of credit risk consist principally of cash and cash equivalents in financial institutions in excess of federally insured limits and accounts receivable. Cash and cash equivalents are held with financial institutions that we believe are subject to minimal risk.</p>
CY2021 spsc Deferred Commission Expected Amortization Period
DeferredCommissionExpectedAmortizationPeriod
P2Y
CY2021 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
385276000
CY2020 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
312630000
CY2019 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
279124000
CY2021 spsc Recurring Revenues Timing Of Billings Latest Period
RecurringRevenuesTimingOfBillingsLatestPeriod
P30D
CY2021 spsc Estimated Period For Material Rights Present To Customers
EstimatedPeriodForMaterialRightsPresentToCustomers
P2Y
CY2021 spsc Set Up Fees Recognized Period
SetUpFeesRecognizedPeriod
P2Y
CY2021 spsc Maximum Recognition Period For Miscellaneous One Time Fee
MaximumRecognitionPeriodForMiscellaneousOneTimeFee
P1Y
CY2021Q4 us-gaap Deferred Revenue
DeferredRevenue
37900000
CY2019Q4 us-gaap Deferred Costs Current And Noncurrent
DeferredCostsCurrentAndNoncurrent
46941000
CY2021Q4 spsc Financial Instruments Fair Value
FinancialInstrumentsFairValue
187963000
CY2021 spsc Deferred Costs Incurred
DeferredCostsIncurred
64076000
CY2020 spsc Deferred Costs Incurred
DeferredCostsIncurred
54421000
CY2021 spsc Deferred Costs Amortized
DeferredCostsAmortized
-54951000
CY2020 spsc Deferred Costs Amortized
DeferredCostsAmortized
-50767000
CY2020Q4 us-gaap Deferred Costs Current And Noncurrent
DeferredCostsCurrentAndNoncurrent
50595000
CY2021Q4 spsc Financial Instrument Amortized Cost Basis
FinancialInstrumentAmortizedCostBasis
187957000
CY2021Q4 spsc Financial Instrument Net Unrealized Gain Loss Before Tax
FinancialInstrumentNetUnrealizedGainLossBeforeTax
6000
CY2020Q4 spsc Financial Instrument Amortized Cost Basis
FinancialInstrumentAmortizedCostBasis
153304000
CY2021Q4 spsc Financial Instruments Maturities Within One Year Fair Value
FinancialInstrumentsMaturitiesWithinOneYearFairValue
187963000
CY2020Q4 spsc Financial Instruments Maturities Within One Year Fair Value
FinancialInstrumentsMaturitiesWithinOneYearFairValue
150693000
CY2020Q4 spsc Financial Instruments Maturities Within One To Two Year Fair Value
FinancialInstrumentsMaturitiesWithinOneToTwoYearFairValue
2500000
CY2021Q4 spsc Financial Instruments Fair Value
FinancialInstrumentsFairValue
187963000
CY2020Q4 spsc Financial Instruments Fair Value
FinancialInstrumentsFairValue
153193000
CY2020Q4 us-gaap Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
4233000
CY2019Q4 us-gaap Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
1469000
CY2018Q4 us-gaap Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
1392000
CY2021 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
4717000
CY2020 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
5660000
CY2019 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
3499000
CY2021 us-gaap Allowance For Doubtful Accounts Receivable Write Offs
AllowanceForDoubtfulAccountsReceivableWriteOffs
4790000
CY2020 us-gaap Allowance For Doubtful Accounts Receivable Write Offs
AllowanceForDoubtfulAccountsReceivableWriteOffs
4319000
CY2019 us-gaap Allowance For Doubtful Accounts Receivable Write Offs
AllowanceForDoubtfulAccountsReceivableWriteOffs
3422000
CY2021 us-gaap Allowance For Doubtful Accounts Receivable Period Increase Decrease
AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease
89000
CY2020 us-gaap Allowance For Doubtful Accounts Receivable Period Increase Decrease
AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease
354000
CY2020 us-gaap Accounts Receivable Change In Method Credit Loss Expense Reversal
AccountsReceivableChangeInMethodCreditLossExpenseReversal
1069000
CY2021Q4 us-gaap Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
4249000
CY2020Q4 us-gaap Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
4233000
CY2019Q4 us-gaap Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
1469000
CY2021Q4 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
101967000
CY2020Q4 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
85584000
CY2021Q4 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
70066000
CY2020Q4 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
59152000
CY2021Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
31901000
CY2020Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
26432000
CY2021 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
14788000
CY2020 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
13127000
CY2019 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
11123000
CY2020Q4 us-gaap Goodwill
Goodwill
134853000
CY2021 us-gaap Goodwill Acquired During Period
GoodwillAcquiredDuringPeriod
8914000
CY2020 us-gaap Goodwill Acquired During Period
GoodwillAcquiredDuringPeriod
56960000
CY2021 us-gaap Goodwill Purchase Accounting Adjustments
GoodwillPurchaseAccountingAdjustments
268000
CY2020 us-gaap Goodwill Foreign Currency Translation Gain Loss
GoodwillForeignCurrencyTranslationGainLoss
1048000
CY2020Q4 us-gaap Goodwill
Goodwill
134853000
CY2021Q4 us-gaap Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
96586000
CY2021Q4 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
36604000
CY2021Q4 spsc Finite Lived Intangible Assets Accumulated Foreign Currency Translation Gain Loss
FiniteLivedIntangibleAssetsAccumulatedForeignCurrencyTranslationGainLoss
-1395000
CY2021 us-gaap Finite Lived Intangible Assets Remaining Amortization Period1
FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1
P7Y
CY2020Q4 us-gaap Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
88340000
CY2020Q4 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
28207000
CY2020Q4 spsc Finite Lived Intangible Assets Accumulated Foreign Currency Translation Gain Loss
FiniteLivedIntangibleAssetsAccumulatedForeignCurrencyTranslationGainLoss
97000
CY2020Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
60230000
CY2020 us-gaap Finite Lived Intangible Assets Remaining Amortization Period1
FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1
P7Y
CY2021Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Next Twelve Months
FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
9883000
CY2021Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
9808000
CY2021Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
8534000
CY2021Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Four
FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
8396000
CY2021Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
7392000
CY2021Q4 us-gaap Finite Lived Intangible Assets Amortization Expense After Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
14574000
CY2020Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
15581000
CY2021Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
10851000
CY2021 us-gaap Operating Lease Cost
OperatingLeaseCost
3089000
CY2021 us-gaap Variable Lease Cost
VariableLeaseCost
3660000
CY2020 us-gaap Variable Lease Cost
VariableLeaseCost
3578000
CY2021 us-gaap Lease Cost
LeaseCost
6749000
CY2020 us-gaap Lease Cost
LeaseCost
6297000
CY2019 us-gaap Lease Cost
LeaseCost
5959000
CY2021 us-gaap Operating Lease Payments
OperatingLeasePayments
3757000
CY2020 us-gaap Operating Lease Payments
OperatingLeasePayments
4134000
CY2021 us-gaap Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
992000
CY2020 us-gaap Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
12801000
CY2021Q4 us-gaap Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
P4Y9M18D
CY2020Q4 us-gaap Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
P5Y7M6D
CY2021Q4 us-gaap Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
0.040
CY2020Q4 us-gaap Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
0.041
CY2021Q4 us-gaap Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
4865000
CY2021Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
4687000
CY2021Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
4257000
CY2021Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
3859000
CY2021Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
3772000
CY2021Q4 us-gaap Lessee Operating Lease Liability Payments Due After Year Five
LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
1269000
CY2021Q4 us-gaap Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
22709000
CY2021Q4 us-gaap Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
2175000
CY2021Q4 us-gaap Operating Lease Liability
OperatingLeaseLiability
20534000
CY2021Q4 us-gaap Purchase Commitment Remaining Minimum Amount Committed
PurchaseCommitmentRemainingMinimumAmountCommitted
9900000
CY2021Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
44.76
CY2021Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
678650
CY2021Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Number Of Shares Available For Grant
ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
13500000
CY2021 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
27574000
CY2020 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
18936000
CY2019 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
14690000
CY2018Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
25.93
CY2019 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
184434
CY2019 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
53.92
CY2019 us-gaap Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
346098
CY2019 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
21.98
CY2019 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
40892
CY2019 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Forfeitures In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
30.74
CY2019Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
1543912
CY2019Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
30.03
CY2020 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
127974
CY2020 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
59.02
CY2020 us-gaap Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
712074
CY2020 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
26.11
CY2020 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
14926
CY2020 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Forfeitures In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
43.14
CY2020Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
944886
CY2020Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
36.71
CY2021 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
53223
CY2021 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
105.53
CY2021 us-gaap Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
311378
CY2021 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
30.10
CY2021 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
8081
CY2021 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Forfeitures In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
68.62
CY2021 us-gaap Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested In Period Fair Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
2509000
CY2020 us-gaap Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested In Period Fair Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
3000000
CY2019 us-gaap Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested In Period Fair Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
3393000
CY2021 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
27713000
CY2020 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
31737000
CY2019 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
11103000
CY2021Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
66235000
CY2020Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
67918000
CY2019Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
39194000
CY2021 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
31.31
CY2020 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
16.18
CY2019 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
16.86
CY2021 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Award Vesting Period1
ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
P1Y
CY2018Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
758334
CY2018Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
29.99
CY2019 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Grants In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
288462
CY2019 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
55.69
CY2019 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Vested In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
217424
CY2019 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Vested In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
31.05
CY2019 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Forfeited In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
31826
CY2019 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Forfeitures Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
34.67
CY2019Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
797546
CY2019Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
38.80
CY2020 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Grants In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
331264
CY2020 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
62.78
CY2020 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Vested In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
222606
CY2020 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Vested In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
36.06
CY2020 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Forfeited In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
167782
CY2020 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Forfeitures Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
30.09
CY2020Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
738422
CY2020Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
52.37
CY2021 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Grants In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
314290
CY2021 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
101.85
CY2019 spsc Effective Income Tax Rate Reconciliation Nondeductible Expense For Compensation
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseForCompensation
0.022
CY2020 us-gaap Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
244000
CY2019 us-gaap Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
1156000
CY2021 us-gaap Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
-321000
CY2020 us-gaap Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
-469000
CY2019 us-gaap Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
-161000
CY2021 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Vested In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
331669
CY2021 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Vested In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
44.14
CY2021 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Forfeited In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
18883
CY2021 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Forfeitures Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
66.35
CY2021Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
702160
CY2021Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
78.03
CY2021 us-gaap Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
1559000
CY2021 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
1890000
CY2020 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
1249000
CY2019 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
599000
CY2021 us-gaap Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
1610000
CY2020 us-gaap Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
1608000
CY2019 us-gaap Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
169000
CY2021 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
4294000
CY2020 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
4462000
CY2019 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
6595000
CY2021 us-gaap Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
-88000
CY2021 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
8944000
CY2020 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
7094000
CY2019 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
8358000
CY2021 us-gaap Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
0.210
CY2020 us-gaap Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
0.210
CY2019 us-gaap Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
0.210
CY2021 us-gaap Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
0.045
CY2020 us-gaap Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
0.045
CY2019 us-gaap Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
0.046
CY2021 spsc Effective Income Tax Rate Reconciliation Tax Benefits For Excess Tax Deduction From Stock Activity
EffectiveIncomeTaxRateReconciliationTaxBenefitsForExcessTaxDeductionFromStockActivity
0.128
CY2020 spsc Effective Income Tax Rate Reconciliation Tax Benefits For Excess Tax Deduction From Stock Activity
EffectiveIncomeTaxRateReconciliationTaxBenefitsForExcessTaxDeductionFromStockActivity
0.129
CY2019 spsc Effective Income Tax Rate Reconciliation Tax Benefits For Excess Tax Deduction From Stock Activity
EffectiveIncomeTaxRateReconciliationTaxBenefitsForExcessTaxDeductionFromStockActivity
0.060
CY2021 spsc Effective Income Tax Rate Reconciliation Nondeductible Expense For Compensation
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseForCompensation
0.050
CY2020 spsc Effective Income Tax Rate Reconciliation Nondeductible Expense For Compensation
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseForCompensation
0.018
CY2021 us-gaap Effective Income Tax Rate Reconciliation Tax Credits Research
EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
0.011
CY2020 us-gaap Effective Income Tax Rate Reconciliation Tax Credits Research
EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
0.006
CY2019 us-gaap Effective Income Tax Rate Reconciliation Tax Credits Research
EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
0.030
CY2021 spsc Effective Income Tax Rate Reconciliation Foreign Derived Intangible Income
EffectiveIncomeTaxRateReconciliationForeignDerivedIntangibleIncome
0.013
CY2020 spsc Effective Income Tax Rate Reconciliation Foreign Derived Intangible Income
EffectiveIncomeTaxRateReconciliationForeignDerivedIntangibleIncome
0.013
CY2021 us-gaap Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
0.014
CY2020 us-gaap Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
0.010
CY2019 us-gaap Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
0.011
CY2021 us-gaap Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
0.167
CY2020 us-gaap Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
0.135
CY2019 us-gaap Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
0.199
CY2021Q4 spsc Deferred Tax Assets Operating Loss And Tax Credit Carryforwards
DeferredTaxAssetsOperatingLossAndTaxCreditCarryforwards
4828000
CY2020Q4 spsc Deferred Tax Assets Operating Loss And Tax Credit Carryforwards
DeferredTaxAssetsOperatingLossAndTaxCreditCarryforwards
4539000
CY2021Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
3934000
CY2020Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
3605000
CY2021Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
1336000
CY2020Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
1228000
CY2021Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
5174000
CY2020Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
3200000
CY2021Q4 us-gaap Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
1300000
CY2020Q4 us-gaap Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
695000
CY2021Q4 spsc Deferred Tax Assets Operating Lease Liabilities
DeferredTaxAssetsOperatingLeaseLiabilities
5235000
CY2020Q4 spsc Deferred Tax Assets Operating Lease Liabilities
DeferredTaxAssetsOperatingLeaseLiabilities
5435000
CY2021Q4 us-gaap Deferred Tax Assets Other
DeferredTaxAssetsOther
142000
CY2020Q4 us-gaap Deferred Tax Assets Other
DeferredTaxAssetsOther
660000
CY2021Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
21949000
CY2020Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
19362000
CY2021Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
1815000
CY2020Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
1582000
CY2021Q4 us-gaap Deferred Tax Assets Net
DeferredTaxAssetsNet
20134000
CY2020Q4 us-gaap Deferred Tax Assets Net
DeferredTaxAssetsNet
17780000
CY2021Q4 spsc Deferred Tax Liabilities Deferred Revenue And Expense
DeferredTaxLiabilitiesDeferredRevenueAndExpense
15126000
CY2020Q4 spsc Deferred Tax Liabilities Deferred Revenue And Expense
DeferredTaxLiabilitiesDeferredRevenueAndExpense
12561000
CY2021Q4 spsc Deferred Tax Liabilities Right Of Use Assets
DeferredTaxLiabilitiesRightOfUseAssets
2787000
CY2020Q4 spsc Deferred Tax Liabilities Right Of Use Assets
DeferredTaxLiabilitiesRightOfUseAssets
3754000
CY2021Q4 us-gaap Deferred Tax Liabilities Undistributed Foreign Earnings
DeferredTaxLiabilitiesUndistributedForeignEarnings
364000
CY2020Q4 us-gaap Deferred Tax Liabilities Undistributed Foreign Earnings
DeferredTaxLiabilitiesUndistributedForeignEarnings
228000
CY2021Q4 spsc Deferred Tax Liabilities Property Plant And Equipment And Other Finite Lived Assets
DeferredTaxLiabilitiesPropertyPlantAndEquipmentAndOtherFiniteLivedAssets
8820000
CY2020Q4 spsc Deferred Tax Liabilities Property Plant And Equipment And Other Finite Lived Assets
DeferredTaxLiabilitiesPropertyPlantAndEquipmentAndOtherFiniteLivedAssets
3980000
CY2021Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
27097000
CY2020Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
20523000
CY2021Q4 us-gaap Deferred Tax Liabilities
DeferredTaxLiabilities
6963000
CY2020Q4 us-gaap Deferred Tax Liabilities
DeferredTaxLiabilities
2743000
CY2021 us-gaap Investment Income Net
InvestmentIncomeNet
278000
CY2020 us-gaap Investment Income Net
InvestmentIncomeNet
1208000
CY2019 us-gaap Investment Income Net
InvestmentIncomeNet
2947000
CY2021 us-gaap Foreign Currency Transaction Gain Loss Before Tax
ForeignCurrencyTransactionGainLossBeforeTax
-1456000
CY2020 us-gaap Foreign Currency Transaction Gain Loss Before Tax
ForeignCurrencyTransactionGainLossBeforeTax
1753000
CY2020 us-gaap Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
-85000
CY2019 us-gaap Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
-445000
CY2021 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
-366000
CY2020 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
-354000
CY2019 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
1162000
CY2021 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-1544000
CY2020 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
2522000
CY2019 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
3664000
CY2021 us-gaap Net Income Loss
NetIncomeLoss
44597000
CY2020 us-gaap Net Income Loss
NetIncomeLoss
45586000
CY2019 us-gaap Net Income Loss
NetIncomeLoss
33712000
CY2021 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
35928000
CY2020 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
35226000
CY2019 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
35024000
CY2021 us-gaap Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
529000
CY2020 us-gaap Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
611000
CY2019 us-gaap Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
680000
CY2021 us-gaap Incremental Common Shares Attributable To Contingently Issuable Shares
IncrementalCommonSharesAttributableToContingentlyIssuableShares
505000
CY2020 us-gaap Incremental Common Shares Attributable To Contingently Issuable Shares
IncrementalCommonSharesAttributableToContingentlyIssuableShares
448000
CY2019 us-gaap Incremental Common Shares Attributable To Contingently Issuable Shares
IncrementalCommonSharesAttributableToContingentlyIssuableShares
298000
CY2021 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
36962000
CY2020 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
36285000
CY2019 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
36002000
CY2021 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.24
CY2020 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.29
CY2019 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.96
CY2021 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.21
CY2020 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.26
CY2019 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.94
CY2021 us-gaap Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
31000
CY2020 us-gaap Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
26000
CY2019 us-gaap Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
181000
CY2021 us-gaap Defined Contribution Plan Maximum Annual Contributions Per Employee Percent
DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent
0.80
CY2019 us-gaap Defined Contribution Plan Maximum Annual Contributions Per Employee Percent
DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent
0.80
CY2020 us-gaap Defined Contribution Plan Maximum Annual Contributions Per Employee Percent
DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent
0.80
CY2021 us-gaap Defined Contribution Plan Employer Matching Contribution Percent Of Match
DefinedContributionPlanEmployerMatchingContributionPercentOfMatch
0.50
CY2020 us-gaap Defined Contribution Plan Employer Matching Contribution Percent Of Match
DefinedContributionPlanEmployerMatchingContributionPercentOfMatch
0.50
CY2021 us-gaap Defined Contribution Plan Employer Matching Contribution Percent
DefinedContributionPlanEmployerMatchingContributionPercent
0.06
CY2021 spsc Defined Contribution Plan Employer Not Note Discretionary Contribution Amount
DefinedContributionPlanEmployerNotNoteDiscretionaryContributionAmount
4790000
CY2020 spsc Defined Contribution Plan Employer Not Note Discretionary Contribution Amount
DefinedContributionPlanEmployerNotNoteDiscretionaryContributionAmount
3889000
CY2019 spsc Defined Contribution Plan Employer Not Note Discretionary Contribution Amount
DefinedContributionPlanEmployerNotNoteDiscretionaryContributionAmount
3306000
CY2021 spsc Number Of Jurisdiction Outside Us Had Excess Revenue Of Ten Percentage
NumberOfJurisdictionOutsideUSHadExcessRevenueOfTenPercentage
0
CY2021 us-gaap Related Party Transaction Amounts Of Transaction
RelatedPartyTransactionAmountsOfTransaction
2400000
CY2020 us-gaap Related Party Transaction Amounts Of Transaction
RelatedPartyTransactionAmountsOfTransaction
1800000
CY2019 us-gaap Related Party Transaction Amounts Of Transaction
RelatedPartyTransactionAmountsOfTransaction
10000

Files In Submission

Name View Source Status
0001564590-22-005952-index-headers.html Edgar Link pending
0001564590-22-005952-index.html Edgar Link pending
0001564590-22-005952.txt Edgar Link pending
0001564590-22-005952-xbrl.zip Edgar Link pending
FilingSummary.xml Edgar Link unprocessable
Financial_Report.xlsx Edgar Link pending
gmsfqf3agyt1000001.jpg Edgar Link pending
gmsfqf3agyt1000002.jpg Edgar Link pending
gmsfqf3agyt1000022.jpg Edgar Link pending
MetaLinks.json 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
R74.htm Edgar Link pending
R75.htm Edgar Link pending
R76.htm Edgar Link pending
R77.htm Edgar Link pending
R78.htm Edgar Link pending
R79.htm Edgar Link pending
R8.htm Edgar Link pending
R80.htm Edgar Link pending
R81.htm Edgar Link pending
R82.htm Edgar Link pending
R83.htm Edgar Link pending
R84.htm Edgar Link pending
R85.htm Edgar Link pending
R86.htm Edgar Link pending
R87.htm Edgar Link pending
R88.htm Edgar Link pending
R89.htm Edgar Link pending
R9.htm Edgar Link pending
R90.htm Edgar Link pending
R91.htm Edgar Link pending
R92.htm Edgar Link pending
R93.htm Edgar Link pending
R94.htm Edgar Link pending
report.css Edgar Link pending
Show.js Edgar Link pending
spsc-10k_20211231.htm Edgar Link pending
spsc-10k_20211231_htm.xml Edgar Link completed
spsc-20211231.xsd Edgar Link pending
spsc-20211231_cal.xml Edgar Link unprocessable
spsc-20211231_def.xml Edgar Link unprocessable
spsc-20211231_lab.xml Edgar Link unprocessable
spsc-20211231_pre.xml Edgar Link unprocessable
spsc-ex211_8.htm Edgar Link pending
spsc-ex231_10.htm Edgar Link pending
spsc-ex311_9.htm Edgar Link pending
spsc-ex312_6.htm Edgar Link pending
spsc-ex321_11.htm Edgar Link pending