2020 Form 10-K Financial Statement

#000156459021007614 Filed on February 23, 2021

View on sec.gov

Income Statement

Concept 2020 2019 Q4 2019
Revenue $312.6M $72.73M $279.1M
YoY Change 12.0% 11.57% 12.44%
Cost Of Revenue $99.84M $23.91M $92.24M
YoY Change 8.24% 12.89% 104.67%
Gross Profit $212.8M $48.82M $186.9M
YoY Change 13.86% 10.93% 83.41%
Gross Profit Margin 68.07% 67.13% 66.95%
Selling, General & Admin $126.1M $28.78M $114.9M
YoY Change 9.79% 1.77% 1.13%
% of Gross Profit 59.26% 58.95% 61.46%
Research & Development $31.00M $7.860M $28.31M
YoY Change 9.52% 20.55% 28.15%
% of Gross Profit 14.57% 16.1% 15.15%
Depreciation & Amortization $13.13M $4.400M $11.12M
YoY Change 18.02% 34.15% 29.34%
% of Gross Profit 6.17% 9.01% 5.95%
Operating Expenses $162.6M $38.06M $148.5M
YoY Change 9.53% 6.31% 6.24%
Operating Profit $50.16M $10.76M $38.41M
YoY Change 30.6% 31.12% 43.68%
Interest Expense $1.100M $710.0K $2.900M
YoY Change -62.07% -4.05% 26.09%
% of Operating Profit 2.19% 6.6% 7.55%
Other Income/Expense, Net $2.522M $320.0K $3.664M
YoY Change -31.17% -277.78% 127.72%
Pretax Income $52.68M $11.80M $42.07M
YoY Change 25.22% 34.55% 48.45%
Income Tax $7.094M $2.640M $8.358M
% Of Pretax Income 13.47% 22.37% 19.87%
Net Earnings $45.59M $9.162M $33.71M
YoY Change 35.22% 28.3% 41.22%
Net Earnings / Revenue 14.58% 12.6% 12.08%
Basic Earnings Per Share $1.29 $0.96
Diluted Earnings Per Share $1.26 $0.25 $0.94
COMMON SHARES
Basic Shares Outstanding 35.23M 34.84M 35.02M
Diluted Shares Outstanding 36.29M 36.00M

Balance Sheet

Concept 2020 2019 Q4 2019
SHORT-TERM ASSETS
Cash & Short-Term Investments $187.5M $213.5M $213.5M
YoY Change -12.18% 19.67% 19.67%
Cash & Equivalents $149.7M $179.3M $179.3M
Short-Term Investments $37.80M $34.30M $34.30M
Other Short-Term Assets $50.30M $11.28M $46.60M
YoY Change 7.94% 22.21% 6.64%
Inventory
Prepaid Expenses
Receivables $33.60M $31.53M $31.50M
Other Receivables $0.00 $0.00 $0.00
Total Short-Term Assets $271.4M $291.6M $291.6M
YoY Change -6.93% 16.83% 16.83%
LONG-TERM ASSETS
Property, Plant & Equipment $42.00M $23.75M $39.50M
YoY Change 6.33% 13.34% 88.1%
Goodwill $76.85M
YoY Change 10.32%
Intangibles
YoY Change
Long-Term Investments $2.500M
YoY Change
Other Assets $15.50M $2.513M $16.80M
YoY Change -7.74% 45.85% -27.59%
Total Long-Term Assets $255.1M $155.8M $155.8M
YoY Change 63.74% 14.15% 14.14%
TOTAL ASSETS
Total Short-Term Assets $271.4M $291.6M $291.6M
Total Long-Term Assets $255.1M $155.8M $155.8M
Total Assets $526.5M $447.4M $447.4M
YoY Change 17.68% 15.88% 15.88%
SHORT-TERM LIABILITIES
YoY Change
Accounts Payable $5.400M $4.274M $4.300M
YoY Change 25.58% -3.74% -2.27%
Accrued Expenses $36.80M $6.207M $32.30M
YoY Change 13.93% 36.18% 29.2%
Deferred Revenue $31.46M
YoY Change 24.22%
Short-Term Debt $0.00 $0.00 $0.00
YoY Change
Long-Term Debt Due
YoY Change
Total Short-Term Liabilities $80.10M $68.03M $68.00M
YoY Change 17.79% 20.36% 20.35%
LONG-TERM LIABILITIES
Long-Term Debt $0.00 $0.00 $0.00
YoY Change
Other Long-Term Liabilities $22.70M $405.0K $23.30M
YoY Change -2.58% -70.39% 150.54%
Total Long-Term Liabilities $22.70M $405.0K $23.30M
YoY Change -2.58% -70.39% 150.54%
TOTAL LIABILITIES
Total Short-Term Liabilities $80.10M $68.03M $68.00M
Total Long-Term Liabilities $22.70M $405.0K $23.30M
Total Liabilities $105.7M $92.56M $92.60M
YoY Change 14.15% 37.85% 38.0%
SHAREHOLDERS EQUITY
Retained Earnings $48.97M
YoY Change 220.9%
Common Stock $354.2M
YoY Change 6.48%
Preferred Stock
YoY Change
Treasury Stock (at cost)
YoY Change
Treasury Stock Shares
Shareholders Equity $420.7M $354.9M $354.9M
YoY Change
Total Liabilities & Shareholders Equity $526.5M $447.4M $447.4M
YoY Change 17.68% 15.88% 15.88%

Cashflow Statement

Concept 2020 2019 Q4 2019
OPERATING ACTIVITIES
Net Income $45.59M $9.162M $33.71M
YoY Change 35.22% 28.3% 41.22%
Depreciation, Depletion And Amortization $13.13M $4.400M $11.12M
YoY Change 18.02% 34.15% 29.34%
Cash From Operating Activities $88.56M $20.83M $71.79M
YoY Change 23.36% 19.23% 30.5%
INVESTING ACTIVITIES
Capital Expenditures $16.47M -$5.200M $13.59M
YoY Change 21.21% 34.37% -1.2%
Acquisitions
YoY Change
Other Investing Activities -$104.0M $17.51M -$730.0K
YoY Change 14146.58% -179.95% -97.27%
Cash From Investing Activities -$120.5M $12.32M -$14.31M
YoY Change 741.68% -147.79% -64.63%
FINANCING ACTIVITIES
Cash Dividend Paid
YoY Change
Common Stock Issuance & Retirement, Net $18.95M $20.62M
YoY Change -8.09% 3.8%
Debt Paid & Issued, Net
YoY Change
Cash From Financing Activities 2.328M -3.600M -12.14M
YoY Change -119.17% 41.18% 221.64%
NET CHANGE
Cash From Operating Activities 88.56M 20.83M 71.79M
Cash From Investing Activities -120.5M 12.32M -14.31M
Cash From Financing Activities 2.328M -3.600M -12.14M
Net Change In Cash -29.56M 29.55M 45.39M
YoY Change -165.12% -372.1% 322.97%
FREE CASH FLOW
Cash From Operating Activities $88.56M $20.83M $71.79M
Capital Expenditures $16.47M -$5.200M $13.59M
Free Cash Flow $72.10M $26.03M $58.21M
YoY Change 23.86% 21.98% 41.06%

Facts In Submission

Frame Concept Type Concept / XBRL Key Value Unit
CY2020Q4 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
CY2019Q4 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
CY2020Q4 us-gaap Preferred Stock Value
PreferredStockValue
CY2019Q4 us-gaap Preferred Stock Value
PreferredStockValue
CY2020 dei Entity Address Address Line1
EntityAddressAddressLine1
333 South Seventh Street
CY2020 dei Security Exchange Name
SecurityExchangeName
NASDAQ
CY2020 dei Entity Interactive Data Current
EntityInteractiveDataCurrent
Yes
CY2019Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
179252000
CY2019Q4 us-gaap Short Term Investments
ShortTermInvestments
34284000
CY2020Q4 us-gaap Accounts Receivable Gross Current
AccountsReceivableGrossCurrent
37811000
CY2019Q4 us-gaap Accounts Receivable Gross Current
AccountsReceivableGrossCurrent
33001000
CY2020Q4 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
4233000
CY2019Q4 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
1469000
CY2020Q4 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
33578000
CY2019Q4 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
31532000
CY2020Q4 us-gaap Deferred Costs Current
DeferredCostsCurrent
37988000
CY2019Q4 us-gaap Deferred Costs Current
DeferredCostsCurrent
35274000
CY2020Q4 us-gaap Other Assets Current
OtherAssetsCurrent
12312000
CY2019Q4 us-gaap Other Assets Current
OtherAssetsCurrent
11279000
CY2020Q4 us-gaap Assets Current
AssetsCurrent
271356000
CY2019Q4 us-gaap Assets Current
AssetsCurrent
291621000
CY2020Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
26432000
CY2019Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
23752000
CY2020Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
15581000
CY2019Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
15744000
CY2020Q4 us-gaap Goodwill
Goodwill
134853000
CY2019Q4 us-gaap Goodwill
Goodwill
76845000
CY2020Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
60230000
CY2019Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
22668000
CY2020Q4 us-gaap Marketable Securities Noncurrent
MarketableSecuritiesNoncurrent
2500000
CY2020Q4 us-gaap Deferred Costs
DeferredCosts
12607000
CY2020 dei Document Annual Report
DocumentAnnualReport
true
CY2020 dei Document Transition Report
DocumentTransitionReport
false
CY2020 dei Entity File Number
EntityFileNumber
001-34702
CY2020 dei Entity Incorporation State Country Code
EntityIncorporationStateCountryCode
DE
CY2020 dei Entity Tax Identification Number
EntityTaxIdentificationNumber
41-2015127
CY2020 dei Entity Address Address Line2
EntityAddressAddressLine2
Suite 1000
CY2020 dei Entity Address City Or Town
EntityAddressCityOrTown
Minneapolis
CY2020 dei Entity Address State Or Province
EntityAddressStateOrProvince
MN
CY2020 dei Entity Address Postal Zip Code
EntityAddressPostalZipCode
55402
CY2020 dei City Area Code
CityAreaCode
612
CY2020 dei Local Phone Number
LocalPhoneNumber
435-9400
CY2020 dei Security12b Title
Security12bTitle
Common Stock, par value $0.001 per share
CY2020 dei Icfr Auditor Attestation Flag
IcfrAuditorAttestationFlag
true
CY2020Q2 dei Entity Public Float
EntityPublicFloat
2600000000
CY2021Q1 dei Entity Common Stock Shares Outstanding
EntityCommonStockSharesOutstanding
35583977
CY2019 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
279124000
CY2019 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
42070000
CY2020 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
7094000
CY2019 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
8358000
CY2020 us-gaap Net Income Loss
NetIncomeLoss
45586000
CY2019 us-gaap Net Income Loss
NetIncomeLoss
33712000
CY2018 us-gaap Net Income Loss
NetIncomeLoss
23872000
CY2020 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
2522000
CY2020 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
52680000
CY2018 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
4468000
CY2020 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
312630000
CY2018 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
248240000
CY2018 us-gaap Operating Expenses
OperatingExpenses
139761000
CY2018 us-gaap Operating Income Loss
OperatingIncomeLoss
26731000
CY2020 us-gaap Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
-1201000
CY2019Q4 us-gaap Deferred Costs
DeferredCosts
11667000
CY2020Q4 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
2705000
CY2020Q4 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
194000
CY2019Q4 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
2630000
CY2019Q4 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
2513000
CY2020Q4 us-gaap Assets
Assets
526458000
CY2019Q4 us-gaap Assets
Assets
447440000
CY2020Q4 us-gaap Accounts Payable Current
AccountsPayableCurrent
5354000
CY2019Q4 us-gaap Accounts Payable Current
AccountsPayableCurrent
4274000
CY2020Q4 us-gaap Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
22872000
CY2019Q4 us-gaap Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
22303000
CY2020Q4 us-gaap Accrued Liabilities Current
AccruedLiabilitiesCurrent
11161000
CY2019Q4 us-gaap Accrued Liabilities Current
AccruedLiabilitiesCurrent
6207000
CY2020Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
37947000
CY2019Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
31463000
CY2020Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
2798000
CY2019Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
3783000
CY2020Q4 us-gaap Liabilities Current
LiabilitiesCurrent
80132000
CY2019Q4 us-gaap Liabilities Current
LiabilitiesCurrent
68030000
CY2020Q4 us-gaap Contract With Customer Liability Noncurrent
ContractWithCustomerLiabilityNoncurrent
2996000
CY2019Q4 us-gaap Contract With Customer Liability Noncurrent
ContractWithCustomerLiabilityNoncurrent
2851000
CY2020Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
19672000
CY2019Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
20085000
CY2020Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
2937000
CY2019Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
1193000
CY2019Q4 us-gaap Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
405000
CY2020Q4 us-gaap Liabilities
Liabilities
105737000
CY2019Q4 us-gaap Liabilities
Liabilities
92564000
CY2020Q4 us-gaap Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
0.001
CY2019Q4 us-gaap Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
0.001
CY2020Q4 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
5000000
CY2019Q4 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
5000000
CY2020Q4 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2020Q4 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2019Q4 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2019Q4 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2020Q4 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.001
CY2019Q4 us-gaap Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
0.001
CY2020Q4 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
110000000
CY2019Q4 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
55000000
CY2020Q4 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
37100467
CY2019Q4 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
36104619
CY2020Q4 us-gaap Common Stock Shares Outstanding
CommonStockSharesOutstanding
35487217
CY2019Q4 us-gaap Common Stock Shares Outstanding
CommonStockSharesOutstanding
34863271
CY2020Q4 us-gaap Common Stock Value
CommonStockValue
37000
CY2019Q4 us-gaap Common Stock Value
CommonStockValue
36000
CY2020Q4 us-gaap Treasury Stock Common Shares
TreasuryStockCommonShares
1613250
CY2019Q4 us-gaap Treasury Stock Common Shares
TreasuryStockCommonShares
1241348
CY2020Q4 us-gaap Treasury Stock Common Value
TreasuryStockCommonValue
65247000
CY2019Q4 us-gaap Treasury Stock Common Value
TreasuryStockCommonValue
46297000
CY2020Q4 us-gaap Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
393462000
CY2019Q4 us-gaap Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
354115000
CY2020Q4 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
93490000
CY2019Q4 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
48973000
CY2020Q4 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
-1021000
CY2019Q4 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
-1951000
CY2020Q4 us-gaap Stockholders Equity
StockholdersEquity
420721000
CY2019 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
35024000
CY2018 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
34392000
CY2020 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
36285000
CY2019 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
36002000
CY2018 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
35212000
CY2019Q4 us-gaap Stockholders Equity
StockholdersEquity
354876000
CY2020Q4 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
526458000
CY2019Q4 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
447440000
CY2019 us-gaap Cost Of Revenue
CostOfRevenue
92239000
CY2020 us-gaap General And Administrative Expense
GeneralAndAdministrativeExpense
50119000
CY2020 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
5538000
CY2019 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
5315000
CY2020 us-gaap Operating Expenses
OperatingExpenses
162636000
CY2019 us-gaap Operating Expenses
OperatingExpenses
148479000
CY2020 us-gaap Operating Income Loss
OperatingIncomeLoss
50158000
CY2019 us-gaap Operating Income Loss
OperatingIncomeLoss
38406000
CY2020 us-gaap Interest Income Expense Net
InterestIncomeExpenseNet
1103000
CY2019 us-gaap Interest Income Expense Net
InterestIncomeExpenseNet
2947000
CY2018 us-gaap Interest Income Expense Net
InterestIncomeExpenseNet
2329000
CY2020 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
1334000
CY2018 us-gaap Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
94000
CY2020 us-gaap Other Comprehensive Income Unrealized Holding Gain Loss On Securities Arising During Period Tax
OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
-3000
CY2019 us-gaap Other Comprehensive Income Unrealized Holding Gain Loss On Securities Arising During Period Tax
OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
122000
CY2018 us-gaap Other Comprehensive Income Unrealized Holding Gain Loss On Securities Arising During Period Tax
OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
132000
CY2019 us-gaap Other Comprehensive Income Unrealized Holding Gain Loss On Securities Arising During Period Net Of Tax
OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
367000
CY2020 us-gaap Other Comprehensive Income Loss Reclassification Adjustment From Aoci For Sale Of Securities Tax
OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesTax
-52000
CY2019 us-gaap Other Comprehensive Income Loss Reclassification Adjustment From Aoci For Sale Of Securities Tax
OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesTax
-133000
CY2018 us-gaap Other Comprehensive Income Loss Reclassification Adjustment From Aoci For Sale Of Securities Tax
OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesTax
-91000
CY2018 us-gaap Other Comprehensive Income Loss Reclassification Adjustment From Aoci For Sale Of Securities Net Of Tax
OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
273000
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
CY2018 us-gaap Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
-3875000
CY2020 us-gaap Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
46516000
CY2020 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.29
CY2019 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.96
CY2018 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.69
CY2020 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.26
CY2019 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.94
CY2018 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.68
CY2020 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
35226000
CY2017Q4 us-gaap Stockholders Equity
StockholdersEquity
288111000
CY2018 us-gaap Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
11270000
CY2018 spsc Stock Issued During Period Value Restricted Stock And Stock Options Exercised
StockIssuedDuringPeriodValueRestrictedStockAndStockOptionsExercised
14344000
CY2018 us-gaap Stock Issued During Period Value Employee Stock Purchase Plan
StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
1745000
CY2019 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
272000
CY2018 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
-626000
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
CY2019 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
3664000
CY2018 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
1609000
CY2018 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
28340000
CY2020Q4 spsc Financial Instruments Maturities Within One Year Fair Value
FinancialInstrumentsMaturitiesWithinOneYearFairValue
150693000
CY2018 us-gaap Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
19864000
CY2018 us-gaap Stock Issued During Period Value Acquisitions
StockIssuedDuringPeriodValueAcquisitions
3371000
CY2018 us-gaap Net Income Loss
NetIncomeLoss
23872000
CY2018 us-gaap Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
-3999000
CY2018 us-gaap Other Comprehensive Income Loss Available For Sale Securities Adjustment Net Of Tax
OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
397000
CY2018 spsc Reclassification Of Gain Loss On Investments In To Earnings Net Of Tax
ReclassificationOfGainLossOnInvestmentsInToEarningsNetOfTax
-273000
CY2018Q4 us-gaap Stockholders Equity
StockholdersEquity
318974000
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 Restricted Stock And Stock Options Exercised
StockIssuedDuringPeriodValueRestrictedStockAndStockOptionsExercised
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
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 Restricted Stock And Stock Options Exercised
StockIssuedDuringPeriodValueRestrictedStockAndStockOptionsExercised
18592000
CY2020 us-gaap Stock Issued During Period Value Employee Stock Purchase Plan
StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
3374000
CY2020 us-gaap Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
18950000
CY2020 us-gaap Net Income Loss
NetIncomeLoss
45586000
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
CY2020 us-gaap Net Income Loss
NetIncomeLoss
45586000
CY2019 us-gaap Net Income Loss
NetIncomeLoss
33712000
CY2018 us-gaap Net Income Loss
NetIncomeLoss
23872000
CY2020 us-gaap Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
4241000
CY2019 us-gaap Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
7581000
CY2018 us-gaap Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
2798000
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
CY2018 us-gaap Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
94000
CY2020 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
13127000
CY2019 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
11123000
CY2018 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
8593000
CY2020 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
5538000
CY2019 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
5315000
CY2018 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
4093000
CY2020 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
5660000
CY2019 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
3499000
CY2018 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
2592000
CY2020 us-gaap Share Based Compensation
ShareBasedCompensation
18936000
CY2019 us-gaap Share Based Compensation
ShareBasedCompensation
14690000
CY2018 us-gaap Share Based Compensation
ShareBasedCompensation
12510000
CY2020 us-gaap Other Noncash Income Expense
OtherNoncashIncomeExpense
24000
CY2019 us-gaap Other Noncash Income Expense
OtherNoncashIncomeExpense
574000
CY2018 us-gaap Other Noncash Income Expense
OtherNoncashIncomeExpense
364000
CY2020 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
5922000
CY2019 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
6771000
CY2018 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
4569000
CY2020 us-gaap Increase Decrease In Deferred Charges
IncreaseDecreaseInDeferredCharges
3414000
CY2019 us-gaap Increase Decrease In Deferred Charges
IncreaseDecreaseInDeferredCharges
1441000
CY2018 us-gaap Increase Decrease In Deferred Charges
IncreaseDecreaseInDeferredCharges
5564000
CY2019 us-gaap Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
2768000
CY2018 us-gaap Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
3333000
CY2020 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
1214000
CY2019 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
-489000
CY2018 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
937000
CY2020 us-gaap Increase Decrease In Employee Related Liabilities
IncreaseDecreaseInEmployeeRelatedLiabilities
-1257000
CY2019 us-gaap Increase Decrease In Employee Related Liabilities
IncreaseDecreaseInEmployeeRelatedLiabilities
319000
CY2018 us-gaap Increase Decrease In Employee Related Liabilities
IncreaseDecreaseInEmployeeRelatedLiabilities
3957000
CY2020 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
563000
CY2019 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
706000
CY2018 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
-135000
CY2020 us-gaap Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
4432000
CY2019 us-gaap Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
6366000
CY2018 us-gaap Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
7094000
CY2018 us-gaap Increase Decrease In Other Deferred Liability
IncreaseDecreaseInOtherDeferredLiability
2440000
CY2020 spsc Increase Decrease In Operating Leases
IncreaseDecreaseInOperatingLeases
-1234000
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
CY2018 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
55015000
CY2020 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
16467000
CY2019 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
13585000
CY2018 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
13750000
CY2020 us-gaap Payments To Acquire Other Investments
PaymentsToAcquireOtherInvestments
74797000
CY2019 us-gaap Payments To Acquire Other Investments
PaymentsToAcquireOtherInvestments
73700000
CY2018 us-gaap Payments To Acquire Other Investments
PaymentsToAcquireOtherInvestments
81666000
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
CY2018 us-gaap Proceeds From Sale And Maturity Of Available For Sale Securities
ProceedsFromSaleAndMaturityOfAvailableForSaleSecurities
82224000
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
CY2018 spsc Payments To Acquire Businesses And Intangible Assets Net Of Cash Acquired
PaymentsToAcquireBusinessesAndIntangibleAssetsNetOfCashAcquired
27273000
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
CY2018 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-40465000
CY2020 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
18950000
CY2019 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
20618000
CY2018 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
19864000
CY2020 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
18592000
CY2019 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
6207000
CY2018 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
14344000
CY2020 us-gaap Proceeds From Stock Plans
ProceedsFromStockPlans
3374000
CY2019 us-gaap Proceeds From Stock Plans
ProceedsFromStockPlans
2269000
CY2018 us-gaap Proceeds From Stock Plans
ProceedsFromStockPlans
1745000
CY2020 spsc Payment For Earn Out Liability
PaymentForEarnOutLiability
688000
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
CY2018 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
-3775000
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
CY2018 us-gaap Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
-43000
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
CY2018 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
10732000
CY2019Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
179252000
CY2018Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
133859000
CY2017Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
123127000
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
CY2018Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
133859000
CY2020 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
1656000
CY2019 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
1545000
CY2018 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
1534000
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
CY2018 spsc Non Cash Financing Payments Proceeds From Property And Equipment
NonCashFinancingPaymentsProceedsFromPropertyAndEquipment
405000
CY2018 us-gaap Stock Issued1
StockIssued1
3371000
CY2019Q3 us-gaap Stockholders Equity Note Stock Split Conversion Ratio1
StockholdersEquityNoteStockSplitConversionRatio1
2
CY2019Q3 spsc Stock Dividend Percentage In Stock Split
StockDividendPercentageInStockSplit
1
CY2020 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.79%;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>
CY2020 us-gaap Number Of Reportable Segments
NumberOfReportableSegments
1
CY2020 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.79%;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>
CY2020Q4 us-gaap Fair Value Assets Level1 To Level2 Transfers Amount
FairValueAssetsLevel1ToLevel2TransfersAmount
0
CY2020 spsc Deferred Commission Expected Amortization Period
DeferredCommissionExpectedAmortizationPeriod
P2Y
CY2019Q4 us-gaap Fair Value Liabilities Level2 To Level1 Transfers Amount
FairValueLiabilitiesLevel2ToLevel1TransfersAmount
0
CY2020 us-gaap Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Asset Transfers Into Level3
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
0
CY2019 us-gaap Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Asset Transfers Into Level3
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3
0
CY2020 us-gaap Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Asset Transfers Out Of Level3
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
0
CY2020 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
312630000
CY2019 us-gaap Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Asset Transfers Out Of Level3
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersOutOfLevel3
0
CY2019 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
279124000
CY2018 us-gaap Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
248240000
CY2020 spsc Recurring Revenues Timing Of Billings Latest Period
RecurringRevenuesTimingOfBillingsLatestPeriod
P30D
CY2020 spsc Estimated Period For Material Rights Present To Customers
EstimatedPeriodForMaterialRightsPresentToCustomers
P2Y
CY2019Q4 us-gaap Fair Value Assets Level1 To Level2 Transfers Amount
FairValueAssetsLevel1ToLevel2TransfersAmount
0
CY2020 spsc Set Up Fees Recognized Period
SetUpFeesRecognizedPeriod
P2Y
CY2020 spsc Maximum Recognition Period For Miscellaneous One Time Fee
MaximumRecognitionPeriodForMiscellaneousOneTimeFee
P1Y
CY2020 us-gaap Fair Value Measurement With Unobservable Inputs Reconciliation Liability Transfers Into Level3
FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersIntoLevel3
0
CY2019 us-gaap Fair Value Measurement With Unobservable Inputs Reconciliation Liability Transfers Into Level3
FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersIntoLevel3
0
CY2020Q4 us-gaap Deferred Costs Current And Noncurrent
DeferredCostsCurrentAndNoncurrent
50595000
CY2020 us-gaap Fair Value Measurement With Unobservable Inputs Reconciliation Liability Transfers Out Of Level3
FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersOutOfLevel3
0
CY2019Q4 spsc Financial Instruments Fair Value
FinancialInstrumentsFairValue
185550000
CY2020 spsc Payment For Earn Out Liability
PaymentForEarnOutLiability
700000
CY2020 spsc Earn Out Liability Expected To Be Paid On Completion Of Revenue Milestones
EarnOutLiabilityExpectedToBePaidOnCompletionOfRevenueMilestones
100000
CY2019Q4 us-gaap Deferred Costs Current And Noncurrent
DeferredCostsCurrentAndNoncurrent
46941000
CY2018Q4 us-gaap Deferred Costs Current And Noncurrent
DeferredCostsCurrentAndNoncurrent
45475000
CY2020 spsc Deferred Costs Incurred
DeferredCostsIncurred
54421000
CY2019 spsc Deferred Costs Incurred
DeferredCostsIncurred
49883000
CY2020 spsc Deferred Costs Amortized
DeferredCostsAmortized
-50767000
CY2019 spsc Deferred Costs Amortized
DeferredCostsAmortized
-48417000
CY2020Q4 spsc Financial Instrument Amortized Cost Basis
FinancialInstrumentAmortizedCostBasis
153304000
CY2019Q4 spsc Financial Instrument Amortized Cost Basis
FinancialInstrumentAmortizedCostBasis
185439000
CY2019Q4 spsc Financial Instrument Net Unrealized Gain Loss Before Tax
FinancialInstrumentNetUnrealizedGainLossBeforeTax
111000
CY2019Q4 spsc Financial Instruments Fair Value
FinancialInstrumentsFairValue
185550000
CY2019Q4 spsc Financial Instruments Maturities Within One Year Fair Value
FinancialInstrumentsMaturitiesWithinOneYearFairValue
185550000
CY2020Q4 spsc Financial Instruments Maturities Within One To Two Year Fair Value
FinancialInstrumentsMaturitiesWithinOneToTwoYearFairValue
2500000
CY2020Q2 spsc Financial Instruments Fair Value
FinancialInstrumentsFairValue
201257000
CY2019 us-gaap Fair Value Measurement With Unobservable Inputs Reconciliation Liability Transfers Out Of Level3
FairValueMeasurementWithUnobservableInputsReconciliationLiabilityTransfersOutOfLevel3
0
CY2020Q4 us-gaap Fair Value Assets Level2 To Level1 Transfers Amount
FairValueAssetsLevel2ToLevel1TransfersAmount
0
CY2019Q4 us-gaap Fair Value Assets Level2 To Level1 Transfers Amount
FairValueAssetsLevel2ToLevel1TransfersAmount
0
CY2020Q4 us-gaap Fair Value Liabilities Level1 To Level2 Transfers Amount
FairValueLiabilitiesLevel1ToLevel2TransfersAmount
0
CY2019Q4 us-gaap Fair Value Liabilities Level1 To Level2 Transfers Amount
FairValueLiabilitiesLevel1ToLevel2TransfersAmount
0
CY2020Q4 us-gaap Fair Value Liabilities Level2 To Level1 Transfers Amount
FairValueLiabilitiesLevel2ToLevel1TransfersAmount
0
CY2018Q4 us-gaap Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
1392000
CY2017Q4 us-gaap Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
763000
CY2020 us-gaap Accounts Receivable Change In Method Credit Loss Expense Reversal
AccountsReceivableChangeInMethodCreditLossExpenseReversal
1069000
CY2020 us-gaap Allowance For Doubtful Accounts Receivable Period Increase Decrease
AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease
354000
CY2020 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
5660000
CY2019 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
3499000
CY2018 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
2592000
CY2020 us-gaap Allowance For Doubtful Accounts Receivable Write Offs
AllowanceForDoubtfulAccountsReceivableWriteOffs
4319000
CY2019 us-gaap Allowance For Doubtful Accounts Receivable Write Offs
AllowanceForDoubtfulAccountsReceivableWriteOffs
3422000
CY2018 us-gaap Allowance For Doubtful Accounts Receivable Write Offs
AllowanceForDoubtfulAccountsReceivableWriteOffs
1963000
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
CY2019Q4 us-gaap Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
1469000
CY2020Q4 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
85584000
CY2019Q4 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
74326000
CY2020Q4 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
59152000
CY2019Q4 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
50574000
CY2020Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
26432000
CY2019Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
23752000
CY2020 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
13100000
CY2019 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
11100000
CY2018 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
8600000
CY2019Q4 us-gaap Goodwill
Goodwill
76845000
CY2018Q4 us-gaap Goodwill
Goodwill
69658000
CY2020 us-gaap Goodwill Acquired During Period
GoodwillAcquiredDuringPeriod
56960000
CY2019 us-gaap Goodwill Acquired During Period
GoodwillAcquiredDuringPeriod
6372000
CY2020 us-gaap Goodwill Foreign Currency Translation Gain Loss
GoodwillForeignCurrencyTranslationGainLoss
1048000
CY2019 us-gaap Goodwill Foreign Currency Translation Gain Loss
GoodwillForeignCurrencyTranslationGainLoss
815000
CY2020Q4 us-gaap Goodwill
Goodwill
134853000
CY2019Q4 us-gaap Goodwill
Goodwill
76845000
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
CY2019Q4 us-gaap Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
54737000
CY2019Q4 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
32301000
CY2019Q4 spsc Finite Lived Intangible Assets Accumulated Foreign Currency Translation Gain Loss
FiniteLivedIntangibleAssetsAccumulatedForeignCurrencyTranslationGainLoss
232000
CY2019Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
22668000
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Next Twelve Months
FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
9942000
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
8838000
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
8758000
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Four
FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
7476000
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
7337000
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense After Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
17879000
CY2020Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
60230000
CY2020 us-gaap Lease Cost
LeaseCost
6297000
CY2019 us-gaap Lease Cost
LeaseCost
5959000
CY2019Q4 us-gaap Capitalized Computer Software Net
CapitalizedComputerSoftwareNet
1166000
CY2018Q4 us-gaap Capitalized Computer Software Net
CapitalizedComputerSoftwareNet
455000
CY2020 us-gaap Capitalized Computer Software Additions
CapitalizedComputerSoftwareAdditions
127000
CY2019 us-gaap Capitalized Computer Software Additions
CapitalizedComputerSoftwareAdditions
797000
CY2020 us-gaap Capitalized Computer Software Amortization1
CapitalizedComputerSoftwareAmortization1
112000
CY2019 us-gaap Capitalized Computer Software Amortization1
CapitalizedComputerSoftwareAmortization1
86000
CY2020Q4 us-gaap Capitalized Computer Software Net
CapitalizedComputerSoftwareNet
1181000
CY2019Q4 us-gaap Capitalized Computer Software Net
CapitalizedComputerSoftwareNet
1166000
CY2020Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
15581000
CY2019Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
15744000
CY2020 us-gaap Operating Lease Cost
OperatingLeaseCost
2719000
CY2019 us-gaap Operating Lease Cost
OperatingLeaseCost
2569000
CY2020 us-gaap Variable Lease Cost
VariableLeaseCost
3578000
CY2019 us-gaap Variable Lease Cost
VariableLeaseCost
3390000
CY2018 us-gaap Lease And Rental Expense
LeaseAndRentalExpense
5577000000
CY2020 us-gaap Operating Lease Payments
OperatingLeasePayments
4134000
CY2019 us-gaap Operating Lease Payments
OperatingLeasePayments
4383000
CY2020 us-gaap Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
12801000
CY2019 us-gaap Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
2537000
CY2020Q4 us-gaap Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
P5Y7M6D
CY2019Q4 us-gaap Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
P5Y
CY2020Q4 us-gaap Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
0.041
CY2019Q4 us-gaap Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
0.045
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
3728000
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
4699000
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
4431000
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
4070000
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
3715000
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due After Year Five
LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
4753000
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
25396000
CY2020Q4 us-gaap Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
2926000
CY2020Q4 us-gaap Operating Lease Liability
OperatingLeaseLiability
22470000
CY2020Q4 us-gaap Purchase Commitment Remaining Minimum Amount Committed
PurchaseCommitmentRemainingMinimumAmountCommitted
17900000
CY2019Q3 us-gaap Stockholders Equity Note Stock Split Conversion Ratio1
StockholdersEquityNoteStockSplitConversionRatio1
2
CY2019Q3 spsc Increase Decrease In Common Stock Shares Authorized
IncreaseDecreaseInCommonStockSharesAuthorized
0
CY2020Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Number Of Shares Available For Grant
ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
15800000
CY2018 us-gaap Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested In Period Fair Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
3689000
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
CY2018 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
14852000
CY2019 us-gaap Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
1933000
CY2020 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
18936000
CY2019 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
14690000
CY2018 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
12510000
CY2020Q4 us-gaap Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
24100000
CY2020 us-gaap Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized Period For Recognition1
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
P2Y4M24D
CY2017Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
2194662
CY2017Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
23.80
CY2018 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
362944
CY2018 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
29.94
CY2018 us-gaap Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
688668
CY2018 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
20.83
CY2018 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
122470
CY2018 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Forfeitures In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
28.34
CY2018Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
1746468
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
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
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
CY2018Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
26654000
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
CY2018 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
9.74
CY2020Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
19362000
CY2019Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
23150000
CY2019Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
23150000
CY2020Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
1582000
CY2020 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
1249000
CY2019 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
599000
CY2018 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
1103000
CY2020 us-gaap Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
1608000
CY2019 us-gaap Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
169000
CY2018 us-gaap Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
540000
CY2020 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
4462000
CY2019 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
6595000
CY2018 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
3011000
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
CY2018 us-gaap Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
224000
CY2020 us-gaap Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
-469000
CY2019 us-gaap Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
-161000
CY2018 us-gaap Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
-410000
CY2020 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
7094000
CY2019 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
8358000
CY2018 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
4468000
CY2020 us-gaap Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
11063000
CY2019 us-gaap Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
8835000
CY2018 us-gaap Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
5951000
CY2020 us-gaap Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
2382000
CY2020Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
19362000
CY2020Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
1228000
CY2020Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
1228000
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
496000
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
496000
CY2020Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
3200000
CY2020Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
3200000
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
2916000
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
2916000
CY2020Q4 us-gaap Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
695000
CY2020Q4 us-gaap Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
695000
CY2019Q4 us-gaap Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
668000
CY2019Q4 us-gaap Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
668000
CY2020Q4 spsc Deferred Tax Assets Lease Liabilities
DeferredTaxAssetsLeaseLiabilities
5435000
CY2020Q4 spsc Deferred Tax Assets Lease Liabilities
DeferredTaxAssetsLeaseLiabilities
5435000
CY2019Q4 spsc Deferred Tax Assets Lease Liabilities
DeferredTaxAssetsLeaseLiabilities
5995000
CY2018 us-gaap Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
1293000
CY2020 us-gaap Income Tax Reconciliation Foreign Income Tax Rate Differential
IncomeTaxReconciliationForeignIncomeTaxRateDifferential
233000
CY2019 us-gaap Income Tax Reconciliation Foreign Income Tax Rate Differential
IncomeTaxReconciliationForeignIncomeTaxRateDifferential
-108000
CY2018 us-gaap Income Tax Reconciliation Foreign Income Tax Rate Differential
IncomeTaxReconciliationForeignIncomeTaxRateDifferential
57000
CY2020 spsc Income Tax Reconciliation Nondeductible Expense For Executive Compensation
IncomeTaxReconciliationNondeductibleExpenseForExecutiveCompensation
928000
CY2019 spsc Income Tax Reconciliation Nondeductible Expense For Executive Compensation
IncomeTaxReconciliationNondeductibleExpenseForExecutiveCompensation
940000
CY2018 spsc Income Tax Reconciliation Nondeductible Expense For Executive Compensation
IncomeTaxReconciliationNondeductibleExpenseForExecutiveCompensation
902000
CY2020 spsc Income Tax Reconciliation Foreign Derived Intangible Income
IncomeTaxReconciliationForeignDerivedIntangibleIncome
710000
CY2020 us-gaap Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
234000
CY2019 us-gaap Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
329000
CY2018 us-gaap Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
351000
CY2018 us-gaap Income Tax Reconciliation Change In Deferred Tax Assets Valuation Allowance
IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
-4000
CY2020 spsc Income Tax Reconciliation Change In State Deferred Rate
IncomeTaxReconciliationChangeInStateDeferredRate
32000
CY2019 spsc Income Tax Reconciliation Change In State Deferred Rate
IncomeTaxReconciliationChangeInStateDeferredRate
47000
CY2018 spsc Income Tax Reconciliation Change In State Deferred Rate
IncomeTaxReconciliationChangeInStateDeferredRate
38000
CY2020 us-gaap Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
294000
CY2019 us-gaap Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
1252000
CY2018 us-gaap Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
1843000
CY2020 spsc Income Tax Reconciliation Tax Benefits For Excess Tax Deduction From Stock Activity
IncomeTaxReconciliationTaxBenefitsForExcessTaxDeductionFromStockActivity
6807000
CY2019 spsc Income Tax Reconciliation Tax Benefits For Excess Tax Deduction From Stock Activity
IncomeTaxReconciliationTaxBenefitsForExcessTaxDeductionFromStockActivity
2518000
CY2018 spsc Income Tax Reconciliation Tax Benefits For Excess Tax Deduction From Stock Activity
IncomeTaxReconciliationTaxBenefitsForExcessTaxDeductionFromStockActivity
2438000
CY2020 us-gaap Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
33000
CY2019 us-gaap Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
152000
CY2018 us-gaap Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
161000
CY2020 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
7094000
CY2019 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
8358000
CY2018 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
4468000
CY2020Q4 spsc Deferred Tax Assets Operating Loss And Tax Credit Carryforwards
DeferredTaxAssetsOperatingLossAndTaxCreditCarryforwards
4539000
CY2020Q4 spsc Deferred Tax Assets Operating Loss And Tax Credit Carryforwards
DeferredTaxAssetsOperatingLossAndTaxCreditCarryforwards
4539000
CY2019Q4 spsc Deferred Tax Assets Operating Loss And Tax Credit Carryforwards
DeferredTaxAssetsOperatingLossAndTaxCreditCarryforwards
9122000
CY2019Q4 spsc Deferred Tax Assets Operating Loss And Tax Credit Carryforwards
DeferredTaxAssetsOperatingLossAndTaxCreditCarryforwards
9122000
CY2020Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
3605000
CY2020Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
3605000
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
3944000
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
3944000
CY2019Q4 spsc Deferred Tax Assets Lease Liabilities
DeferredTaxAssetsLeaseLiabilities
5995000
CY2020Q4 us-gaap Deferred Tax Assets Other
DeferredTaxAssetsOther
660000
CY2020Q4 us-gaap Deferred Tax Assets Other
DeferredTaxAssetsOther
660000
CY2019Q4 us-gaap Deferred Tax Assets Other
DeferredTaxAssetsOther
9000
CY2019Q4 us-gaap Deferred Tax Assets Other
DeferredTaxAssetsOther
9000
CY2020Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
1582000
CY2019Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
1068000
CY2019Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
1068000
CY2020Q4 us-gaap Deferred Tax Assets Net
DeferredTaxAssetsNet
17780000
CY2020Q4 us-gaap Deferred Tax Assets Net
DeferredTaxAssetsNet
17780000
CY2019Q4 us-gaap Deferred Tax Assets Net
DeferredTaxAssetsNet
22082000
CY2019Q4 us-gaap Deferred Tax Assets Net
DeferredTaxAssetsNet
22082000
CY2020Q4 spsc Deferred Tax Liabilities Deferred Revenue And Expense
DeferredTaxLiabilitiesDeferredRevenueAndExpense
12561000
CY2020Q4 spsc Deferred Tax Liabilities Deferred Revenue And Expense
DeferredTaxLiabilitiesDeferredRevenueAndExpense
12561000
CY2019Q4 spsc Deferred Tax Liabilities Deferred Revenue And Expense
DeferredTaxLiabilitiesDeferredRevenueAndExpense
11436000
CY2019Q4 spsc Deferred Tax Liabilities Deferred Revenue And Expense
DeferredTaxLiabilitiesDeferredRevenueAndExpense
11436000
CY2020Q4 spsc Deferred Tax Liabilities Right Of Use Assets
DeferredTaxLiabilitiesRightOfUseAssets
3754000
CY2020Q4 spsc Deferred Tax Liabilities Right Of Use Assets
DeferredTaxLiabilitiesRightOfUseAssets
3754000
CY2019Q4 spsc Deferred Tax Liabilities Right Of Use Assets
DeferredTaxLiabilitiesRightOfUseAssets
4047000
CY2019Q4 spsc Deferred Tax Liabilities Right Of Use Assets
DeferredTaxLiabilitiesRightOfUseAssets
4047000
CY2020Q4 us-gaap Deferred Tax Liabilities Undistributed Foreign Earnings
DeferredTaxLiabilitiesUndistributedForeignEarnings
228000
CY2020Q4 us-gaap Deferred Tax Liabilities Undistributed Foreign Earnings
DeferredTaxLiabilitiesUndistributedForeignEarnings
228000
CY2019Q4 us-gaap Deferred Tax Liabilities Undistributed Foreign Earnings
DeferredTaxLiabilitiesUndistributedForeignEarnings
144000
CY2019Q4 us-gaap Deferred Tax Liabilities Undistributed Foreign Earnings
DeferredTaxLiabilitiesUndistributedForeignEarnings
144000
CY2020Q4 spsc Deferred Tax Liabilities Property Plant And Equipment And Other Finite Lived Assets
DeferredTaxLiabilitiesPropertyPlantAndEquipmentAndOtherFiniteLivedAssets
3980000
CY2020Q4 spsc Deferred Tax Liabilities Property Plant And Equipment And Other Finite Lived Assets
DeferredTaxLiabilitiesPropertyPlantAndEquipmentAndOtherFiniteLivedAssets
3980000
CY2019Q4 spsc Deferred Tax Liabilities Property Plant And Equipment And Other Finite Lived Assets
DeferredTaxLiabilitiesPropertyPlantAndEquipmentAndOtherFiniteLivedAssets
4975000
CY2019Q4 spsc Deferred Tax Liabilities Property Plant And Equipment And Other Finite Lived Assets
DeferredTaxLiabilitiesPropertyPlantAndEquipmentAndOtherFiniteLivedAssets
4975000
CY2019Q4 us-gaap Deferred Tax Liabilities Other
DeferredTaxLiabilitiesOther
43000
CY2019Q4 us-gaap Deferred Tax Liabilities Other
DeferredTaxLiabilitiesOther
43000
CY2020Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
20523000
CY2020Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
20523000
CY2019Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
20645000
CY2019Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
20645000
CY2020Q4 us-gaap Deferred Tax Liabilities
DeferredTaxLiabilities
2743000
CY2019Q4 us-gaap Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
1437000
CY2020 us-gaap Net Income Loss
NetIncomeLoss
45586000
CY2019 us-gaap Net Income Loss
NetIncomeLoss
33712000
CY2018 us-gaap Net Income Loss
NetIncomeLoss
23872000
CY2020 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
35226000
CY2019 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
35024000
CY2018 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
34392000
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
CY2018 us-gaap Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
612000
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
CY2018 us-gaap Incremental Common Shares Attributable To Contingently Issuable Shares
IncrementalCommonSharesAttributableToContingentlyIssuableShares
208000
CY2020 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
36285000
CY2019 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
36002000
CY2018 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
35212000
CY2020 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.29
CY2019 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.96
CY2018 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.69
CY2020 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.26
CY2019 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.94
CY2018 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.68
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
CY2018 us-gaap Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
1000
CY2020 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
CY2018 us-gaap Defined Contribution Plan Maximum Annual Contributions Per Employee Percent
DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent
0.80
CY2020 us-gaap Defined Contribution Plan Employer Matching Contribution Percent Of Match
DefinedContributionPlanEmployerMatchingContributionPercentOfMatch
0.50
CY2019 us-gaap Defined Contribution Plan Employer Matching Contribution Percent Of Match
DefinedContributionPlanEmployerMatchingContributionPercentOfMatch
0.50
CY2020 us-gaap Defined Contribution Plan Employer Matching Contribution Percent
DefinedContributionPlanEmployerMatchingContributionPercent
0.06
CY2020 spsc Defined Contribution Plan Employer Not Note Discretionary Contribution Amount
DefinedContributionPlanEmployerNotNoteDiscretionaryContributionAmount
3900000
CY2019 spsc Defined Contribution Plan Employer Not Note Discretionary Contribution Amount
DefinedContributionPlanEmployerNotNoteDiscretionaryContributionAmount
3300000
CY2018 spsc Defined Contribution Plan Employer Not Note Discretionary Contribution Amount
DefinedContributionPlanEmployerNotNoteDiscretionaryContributionAmount
2900000
CY2020 spsc Number Of Jurisdiction Outside Us Had Excess Revenue Of Ten Percentage
NumberOfJurisdictionOutsideUSHadExcessRevenueOfTenPercentage
0

Files In Submission

Name View Source Status
0001564590-21-007614-index-headers.html Edgar Link pending
0001564590-21-007614-index.html Edgar Link pending
0001564590-21-007614.txt Edgar Link pending
0001564590-21-007614-xbrl.zip Edgar Link pending
FilingSummary.xml Edgar Link unprocessable
Financial_Report.xlsx Edgar Link pending
ge0gzrr3bqc5000001.jpg Edgar Link pending
ge0gzrr3bqc5000002.jpg Edgar Link pending
ge0gzrr3bqc5000026.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
R9.htm Edgar Link pending
report.css Edgar Link pending
Show.js Edgar Link pending
spsc-10k_20201231.htm Edgar Link pending
spsc-10k_20201231_htm.xml Edgar Link completed
spsc-20201231.xsd Edgar Link pending
spsc-20201231_cal.xml Edgar Link unprocessable
spsc-20201231_def.xml Edgar Link unprocessable
spsc-20201231_lab.xml Edgar Link unprocessable
spsc-20201231_pre.xml Edgar Link unprocessable
spsc-ex211_7.htm Edgar Link pending
spsc-ex231_10.htm Edgar Link pending
spsc-ex311_11.htm Edgar Link pending
spsc-ex312_6.htm Edgar Link pending
spsc-ex321_9.htm Edgar Link pending
spsc-ex41_8.htm Edgar Link pending